본문 바로가기

데이터 다루기/신경망

[신경망] 15. CNN Architecture (1) AlexNet, ZFNet

728x90
반응형

안녕하세요, 이번 포스팅부터는 CNN Architecture, 즉 지금까지 CNN 대회에서 수상을 한 작품(?)을 배워보도록 하겠습니다.

저희가 알아볼 신경망은 총 AlexNet, ZFNet, VGGNet, GoogLeNet, ResNet 총 5가지입니다.

오늘은 첫번 째 시간으으로 AlexNet, ZFNet 2가지를 알아보도록 합시다.

AlexNet은 오분류율이 16.4%로 그렇게 낮은 값은 아니지만, 저 당시에는 굉장한 수치였습니다.

그래프에서 보시다시피, 이전 수상작에서는 25.8%인 것을 감안하면, 엄청난 발전입니다.

이는 이전 수상작들은 shallow network의 였던 반면 AlexNet은 8개의 층을 가지기 때문으로 생각할 수 있습니다.

우선 AlexNet의 구조를 살펴보도록 하겠습니다.

네트워크의 구조에서는 지금 보기에는 별다른 특이점은 없습니다.

앞선 포스팅에서 배웠던 내용의 복습 차원에서 첫번 째 Convolution layer와 Pooling layer를 자세히 들여다보도록 하겠습니다.

AlexNet의 구조 다음으로, 세부적인 설정도 살펴보도록 하겠습니다.

1. 활성화함수로 처음으로 ReLU를 사용한 네트워크입니다.

2. Normalization layer를 사용하였습니다. (Batch normalization)

3. Data의 양을 늘리기 위해 Data augmentation을 적용합니다.

Data augmentation은 원래 이미지를 변환 (좌우 대칭, 늘리기, 회전 등)하여 비슷한 이미지를 만들어내는 과정입니다.

4. dropout 0.5

5. Mibi-batch Gradient Descent with batch size 128 and Momentum 0.9

6. Learning rate : 0.01, 이 때 0.001로 점차 줄여나갑니다. (보통 Learning rate는 overfitting을 막기 위해서 처음에는 크게 주고, 점차 줄여나갑니다.)

7. L2 weight decay 0.0005

다음으로 ZFNet을 살펴보도록 하겠습니다.

ZFNet은 AlexNet 구조를 살짝 변경하였습니다.

변경된 구조를 간략하게 설명드리도록 하겠습니다.

우선 첫번째 Convolution layer를 11x11 stride 4 에서 7x7 stride 2로 변경했습니다.

또한 Conv 3,4,5의 depth를 384, 384, 256에서 512, 1024, 512로 변경하였습니다.

반응형