AlexNet
- 최초의 Large Scale CNN
- conv - pool - normalization 구조가 두 번 반복
- AlexNet의 첫 레이어는 11 × 11 필터가 stride = 4로 96개가 존재한다.
- 첫 레이어의 출력사이즈는 55 × 55 × 96, 레이어 전체 파라미터 갯수 (96 × 11 × 11 × 3) = 35K
- 두번째 레이어는 Pooling Layer, stride = 2인 3 × 3 필터, 이 레이어의 출력값의 크기는 27 × 27 × 96이다. 이 레이어의 파라미터는 없다. 그 이유는 pooling은 가중치가 없고 특정 지역에서 큰 값을 뽑아내는 역할만 하기 때문이다.
- ReLU 사용, Dropout 사용, Batch size = 128, 초기 Learning rate는 1e-2이다.
- val accuracy가 올라가지 않는 지점에서는 학습이 종료되는 시점까지 Learning rate를 1e-10까지 줄인다.
- 모델이 두개로 나눠져서 교차한다는 사실이 ConvNet과의 차별점
VGG
- 더 깊어지고 더 작은 필터를 사용
- 16~19개의 레이어 사용
- 항상 3 × 3 필터만 사용해서 작은 필터를 유지하고 주기적으로 Pooling을 수행하면서 네트워크를 구성한다.
- 작은 필터를 사용한 이유는 필터의 크기가 작으면 파라미터의 수가 더 적어서 큰 필터에 비해 레이어를 조금 더 많이 쌓을 수 있다. Depth를 키울 수 있다.
- Layer의 수는 16개, 각 노드가 4byte의 메모리를 차지하므로 양 100MB의 메모리가 필요.
- 모델 성능을 높이기 위해 앙상블 기법 사용, FC-Layer는 이미지넷 1000class의 바로 직전에 위치한 레이어.
GoogLeNet
- 22개의 레이어, Inception module 사용, FC-Layer없음. 파라미터를 줄이기 위해서
- 전체 파라미터 수는 5M
- 지금까지는 다양한 연산을 수행하고 이를 하나로 합쳐주는 방식 사용했지만 계산 비용문제에 봉착
- ex) 1 × 1 conv의 경우에 출력이 28 × 28 × 128이고 , deptrh는 256, 출력은 28 × 28 ×128. 따라서 3 × 3 conv의 경우에는 출력이 28 × 28 × 192가 될 것이고, 5 × 5 conv의 경우에 96개의 필터로 출력이 28 × 28 × 96이 될 것이다. (zero padding)
- 하나의 Inception Module에서의 전체 연산량은 854M
- 처음에는 conv pool을 몇번 반복하고, 이후에는 Inception module이 쌓이고, 마지막에는 classifier 결과를 출력
* Depth를 늘리는 이유 중 하나는 계산량을 일정하게 유지시키기 위해서이다.
ResNet
- 152 레이어, residual conncetions라는 방법
- 모델이 깊어질수록 최적화가 어렵다는 가설에서 시작하여 레이어를 단순하게 쌓지 않아 Residual mapping을 하도록 쌓는 것
- 레이어는 변화량(입력 X에 대한 잔차)만 학습하면 되고, 최종 출력값은 input X + Residual이다.
- 가설이 입증되지는 않았지만 실제로 ResNet을 쓰면 성능이 좋아짐
- 하나의 Residual blocks는 두 개의 3 × 3 conv layers로 이루어져 있고, 150 Layers까지 쌓아 올릴 수 있고, 주기적으로 필터를 두배씩 늘리고 stride 2를 이용하여 Downsampling을 수행하며, 네트워크 초반에는 Conv Layer가 붙으며 네트워크의 끝에는 FC-layer가 없다. 대산 Global Average Pooling Layer를 사용하며 GAP는 하나의 Map 전체를 Average Pooling한다.
- lerning rate 스케줄링을 통해서 validation error가 줄어들지 않는 시점에서 조금씩 줄여주고, Minibatch 사이즈는 256이고 weight dacay도 적용하며 Dropout은 사용하지 않았음
'데이터 > 딥러닝' 카테고리의 다른 글
CS231n_Lecture10: Recurrent Neural Networks (0) | 2023.01.04 |
---|---|
CS231n_Lecture8:Deep Learning Software (0) | 2022.11.15 |
CS231n_Lecture7:Training Neural Networks (0) | 2022.11.08 |
CS231n_Lecture6:Training Neural Networks (0) | 2022.11.08 |
CS231n_Lecture5:Convolutional Neural Networks (0) | 2022.11.01 |