CNN의 주요 모델 - VGGNet
안녕하세요, 지난 시간부터 CNN의 주요 모델들에 대해서 다루고 있는데요, 오늘은 두 번째로 VGGNet을 다뤄보려고 합니다.
VGGNet 모델
년도 별 CNN 모델
VGGNet은 옥스포드 대학의 연구팀에 의해 개발된 모델로써, 2014년 ILSVRC에서 준우승한 모델입니다. 이 모델은 이전에 혁신적으로 평가받던 AlexNet이 나온지 2년만에 다시 한 번 오차율 면에서 큰 발전을 보여줬습니다.
위 그림은 2010년부터 2015년까지 ILSVRC에서 CNN 모델들이 보여준 오차율과 층(layer)의 깊이를 나타냅니다. VGG가 등장한 2014년에는 그 전 모델보다 층의 깊이가 확연히 증가했다는 특징이 있습니다. 심지어 15년 모델은 152개 층을 가졌는데, 이를 통해 CNN의 층이 깊어질 수록 성능이 좋아진다는 것을 추론할 수 있습니다. 그렇다면 VGGNet이 어떤 모델을 가지고 있는지 살펴봅시다.
VGGNet의 구조
VGG의 구조
VGGNet의 원본 논문에서는 네트워크의 깊이를 깊게 조절하는 것이 CNN의 성능에 어떤 영향을 주는지 확인하고자 했습니다. 이를 위해 연구진은 필터의 크기를 (3x3)으로 설정하여 이미지의 사이즈가 금방 축소되는 것을 막고 CNN의 깊이를 충분히 깊게 만들었습니다. 그림에서 'conv3-64'는 해당 층에서 (3x3) 필터 64개로 합성곱 연산이 수행된다는 것을 의미합니다. 또한 이러한 방법으로 총 6개의 구조(A, A-LRN, B, C, D, E)를 만들어 깊이에 따른 성능을 비교했습니다.
실험 과정에서 첫번째로 A(11층)과 A-LRN 두 구조의 성능을 비교했을 때 유의미한 효과가 없다는 것을 확인하였습니다. 이를 바탕으로 B 구조부터는 LRN을 적용하지 않고 층의 깊이만 늘려가는 식으로 성능을 비교했습니다. 그 결과, 층이 깊어질수록 이미지 분류 에러가 감소하는 것을 관찰할 수 있었습니다. 위에서 추론했던 것이 증명된 셈입니다.
Filter(3x3)
3x3 / 5x5 Filter 비교
VGGNet은 (3x3) 필터를 사용합니다. 이론적으로는 (5x5) 필터를 한 번 사용하는 것과 동일한 성능을 보여야하지만, 연구진이 테스트한 결과 (3x3) 필터를 여러 번 사용하는 방법이 더 좋은 성능을 보였습니다. 그 이유로는 크게 두 가지 정도가 있습니다. 첫 번째로, 필터의 중첩이 활성화 함수 ReLU를 더 많이 사용하도록 만들기 때문입니다. 이는 최종적으로 정보를 분류하는 결정 함수가 더 잘 학습하도록 영향을 끼칩니다. 두 번째는 (3x3) 필터를 사용하면 학습해야 할 파라미터의 수가 줄어들기 때문입니다. 이것은 자연스럽게 학습 속도에 긍정적 영향을 끼칩니다.
위에서 VGG가 준우승을 했다고 언급했습니다. 그렇다면 어째서 우승한 모델이 아닌 VGG가 더 많이 회자되는 것일까요? 그 이유는 VGG 모델의 단순한 구조에 있습니다. 당시 성능이 가장 좋았던 모델은 GoogleNet이었습니다. 그러나 그 구조가 복잡하여 사용하기 어렵다는 단점이 있었기 때문에 VGG보다 덜 회자되었던 것입니다. 그 결과, VGG를 기본 모델로 하는 수 많은 발전된 모델이 등장합니다.
오늘은 CNN의 대표적 모델 중 하나인 VGG에 대해서 알아보았습니다.