출처 : https://medium.com/@nikasa1889/the-modern-history-of-object-recognition-infographic-aea18517c318
Important CNN Concepts
Feature (pattern, activation of a neuron, feature detector)
- 입력 영역에서 특정 패턴이 보여질 때 활성화되는 히든 뉴런
- 뉴런이 감지하는 패턴의 시각화 조건
(1) 뉴런의 활성을 최대화 하기 위해 입력 영역을 optimizing
(2) 입력 픽셀들에서 뉴런 활성의 기울기 or 유도된 기울기를 시각화 (?)
(3) 뉴런을 가장 잘 활성화 시키는 학습 데이터셋의 이미지 영역 세트의 시각화
Receptive Filed (input region of a feature)
- 어떤 출력 레이어의 뉴런 하나에 영향을 미치는 입력 뉴런들의 공간 크기
- 필터의 크기와 같다.
- feature의 활성에 영향을 주는 입력 이미지의 영역
- 더 높은 계층의 layer의 feature는 더 큰 receptive field를 갖고, 이것은 더 복잡하고/추상적인 패턴을 추출하는 방법을 학습할 수 있게 해준다.
- ConvNet 구조는 layer마다 receptive field를 어떻게 적용할지 결정한다.
Feature Map (a channel of a hidden layer)
- sliding window fashion 방식으로 입력 맵의 서로 다른 위치에 감은 feature detector를 적용 함으로써 만들어진 피쳐들의 세트(묶음)
- 동일한 feature map의 feature들은 같은 receptive size를 가지고, 같은 패턴을 각각 다른 위치에서 찾는다.
- 위 내용들은 ConvNet의 공간 불변 속성을 생성한다.
Feature Volume (a hidden layer in a ConvNet)
- Feature Map의 세트
-> 각 feature map은 입력 map의 고정된 위치 세트에서 특정 feature를 찾는다.
- 모든 feature들은 같은 receptive field size를 갖는다.
Fully Connected layer as Feature Volume
- k개의 히든 노드를 가진 Fully connected layer는 1x1xk feature volume으로 볼 수 있다.
- 이 feature volume은 각 feature map에서 하나의 feature를 가져오고,
feature volume의 receptive field는 전체 영역을 덮는다.
- fc layer의 가중치 매트릭스 W는 CNN kernel로 대체될 수 있다.
- 커널 wxhxk를 CNN feature volume wxhxd와 결합하면 1x1xk feature volume이 생성된다.
- fully connected layer를 convolution layer로 바꾸면 ConvNet에 임의의 크기의 이미지를 적용할 수 있다.
Transposed Convolution (fractional strided convolution, deconvolution, upsampling)
- convolution 연산의 기울기를 back-propagates하는 연산이다.
> 다른말로, 이것은 convolution layer의 역방향 통과이다.
- Transposed Convolution은 입력 feature들 사이에 0을 삽입한 정규 convolution으로 대체될 수 있다.
- filter size = k, stride = s, zero padding = p의 convolution은
filter size k' = k, stride s' = 1, zero padding p' = k - p - 1 그리고 각 입력 유닛 사이에 s-1개의 0이 삽입되어있는 transposed convolution을 가진다.
+구글링
1. deconvolution
2. 입력 데이터의 차원을 확장 시켜주는 역할
3. 각각의 픽셀 주위에 zero-padding을 추가
> padding된 결과에 convolution 연산
4. 일반 cnn의 최종 결과물을 다시 반대로 되돌려 input과 같은 사이즈로 만들때 사용
주로, semantic / segmantation에서 사용
- 왼쪽 그림에서, 빨간색 입력 유닛은 출력의 왼쪽 상단 4개 유닛에 기여한다. (4색 사각형을 통해서)
오른쪽 그림에서, 기울기 back-propagation이 transposed convolution으로 대체될 수 있음을 보여준다.