- AlexNet은 LeCun의 LeNet5와 구조적으로 비슷하지만 엄청난 계산량 문제를 GPU를 사용하여 개선
- CNN구조를 설계할 때 GPU를 사용하는 것이 대세가 되었다는 점에서 의미를 갖음
- 네트워크 구조
- 2개의 GPU를 기반으로 한 병렬 구조이며 총 5개의 convolution layers와 3개의 full-connected layer로 구성되어 있음
- 맨 마지막 FC layer는 1000개의 category로 분류하기 위한 활성함수로 softmax 함수를 사용
- 구조적 특징
- 활성화 함수
- ReLu함수를 사용하여 학습 속도 6배 가량 빨라지고, Exponential 연산처럼 많은 작업이 없이 컴퓨터 자원을 절약하고 Gradient vanishing의 단점을 보완
- 마지막 layer에서는 softmax 사용
- 정규화
- ReLu함수를 사용하였을때 출력값이 양수 방향으로 무한히 커질 수 있음
- Overlapped pooling
- CNN에서 일반적으로 pooling은 conv 연산을 통해 얻은 feature map 영상의 크기를 줄이기 위한 용도로 사용됨
- 일반적으로 max pooling 또는 average pooling을 사용하고, window의 크기는 주로 2x2를 사용하고 stride도 2를 사용하기 때문에 출력 영상의 크기가 가로 세로 각각 1/2로 줄게됨
- 그러나 AlexNet은 2x2 대신 3x3 window를 선택하고, stride를 2로 하는 overlapped pooling 방식을 사용하여 과대적합 방지 및 에러를 줄일 수 있음
- Data Augmentation & Dropout
- 과대적합 문제를 방지하기 위해 사용
- Data Augmentation: 원본 이미지를 잘라내어 좌우반전하거나 수평반전함
- Dropout: FC layer의 처음 두개의 layer에 대해서만 적용, 비율은 50% 사용
- 최적화 과정
- Stochatic Gradient Descent(SGD) + Momentum
- Batch size = 128
- Momentum = 0.9 (움직임을 줄이고, 좋은 방향으로 SGD를 가속화 시키는 파리미터)
- Weight decay = 0.0005
- Weight initialization = zero-mean Gaussian * 0.01
- Learning rate = 0.01
- Dropout 확률 = 0.5
- Stochatic Gradient Descent(SGD) + Momentum
- 활성화 함수
'데이터사이언스' 카테고리의 다른 글
VGGNet (CNN architecture 기반 모델) (0) | 2019.10.25 |
---|---|
CNN의 구조 (0) | 2019.10.25 |
CNN (Convolutional Neural Network) 이해하기 (0) | 2019.10.25 |
신경망 구조 (0) | 2019.10.24 |
다중 퍼셉트론의 학습 방법 (0) | 2019.10.24 |