IMDB 데이터셋 : 인터넷 영화 데이터베이스로부터 가져온 부정 또는 긍정의 리뷰 50000개
훈련 데이터 25000개, 테스트 데이터 25000개, 50% 긍정, 50% 부정
from keras.datasets import imdb
(train_data, train_labels),(test_data, test_labels) = imdb.load_data(num_words=10000)
train_data와 test_data는 리뷰의 목록 ( 단어 인덱스의 리스트 )
train_labels와 test_labels는 0(부정) & 1(긍정) 의 리스트
⇒ 원-핫-인코딩하여 0과 1의 벡터로 변환
어떤 리뷰에 있는 단어의 인덱스의 원소만 1로 바꾸어주고 나머지는 0

import numpy as np
def vectorize_sequences(sequences, dimension=10000):
result = np.zeros((len(sequences),dimension))
for i, sequence in enumerate(sequences):
result[i, sequence] = 1
return result
x_train = vectorize_sequences(train_data)
x_test = vectorize_sequences(test_data)
<aside> 💡 원-핫 인코딩
</aside>
벡터 데이터(2D 텐서) 입력 & 이진 분류 ⇒ relu 활성화 함수를 사용한 밀집 연결 층(Dense) 쌓기
from keras import models
from keras import layers
model = models.Sequential()
model.add(layers.Dense(16, activation='relu', input_shape=((10000,))))
model.add(layers.Dense(16, activation='relu'))
model.add(layers.Dense(1,activation="sigmoid"))

은닉 유닛 ( 은닉 노드 ) : 층이 나타내는 표현 공간의 차원
n개의 은닉 유닛 —> 가중치 행렬 W의 크기 = (input_dimension, n)