쉬어가는 겸 논문 프린트 정리할 겸
AlexNet을 리뷰해볼까 한다.
NeurIPS'12
https://papers.nips.cc/paper/2012/hash/c399862d3b9d6b76c8436e924a68c45b-Abstract.html
ImageNet Classification with Deep Convolutional Neural Networks
Requests for name changes in the electronic proceedings will be accepted with no questions asked. However name changes may cause bibliographic tracking issues. Authors are asked to consider this carefully and discuss it with their co-authors prior to reque
papers.nips.cc
ImageNet LSVRC-2010 같은 거대한 데이터셋을 학습시키기 위해서는
큰 학습 수용력(learning capacity)이 있는 모델이 필요하다.
그래서 저자들은 CNN Networks를 사용하였다.
AlexNet은 새롭고 특이한 수많은 feature를 포함하고 있으며,
이것이 성능과 학습시간을 개선시킨다고 한다.
AlexNet의 사이즈는 overfitting문제를 일으킬 수 있어서 overfitting을 방지할
몇개의 테크닉을 사용했다.
AlexNet은 5개의 conv. layer 3개의 fully-connected layer가 있다.
(그리고 네트워크의 depth가 성능에 중요한 영향을 끼쳤다고 한다.)
ReLU Nonlinearity
일반적으로 활성화 함수는 다음 두 함수를 쓴다. (2012년 기준)
하지만 AlexNet에서는 ReLU라는 활성화 함수를 쓴다.
이 ReLU라는 활성화 함수를 사용하면
tanh 같은 함수보다 훨씬 빠르고 정확한 학습이 가능하다고 한다.
활성화 함수를 바꾸는건 AlexNet이 처음이 아니라고 한다.
2009년에 [What is the best multi-stage architecture for object recognition?] 라는
ICCV논문에서 f(x) = |tanh(x)|를 사용했었다고 한다.
Training on Multiple GPUs
AlexNet은 위의 구조도에서 보이는것 처럼 GPU를 병렬로 처리하였다.
이 방법을 통해 error가 다소 줄어들었고 학습 속도도 약간 빨라졌다고 한다.
Local Response Normalization
ReLU는 입력에서 포화상태를 막을 normalization이 필요없다.
하지만 local normalization 전략이 여전히 모델에 도움이 된다는것을 알았다고 한다.
a는 (x, y)에 있는 커널 i가 적용된 활성화 뉴런이다.
그 다음 ReLU 활성화 함수를 적용하고
response-normalized 활성화 b는 위의 식을 통해 계산된다고 한다.
n은 인접한 커널 맵이고 N은 레이어에 있는 커널의 수다.
하이퍼 파라미터는 다음과 같다.
이 정규화도 앞서 나온 [What is the best multi-stage architecture for object recognition?]
논문의 local contrast normalization과 비슷하지만
정확히 말하면 AlexNet은 brightness mormalization라고 하는게 맞다고 한다.
Overlapping Pooling
Pooling layers는 같은 커널 맵에 있는 뉴런의 이웃한 그룹을 요약(병합)해주는 것이다.
(코드를 보니 Maxpooling을 사용하는 듯 하다.)
사이즈는 z x z 정사각형 커널에 s 만큼 이동한다고 한다.
이름이 Overlapping인것 처럼 이미지내에서 커널이 영상을 겹치면서 지나간다.
이렇게 되면 오버피팅이 더욱 잘 방지된다고 한다.
Data Augmentation
overfitting을 방지하기 위해 먼저 256 x 256로부터
랜덤으로 227 x 227 사이즈인 사진은 추출한다고 한다.
그 다음 또 horizontal reflection을 한다.
이렇게 하면 training set을 2048배 증가시킬 수 있다고 한다.
두번째 Augmentation 방법은 이미지 RGB pixel에 PCA를 적용하는 것이다.
각 픽셀의 고유값(eigenvalue)에 평균 0 표준편차 0.1을 갖는 가우시안 랜덤 변수를 곱해서
Augmentation을 적용한다.
이것을 각 채널별로 적용하고
고유값에 다른 값을 적용하였으므로 이미지의 색상은 약간 바뀐다.
p는 고유백터(eigenvector) λ는 고유값이다.
Dropout
overfitting을 방지하기 위해 dropout을 사용했다고 한다.
dropout은 fully-connected layter에서 노드를 확률적으로 제거하는 학습법이다.
학습할 때마다 모델의 노드가 바뀌므로 앙상블 기법의 효과가 있다고는 한다.
확률은 0.5로 노드 on-off를 결정한다.
(재밌는점은 지금 2023년까지도 dropout이 왜 효과가 좋은지 밝혀지지 않았다.)
이 논문은 최근 CNN 베이스 모델의 뿌리 격인 논문이다.
논문 내용을 살펴보면 CNN구조는 기본이고
normalization, dropout, augmentation, relu 같이
최근에도 사용되는 것이 여러 있다는 것을 알 수 있다.
'AI Technology > Classification' 카테고리의 다른 글
[논문리뷰] AdaCos: Adaptively Scaling Cosine Logits for Effectively Learning Deep Face Representations (3) | 2024.04.25 |
---|