VGGNet
Simonyan, K., & Zisserman, A. (2014). Very deep convolutional networks for large-scale image recognition. arXiv preprint arXiv:1409.1556.
논문 요약
- ILSVRC 2014 대회에서 2등을 차지한, Karen Simonyan과 Andrew Zisserman이 만든 CNN 모델
- VGGNet은 네트워크의 깊이가 모델이 좋은 성능을 보이는 데 중요한 역할을 한다는 것을 보여줌
- VGGNet의 필터 크기는 3x3, stride 1, 제로 패딩 1의 Conv 레이어로 이루어져 있으며, 필터 크기 2x2 (패딩 없음)의 Max-pool을 Pooling 레이어로 사용함
- ILSVRC 대회에서는 GoogLeNet 보다 이미지 분류 성능은 낮았지만, 다른 연구에서는 좋은 성능을 보임. (논문의 Appendix에서 확인할 수 있음)
- 최근에는 이미지 특징(feature)을 추출하는 데 이용되는 등 기본 네트워크 모델로 활용되고 있음
- 매우 많은 메모리를 이용하여 연산한다는 단점이 있음
주요 특징
VGGNet 모델 구조
[VGGNet 모델 구조]
1. ReLU non-linear를 여러 개 사용할 수 있다.
Conv 레이어에서 필터 크기를 3x3으로 한 경우, 큰 필터로 구성한 것보다 여러 레이어로 나누었기 때문에 중간에 ReLU 비선형(non-linearity)을 더 많이 들어갈 수 있다. 따라서 decision function이 잘 학습될 수 있다.
2. 학습해야 할 파라미터(weight) 수가 줄어든다
VGGNet의 특징은 작은 컨볼루션 필터(3x3, 1 strides)로 깊은 레이어(16-19 weight layers)를 만들어 좋은 성능을 낸다.
> VGGNet의 구성
5x5 filter 1개 = 3x3 filter 2개 (2 strides)
7x7 filter 1개 = 3x3 filter 3개 (2 strides)
모든 레어어가 c개의 Channel을 가질 경우, 파리미터를 계산하다면 다음과 같다.
5x5 Conv Layer = 5^2xc^2 = 25xc^2
3x3 Conv Layer (2 strides) = 2x(3^3xc^2) = 18xc^2
-> 5x5 conv 사용 시, 3x3 conv 보다 파라미터 수가 39% 증가
7x7 Conv Layer = 7^2xc^2 = 49xc^2
3x3 Conv Layer (2 strides) = 3x(3^3xc^2) = 27xc^2
-> 7x7 conv 사용 시, 3x3 conv 보다 파라미터 수가 81% 증가
즉, 학습해야 할 파라미터의 수가 줄어들기 때문에 정규화(regularization) 문제를 줄일 수 있다.
(AlexNet 모델은 11x11 filters, 4 strides로 이루어져 있다.)
따라서, 큰 필터를 갖는 Conv 레이어 보다 작은 필터로 여러 개의 Conv 레이어를 갖는 것이 더 적은 파라미터를 이용하면서 더 좋은 feature를 뽑을 수 있다.
하지만, FC(Fully Connected) 레이어가 세 개이기 때문에, 파라미터가 너무 많아진다. (파라미터 수 약 1억2200만) 역전파(back propagation)를 할 때 Conv 레이어의 중간 결과를 저장하기 때문에 많은 메모리 공간을 차지한다는 단점이 있다.
논문 리뷰
장점
- CNN 주요 모델에 다른 데이터셋으로 테스트한 결과도 첨부하므로써, input 데이터에 따라 VGGNET 모델이 우수한 성능을 낼 수 있음을 증명함.
-> 데이터셋에 따라 모델의 성능이 좌우됨을 증명함. - AlexNet 모델 논문 보다 연구 과정이 더 친절하게 설명되어 있음.
단점
- A 모델에만 LRN을 적용한 뒤, 성능이 좋지 않음을 증명하는 부분은 논리가 다소 부족할 수 있음.
-> A 외 다른 모델에도 적용하여 성능 평가를 했으면 설득력이 더 강했을 것 같다!
References
Module 2: Convolutional Neural Networks. http://cs231n.github.io/convolutional-networks/
http://nmhkahn.github.io/Casestudy-CNN
'20. 인공지능과 딥러닝' 카테고리의 다른 글
[딥러닝개념] 딥러닝 효과적으로 학습하기(2) (ft. regularization) (0) | 2019.01.13 |
---|---|
[딥러닝개념] 딥러닝 효과적으로 학습하기(1) (ft. regularization) (0) | 2019.01.13 |
[논문리뷰] RNN :: LSTM(Long Short Term Memory) 톺아보기 (13) | 2019.01.05 |
[논문리뷰] CNN :: ResNet 톺아보기 (0) | 2018.12.02 |
[논문리뷰] CNN :: AlexNet 톺아보기 (0) | 2018.11.11 |
댓글