AI
[AI] Week3 학습 정리
owls
2023. 3. 23. 17:59
728x90
RNN
RNN은 Short-Term dependency를 잘 잡지만, Long-Term dependency는 잘 못잡는다.
→해결하기 위해 LSTM 나옴
LSTM은 Gate 3개 사용
→ Parameter 많이 필요
→ Parameter 줄이기 위해 Gate하나 없앤 Gated Recurrent Unit 나옴
Attention
Attention이란?
Decoder에서 출력 단어를 예측하는 시점마다 Encoder에서의 전체 입력 문장을 다시 한 번 참고하는 것
Self-Attention이란?
단어 간의 관계성 연산 결과를 활용하여 연관성이 높은 단어끼리 연결해주기 위해 활용하는 것
Attention 과 Self-Attention 의 차이
Attention과 Transformer의 Self-Attention는 비슷하지만 차이가 있습니다.
Attention | Self-Attention | |
Q, K, V 생성 | Q는 Decoder Cell에서 도출되고, K와 V는 Encoder Cell에서 도출됨 | Q, K, V 모두 동일한 vector(Embedding vector)에서 도출됨 |
Time Step | Time Step활용 O | Time Step 활용 X |
데이터 보존 (Long-term Dependency) |
X Hidden Layer 연산 결과(Hidden State Vector)를 다음 Model에 적용시키는 방식으로 이전 정보를 전달 -> 시간이 지남에 따라 어쩔 수 없이 초기 해석 정보가 지워지게 됨, Hidden Layer에 정보가 쌓이다 보면 초기 정보가 사라지는 현상 |
O Encoder는 모든 단어에 대해, Decorder는 직전 예측 단어에 대해 Q(hidden vector)를 구하여 해당 값을 활용. 이전 해석 정보에 대한 Hidden State Vector를 보존하여 Self-Attention 연산→ 각 단어에 대한 온전한 연산이 수행하게 되어 초기 정보가 반영될 수 있다. |
self-attention 연산 과정 정리
1. Input 단어들을 활용하여 Embdding Vector 도출
2. Embedding Vector를 활용하여 Queries, Keys, Values Vector를 생성
Embedding Vector 1개당 (Q, K, V) 쌍 1개씩 도출됨
3. Q, K, V를 활용하여 점수 계산
특정 단어의 Query Vector를 활용하여 모든 단어의 Key Vector와 내적을 통해 Score를 구함
Score : 해당 단어에 대한 Encode를 수행할 때, 다른 단어들에 얼마나 집중해야 할지를 결정해줌
4. Score를 d_k로 나눠줌 ( score / sqrt(d_k) )
5. 나눠준 모든 값을 softmax함수에 통과시킴 ( exp )
6. softmax * value vector
7. sum
<2023-03-23 개인적인 회고>
마스터 클래스를 듣고 느낌점:
"데이터 엔지니어링이 지금의 차별화다.
수학 수식 및 논문을 읽는 것도 중요하지만 대용량의 파이프라인을 구축하고 처리하는 것을 할 줄 아는 것이 중요하다."
라고 하셨습니다. ㅜㅜ 슬픈 내용도 있었지만 방향성을 잡아주신것 같아 좋은 시간이었습니다.
728x90