tensorflow의 tokenizer를 이용하면, 이전에 진행했던 토큰화 작업을 tfidf를 사용하는 것보다 간소화가 가능하다.
이 때, 정수 인코딩된 X_train을 모델 학습할 때는 실수의 형태로 정규화/표준화하여 진행하게 되는데, 이는 모델 학습 시에만 Embedding 층에서 자동 변환하고 다시 정수 형태로 반환한다.
이유는 실수의 형태가 학습에는 유리하지만, 저장 시에는 정수의 형태가 효율적이기 때문이다.
다만, y_pred는 실수의 형태로 반환되기에, 정답과 비교를 위해서 0.5 이상의 값은 1로 이하는 0으로 하는 새로운 배열을 만들고, accuracy_score로 비교하면 된다.
최종 결과는 classification_report를 이용하여, 최종 결과 지표들을 일괄 확인할 수 있다.
확인해보면 정확도가 약 0.78로 나오는데, 이전에 생성한 ML 모델과 큰 차이가 없다.
그렇기에, 문장 데이터도 ML과 큰 차이가 없다.
다시 말해, DL이 충분한 성능을 발휘하려면, 많은 데이터 양과 학습 환경이 구축되어야 한다.
입력층에 매개변수가 곱해져 다음 층의 입력값이 된다.
이는 결국 행렬의 연산이다.
예를 들어, 입력층이 (3,1)이고, 다음 층이 (2,1)이면, 매개변수는 (2, 3)이 된다.
다만, 단순 곱이 아닌, 곱을 거친 후, 활성화 함수를 곱하고, 다시 bias를 더해서 다음 층의 노드가 된다.
하지만 입력층의 데이터가 다소 커질 경우에는 조금 다른데, batch size가 정해져서 사실상 (3, 1)이 아니라, (3^x, 1)이 된다.
결국 다음 층의 노드 역시, (2, 1)이 아닌, (2^x, 1)이 된다.
어찌 보면, 하나의 데이터가 아닌, 배치로 나뉜 데이터 리스트라고 보면 된다.