FUNDAMENTAL | 21. 딥러닝 레이어의 이해(2)

yeonk·2021년 10월 29일
0

aiffel-ai-bootcamp

목록 보기
34/38
post-thumbnail

20211029

💡Key Point💡
1. 레이어의 개념 이해
2. 레이어(Embedding, RNN, LSTM)의 동작 방식 이해
3. 데이터의 특성을 고려한 레이어를 설계(+Tensorflow로 정의하는 법)



1. 분산 표현


의미적 유사성을 가지는 것들(ex. 단어) 간 맥락에 따라 거리를 설정하는 방식을 통해 얻는 벡터 (의미들이 벡터 여러 차원에 분산)
분산 표현을 사용하면 단어간 유사도 계산 가능

희소 표현(Sparse Representation): 단어 혹은 의미를 벡터의 특정 차원에 직접 매핑

분포 가설(distribution hypothesis): 유사한 맥락에서 나타나는 단어는 그 의미도 비슷하다고 가정

Embedding 레이어: 분산 표현 구현을 위한 레이어

Embedding 레이어 훈련 방법: ELMo, Word2Vec, Glove, FastText 등






2. Embedding 레이어


컴퓨터용 단어 사전과 같음
표현 정도(깊이)를 Embedding 사이즈를 통해 정해줄 수 있음
→ 단어의 수, 임베딩 사이즈로 W 정의



	출처: AIFFEL Fundamentals_ssac2 21. 딥러닝 레이어의 이해(2) Embedding, Recurrent



  • 입력을 분산 표현으로 연결해 주는 임베딩 레이어의 역할로 룩업 테이블(Lookup Table)라고도 부를 수 있다.

  • 위 그림에서 파란색 선의 의미: 각 단어 원-핫 인코딩 후 Linear 연산

  • 인덱스 원-핫 임베딩 변환 후 임베딩 레이어의 입력으로 넣어주는 처리

  • 단어 대응의 역할만 함 → 미분은 불가능 → 어떠한 연산 결과와 연결 불가능

  • 입력에 직접 연결되게 사용 (입력은 원-핫 인코딩을 거친 형태가 좋음)






3. RNN


문장, 영상, 음성 등의 데이터는 순차적인(Sequential) 특성을 가짐 (요소 간의 연관성 O)
Recurrent Neural Network(RNN): 순차적인 데이터 처리함

  • 단 하나의 Weight를 순차적으로 업데이트

  • 상대적으로 느림

  • 입력의 앞부분이 과정을 거칠수록 옅어짐 → 손실이 발생 → 기울기 소실(Vanishing Gradient)



	출처: AIFFEL Fundamentals_ssac2 21. 딥러닝 레이어의 이해(2) Embedding, Recurrent



  • 긍정/부정 판단: 최종 Step Output 확인

  • 문장 생성: 모든 Step Output 필요






4. LSTM(Long Short-Term Memory)


기울기 소실 문제를 해결하기 위해 고안된 RNN 레이어

  • Vanishing Gradient: 문장이 길수록 미분 값이 너무 작아지는 현상

    • 가중치 업데이트, 학습에 문제 발생
  • Exploding Gradient: 미분 값이 너무 커지는 현상

    • 상대적으로 너무 큰 가중치 업데이트, 불안정 학습






  • 바닐라 RNN의 4배정도 큰 weight를 가짐(4종류의 w)

  • RNN Weight

    • gate 구조에 포함
    • 정보 기억
    • 다음 스텝으로 전달할 정보 선별
  • Cell state: 길이가 긴 문장이 입력 되어도 오래된 기억을 큰 손실 없이 저장

  • gate: cell state에 정보를 추가 및 빼주는 역할

    • Forget Gate Layer: cell state의 기존 정보를 얼마나 잊어버릴지를 결정
    • Input Gate Layer: 새로운 cell state를 기존 cell state에 얼마나 반영할지 결정
    • Output Gate Layer: 새로운 cell state를 새로운 hidden state에 얼마나 반영할지 결정






  • 엿보기 구멍(peephole connection)

  • Gated Recurrent Unit(GRU)

    • LSTM Forget Gate + Inpurt Gate → Update Gate로 통합
    • LSTM Cell State + Hidden State
    • 학습할 가중치(Weight)가 상대적으로 적음 (LSTM의 1/4)






5. 양방향(Bidirectional) RNN


진행 방향이 반대인 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에 강한이유?

Long Short-Term Memory (LSTM) 이해하기

Gated Recurrent Units(GRU)

0개의 댓글