Loading...
2022. 5. 2. 21:02

multi-head attentiond 개념 알아보고 간단하게 구현해보기

지금까지 이야기한 것은 word embedding vector들의 self attention을 단 1번만 수행했다는 점인데 이것을 확장하여 여러번 수행하고 싶다는 것이다. 왜 여러번 수행해야할까? 단 1번의 self attention은 1가지 측면에서만 word들의 attention 측면을 고려하지만 필요에따라 attention 측면을 여러 방면에서 수행할 필요가 있다. 특히 매우 긴 문장의 경우 ‘I went to the school. I studied hard. I came back home. I took the rest.’를 생각해보자. 이 문장을 해석하기 위해 단어 I에 대해서 고려해야할 대상은 went, studied, came, took 등 동사 측면도 있지만 그것의 대상이되는 school, ..

2022. 5. 1. 21:35

scaled dot product attention

우리는 $softmax(QK^{T})V$로 attention을 구했지만 논문에서는 scaled dot product attention을 제안했다. key,query matrix의 차원 $d_{k}$의 제곱근으로 $QK^{T}$를 나눠줬다. 왜 그랬는지 생각해보자. query와 key의 내적은 언제나 하나의 scalar지만 query,key의 차원 $d_{k}$가 충분히 크다면 내적이 당연히 커진다는 점에 주목했다. 그러면 softmax function이 gradient를 극도로 낮게 만드는 영역이 존재한다는 것이다. We suspect that for large values of $d_{k}$, the dot products grow large in magnitude, pushing the softmax..

2022. 4. 28. 21:36

Fully convolutional layer에서 사용하는 layer fusion의 원리

1. motivation 사실 아무리 upsampling을 적용해서 크기를 키웠다고 잃어버린 정보를 되살리는 것은 쉬운 일은 아니다 convolution의 각 layer의 의미를 살펴본다면 하위 layer에서는 feature map 크기가 커지지만 상대적으로 receptive field가 작고 작은 차이에도 민감하게 반응함 상위 layer로 갈수록 feature map 크기가 감소하지만 receptive field가 커져서 전체적이고 pixel이 가지는 의미론적인 정보를 파악함 낮은 layer에서는 작은 영역을 보면서 상위 layer에서는 넓게 바라본다(receptive field를 그린건가?) 그런데 semantic segmentation에서는 무엇이 필요한가? 둘 다 필요하다 이미지의 전체적인 면을 ..

2022. 4. 28. 21:28

예시와 그림으로 이해하는 self attention의 원리

1. 예시로 알아보는 self attention hidden state vector를 만들고자 하는 x1의 query를 q1으로 생성 1에서 x1의 query q1와 x1,x2,x3의 key k1,k2,k3 각각의 내적으로 score를 계산 (3.8,-0.2,5,9) softmax를 취하여 어느 벡터에 집중할지 가중치를 계산 (0.2,0.1,0.7) 가중치인 score와 x1,x2,x3의 value v1,v2,v3의 weighted sum을 구한다. 즉 x1의 hidden vector h1=0.2v1+0.1v2+0.7v3으로 구해진다. 이러면 이제 x1,x2,x3를 학습이 가능한 weight matrix인 $W^{Q}, W^{K}, W^{V}$로 변환하여 얻은 query,key,value를 이용하였는데 ..

2022. 4. 27. 22:24

NLP의 역사를 바꾼 self-attention의 기본 원리

1. self-attention transformer에 도입한 attention의 원리는 seq2seq의 attention과 비슷하지만 조금 다르다. self-attention이라고 이름이 붙여졌는데 transformer encoder의 기본 구조는 input sequence x1,x2,x3가 self attention을 지나 바로 encoding되어 h1,h2,h3의 hidden vector가 된다. 2. seq2seq의 encoder 이전 sequence의 압축정보를 전달받아 다음 sequence로 넘겨가며 전달하며 encoder의 hidden vector를 생성했다. decoder에서 마지막 encoder의 hidden vector랑 첫번째 decoding input을 입력받아 생성한 decoder..

2022. 4. 26. 02:21

fully convolutional network에서 Upsampling이란 무엇인가 + interpolation 기본

1. motivation fully connected layer를 1*1 convolution layer로 대체하여 여러번 쌓으면 필연적으로 input size가 줄어들면서 정보들이 압축된다 단 1pixel의 classification의 결론을 내리기 위해 더욱 넓은 영역을 참조할 수 있다(receptive field가 크다)는 좋은 점은 있다. receptive field는 커지지만 output이 너무 작아진다 그래서 이 너무 작아진 output을 크게 만들기 위해 upsampling 기법을 사용한다 그런데 여기서 의문을 가질 수 있는 것은 그러면 중간에 stride나 pooling등을 제거하거나 convolutional layer 등을 일부 제거하면 조금 더 고해상도 output을 얻겠지만 recep..