[AIFFEL 울산 1기] 22. 딥네트워크, 서로 뭐가 다른 거죠?
학습 목표
Part 1
- 딥러닝 네트워크들을 동물원 구경하듯 둘러봅니다. (Model Zoo라고도 하죠)
- 딥러닝이 어떻게 시작된 것인지 알아봅니다.
- ResNet과 VGG는 무엇을 시도했는지 알아봅니다.
Part 2
- 그림과 글로만 보던 딥네트워크 어떻게 만들고 있는지 알아봅니다.
- 논문의 방법이 사용된 부분을 코드에서 찾을 수 있습니다.
- 나도 할 수 있다는 자신감을 챙깁니다.
후기
학습 내용
22. 딥네트워크, 서로 뭐가 다른 거죠?
딥러닝?
→ 깊게 구성된 신경망
- Tensorflow나 PyTorch는 약 20여개의 Pre-trained 모델을 활용할 수 있다.
[ Part 1 ]
22.1 ImageNet Challenge
- 이미지넷
- 2010년 ILSVRC 2010을 시작으로 대량의 이미지 데이터를 포함하는 데이터셋
22.2 딥네트워크의 시작
- 알렉스넷(AlexNet)
- ILSVRC에 등장하여 엄청난 성능향상을 보인 네트워크를 깊게 쌓은 모델
- 7개의 CNN과 2개의 FCN을 사용
22.3 CNN을 잘쓰자
- VGG
- 2014년 이미지넷 챌린지에 등장하여 준우승 기록
- 간결한 구조로 지금까지도 많이 활용되는 모델
- 16개의 레이어를 가진 모델(VGG16)과 19개의 레이어를 가진 모델(VGG19)이 있음.
22.4 멀리 있으면 잘 안 들려요
- Vanishing Gradient(기울기 소실 or 경사 소실)
- 모델이 깊어질수록 학습을 위한 Gradient가 사라지는 현상이 발생
(Gradient descent를 통해 기울기를 학습하는데 레이어가 깊어질수록 Gradient가 매우 작아지거나 커지면서 학습을 위한 값을 표현하지 못함)
- 활성화 함수나 가중치 초기화 방법을 통해 완화 가능
22.5 지름길을 만들어주자
- ResNet
- ILSVRC'15에 등장하여 획기적인 성능을 보이며 우승
- 152개의 레이어로 구성되어 있고, Skip Connection 구조를 사용

- Skip Connection
- 레이어의 입력을 다른 곳에 이어서 Gradient가 깊은 곳까지 이어지도록 함
- Vanishing Gradient 문제를 해결
- 해당 구조가 있는 블록을 Residual Block 이라고 함

[ Part 2 ]
Tensorflow의 model API와 Keras와 모델 구조를 비교하며 어떻게 구현되었는지 확인
22.6 Model API
(1) Tensorflow
- 사전 학습 모델들이 slim이라는 고수준 API로 구현
- tf_slim은 조금 어렵고 많이 활용되지 않으므로 한 번 훑어보기!
(2) Keras
- Keras application을 통해 사전 학습 모델을 제공
- 모델 구현이 tf_slim에 비해 비교적 간결
- 지원 모델 확인
- 구현 코드 확인
22.7 VGG-16
22.8 ResNet-50