목록Attention (3)
NeuroWhAI의 잡블로그
드디어! 성공했습니다! 와! PPAP!! 간단하게 입력 문장을 문자 단위로 나누고 그걸 그대로 출력하는게 정답인 데이터 세트를 사용했고 학습을 시킨 후 어텐션 매트릭스(Attention Matrix)를 출력해서 제대로 학습이 되었는지 검증을 했습니다. 짠! 성공한게 틀림없다구요! (아마도요...) X축이 입력 문장, Y축이 출력 문장입니다. 만들면서 가장 힘들었던 건 텐서를 생각대로 다루는 것과 어텐션 스코어 계산이었습니다. 텐서를 막 늘리고 돌리고 연산하는데 차원을 잘 맞춰야 하면서도 무작정 차원만 맞추면 연산이 올바르지 않게 되어버렸어서 힘들었습니다. 가장 멍청했던 실수는 텐서의 축을 치환하는데 Permute대신 Reshape을 썼던 것입니다. 이러면 차원은 맞춰지지만 요소들이 이상하게 배치되죠.....
Attention 매커니즘을 검색하다가 좋은 코드를 발견해서 공부하면서 좀 다듬었습니다. 링크 : https://github.com/philipperemy/keras-attention-mechanism 학습 데이터는 랜덤한 쓰레기 값이 들어있는 입력 데이터에서 8번째(인덱스 7) 값만 출력(목표) 데이터와 관련이 있는데 이걸 모델이 잘 알아차렸는지 보는 예제입니다. 코드: 12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667686970import numpy as npfrom keras import backend as Kfrom kera..
비교적 최신(?) 개념이라 자료가 별로 없어서 공부하기 너무 힘드네요. 특히 저같은 수알못은... https://machinelearningmastery.com/how-does-attention-work-in-encoder-decoder-recurrent-neural-networks 그나마 위 글에서 약간의 슈도코드를 써줘서 그나마 흐름은 그릴 수 있었습니다. 아래 사진은 제가 흐름을 보고자 코드를 그림으로 옮긴건데 마우스로 그린지라 개판이니 양해 부탁드립니다 ㅋㅋ.. 나중에 확실히 이해하면 직접 코드도 짜보고 정리해서 올리겠습니다.