DeepLearning

AlexNet

MathematiciantoDatascientist 2021. 12. 23. 03:10

AlexNet

AlexNet 은 ILSVRC 에서 2012년 직전 2011년 우승했던 모델의 25.8% 에러를 뒤로한 채, 압도적인 성능인 16.4% 의 에러로 우승한 모델이다.

 

AlexNet 의 구조

 

[Input layer - Conv1 - MaxPool1 - Norm1 - Conv2 - MaxPool2 - Norm2 - Conv3 - Conv4 - Conv5 - Maxpool3 - FC1- FC2 - Output layer]

 

# 논문에서 유용하게 봐야할 점

LRN : Local Response Normalization : 데이터의 편차가 심한 경우 sigmoid, tanh 함수는 Saturating 현상이 심하여 Vanishiong Gradient 를 유발할 수 있다. 그렇기 때문에 Normalization 으로 데이터의 편차를 줄이기 위하여 사용되었으나, Non-saturating nonlinearity function (ReLU) 를 사용하여 이 문제를 해결할 것

* LRN 의 현재 대체적으로 사용되는 것은 현재 BatchNormalization 이다.

Overlapping Padding - kernel shift 의 크기인 stride 를 kernel size 보다 작게 설정하는 방법

 

 

Non-overlapping pooling -> LeNet-5, Overlapping Pooling -> AlexNet

https://velog.io/@kgh732/%EB%B6%80%EC%8A%A4%ED%8A%B8%EC%BA%A0%ED%94%84-AI-Tech-U-stage.-3-3

앞전의 LeNet-5 의 경우 Average Pooling 을 사용한 반면, AlexNet 에서는 MaxPooling 사용

 

Dropout : 과적합을 방지하기 위한 방법으로, Fully connected layer 의 뉴런 중 일부를 생략하여 학습하는 과정이다.

( # Training 과정에서는 Dropout 을 통하여 학습을 하지만 Test 과정에서는 모든 뉴런을 사용해야 한다.)

 

Data Augmentation : 과적합을 방지하기 위한 또 다른 방법으로 데이터를 늘리는 과정이다. 학습데이터의 특정 부분을 확대할 수 있도록 자르거나 대칭적으로 뒤집거나 조금 회전시키는 다양한 방법으로 학습 데이터를 늘릴 수 있다.

alexnet.py
0.00MB