4. CNN Models
1. AlexNet(2012)
•
5개의 convolutional layer + 3개의 FC layer로 구성됨(총 8 layers)
[Example] input image 227x227x3 인 이미지가 있을 때
•
CONV1 레이어가 11x11, stride 4, 96개의 convolution filter로 이루져있을때
◦
output volume size는?
◦
CONV1 레이어의 total parameter 수는?
•
Second layer - POOL1 은 stride 2의 3x3 filter로 이루어져있을 때
◦
output volume size는?
◦
이 레이어의 parameter 수는?
2. ZFNet(2013)
•
ImageNet (ILSVRC)챌린지에서 AlexNet 보다 좋은 성능을 보임
•
convolution layer 5개 + FC layer 3 개로 구성됨
•
AlexNet에서 CONV1의 filter size를 (11x11 stride 4) → (7x7 stride 2)로 변경
•
AlexNet에서 CONV3,4,5 는 filter 개수를 384, 384, 256 → 512, 1024, 512 (filter 수를 늘림)
3. VGGNet(2014)
•
Small Filter, Deeper Networks
•
VGGNet은 16-19개의 레이어로 구성되고(deeper network), filter 크기는 3x3으로 통일
→ only 3x3 CONV stride 1, pad 1 and 2x2 Max POOL stride2
→ AlexNet은 다양한 사이즈의 filter를 사용했지만 VGGNet은 filter 크기도 줄이고 stride 양도 줄임
◦
VGGNet에서 작은 크기의 필터를 사용한 이유
: 3개의 stride 1의 3x3 conv filter를 사용하는 것과 1개의 7x7 conv filter를 사용하는 것이 같은 효과의 receptive field를 갖지만, 3x3이 더 깊고, 적은 파라미터 수를 요구하기 때문! (Deeper, more non-linearities, fewer parameters)
→ 각 layer 마다 채널 수가 3x3 은 3*()= < 7x7 은 =
•
ILSVRC에서 ZFNet보다 좋은 성능을 보임
4. GoogLeNet(2014)
•
computational efficiency를 항샹시킨 Deeper network(22 layers)
•
AlexNet, VGGNet 보다 훨씬 적은 파라미터수 (5million parameters)
•
FC layer를 사용하지 않고, 각 Feature map에 Global Average Pooling layer를 적용함
•
네트워크 깊이가 너무 깊어서 한번에 backpropagation을 하기가 어렵기 때문에 보조분류기를 사용해서 중간결과에서도 classification 진행, loss 계산
•
A.K.A InceptionNet -9개의 inception 모듈을 추가
[Inception 모듈의 특징]
◦
여러 스케일의 convolution layer를 병렬로 사용해서 다양한 스케일에서의 feature map을 동시에 추출해서 효율적으로 feature 추출이 가능함
→ 여러 사이즈의 filter를 사용한 다음에 concatnate! (1x1, 3x3, 5x5)
◦
큰 사이즈의 필터는 계산량이 많아지기 때문에, 3x3이나 5x5 필터를 적용하기 전에 1x1 convolution 도입해서 공간적인 정보는 보존하면서 채널 수만 감소시켜 feature map을 결합
→ 계산효율성을 높이면서 깊은 네트워크 형성가능
5. ResNet
1.
도입배경
•
CNN 모델들은 layer가 깊어질 수록 back propagation 과정에서 정보 소실 문제가 존재
◦
기울기 소실문제(Gradient Vanishing)
: 네트워크가 깊어질 수록 초기 layer로 back propagation 될때 sigmoid나 tanh과 같은 비선형 activation function을 사용하게 되면 기울기 값이 점점 작아져서 학습이 제대로 이루지지 않는 문제가 발생함
→ 학습이 수렴되지 않고 특정 층들의 가중치들이 업데이트가 되지 않는 문제가 생김
•
RNN 모델들에서 기울기 폭발문제(Gradient Explosion Problem)과 Long-term Dependency 문제가 발생
◦
기울기 폭발문제(Gradient Explosion)
: RNN 네트워크가 깊어지면 시간적 순서에 따라서 연속적인 상태 업데이트가 이루어지기 때문에 기울기가 계속 누적되 역전파 중에서 기울기가 급격하게 커져 수렴하지 않고 발산하게 되는 문제가 발생
◦
Long-Term Dependency
:RNN에서 입력 간격이 길어지면 네트워크가 이전의 정보를 기억하지 못하는 문제
2.
ResNet(2015)
•
Very Deep Networks(152 layer) using residual connection(잔차연결)
•
Residual connection (=Skip connection)
◦
Skip connection을 통해 여러 층을 건너뛰어서 바로 출력에 더해주는 구조
→ 입력과 출력 사이의 잔차부분만 학습하게 됨
→
◦
원래 Deep Network는 깊이가 깊어질 수록 고차원의 비선형 변환 을 학습해야하는데, Residual Connection을 통해서 각 블록이 잔차 만 학습하기 때문에 최적화가 쉬움
◦
Conv layer와 FC layer로만 이루어진 층에 대한 성능 테스트 결과 더 깊은 구조의 성능이 더 안좋은 결과를 보였지만, Residual connection에서는 망이 깊어질수록 에러가 작아짐.
6. SENet
•
Squeeze-and Excitation Networks
•
Squeeze 기법
◦
각 채널별 가중치를 계산하기 위해 사용
•
Excitation 기법
◦
채널 수를 축소했다가 다시의 원래의 채널 수를 되돌림, 채널 간의 관계성을 살피는 목적
•
최종적으로 각 feature map에 가중치를 계산