Data Science/Convolutional Neural Network(CNN)

5. Advanced CNN-1

HJChung 2020. 3. 18. 15:33

지금까지 기본적인 CNN에 대해 배워보았습니다. 

대표적으로 VGG-16 신경망이 있습니다. 

VGGNet의 architecture

지금부터는 초창기 신경망보다 더 발전되고, 현재까지 사용되고 있는 신경망 구조에 대해서 알아보겠습니다. 

1. GoogLeNet (Inception Network)

2014년도에 VGGNet과 함께 등장했습니다. 이때 VGGNet보다 복잡하고, 다양한 스킬들이 적용되었으며 에러율도 더 낮았습니다. 

GoogLeNet은 "Let's Go Deeper and Deeper"의 생각으로 Network를 더욱 깊게 만들고자 하였습니다. 

GoogLeNet의 architecture

1) Inception module

: 다양한 크기의 합성곱 계층을 한 번에 계산하는 Inception Module입니다. 

1. naive한 version의 inception module을 살펴보면, 

input이 들어왔을때, 일반적인 convolution layer는 1x1, 3x3등의 한가지 filter만 통과해서 다음으로 넘어가게 됩니다. 그러나 Inception module의 경우는 옆의 그림과 같이 한 번에 다양한 크기의 convolution filter을 통과한 후, 3x3 max pooling 도 진행한다. 그리고 filter concatenation을 해서 feature map들을 모아서 출력을 하는 것입니다. 

 

이것의 장점은, input이 다양한 feature들로 명시적으로 나눠져서 학습된다고 제안합니다. 

2. dimension reduction이 추가된 Inception module을 살펴보면,

input layer가 들어왔을 때, 연산량을 줄이기 위한 1x1 convolution layer이 추가되었습니다.

 

input-> 32 -> 1x1 conv layer -> 16 -> 3x3 conv layer ->...

 

이 결과에 따라 똑같은 filter를 적용할 수 있으면서도 연산량을 줄일 수 있게 되는 것입니다. 이를 Inception module bottlenect 구조라고 합니다. 

 

Bottleneck 구조

이러한 Bottleneck 구조의 활용으로, Receptive field를 유지하면서 파라미터 수를 줄였고, 파라미터 수를 줄인다는 것은 곧 연산량을 줄인다는 것입니다.  

 

 

 

 

2) 추가 분류기 사용

 

ㄹ 

메인 분류기에서 image classification이 되지만, 추가 분류기를 통해서 중간 feature들로도 classification을 할 수 있게 해주었습니다. 

 

이것의 장점은, 메인분류기가 있는 맨 끝에서부터 역전파 Gradient Descent를 해주게 되면 기울기 소실이 발생하여 학습이 잘 되지 않는 문제가 있는데, 

추가적인 분류기가 있으면 이로부터의 Gradient가 합쳐져서 기울기 소실을 방지할 수 있습니다. 

'Data Science > Convolutional Neural Network(CNN)' 카테고리의 다른 글

7. Advanced CNN-3  (0) 2020.03.21
6. Advanced CNN-2  (0) 2020.03.18
4. Basic CNN Implementation(v2)  (0) 2020.03.15
4. Basic CNN Implementation(v1)  (0) 2020.03.15
3. Batch Normalization  (0) 2020.03.14