본문 바로가기

데이터사이언스

AlexNet (CNN architecture 기반 모델)

  • 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

'데이터사이언스' 카테고리의 다른 글

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