📌 기존의 seq2seq의 문제점
seq2seq란 인코더 - 디코더 프레임워크로,
인코더는 입력으로 input data를 받아 context vector로 변환 및 출력해주는 역할을 수행하며
디코더는 반대로 context vector를 받아 output data를 출력해주는 역할을 함
[ 🚨 ]
이때, 우리는 정보를 압축하므로써 연산량을 최소화하기 위해
마지막 RNN셀에서만의 output인 context vector만을 반영
long-range dependency problem
앞쪽의 RNN 셀들의 반영이 힘듦 (정보의 손실 발생)
또한 이에 따라 인코더가 안좋은 요약을 할 수록 안좋은 성능을 보임
(특히나 문장 길이 자체가 길 때 발생)
“문장 내에서 토큰끼리 어느정도 대응되지 않을까?”
➡️ context vector 뿐만 아니라, 인코더/디코더 RNN 셀 사이의 관련성 정보(relative importance)도 참조하도록 해보자
📌 Attention 메커니즘의 핵심 아이디어
decoder에서 단어를 출력할 때 마다 입력 sequence의 토큰들을 한번씩 참고하자
예를 들어, 위 그림에서 ‘너’를 예측하기 위해 ‘i’, ‘love’, ‘you’를 한번씩 참고하며
연관성이 있는 단어가 있는지 집중(Attention)하고자 함
📌 Attention 메커니즘
[ Attention score ]
먼저, 인코더의 hidden state h1, h2, h3을 구해둠
디코더의 hidden state(st)와 encoder의 hidden state(h1~n)의 Attention score a를 구함
이때, 인코더의 RNN셀의 수만큼 score가 존재하게 됨
『
a가 크다는 것은 Dicoder의 hidden state와 Encoder의 hidden state와의 관계가 강함을 의미
』
[ Attention value ]
앞서 구한 Attention score들을 softmax 함수에 대입하여 Attention distribution을 만들어줌
각 score들의 중요도를 상대적으로 보기 쉽게 하기 위함 (확률화)
이후 인코더의 hidden states들을 위 값에 곱하여 합해주어 Attention value 행렬 생성
즉, 각 문맥(hidden states)의 중요도(Attention score)를 반영하여 최종 문맥 (Attention value) 계산
[concatenate]
마지막으로 디코더의 문맥을 추가하기 위해 디코더 hidden state를 Attention value 아래에 쌓아줌
추가적으로 성능 향상을 위해 tanh, softmax 활성 함수를 이용하여 학습을 시키면
우리가 원하는 최종 출력 y(해당 RNN셀의 output 단어)가 생성됨
📌 Attention 메커니즘의 이해
[텍스트 번역]
각 단어를 예측할 때 어떤 인코더의 hidden state에 집중(Attention)했는지 보여주는 사례
즉, 특정 인코더의 hidden state에 집중(Attention)할 수 있도록 하는 연산 과정을 추가했다고 보면 됨
이는 RNN 예측 결과를 설명할 수 있는(explainable) 부가적인 효과가 발생
[이미지 설명, 분류]
또한 CNN과 같은 컴퓨터 비전 문제에도 적용할 수 있는데,
Deep learning의 경우 성능은 좋지만 해석이 불가능한 모델이라는 것이 일반적이나
Attention 기법을 사용하여 어느정도 예측 근거를 가시화할 수 있다는 효과도 존재
➡️ 이미지를 문장으로 출력하거나 분류할 때, 어떤 픽셀을 집중(Attention)하였는지 가시화
'[AI] > 인공지능 이론 및 실습' 카테고리의 다른 글
[인공지능] Multi-head Attention이란? Multi-head Attention을 사용하는 이유 (0) | 2024.03.09 |
---|---|
[인공지능] Self Attention이란? Self Attention 핵심 아이디어 및 계산 과정 (0) | 2024.03.08 |
[인공지능] seq2seq이란? seq2seq 개요 및 상세 구조 (0) | 2024.03.05 |
[인공지능] BiLSTM이란? BiLSTM의 구조 (2) | 2024.03.05 |
[인공지능] LSTM이란? LSTM의 구조 및 작동 방식 (0) | 2024.03.04 |