딥러닝의 시대를 열었던 AlexNet

1. ILSVRC

 

ImageNet에서 개최하는 이미지 빅데이터 대회

 

classification, detection, localization, segmentation 등 문제는 다양하다

 

2015년부터 인간을 이기는 알고리즘이 등장함

 

 

 

human의 점수는 이 논문에서 실험을 통해 적절하게 추정을 했나봄..

 

https://arxiv.org/pdf/1409.0575.pdf

 

 

이 대회에서 1등을 하는 딥러닝 알고리즘은

 

기본적으로 parameter 수를 점점 줄이면서 네트워크의 길이는 deep하게 하였다. 그러면서 학습 성능을 높였다

 

parameter 수는 줄이고 layer는 deep하게 하면서 performance를 높임

 

그러한 과정에서 1*1 conv를 적절하게 배치하는 아이디어

 

더 적은 크기의 kernel을 여러번 배치하면 큰 크기의 kernel을 적게 배치하는 것과 receptive field가 동일하다는 아이디어가 활용됨

 

 

 

2. AlexNet

 

1) 기본 구성

 

 

 

5개의 convolution layer와 3개의 dense layer를 사용한 8층 neural network

 

당시 GPU 메모리가 부족해서 두줄로 나눠서 학습시켰다고 함

 

활성화함수로 ReLU를 사용함

 

 

 

ReLU는 가장 큰 특징이 0보다 큰 곳에서 Gradient가 1이므로 아무리 커도 gradient가 소실되지 않는다

 

그동안의 activation 함수는 이 gradient 소실문제가 발생했다

 

sigmoid와 tanh의 특징

 

 

큰 곳에서 그래디언트 0으로 소실하는 문제가 발생함

 

또 ReLU는 학습이 쉽다.

 

심지어 일반화 성능이 좋다고한다(이거는 결과론적인 이야기)

 

전체적으로 nonlinear이지만 선형성을 어느정도 보존함(0에서 양 옆은 선형함수임)

 

Dropout 기법을 사용했다.

 

주성분분석을 이용한 data augmentation으로 데이터 수를 늘리고자 했음

 

최근에는 거의 쓰지 않는 local response normalization 기법을 사용함 <지역적 반응값이 나오면 없앤다는데 무슨 말인지 모르겠음>

 

overlapping pooling으로 stride보다 kernel size를 크게함

 

 

 

 

 

지금은 당연한 기법들이지만 당시에는 매우 획기적인 아이디어

 

그런데 첫 layer의 kernel이 11*11*3인데 이것이 좋은 선택일까?

 

11*11이면 kernel이 볼 수 있는 receptive field라는 image input과 겹치는 영역이 커지나 parameter 수가 매우 많아진다.

 

만약 channel이 1이라해도 121개나 돼

 

 

 

 

 

https://hoya012.github.io/blog/deeplearning-classification-guidebook-1/

 

Deep Learning Image Classification Guidebook [1] LeNet, AlexNet, ZFNet, VGG, GoogLeNet, ResNet

딥러닝을 이용한 Image Classification 연구들을 시간 순으로 정리하여 가이드북 형태로 소개드릴 예정입니다. 1편에서는 최초 Convolutional Neural Network(CNN) Architecture 연구인 LeNet부터 2015년 제안된 ResNet

hoya012.github.io

 

TAGS.

Comments