작성
·
70
0
030_IMDB_movie_reviews.ipynb 모델을 선언할 때 보면 다음과 같이 진행이 됩니다.
# <pad> token 추가하느라 + 1이 들어갔다. / add로도 할 수 있다.
model = Sequential([
Embedding(vocab_size + 1, 64), # 임베딩 레이어 추가 (어휘 크기 + 1, 임베딩 차원 64)
Bidirectional(tf.keras.layers.LSTM(64)), # 양방향 LSTM 레이어 추가 (유닛 수 64)
Dense(64, activation='relu'),
Dense(1, activation='sigmoid')
])
임베딩은 인코딩된 문장에 맥락을 부여하는 단계입니다.
Bidirectional Lstm은 hidden state와 cell state 등으로 Long Term, Short Term인 기억을 문장에 대하여 가져갑니다.
따라서 임베딩 레이어의 기능은 bidirectional lstm도 수행할 수 있습니다.
그러므로 임베딩 layer는 모델에서 제외해도 가능합니다.
이라고 생각을 하여서, 위 질문을 그대로 chat gpt를 활용하여 답을 구해보았습니다. 그랬더니, 3번부터 틀렸다고 전달을 받았습니다.
임베딩 레이어는 단어를 밀집 벡터로 변환하여 의미적 유사성을 학습할 수 있도록 하고, 모델이 숫자 인덱스 대신 의미 있는 벡터를 사용할 수 있게 합니다.
LSTM 레이어는 연속적인 정보를 학습하며, 주로 시퀀스 내에서의 시간적 의존성을 이해하는 데 사용됩니다.
이렇게 이해를 하면 적절하게 이해를 한 것일까요?
나아가, embedding layer는 정수 인코딩된 문장을 dense layer를 통과시키는 것과 거의 유사한 역할을 하는 것이 맞나요?
답변