💡Key Point💡
1. 레이어의 개념 이해
2. 레이어(Embedding, RNN, LSTM)의 동작 방식 이해
3. 데이터의 특성을 고려한 레이어를 설계(+Tensorflow로 정의하는 법)
의미적 유사성을 가지는 것들(ex. 단어) 간 맥락에 따라 거리를 설정하는 방식을 통해 얻는 벡터 (의미들이 벡터 여러 차원에 분산)
분산 표현을 사용하면 단어간 유사도 계산 가능
희소 표현(Sparse Representation)
: 단어 혹은 의미를 벡터의 특정 차원에 직접 매핑
분포 가설(distribution hypothesis)
: 유사한 맥락에서 나타나는 단어는 그 의미도 비슷하다고 가정
Embedding 레이어
: 분산 표현 구현을 위한 레이어
Embedding 레이어 훈련 방법: ELMo, Word2Vec, Glove, FastText 등
컴퓨터용 단어 사전과 같음
표현 정도(깊이)를 Embedding 사이즈를 통해 정해줄 수 있음
→ 단어의 수, 임베딩 사이즈로 W 정의
출처: AIFFEL Fundamentals_ssac2 21. 딥러닝 레이어의 이해(2) Embedding, Recurrent
입력을 분산 표현으로 연결해 주는 임베딩 레이어의 역할로 룩업 테이블(Lookup Table)라고도 부를 수 있다.
위 그림에서 파란색 선의 의미: 각 단어 원-핫 인코딩 후 Linear 연산
인덱스 원-핫 임베딩 변환 후 임베딩 레이어의 입력으로 넣어주는 처리
단어 대응의 역할만 함 → 미분은 불가능 → 어떠한 연산 결과와 연결 불가능
입력에 직접 연결되게 사용 (입력은 원-핫 인코딩을 거친 형태가 좋음)
문장, 영상, 음성 등의 데이터는 순차적인(Sequential) 특성을 가짐 (요소 간의 연관성 O)
Recurrent Neural Network(RNN): 순차적인 데이터 처리함
단 하나의 Weight를 순차적으로 업데이트
상대적으로 느림
입력의 앞부분이 과정을 거칠수록 옅어짐 → 손실이 발생 → 기울기 소실(Vanishing Gradient)
출처: AIFFEL Fundamentals_ssac2 21. 딥러닝 레이어의 이해(2) Embedding, Recurrent
긍정/부정 판단: 최종 Step Output 확인
문장 생성: 모든 Step Output 필요
기울기 소실 문제를 해결하기 위해 고안된 RNN 레이어
Vanishing Gradient
: 문장이 길수록 미분 값이 너무 작아지는 현상
Exploding Gradient
: 미분 값이 너무 커지는 현상
바닐라 RNN의 4배정도 큰 weight를 가짐(4종류의 w)
RNN Weight
Cell state
: 길이가 긴 문장이 입력 되어도 오래된 기억을 큰 손실 없이 저장
gate
: cell state
에 정보를 추가 및 빼주는 역할
엿보기 구멍(peephole connection)
Gated Recurrent Unit(GRU)
Forget Gate
+ Inpurt Gate
→ Update Gate로 통합Cell State
+ Hidden State
진행 방향이 반대인 RNN을 겹쳐 놓은 형태
주로 기계번역 같은 테스크에 유리
번역기를 만들 때 양방향(Bidirectional) RNN 계열 네트워크, Transformer 네트워크를 주로 사용
순방향 Weight와 역방향 Weight를 각각 정의(w 2배)
Illustrated Guide to Recurrent Neural Networks
Recurrent Neural Networks (RNN) - The Vanishing Gradient Problem
LSTM가 gradient vanishing에 강한이유?