CNN - 이미지 분류
RNN - 텍스트 분류
분류 정확도는 분류해야 할 종류와 반비례
ImageDataGenerator가 1개인 경우 : train, test 통합
ImageDataGenerator가 2개인 경우 : train, test가 이미 분할
문자열을 위 해 Meca-kor-dor을 설치(한글 형태소 분석을 위해 필요)
one-hot 인코딩으로 표현하면 이미지 형태로 변경 -> softmax
원-핫 인코딩과 비슷
표현하고자 하는 단어의 인덱스 값만 1이고 나머지 인덱스에는 전부 0으로 표현되는 백터 방법으로 원-핫 백터라고도 한다.
전체 단어의 수가 4개 이므로 각각의 단어를 4개의 원소를 갖는 리스트 안에서 one-hot 인코딩으로 표현한다.
one-hot 인코딩으로 표현하면 이미지 형태로 변경 -> softmax 사용 가능
[ [1, 0, 0, 0], [0, 1, 0, 0], [0, 0, 1, 0] ] [ [1, 0, 0, 0], [0, 0, 0, 1] ]
희소 표현의 반대
벡터의 차원을 단어 집합의 크기로 결정하지 않고 분석가가 설정한 임의의 값으로 모든 단어 벡터의 차원을 맞춘다.
0과 1이 아닌 실수를 원소로 갖는다.
RNN 순서와 맥락을 고려하지는 않음
-> 일치하는 단어가 얼마나 있는가를 확인
전체 소스코드는 지금까지의 예제들과 동일하게 진행된다.
💡 패키지 준비 → 데이터셋 준비 → 데이터 전처리 → 탐색적 데이터 분석(문자열 토큰화, 데이터를 동일한 길이로 맞추기) → 데이터 셋 분할 → 모델 개발(정의+학습) → 학습 결과 평가 → 학습결과 적용
이 과정에서 학습 모델을 정의하는 부분에서 적용할 알고리즘만 변경하면 되기 때문에 여기서는 RNN을 먼저 적용해 본 후, 학습 모델을 LSTM과 GRU로 각각 변경하여 다시 학습을 수행해 보도록 한다.
학습 시간이 매우 오래 걸리는 예제이므로 가급적 GPU가 탑재된 컴퓨터에서 실습하는 것이 좋다.