나의 논문을 이해하고 정리하는 기준은 아래와 같다.
'' 핵심은 deep convolutional neural network 모델을 사용하여 이미지 분류에서 뛰어난 성과를 얻었다는 것이다.''

Figure 2에 모델을 요약한 그림이다. 전체 구성을 Figure2에서 보이는데로 적어보면, Input_layer →
CNN1 → Max pooling → CNN2 → Max pooling → CNN3 → CNN4 → CNN5 → Max pooling → Dense1 → Dense2 → Dense3 이다. Figure 2에서는 이 정도를 볼 수 있고, 다른 부분을 읽으면서 더 자세히 모델을 파악해보자.
3.1에는 모델에 ReLU를 사용했다는 것이다. 아래 Figure 1에서 볼 수 있듯이 학습이 6배나 빠르다는 것을 볼 수 있다. ReLU는 4개의 CNN에 사용되었다.

논문에서는 평가 데이터로 최적화한 변수는 k = 2, n = 5, α = 10−4, and β = 0.75 이고, ReLU 다음에 온다.
non-overlapping인 (2x2)-pooling, stride = 2일 때와 비교할 때 (3 x 3) pooling, stride = 2 일 때 the top-1 and top-5 error rates by 0.4% and 0.3%이 감소하였다.
앞 서 Figure 2에서 요약한, 5-convolutional와 3개 fullyconnected로 구성되어 있고 마지막 last fully-connected layer는 a 1000-way softmax가 있다. Response-normalization layers는 the first and second convolutional layers에 온다.
Max-pooling layers는 response-normalization layers와 5번째 convolutional layer에 온다. The ReLU는 모든 convolutional 바로 다음과 fully-connected layer에 온다.
(layers을 총리하면서 주의할점은 논문에서는 2 GPU 분산을 사용해서 총 kernels 수의 0.5배로 서술하였다. 그런데 자세히 보면 서술 오류로 총 kernels을 서술하기도 하였다.)
이제 모델을 코드로 구현해보자.
모델 코드
이 chapter는 Overfitting을 줄이기 위한 기법을 소개했다.
모델이 60 million parameters을 가지고 있는데 1000 classes of ILSVRC는 학습시키기에 충분하지 않은 데이터를 가지고 있다. 그래서 overfitting을 고려해야하는데 아래는 overfitting을 줄이는 두 가지의 방법을 서술하였다.
1) 256 x 256 images로 부터 random 224 x 224 patches을 추출(그리고 horizontal reflections을 한다.)한 것으로 학습시킨다. (Figure2에서 224x224x3인 이유.)
2) 학습 데이터의 RGB 채널의 intensities을 대체한다. (PCA을 수행) : top-1 error rate by over 1%의 효과.
첫 번째와 두 번째 fully-connected layers에 사용.
stochastic gradient descent (momentum of 0.9, and
weight decay of 0.0005)로 batch size를 128로 하여 진행하였다.
각 layer의 가중치 초기화는 a zero-mean Gaussian distribution with standard deviation 0.01로 하였다.
편향(biases)의 초기화는 the second, fourth, and fifth convolutional layers, as well as in the fully-connected hidden layers, with the constant 1이다.
We initialized the neuron
biases in the remaining layers with the constant 0.
The heuristic which we followed was to divide the learning rate by 10 when the validation error
rate stopped improving with the current learning rate.
The learning rate was initialized at 0.01 and reduced three times prior to termination.
We trained the network for roughly 90 cycles through the
training set of 1.2 million images, which took five to six days on two NVIDIA GTX 580 3GB GPUs.

