일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | 3 | 4 | |||
5 | 6 | 7 | 8 | 9 | 10 | 11 |
12 | 13 | 14 | 15 | 16 | 17 | 18 |
19 | 20 | 21 | 22 | 23 | 24 | 25 |
26 | 27 | 28 | 29 | 30 | 31 |
- exists
- opencv
- MinHeap
- dfs
- sklearn
- MySQL
- AlexNet
- canny edge detection
- Mask Processing
- object detection
- C++
- 딥러닝
- Reinforcement Learning
- 그래프 이론
- clustering
- deep learning
- 머신러닝
- dynamic programming
- image processing
- dropout
- overfitting
- Python
- eecs 498
- BFS
- 강화학습
- edge detection
- SIFT
- 백준
- DP
- machine learning
- Today
- Total
JINWOOJUNG
Very Deep Convolutional Networks for Large-Scale Image Recognition...(1) 본문
Very Deep Convolutional Networks for Large-Scale Image Recognition...(1)
Jinu_01 2025. 1. 7. 11:42Research Paper
https://arxiv.org/abs/1409.1556
https://papers.nips.cc/paper_files/paper/2012/hash/c399862d3b9d6b76c8436e924a68c45b-Abstract.html
0. Abstract
본 논문에서는 Convolutional Network의 Depth에 따른 성능을 분석한다. 3x3의 작은 Convolutional Filter를 사용하여 Network의 Depth를 16~19까지 증가시킴에 따른 성능을 분석한다.
1. Introduction
Convolutional Networks(ConvNets)는 Large Image Dataset(ImageNet, etc)의 등장과 효율적인 GPU 연산과 같은 고성능의 컴퓨팅 시스템을 기반으로 Large-Scale Image Recognition 분야에서 성공적으로 동작하였다. 특히, AlexNet과 그 변형된 Network들은 우수한 성능을 보인다.
ConvNets가 컴퓨터 비젼 분야에서 대두되면서 기존 AlexNet에서 확장된 다양한 연구가 진행 되엇지만, 하나의 층에서 Receptive Window Size 조절, 다중 스케일 등 Depth가 아닌 다른 방향으로의 연구가 주를 이루었다. 본 논문에서는 다른 Hyperparameter는 고정시키고, 3x3의 작은 Filter를 사용하여 Depth를 점진적으로 증가시켜 모델의 성능을 분석하는 연구를 진행한다.
2. ConvNet Configuratoins
ConvNet의 Depth가 증가함에 따른 성능 측정을 위해 ConvNet의 구성은 AlexNet과 Ciresan의 "Flexible, High Performance Convolutional Neural Networks for Image Classification" 논문에 나오는 ConvNet의 구조를 따른다.
Conv Layer는 Convolution - Activation Function - Pooling의 구조를 가지며, Conv Layer가 반복된 이후 FC Layer를 거쳐 Classification Task를 위한 Softmax를 거치는 구조라고 생각하면 된다.
2.1 Architecture
- Preprocessing
학습 과정에서, ConvNets의 Input은 224x224 RGB Image이다. Input Image에 대한 Preprocessing은 AlexNet에서 사용한 전체 Training Dataset에 대한 RGB 평균을 빼주는 Centralized만 진행한다.
- Convolutional Filter
Convolutional Filter Size는 3x3 Receptive Field를 가지는 작은 3x3 Filter를 사용한다. 또한, Input에 대하여 선형 변환처럼 보이지만 Non-linearity를 추가하는 1x1 Filter를 사용하기도 한다. 이는 Input이 그대로 Output으로 나오지만, ReLU를 거치면서 Non-linearity가 추가되기 때문이다.
convolution stride는 1로 고정되어 있으며, Spatial Padding(Convolution 이후 Resolution 유지)을 위해 3x3 Filter에 대해서는 Padding이 1로 설정된다(Zero-Padding).
$\frac{W_{input} -2S + K}{P} + 1$의 수식으로 쉽게 유도할 수 있다.
이때, $W_{input}$은 Input Width, $S$는 Stride, $K$는 Filter Size, $P$는 Padding 이다.
- Max Pooling
일부 Conv Layer에 대해서는 2x2, Stride는 2인 Max Pooling이 수행된다.
- Architecture
Conv Layers가 반복된 뒤 AlexNet과 동일하게 3개의 FC Layers를 사용한다. 처음 2개는 각각 4096 channels를 가지며, 마지막은 Classification을 위해 1,00개의 channels를 가지고 soft-max layer를 거치게 된다.
- Activation Function & LRN
모든 Hidden Layer는 ReLU를 거치게 되며, LRN의 경우 ILSVRC Dataset에 대한 성능 향상을 보여주지 않고, 오히려 메모리 사용과 연산량의 증가를 유도하기에 사용하지 않았다.
VGG-16의 구조를 보면 앞서 설명한 전체적인 과정을 쉽게 이해할 수 있다. Stride, Zero-padding을 통해 Convolution 과정에서 일정한 Layer에 대해 층이 유지됨을 확인할 수 있다.
2.2 Configurations
본 논문에서 실험하는 6개의 Network는 위와 같이 구성되어 있다. 각각은 서로 다른 Depth를 가지며, C와 D의 구조는 유사하지만 중간에 Convolutional Filter Size의 크기가 다름을 확인할 수 있다. Convolution 연산을 거치면서 Conv Layer는 64부터 512까지 2배씩 증가하며, 이는 max-pooling layer를 거친 뒤 증가된다.
Table 2는 각 Network에 대한 Paramter의 개수를 나타낸다. 이는 Conv Layer가 더 얕고 Receptive Field가 큰 Network 보다 더 적은 Paramter 수를 가짐을 의미한다.
2.3 Discussion
기존 연구에서는 상대적으로 큰 Receptive Fields를 가지는 Filter 및 Stride를 사용했지만, 본 논문에서는 작은 크기의 3x3 Filter와 고정된 Stride 1을 사용하였다. 이는 작은 크기의 Filter를 여러 Layer로 쌓아 동일한 Receptive Field를 가질 수 있기 때문이다.
3x3 Filter, Stride 1을 2 Layer로 쌓으면 5x5 Filter를 사용하는 것과 동일한 Receptive Field를 가진다.
동시에 요구되는 Parameter의 수도 3x3x2 < 5x5로 Channel 수를 고려하면 훨신 작아진다.
작은 크기의 Filter로 더 깊은 Layer를 쌓는 과정은 비선형성을 증가시켜 복잡한 데이터를 더 잘 학습하기에 모델의 판별력(Accuracy)가 증가한다. 또한, 더 적은 Parameter의 수를 가지게 된다.
따라서 기존의 큰 크기의 Filter를 3x3 Filter와 ReLU로 동작하도록 분해하여 네트워크가 덜 복잡한 형태를 가지고 비선형성을 증가시켜 일반화 성능이 커지고 Overfitting이 감소한다.
3. Classification Framework
3.1 Training
ConvNet의 Training 과정은 AlexNet을 기본으로 한다. AlexNet보다 더 깊고 더 많은 Parameter를 가지지만, 본 논문에서 제안하는 모델의 수렴 속도가 더 빠른 이유는 더 깊고, 더 작은 크기의 Convolutional Filter Size를 가지기에 발생하는 암시적인 정규화(implicit regularisation)와 특정한 층에서의 Pre-initialisation 때문이다.
Weight의 Random initialisation으로도 충분히 학습 가능한 Configuration A Network를 사전 학습시킨다. 이후 더 깊어지는 Networkdml 1, 4번째 Conv Layer 그리고 마지막 3개의 FC Layer의 Weight의 경우 사전 학습된 A Network의 Weight로 초기화 시키고 나머지는 Random initialisation을 수행한다. 또한, A Network의 Weight로 초기화 한 경우 학습률을 줄이지 않고, 학습하는 과정에서 변경되도록 하였다. 이때, Weight의 Random initialisation은 평균이 0, 분산이 0.1인 normal distribution을 따르며, AlexNet과 달리 모든 Bias는 0으로 초기화 하였다.
Input Image는 고정된 크기(224x224)를 가지기에, AlexNet과 달리 Rescaled Image에 대하여 Random Crop을 수행한다. Rescale의 경우 학습 이미지의 가로, 세로 중 작은 길이를 training scale $S$로 isotropically-rescale을 진행한다. 즉, 가로/세로의 비율을 유지하면서 작은 길이를 $S$로 rescale하는 방식이다.
이때, $S$는 224일 필요는 없으며, 만약 $S=224$인 경우, 영상의 전체를 의미하며 $S>224$인 경우 작은 객체나 영상의 일부를 Crop한다.
본 논문에서는 2가지 방식으로 $S$를 설정한다. 먼저 고정된 크기의 $S$의 경우 널리 사용되던 256과 384를 사용한다. 이때, 각 Network에 대하여 먼저 256으로 설정하여 학습시킨 뒤, 384인 경우 학습 속도를 증가시키기 위해 256으로 학습된 Weight로 초기화를 진행하며, Learning Rate를 $10^{-3}$으로 설정한다.
또한, 이미지에서의 객체는 다양한 크기로 존재하기 때문에 Multi-scale training을 수행하기 위해 $S$를 $[S_{min}, S_{max}]$ 범위에서 Random Sampling을 수행한다. 본 논문에서는 $S_{min}$을 256, $S_{max}$는 512로 설정하였다. 이를 통해 모델은 넓은 범위의 크기를 가지는 객체를 인지하도록 학습될 수 있다. 이때, 학습의 가속화를 위해 동일한 Network에서 $S=384$로 학습시킨 모델의 Weight로 초기화를 진행한다.
3.2 Testing
테스트 과정에서는 먼저 사전에 정의한 test scale $Q$로 이미지의 가로, 세로 중 작은 길이를 isotropically-rescale한다. 이때, $Q$는 $S$와 동일할 필요는 없다. 이후 Dense Prediction을 위해 마지막 3개의 FC Layer를 7x7 Conv Layer - 1x1 Conv Layer - 1x1 Conv Layer구조로 변형한다. 이를 통해 고정된 크기가 아닌 $Q$에 따른 여러 크기에 대해서도 수행 가능하며, 이미지 전체에 대하여 하나의 예측값이 아닌, 공간적으로 밀집된 예측(Dense Prediction)을 가능하게 한다. 즉, 각 픽셀이 해당 위치에서 클래스에 속하는 점수를 얻을 수 있다. 최종적으로 각 클래스에 대한 점수를 얻기 위해 각각의 Score map에 대하여 Spatially average를 계산한다. Test 과정에서도 Test Image를 horizontal flipping한 Image에 대해서도 Score를 계산하여 두 결과의 Soft-max class posteriors의 평균으로 최종 확률 계산한다.
마지막 FC Layer를 Conv Layer로 변경하여 Dense Prediction을 수행하기 때문에, AlexNet과 달리 Test 과정에서 여러개의 Crops을 Sample할 필요가 없다. 이는 각 Crop마다 재연산이 요구되기 때문에 연산량이 증가한다. 또한, Dense Evaluation을 사용하면 Padding 과정에서 Zero-padding이 아닌 인접한 영역의 정보로 Padding을 진행하기 때문에, 경계 부분에서도 이웃 픽셀의 정보를 활용할 수 있다.
기존의 Multi-crops 방식은 세밀한 Sampling 과정을 통해 여러개의 Crops를 사용한다면 Accuracy를 향상시킬 수 있지만, 많은 연산을 요구하여 비효율적인다. 하지만 비교를 위해 본 논문에서도 각각의 Scale에 대하여 50개의 crops 총 150개의 crops를 사용하여 Multi-crop Evaluation도 수행하였다.
'딥러닝 > 논문' 카테고리의 다른 글
Very Deep Convolutional Networks for Large-Scale Image Recognition...(2) (0) | 2025.01.07 |
---|---|
ImageNet Classification with Deep Convolutional Neural Networks...(2) (0) | 2025.01.06 |
ImageNet Classification with Deep Convolutional Neural Networks...(1) (0) | 2025.01.04 |
Dropout Reduces Underfitting...(2) (0) | 2024.12.31 |
Dropout Reduces Underfitting...(1) (0) | 2024.12.30 |