RGB pixel의 평균 값을 구해 각각의 pixel에서 빼주는 normalization이 유일한 전처리 과정이라고 한다.
convolutional filter(recptive field)는 상하좌우, 가운데를 파악할 수 있는 가장 작은 단위인 3x3를 사용한다.
stride는 1을 적용하였고, convolution 연산 전, 후의 input, output의 map 크기를 같게하는 padding을 추가하였다. (ex. filter가 3x3일경우 padding=1)
pooling 연산은 convolution 연산 후에 max-pooling에 의해 수행되며, 2x2 window, stride=2를 따른다.
conv. layers 후에 FC layer를 사용하여 classification을 진행한다.
모든 활성화함수는 ReLU를 사용하였다.
AlexNet에서 등장하였던 Local Response Normalisation(LRN)은 성능향상에 도움이 안되었다.
conv.layer의 channel(width)는 max-pooling 연산 후에 2배로 증가하였으며 64로 시작하여 최대 512까지 증가한다.
매우 깊은 depth의 network에도 불구하고, VGG의 가중치의 수는 큰 conv를 가진 얕은 모델에 비해 많이 크지 않았다. (표의 AlexNet(A)와 비교했을때 큰 차이를 보이지 않는다.)
depth 16인 모델에서 3x3대신 1x1의 filter을 사용하여 reception field에는 영향을 주지않는 모델을 설계하였었지만 모두 3x3 filter를 사용하는 모델보다는 성능이 하락하였다고 한다.
2층의 3x3 conv.layer는 하나의 5x5 receptive field와 같은 효과를 갖고, 3층의 3x3 conv.layer는 7x7 receptive field와 같은 효과를 갖는다고한다.
--> 즉, 3층의 3x3 conv.layers와 1층의 7x7 conv.layer가 보는 맵의 영역이 같다는 뜻이 된다.
한 층 대신 여러 층을 겹쳐 사용함으로써 더 많은 비선형적인 특성을 뽑아 낼 수 있다.
더 적은 파라미터를 사용한다.
--> 3x3 filter에서는 (3 layer) x (3x3xCxC)(=27C^2) 의 파라미터를 사용하고, 7x7 filter에서는 (1 layer) x (7x7xCxC)(=49C^2)의 파라미터를 사용한다.
S: train image size
Q: test image size
fixed S일 때, Q=S를 사용하였고, unfixed(jittered) S일 때는 Q = S의 중앙값을 사용하였다.
LRN을 사용한 모델(A-LRN)이 기존 A모델에 비해 성능이 하락한 것을 확인할 수 있다.
1x1 conv.layer를 사용한 모델(C)이 사용하지 않은 모델(D)보다 낮은 성능인 것을 확인할 수 있다.
S가 unfixed(jittered)된 모델이 성능이 가장 좋았다