Loading...
2022. 5. 5. 19:03

transformer에 사용된 residual connection과 layer normalization

1. residual connection self attention 구조하에 당시 좋은 성능 향상 기법인 residual add connection, layer normalization을 채택했다. input $X_{t}$의 encoding 결과로 $h_{t}$라는 hidden vector를 얻고 싶은데 multi head attention이 학습하는 결과는$h_{t}-X_{t}$라고 하는 것이며 이 결과에 input $X_{t}$를 그대로 더하여 $h_{t}$라는 목표하는 hidden vector를 얻는다. input의 (1,4)의 multi head attention 결과로 얻은 (2,3)에 단순히 더하여 (3,7)이라는 벡터를 얻는 과정이 residual connection이다. 입력 input과 ..

2022. 5. 5. 01:29

object detection을 위한 R-CNN과 Fast R-CNN의 원리

1. R-CNN motivation 2012 AlexNet이 image classification에서 큰 성공을 거두면서 이것을 바로 object detection에 응용해보았다 AlexNet처럼 object detection의 전통적인 방법에 비해 압도적인 성능차이를 보이면서 혜성같이 등장 2. R-CNN 구조 먼저 주어진 이미지에서 selective search법으로 물체 후보 bounding box인 region proposal을 2000개 정도 구함 각 region proposal을 모두 잘라 patch로 만든다. pre-train한 CNN에 region proposal patch를 넣는다 CNN의 마지막 단은 fully connected layer인 SVM classifier를 붙여서 CNN을 ..

2022. 5. 3. 19:15

object detection이란 무엇인가?

1. motivation semantic segmentation에서는 서로 다른 물체더라도 같은 class로 구분하는 한계가 있었다 최근에는 이런 서로 다른 물체도 구분하는 instance segmentation, panoptic segmentation 등이 등장했다 어떻게 가능할까? 서로 다른 물체를 구분하기 위해 필요한 기술이 object detection이라는 object를 탐지하는 기술이다 단순한 semantic segmentation보다 더욱 구체적으로 이미지를 인식하게 도와준다. 2. object detection이란? classification과 bounding box를 동시에 추정하는 문제 구체적으로 이미지 내 특정 object를 bounding box로 위치를 특정하고 해당 박스내 물체의..

2022. 5. 3. 18:55

transformer의 메모리 사용량 알아보기

1. layer의 계산적인 측면 self attention의 layer의 계산적인 측면에서 본다면 input sequence의 길이가 n이고 hidden vector의 차원이 d일때 Q는 n*d차원이고 $K^{T}$ 는 d*n차원이므로 $O(n^{2}d)$ RNN은 d차원의 $h_{t-1}$이 $h_{t}$로 변환되기위해서는 $W_{hh}$라는 d*d행렬을 곱하여 계산되는데 input sequence의 길이 n에 대하여 $O(nd^{2})$ input sequence의 길이 n과 hidden vector의 차원 d는 의미적으로 큰 차이가 있는데 hidden vector의 차원은 hyperparameter로 선택할수있는 값이다. 그러나 input sequence는 선택할수 없는 값으로 데이터의 길이에 따라..

2022. 5. 2. 21:15

fully convolutional network와 비슷했던 hypercolumn

FCN은 end-to-end구조로 학습이 가능하며 GPU 병렬처리도 가능하여 빠른 학습이 가능 end-to-end로 학습한다는 것은 model이 해당 task에 대해 분할하는 것이 아니라 한번에 학습한다는 것으로 성능도 보통 올라감 심지어 fully convolutional network는 low level, high level을 모두 고려하여 더욱 정교하게 (경계선도 잘 구별할정도로) semantic segmentation을 수행함 비슷한 시기에 semantic segmentation용으로 hypercolumn이라는 구조가 등장했다 저자가 같은 학교 다니면서 1*1 fully convolutional layer도 설명했고 layer를 융합하는 것도 설명했고 아무튼 비슷하다는 점에서 약간 뭐 그런게 있는..

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, ..