본문 바로가기
책&강의 학습/올인원 패키지 :딥러닝&인공지능

[패스트캠퍼스 수강 후기] 인공지능강의 100% 환급 챌린지 45회차 미션

by 소한보 2020. 8. 12.

Part4-52. 맥락을 파악하는 Attention 기법 - 01. (STEP 1) Attention 기법의 이해

Sequence-to-sequence model


번역문제를 학습하기 위해 널리 사용하고 있는 RNN구조
단어별로 나눠서 입력을 받고 마지막을 EOS로 받음
인코더가 완료가 되면 context를 전달
디코더는 SOS로 시작하고 EOS로 마무리할때까지 단어를 출력함

영어문장의 데이터화


What a beautiful place! -> what, a, beautiful, place
단어분리, 문장부호 제거 후 토큰화(숫자로 변환)진행
토크나이저는 데이터셋에 fitting하여 단어들을 숫자로 변환(원핫인코딩이라고도 볼수 있음)
원핫인코딩을 embedding한다는 것은
길이가 1만짜리 one-hot-encoding이 있다면, 길이가 4인 차원에 집어넣는 개념
이후 실수 연산을 하는데 이점이 있음

한글 문장의 데이터화

이것은 사과입니다. -> 이것, 은, 사과, 입니다
형태소분석이 들어가야함.

gradient vanishing in RNN

인코더단과 디코더단이 분리되어 있음.
멀리 떨어져 있다보면 기울기 소실이 발생할 수밖에 없음.

No more gradient vanishing


이전에는 context하나만 디코더가 받았으나, 인코더의 RNN의 히든레이어를 모아서 디코더에 입력에 넣어준다면
기울기 소실문제를 해결가능

Attention

디코더에서 어떤 인코더에 정보에 집중해야하는지 알 수 있다면, 모델의 성능을 높일 수 있을것이라는 발상

Part4-53. 맥락을 파악하는 Attention 기법 - 02. (STEP 1) Attention 신경망 - 1

Query, Key-Value

Query : 질의, 찾고자 하는 대상
key: 키, 데이터를 찾고자 할때 참조하는 값
value : 값, 저장되는 데이터
dictionary : key-value 형태로 연결되어진 집합

Querying

질의응답 매커니즘은
쿼리를 날리게되면 각 키값을 비교하게됨
키값이 동일한 값을 출력

Attention mechanism


쿼리를 날려 키와 키를 비교하고
유사도가 높은것과 낮은것을 나누게됨 유사도를 가지고 value들을 섞어서 aggregation해서 출력

Seq2seq key-value

대부분의 attention network에서는 key와 value를 같은 값으로 사용함
Seq2seq에서는 Encoder의 hidden layer들을 key와 value로 사용한다

Seq2seq Query

Seq2seq에서는 디코더의 히든레이어들을 쿼리로 사용
이전의 time-step의 히든레이어를 사용해서 쿼리로 사용

Seq2seq - Attention Mechanism


i번째에 디코더에 쿼리를 날려서
인코더에 있는 모든 time-step과 비교해서 어떤것과 가장 유사한지 유사도를 출력
유사도를 반영해서 섞어 attention value를 획득

Seq2seq - Application


RNN내 LSTM이 잇고 s1히든레이어가 출력으로 나오면
attation으로 얻은 a0를 concat하여 출력

현재 이해가 안되도 step2에서 수식보면서 이해하면될듯

딥러닝/인공지능 올인원 패키지 Online

댓글