1.2. 딥러닝 ¶
- 딥러닝이라 하면 일반적으로 알고리즘으로 풀 수 없는 문제들을 딥러닝으로 많이 해결함.
- 처음 도입되는건 함수를 근사하는 목적으로 만들어 졌음.
- 예를 들어 컴퓨터는 고양이를 숫자로 보고 고양이라고 판단하는 과정을 학습하는데, 기계 번역 쪽에서도 사람의 말을 어떻게 번역할 것인가에 대한 내용이다.
- 통계 기반의 알고리즘이 있었는데, 이에 딥러닝이 사용도기 시작하였다.
1.3. dnn ¶
- dnn = deep neural network
- 이걸 어떻게 번역에 사용할 것인가에 대한 연구가 진행되어오고 있음.
- 단어들의 순서 정보가 들어가는게 필요해서 rnn을 만들게 되었음.
1.4. rnn ¶
- 순차적으로 받아들일 수 있는 모델을 rnn이라고 부름.
- 번역도 정보가 순차적으로 들어와서 진행될 것임.
- rnn으로 무엇을 할 수 있는가?
- 사진설명 붙이기 - one to many
- 감성분석 - many to one
- 번역 - many to many
- 사진설명 붙이기 - one to many
1.5. 번역 ¶
- 번역은 seq2seq가 유명함
- 시퀸스 데이터가 없다? => 사진을 볼 때는 사진 딱 하나만 들어와서 순차적이지 않음.
- 그러나 DNN은 순차적인 정보에 어울리지 않음
1.6. LSTM ¶
- rnn의 일종
- rnn 2개가 합쳐져 있는 모델이 있음.
- i am a student 같은 문장이 들어온다고 할 때, 이를 사람이 보는 정보인 "특징 vector"로 분류하게 됨.
- 이렇게 분류된 걸 context, 문맥이라고 부르고 context를 decoder에 넣어서 출력을 하는 방식이다.
1.6.2. Problem 2 ¶
- 순차적으로 정보를 처리하는데, long term dependecy 문제가 있다.
- 시간이 늘어날 수록 원래 있던 정보에 새로운 정보가 희석되면서 정보가 왜곡될 수 있다.
1.7. summary ¶
- Mnt에서는 seq2seq를 많이 썼음
- dnn 성능이 너무 안좋아서
- dnn 성능이 너무 안좋아서
- 기존 seq2swq는 인코더에서 입력이 context vector로 압축되고, 디코더가 이를 출력을 만드는 방식으로 작동한다.
- 아직 2개의 문제가 남아있다.
- long term dependecy
- compress all the necessary information into a fixed-length vector
- long term dependecy
- 병렬 처리도 어렵다(순차적으로 해야하기 때문)
- 따라서 seq2seq는 입력 문장의 길이가 길어질수록 성능이 떨어진다.
1.8. Attention ¶
- 여기서 attention 메커니즘이 등장한다.
- 디코더로 넘어가는건 똑같으나, context vector가 없다.
- 인코더에서 hidden state가 있는데 이를 모두 저장하고 현재 디코더에서 현재 상태를 같이 넣어서 sofrmax에 넣게 된다.
- 그래서 어느 단어들이 연관성이 높은지 찾게되고 이를 통해 더 정확한 뜻을 찾을 수 있게 된다.
1.9. 문제점 ¶
- attention도 rnn에서 벗어나지 못하는 문제점이 있다.
- rnn을 빼버리면 되지 않을까? 하는 아이디어 제시
- transfomer가 등장하게 된다.
- transfomer가 등장하게 된다.
- sota = state of the art(기술), sota라는 대회(?)가 있는데 여기에 transfomer가 상위권 대다수를 먹게 됨
1.10. Transformer? ¶
- seq2seq는 rnn + attention
- seq2seq는 rnn 기반이기 때문에 병렬처리가 어렵다 -> rnn을 빼자는 아이디어 제시
- transformer는 rnn 없이 attention만을 사용함
1.11. attention is all you need ¶
- 라는 제목의 논문이 2017년에 나옴
- seq2seq는 input sequence와의 attention score를 구하기 위해 input length 만큼의 시간이 필요했음
- transformer는 self-attention을 사용해 시간복잡도를 O(1)로 줄여 긴 문장도 해결할 수 있게 되었음
- rnn을 안쓰면 데이터 순서 정보가 사라지지 않은가?
- posirional encoding을 사용해서 데이터에 시간 정보를 추가할 수 있음
- posirional encoding을 사용해서 데이터에 시간 정보를 추가할 수 있음
- inference 할 때는?
- 그리디 서치, 빔 서치를 하면 됨
- 그리디 서치, 빔 서치를 하면 됨
- transformer가 2017년에 나왔을 때 큰 파장을 일으켰음.
- X-former는 바닐라 transformer를 발전시킨 것