리뷰할 논문은 ImageNet Classification with Deep Convolutional Neural Networks (papers.nips.cc/paper/2012/file/c399862d3b9d6b76c8436e924a68c45b-Paper.pdf) 입니다.
공부를 위하여 작성한 리뷰인 만큼, 틀린 부분이 있을 수 있다는 점을 감안하고 읽어주시길 바랍니다.
1. Introduction
Datasets of labeled images는 비교적 작은 사이즈로 구성되어 있다. 하지만, objects in realistic settings은 variability를 상당수 가지고 있기 때문에, large training sets들을 활용하여 학습을 해야 한다.
수백만개의 이미지로부터 수천개의 사물에 대해 학습하기 위해서, 우리는 learning capacity가 큰 model을 구축해야 한다.
해당 논문의 final network는 5개의 convolutional layers와 3개의 fully-connected layers를 가지고 있고, convolutional layer를 제거하게 된다면, 성능 저하가 발생하게 된다.
2. Dataset
ImageNet - A dataset of over 15 million labeled high-resolution images of 22,000 categories.
해당 논문은 test set label이 유일하게 존재하는 ILSVRC-2010 버젼을 통하여 대부분의 실험을 진행했고, ILSVRC-2012의 버젼 또한 사용하였다.
ImageNet은 variable-resoultion (해상도가 가변적인) images로 구성이 되어있지만, 시스템은 일정한 입력 dimensionality를 필요로 하기 때문에 image들을 256 X 256으로 down-sampling하여 사용했다.
3. The Architecture
논문의 network는 8 learning layers, 즉, 5개의 convolutional layers와 3개의 fully-connected layers로 구성되어있다.
아래에 논문의 network에 사용된 특이한 특징을 정리해보았다.
3.1 ReLU Nonlinearity
보통 모델링을 할 때 사용하는 f(x)는 f(x) = tanh(x) 와 f(x) = (1+e^-x)^-1이 있다. 하지만, Deep CNN을 ReLU를 사용하여 training을 한다면, tanh units을 사용하는 것보다 몇 배는 빠르게 작동할 수 있다.
위의 사진을 참조하면, ReLU (굵은 선) 는 25% training error rate를 tanh neurons (점선)보다 6배 빠르게 도달하는 것을 확인할 수 있다.
빠른 학습은 large datasets에 training이 된 large models performance에 지대한 영향을 미친다.
3.2 Training on Multiple GPUs
120만 개의 training examples은 하나의 GPU에 fit하기 어렵기 때문에, 두 개의 GPU에 net을 분산시켜야 한다.
이 논문에서는 각각의 GPU에 half of the kernels를 배치하고, GPU가 특정 layer에서만 communicate가 되도록 하는 parallelization scheme을 사용한다.
Two-GPU net이 one-GPU net보다 training하는데 시간이 적게 걸린다.
3.3 Local Response Normalization
해당 논문에서 사용한 Response Normalization 알고리즘은 다음과 같다.
여기에서 n은 adjacent kernel maps at the same spatial position을 지칭하고, N은 total number of kernels in the layer를 의미한다.
k, n, 알파, 베타는 validation set을 사용할 때 결정되는 hyper parameter들이다.
해당 논문에서 사용한 scheme은 mean activity를 subtract하지 않기 때문에 brightness normalization이라고 부른다고 언급하였다.
Response normalization은 top-1와 top-5 error rates들을 각각 1.4%, 1.2% 줄인다.
또한, normalization이 없을 때, 13%의 test error rate이 발생하였지만, normalization이 있을 때, 11%의 test error rate이 발생한 것으로 CIFAR-10 dataset에서 scheme을 사용할 때의 효과를 확인하였다.
3.4 Overlapping Pooling
Pooling Layer는 grid of pooling units가 s 간격으로 떨어져 있으며, z X z 사이즈의 neighborhood가 pooling unit center에 위치하고 있는 것으로 생각될 수 있다. 만약 s = z로 설정하면, neighboring groups of neuron은 overlap이 되지 않고, 이것이 전통적인 local pooling 방법이다.
하지만, s < z로 설정하게 된다면, Overlapping Pooling이 발생하게 되는데, 해당 논문은 s = 2, z = 3을 사용하여 Overlapping Pooling이 발생하도록 scheme을 설계하였다. 이렇게 한다면, non-overlapping scheme에서보다 top-1과 top-5 error rate가 각각 0.2%와 0.3% 감소된다.
또한, Overlapping Pooling이 있는 모델들을 overfit하기 다소 어렵다는 사실이 관측된다고 언급하였다.
3.5 Overall Architecture
앞서 언급한 것과 같이, net는 총 8 learning layers, 5개의 convolutional layers와 3개의 fully-connected layers로 구성되어있다. 여기에서 가장 마지막 fully-connected layer의 output은 1000-way softmax 로 입력이 되고, 1000개의 class labels에 대한 분포를 생성한다.
두번째, 네번째, 다섯번째 convolutional layers의 kernel들은 같은 GPU에 있고, previous layer에 있는 kernel maps와만 연결이 된다.
ReLU non-linearity는 모든 convolutional과 fully-connected layer의 output에 적용되어 있다.
4. Reducing Overfitting
Overfitting을 줄이기 위한 두가지 방법이 있는데, 첫번째는 data augmentation이고, 두번째는 dropout이다.
4.1 Data Augmentation
두 가지의 다른 Data Augmentation 방식을 사용하는데, 둘 다 transformed images가 original images에서부터 작은 computation으로 생성이 될 수 있도록 한다. 정리하자면, data augmentation 방식들은 computationally free하다는 특징을 가지고 있다.
첫번째 data augmentation 방식은 image translations와 horizontal reflections을 생성하는 것으로 구성된다. 이는 무작위한 224 X 224 patches를 256 X 256 image에서 추출하고, 추출된 patches를 기반으로 network를 training시키는 것으로 할 수 있다. 실행할 때 network는 5개의 224 X 224 patches와 해당 patches의 horizontal reflections를 추출하고, network softmax layer가 만든 예측의 평균을 계산하면서 예측을 한다.
두번째 data augmentation 방식은 training images의 RGB 채널 intensity를 변경시키는 것으로 구성된다.
각각의 RGB image pixel인
에 다음의 값을 더해야 한다.
이 scheme은 object identity가 intensity의 change와 illumination의 color에도 불변하다는 natural image들의 중요한 속성을 대략적으로 보여준다.
4.2 Dropout
Training을 할 때 two factor만을 소요하는 굉장히 효율적인 model combination version이 있는데, 이것이 dropout이다.
Input이 제시될 때마다, neural network는 weight를 공유한 제각기 다른 architecture를 sampling한다. 이 technique는 복잡한 neuron co-adaptation을 감소시킨다.
처음 두 개의 fully-connected layers에서 dropout를 사용한다. Dropout을 사용하지 않는다면, network는 substantial overfitting이 발생한다.
5. Details of Learning
해당 논문은 model들을 batch size가 128 examples이고, momentum이 0.9이고, weight decay가 0.0005인 stochastic gradient descent를 이용하여 train을 진행하였다. 여기서, weight decay는 model의 training error를 줄여주는 기능을 가지고 있다.
weight를 update할 때, 아래의 알고리즘을 사용하였다.
2, 4, 5 번째 convolutional layers와 fully-connected layers의 neuron biases를 1으로 초기화하였는데, 초기화를 함으로써 ReLU에 positive input이 제공되고, learning의 초기 단계를 더욱 빠르게 할 수 있다.
Learning rate는 모든 layer 다 동일하게 사용되었고, 0.01에 초기화되었다가 termination 전에 3번 축소되었다.
6. Results and Discussion
Single Convolutional Layer가 제거되었을때, network의 performance가 저해된다. 따라서, depth가 results를 성취하기 위해서 가장 중요하다고 할 수 있다.
'AI 논문 정리 > Computer Vision 논문' 카테고리의 다른 글
[Paper Review 3] Very Deep Convolutional Networks For Large-Scale Image Recognition (0) | 2021.05.02 |
---|---|
[Paper Review 2] Network In Network (0) | 2021.04.04 |