# LeNet, AlexNet, VGG
1. LeNet
: 1998년 개발된 CNN 알고리즘으로 LeNet-5가 가장 대표적인 모델이다. 이는 흑백 이미지에서 학습된 7 layer CNN으로 Input - Conv(C1) = Subsampling1(S2) - Conv(C3) - Subsampling(S4) - Conv(C5) - FC6 - FC7(output) 으로 구성된다.
output size = (input size - filter size + (2 x Padding)) / stride + 1
Input size : ( 1, 32, 32 )
[ convolution, filter size : 5x5, filter 개수 : 6, stride : 1 ]
C1 layer : (6, 28, 28)
[ subsampling, pooling size = 2x2 ] # average pooling 기능
S2 layer : (6, 14, 14)
[ convolution, filter size : 5x5, filter 개수 : 16, stride : 1 ]
C3 layer : (16, 10, 10)
- C3 layer을 만드는 과정
1. 연속된 3장을 모아 convolution -> 6장의 10x10 feature map 생성
2. 연속된 4장을 모아 convolution -> 6장의 10x10 feature map 생성
3. 불연속한 4장을 모아 convolution -> 3장의 10x10 feature map 생성
4. 6장 모두 convolution -> 1장의 10x10 feature map 생성
===> 총 16장의 10x10 feature map생성
[ subsampling, pooling size = 2x2 ] # average pooling 기능
S4 layer : (16, 5, 5)
[ convolution, filter size : 5x5, filter 개수 : 120, stride : 1 ]
C5 layer : (120, 1, 1)
[ fully connected, tanh 활성화함수 ]
F6 layer : (84)
[ fully connected, Euclidean Radial Basis Function ]
F7 layer : (10)
2. Alexnet
: ILSVRC ( ImageNet Large-Scale Visual Recognition Challenge )의 2012년 대회에서 1위를 한 CNN 모델이다.
- ILSVRC대회는 대용량의 이미지 데이터셋을 주고 이미지 분류 알고리즘의 성능을 평가하는 이미지 인식 경진대회이다.
* 특징 :
- 2개의 GPU로 병렬연산을 수행하기 위해 병렬적인 구조로 설계되었다.
- 활성화 함수로 ReLU를 이용한다.
- 드롭아웃을 이용한다.
Input – Conv1 – MaxPool1 – Norm1 – Conv2 – MaxPool2 – Norm2 – Conv3 – Conv4 – Conv5 – MaxPool5 – FC6- FC7- FC8(output)
Input size : ( 3, 277, 277 )
[ convolution, filter size : 11x11, filter 개수 : 96, stride : 4 ]
Conv1 : ( 48, 55, 55 )
[ maxpooling, pooling size : 3x3, stride : 2 ]
MaxPool1 : ( 48, 27, 27 )
# LeNet-5과 일반적으로 다른 모델들은 주로 non-overlapping pooling을 사용하는데 Alexnet은 overlapping maxpooling을 사용했다.
# Normalization 방법으로는 LRN ( local response normalization )을 시행하였다. Alexnet에서 처음 도입한 방법으로 인접 화소들을 억제시키고 특징을 부각시키기 위한 방법이다. 신경 생물학에서 원리를 가져온 방법으로 예를 들면 강한 자극인 검은색을 집중해서 볼 때 상대적으로 약한 자극인 흰색의 인식을 막기 때문에 발생하는 '측면 억제'현상이 있다. 이와 같이 지역적인 현상을 약화하고 학습을 일반화하기 위해 고안된 방법이다. ( 헤르만 격자 )
Norm1 : ( 48, 27, 27 )
[ convolution, filter size : 5x5, filter 개수 : 256, stride : 1, padding : 2 ]
Conv2 : ( 128, 27, 27 )
[ maxpooling, pooling size : 3x3, stride : 2 ]
MaxPool2 : ( 128, 13, 13 )
Norm2 : ( 128, 13, 13 )
[ convolution, filter size : 3x3, filter 개수 : 384, stride : 1, padding : 1 ]
Conv3 : ( 192, 13, 13 )
[ convolution, filter size : 3x3, filter 개수 : 384, stride : 1, padding : 1 ]
Conv4 : ( 192, 13, 13 )
[ convolution, filter size : 3x3, filter 개수 : 256, stride : 1, padding : 1 ]
Conv5 : ( 128, 13, 13 )
[ maxpooling, pooling size : 3x3, stride : 2 ]
MaxPool5 : ( 128, 6, 6 )
[ fully connected, ReLU ]
FC6 layer : (2048)
[ fully connected, ReLU ]
FC7 layer : (2048)
[ fully connected, softmax ]
FC8 output : (1000)
- fully connected layer에서 ReLU 함수를 사용하는 이유는 tanh을 사용하는 것보다 같은 정확도를 유지하면서 연산속도가 6배나 빠르기 때문이다.
- Alexnet에서는 Overfitting을 막기 위해 Data Augmentation과 Dropout 방법을 사용한다.
3. VGG
: ILSVRC(ImageNet Large-Scale Visual Recognition Challenge)의 2014년 대회에서 2위를 한 CNN 모델이다. VGG 부터 네트워크가 매우 깊어지기 시작했다. ( VGG16 : 16개층, VGG19 : 19개층 )
[Input – C1 – C2 – MaxPool2 – C3 – C4 – MaxPool4 – C5 – C6 – C7 – MaxPool7 – C8 – C9 – C10 – MaxPool10 – C11 – C12 – C13 – MaxPool13 – FC14 – FC15 – FC16(Output)]
* 특징
- 3x3의 작은 필터를 계속하여 사용하였다.
- 합성곱 계층을 연속해서 사용하고 Pooling 처리를 하였다.
Input size : ( 3, 224, 224 )
[ convolution, filter size : 3x3, filter 개수 : 64, stride : 1, padding : 1 ]
Conv1 : ( 64, 224, 224 )
[ convolution, filter size : 3x3, filter 개수 : 64, stride : 1, padding : 1 ]
Conv2 : ( 64, 224, 224 )
[ maxpooling, pooling size : 2x2, stride : 2 ]
MaxPool2 : ( 64, 112, 112 )
[ convolution, filter size : 3x3, filter 개수 : 128, stride : 1, padding : 1 ]
Conv3 : ( 128, 112, 112 )
[ convolution, filter size : 3x3, filter 개수 : 128, stride : 1, padding : 1 ]
Conv4 : ( 128, 112, 112 )
[ maxpooling, pooling size : 2x2, stride : 2 ]
MaxPool4 : ( 64, 112, 112 )
[ convolution, filter size : 3x3, filter 개수 : 256, stride : 1, padding : 1 ]
Conv5 : ( 256, 56, 56 )
[ convolution, filter size : 3x3, filter 개수 : 256, stride : 1, padding : 1 ]
Conv6 : ( 256, 56, 56 )
[ convolution, filter size : 3x3, filter 개수 : 256, stride : 1, padding : 1 ]
Conv7 : ( 256, 56, 56 )
[ maxpooling, pooling size : 2x2, stride : 2 ]
MaxPool7 : ( 256, 28, 28 )
.
.
.
.
반복..
MaxPool13 : ( 512, 7, 7 )
[ fully connected, ReLU ]
FC14 layer : ( 4096, 1, 1 )
[ fully connected, ReLU ]
FC15 layer : ( 4096, 1, 1 )
[ fully connected, softmax ]
FC16 layer : ( 1000, 1, 1 )
# 1000개의 클래스로 분리하도록 설계된 모델이라는 의미이다.
# 다른 유명한 신경망에는 GoogLeNet과 ResNet이 있다.
'딥러닝(Deep Learning) > D&A Deep Session' 카테고리의 다른 글
[D&A Deep Session] 6차시 - 9. GoogleNet (0) | 2022.05.03 |
---|---|
[D&A Deep Session] 4차시 - 7. CNN (0) | 2022.04.02 |
[D&A Deep Session] 3차시 - 6. 정규화와 오버피팅 억제 (0) | 2022.03.29 |
댓글