본문 바로가기
AI/[DLBasic]모두의 딥러닝(딥러닝의 기본)

[DLBasic] 11 - 3. CNN case study

by 쵸빙 2020. 1. 20.

     저번 시간까지 CNN의 기본적인 구성 요소를 알아보았다. 이것들을 응용해서 많은 형태를 구성할 수 있다.

 

LeNet-5

     가장 처음으로 만들어진 LeCun 교수님의 CNN 모델이다. 5 x 5의 필터를 사용했고 stride는 1이고 총 6개를 사용했다. 6개의 층으로 이루어진 feature map이 나오고 subsampling을 하면서 나아간다. 가장 기본적인 형태이다.

 

AlexNet

     그 다음으로 살펴볼 것은 AlexNET이라는 이미지 경진대회에서 1등을 해서 주목을 많이 받았던 모델이다.

첫번째 layer에서는 color 이미지를 입력받아서 96개의 필터를 사용하고 stride는 4로 해서 output을 얻을 수 있다.

 

AlexNet's second layer : pooling layer

     두번째 layer인 pooling layer이다. 3 x 3 필터를 사용하고 stride는 2를 사용했다.

 

     그런 식으로 쭉 나아간다.

 

Analysis of AlexNet

    그런 식으로 계속 나아간 결과는 위와 같다. 중간의 normalization 단계는 현대에 와서는 안 해도 된다는 결과를 얻었다고 한다. 최종적으로 나온 결과를 fully connected layer에 넣는 것을 확인할 수 있다. ReLU를 처음 개발해서 사용했고 좋은 결과를 얻었고 norm layer, dropout을 사용했다는 것이 주목할 점이다. CNN을 7개를 만든 다음에 마지막에 하ㅂ쳐서 18.2%의 error rate를 15.4%로 줄였다는 것이 놀랄만한 결과이다.

 

GoogLeNET

     중간에 노란색으로 나온 것을 확인할 수 있는 GoogLeNET을 살펴보자. Inception module을 사용하는데 입력이 들어간 후 1 x 1 convolution을 병렬적으로 3개를 쓰고, pooling을 한 뒤 다른 형태의 convolution을 한 뒤 합친다.

마치 레고를 쌓듯이 매우 재미있는 구조로 연결하고 합치는 구조로 되어있다.

 

ResNet

     3.6%로 error rate를 낮춰서 사람의 결과인 5%보다 더 나은 결과를 내어서 세상을 놀라게했던 끝판왕인 ResNet을 살펴보도록 하겠다. 이미지넷뿐만 아니라 다른 많은 대회에서 상을 휩쓸어냈다고 한다.

 

     AlexNet은 layer을 8개, 또다른 모델은 19개의 layer을 사용했는데 ResNet은 놀랄만하게 152개의 layer을 사용한다. 이렇게 deep한 network는 학습하기가 어려울 것 같은데 ReLU를 잘 사용한다고 해도 어렵다. Fast Forward라는 방법을 사용해서 이것을 극복했다고 한다.

 

     중간에 fast forward를 해서 쭉 뛰어서 앞의 것에 더해진다. 이것이 어떻게 학습에 도움이 되는지 알아보도록 하겠다.

 

ResNet

    전체적으로 보기에는 152 layer가 매우 깊다고 생각할 수 있겠지만 fast forward를 하기 때문에 하나의 layer라고 볼 수도 있게 된다. layer의 개수는 크지만 실제로 학습하는 입장에서는 깊지 않은 layer로 학습할 수 있다. 이렇게 예측은 하지만 사실 아직까지 왜 그렇게 좋은 결과를 얻는지는 완벽하게 파악하지는 못한다고 한다.

 

    꼭 이미지뿐만 아니라 CNN의 활용은 더 다양할 수 있다. 우리나라에서도 2014년도에 Yoon Kim 박사님의 CNN으로 text 처리하는 방법이다.

 

AlphaGo

     마지막으로 CNN이 사용된 예로는 AlphaGo이다.

 

Nature에 실린 논문

     과학 잡지인 Nature에 실린 관련 논문을 보자면 19 x 19 x 48의 네트워크를 사용했고 48의 feature을 사용했다. 처음의 레이어는 zero로 padding했고 23 x 23으로 축소를 하고, k개의 필터를 사용했고 이것의 크기는 5 x 5이며 stride는 1이었다.

 

이렇게 CNN에 대한 모두의 딥러닝 이론 강의 필기를 마치도록 하겠다.