원래 attention은 NLP 분야에서 먼저 사용되었지만, 요즘은 다양한 영역에 접목시켜 사용한다고 한다.
목차
1. 기본적인 Neural Network
2. Convolutional Neural Network
3. Attention
3.1. 등장 배경
3.2. Attention
3.3. Self-Attention
4. 끝으로
1. 기본적인 Neural Network
Fully Connected neural Network에서 전체 input에 대해 input값 마다 weight를 적용시켜 feature를 추출하는 방식
2. Convolutional Neural Network
FCN과 다르게 2차원(rgb channel이 있는 경우라면 3차원) input에 대해 filter를 이용하여 인접 픽셀에만 weight를 적용시켜 feature를 추출하는 방식으로, 데이터의 위치에 따른 weight을 학습
3. Attention
3.1. 등장 배경
- CNN의 단점인 long range dependency를 못살리는 점을 극복하기 위함
- 주변 pixel과의 relation을 반영한 것이 CNN이지만, kernel의 크기에 한정되어 보기 때문
3.2. Visual Attention
- 인간의 시각적 집중(visual attention) 현상을 구현한 것
- 입력값을 반영하여 어떤 부분에 집중해야 하는지를 나타냄
- weight와 attention 모두 해당 값을 얼마나 가중시킬 것인가를 나타내지만, attention은 전체 또는 특정 영역의 입력 값 중 어느 부분에 집중해야 하는지를 나타내는 것이 다름
- 즉, 특정 object를 인식하여 그 object가 있는 영역을 집중하겠다는 것
- 모든 input을 동일한 비율로 참고하는 것이 아닌, 연관이 있는 부분을 좀 더 집중해서 보게 하는 것
3.3. Self-Attention
- 스스로 attention을 계산하는 것으로, feature의 현재 상태를 모를 때 input들의 관계를 점수화하여 weight을 구함
- 이미지에서 각 pixel 간의 관계를 matrix로 만들어 정의한 후, 이를 softmax를 통과하여 weight를 구함
- Query pixel과 Key pixel들간의 dot-product와 softmax를 통해 유사도 matrix를 생성하고, 이를 value pixel들과 내적하여 output을 계산함으로써 해당 pixel과 주변 pixel들 간의 relational information을 학습하는 것
- 즉, 스스로 중요하다고 생각하는 부분을 찾아내어 학습하는 것
4. 끝으로
기존에 attention 및 transformer에 대한 지식이 없는 상태에서 해당 개념을 접하여 많이 와닿지 않는 느낌이다. NLP쪽의 attention, transformer에 대해 공부를 한 뒤, 더욱 자세한 내용 정리의 필요성을 느낀다.
참고 링크
https://ys-cs17.tistory.com/46
https://aistudy9314.tistory.com/63
https://aistudy9314.tistory.com/68
https://nuguziii.github.io/survey/S-003
https://medium.com/platfarm/어텐션-메커니즘과-transfomer-self-attention-842498fd3225
https://hoya012.github.io/blog/Vision-Transformer-1
https://hongl.tistory.com/234
https://blog.promedius.ai/transformer
https://john-baptist.tistory.com/25?category=1006944
https://lsjsj92.tistory.com/453