[딥러닝] RNN, LSTM, Attention, Transformer

Colacan·2022년 5월 11일
1

[딥러닝]

목록 보기
1/1

RNN

과거의 정보를 현재값에 반영하는 신경망

  1. 목적 : 순차적인 데이터를 다루는 것

  2. 방법 : 경사하강법, 오차역전파

  3. 단점 : 순차적으로 진행하므로 병렬화가 불가능, 층이 많을수록 기울기 폭발, 소실문제 발생

LSTM

오래된 정보까지도 반영할 수 있는 신경망

  1. 목적 : RNN의 기울기 소실문제를 해결

  2. 방법 : cell-state를 통해서 과거값과 현재값의 비율을 조정하여 출력정보를 만든다.

  3. 단점 : 모델의 복잡도가 많이 올라간다.

GRU

LSTM을 간소화한 모델 (LSTM 보급형느낌)

  1. 목적 : 낮은 성능에서도 LSTM을 구현하기 위함 (근데 요즘 하드웨어 성능이 좋아서 안쓴다고함)

  2. 방법 : cell-state를 없애고 output gate도 없앤다.

  3. 단점 : 데이터가 많을때는 LSTM보다 성능이 떨어진다고하네요. (매개변수가 적어서 그런걸까요? 이건 스터디 때 얘기해보는거로)

Attention

앞의 3개의 모델은 단어에 대한 값들을 하나의 벡터로 나타냄. 따라서, 길이가 길어지면 정보를 담기가 힘듬. 이를 해결하기 위한 개념

  1. 과정
    1) 디코더에서 각 단어마다 쿼리를 생성 (난 이런걸 고르고 싶어!)
    2) 인코더에서 키와 밸류를 넘겨줌 (여기서 골라봐~)
    3) 쿼리와 키의 연관성을 구함 (뭐가 잘 맞나 볼까?)
    4) 키에 맞는 밸류값을 반영해줌 (뭘 골라야할지 정리 끝!)

Transformer

어텐션을 고려해서 만든 모델 (단어의 위치정보가 고려될 것이다.)

  1. 목적 : 앞서 말한 RNN, LSTM, GRU의 문제를 해결 (너무 길어지면 정보담기 힘든것)

  2. 과정

  • 인코더부분
    1) 포지셔닝 인코딩 - 임베딩된 벡터값에 을 해서 위치값 반영 (난 여기쯤 있어요~)
    2) 셀프어텐션 - 입력된 단어사이의 연관성을 계산 (한단어에서 각 단어마다 연관성이 나오겠죠)
    +) 멀티헤드어텐션 - 어텐션 여러개 진행한다음 앙상블 처리하는것 (결정트리처럼)
    3) 그리고나서 순전파 진행

  • 디코더부분
    1) 포지셔닝 인코딩 - 출력값에 이용할 단어들도 연관성을 계산해야겠죠
    2) 마스크드 셀프어텐션 - 글적을때 한단어씩 적어나가야하니깐 뒤의 부분은 지워야죠 (답 베껴쓰면 무슨소용)
    3) 인코더,디코더 어텐션 - 인코더와 디코더사이의 관계를 고려
    (디코더 : 나 이 쿼리에 맞는 거 뽑고 싶어, 인코더 : 그래 여기 키,밸류에서 골라봐)

profile
For DE, DA / There is no royal road to learning

0개의 댓글