ILSVRC
![](https://velog.velcdn.com/images%2Fhanlyang0522%2Fpost%2F782ed7d7-0c3f-49bd-95b1-c5c99311f04f%2Fimage.png)
AlexNet
![](https://velog.velcdn.com/images%2Fhanlyang0522%2Fpost%2Fde76ee52-e359-4c1d-9fff-b80bfe30008d%2Fimage.png)
- 당시 GPU 성능이 부족했기 때문에 최대한 많은 parameter를 넣고 싶어서 GPU를 2개 사용하고, 그에 따라 모델을 2개로 분리
- ReLU를 사용해 gradient vanishing을 해결
- Data augmentation, Dropout 사용
VGGNet
![](https://velog.velcdn.com/images%2Fhanlyang0522%2Fpost%2F01d8c2bb-2324-4ce0-840e-e0dec1255432%2Fimage.png)
- 3x3 filter만 사용
- 1x1 convolution for fully-connected layer
그러나 parameter를 줄이려고 사용한건 아니라 중요x
- Dropout(p=0.5)
- VGG16, VGG19
![](https://velog.velcdn.com/images%2Fhanlyang0522%2Fpost%2Fb30f6488-653c-4660-a752-c19ace78e137%2Fimage.png)
- Receptive field: 1개의 convolution pixel이 고려하는 input의 크기
- 3x3을 2번 사용하면 5x5 영역을 다루면서, 5x5 filter를 쓴것보다 parameter 수를 줄일 수 있다
GoogLeNet
![](https://velog.velcdn.com/images%2Fhanlyang0522%2Fpost%2Ff537e894-3f97-4670-bbdb-8d0cc21dbb14%2Fimage.png)
![](https://velog.velcdn.com/images%2Fhanlyang0522%2Fpost%2F2b376ebd-fa32-48b3-8f3e-af19dc11966a%2Fimage.png)
- Inception Block: patameter 수를 줄일 수 있음
- 1x1 conv가 channel 방향 dimension을 줄일 수 있다
![](https://velog.velcdn.com/images%2Fhanlyang0522%2Fpost%2Fa10f48af-c725-41ac-8dbc-facd535e44c1%2Fimage.png)
- 1x1 conv가 parameter 수를 30% 정도 줄일 수 있음
ResNet
![](https://velog.velcdn.com/images%2Fhanlyang0522%2Fpost%2F44044ff2-028f-4a8b-a3bc-65d82a3c06aa%2Fimage.png)
- 기존의 DNN은 깊게 쌓을수록 gradient vanishing/exploding에 의한 degradation이 일어남
(56-layer가 error가 더 큼)
![](https://velog.velcdn.com/images%2Fhanlyang0522%2Fpost%2F64902087-cdfc-422d-8902-864ad358c1ea%2Fimage.png)
- Conv layer output에 input을 더해서, model이 residual(input과의 차이)만 학습하게 만듬
- 이러면 backpropagation에서 x 때문에 gradient가 최소 1이 돼서 vanishing을 방지할 수 있음
![](https://velog.velcdn.com/images%2Fhanlyang0522%2Fpost%2Fcba0b06e-1ffb-4d3e-bc58-ac9c2fe66011%2Fimage.png)
- layer를 많이 쌓아도 overfitting 되지 않는걸 볼 수 있다
![](https://velog.velcdn.com/images%2Fhanlyang0522%2Fpost%2F799cfb4e-6f5a-4e6a-9aa7-80c436268f32%2Fimage.png)
- Bottleneck Architecture
3x3 conv 앞뒤로 1x1 conv 넣어서 input, output channel을 줄임
DenseNet
![](https://velog.velcdn.com/images%2Fhanlyang0522%2Fpost%2Ff128a53b-cb72-47aa-8803-7ac83b8bbd4d%2Fimage.png)
![](https://velog.velcdn.com/images%2Fhanlyang0522%2Fpost%2F38947141-bb07-427d-b3c8-b93dd7f9cbb1%2Fimage.png)
- 하지만 계속 concat하면 channel 수가 늘어난다는 단점이 있음
![](https://velog.velcdn.com/images%2Fhanlyang0522%2Fpost%2Fadd3b06e-1957-4416-b2ad-7ccca7440f76%2Fimage.png)
정리
![](https://velog.velcdn.com/images%2Fhanlyang0522%2Fpost%2F043c537f-111f-47cc-9c51-2a9458b7ef24%2Fimage.png)