2018. 6. 16. 21:48ㆍDeep Learning/Backbone Networks
CNN Structure - AlexNet
개인적으로 CNN의 이론적인 부분을 공부한 이후, Backbone Network를 공부하면서 많은 정리가 되었다고 생각한다.
AlexNet은 ImageNet Competetion에서 SVM을 제치고 우수한 성능을 보여주어, 사람들이 CNN에 대하여 관심을 갖기 시작하게 만들어준 CNN의 조상님과 같은 Network다.
AlexNet 논문을 리뷰하면서 개인적으로 정리를 해보려고 한다.
[ Architecture ]
우선 AlexNet의 Architecture는 다음과 같다.
여기서 특이한 점 하나를 발견할 수 있는데, Network가 2갈래로 갈라져서 구성되어 있다는 점이다.
여기서 특별한 의미는 없고, 이 당시 GPU가 GTX580 이여서 메모리의 문제를 해결하기 위하여 Architecture를 위와같이 구성하였다고 한다.
추가적으로 몇몇 Layer에서 정보를 교환하는 모습을 확인할 수 있는데 이는 추후에 설명하도록 하겠다.
아래의 자료는 cs231n 수업의 자료를 차용했다.
CNN Backbone Network는 깊이를 깊게 하면서도 parameter의 수를 최대한 줄이는 방향으로 발전되어 왔다.
따라서, Backbone Network의 실제 parameter수를 계산해보는 것은 꽤나 의미있는 일이다.
첫번째 Convolution Layer에서의 파라미터의 수는 빨간박스처럼 계산이 가능하다.
실제 코드에서의 구현을 보면, (Tensorflow 기준)
이런식으로 구성되어 있다.
아까 Architecture에서는 언급을 안하고 넘어간 부분인데, 위의 그림과같이 2개의 Layer에서는 서로의 정보를 교환하는 Layer가 있음을 확인할 수 있다.
[Details]
Details 부분에서는 다음 3가지에 대하여 언급해 보려고 한다.
1) ReLU Function
논문에서는 Activation Function 으로 tanh가 아닌 ReLU를 사용하여 gradient vanishing 문제를 완화 시키고, Cost Function의 수렴속도를 증가시켰다고 언급하였다. ReLU의 힘을 사람들에게 널리 알린 논문으로 볼 수 있을 것 같다. ReLU Function에 대한 자세한 설명은 생략한다.
2) Local Response Normalization
Normalization Layer를 추가함으로써 성능을 향상시켰다고 AlexNet의 논문에 나와있지만, 곧 이 Normalization Layer가 계산량만 늘릴뿐 실제 효과가 거의 없다 라는게 입증되었다. 따라서, 수식이 어떻게 생겼는지만 살펴보려 한다.
3) Drop Out
Drop Out 또한 현재 다양한 곳에서 엄청난 성능을 보여주고 있는 기법중의 하나이다. AlexNet 에서도 역시 Drop Out을 사용하여 성능을 향상시켰다고 언급하고 있으며, AlexNet을 계기로 Drop Out 또한 사람들의 주목을 받게되었다고 볼 수 있을것 같다.
[Results]
AlexNet은 ReLU, Drop Out 등 현재에 많이 사용되고 있는 기법들을 사람들에게 소개시켜준 좋은 Network라고 생각된다.
아래 표는 실험 결과이다.
'Deep Learning > Backbone Networks' 카테고리의 다른 글
SENet (0) | 2019.02.08 |
---|---|
ResNet (0) | 2019.02.08 |
VGG (0) | 2019.02.08 |
GoogLeNet (0) | 2019.02.08 |