딥러닝 강의 중 이미지 처리를 위한 컨볼루션 네트워크의 발전 과정과 주요 모델들에 대해 배운 내용을 정리해보았다. 특히 이미지넷 챌린지를 통해 발전해온 CNN 아키텍처의 혁신적 설계 원리가 흥미로웠다.
1. 이미지넷 챌린지가 CNN 혁명의 촉매제가 되었다.
이미지넷 대회(ILSVRC)는 2010년부터 2017년까지 진행된 대규모 이미지 인식 경연대회로, 약 1,000만 장의 이미지를 1,000개 카테고리로 분류하는 문제였다. 이 대회에서 2012년 AlexNet의 등장을 시작으로 CNN의 성능이 극적으로 향상되었다. 에러율이 2012년 15.3%에서 2017년 2.6%까지 급격히 감소했는데, 이는 사람의 평균 에러율(약 5%)보다도 낮은 수준이다.
2. 네트워크 깊이와 구조의 혁신이 성능 개선의 핵심이었다.
2014년 이전까지는 레이어 수가 12개를 넘지 않았다. 그러나 GoogLeNet과 VGGNet은 약 20개 레이어를 사용하면서도 더 나은 성능을 보여줬다. 이는 깊은 네트워크가 더 복잡한 특징을 포착할 수 있음을 증명했다. 더 깊어진 네트워크는 그러나 파라미터 수 증가와 그래디언트 소실 문제를 가져왔는데, 이를 해결하기 위한 다양한 아키텍처 혁신이 이루어졌다.
3. Inception 모듈은 효율적인 파라미터 사용의 대표적 예시다.
GoogLeNet의 핵심인 Inception 모듈은 다양한 크기의 필터(1x1, 3x3, 5x5)를 병렬로 사용하고 결과를 결합한다. 이 방식은 다양한 스케일의 특징을 동시에 포착하면서도 파라미터 수를 효율적으로 관리할 수 있게 해준다. GoogLeNet은 9개의 Inception 모듈을 연결하여 깊은 네트워크를 구성하면서도 파라미터 수를 적절히 유지했다.
4. 1x1 컨볼루션은 단순하지만 강력한 도구다.
1x1 컨볼루션은 세 가지 중요한 역할을 한다. 첫째, 비선형성(nonlinearity)을 추가해 네트워크의 표현력을 높인다. 둘째, 채널 차원에서 완전 연결 레이어와 유사한 효과를 제공한다. 셋째, 가장 중요하게는 채널 수를 효율적으로 조절할 수 있게 해준다. 특히 채널 수를 줄여 파라미터 수를 대폭 감소시키는 효과가 있다.
5. Bottleneck 구조는 파라미터 효율성의 대표적 예시다. 3x3 컨볼루션을 바로 적용하는 대신, 1x1 컨볼루션으로 채널 수를 절반으로 줄이고, 3x3 컨볼루션을 적용한 후, 다시 1x1 컨볼루션으로 채널 수를 원래대로 복원하는 방식이다. 이 방식은 파라미터 수를 약 1/3로 줄이면서도 성능은 유지할 수 있다. 구조는 더 복잡해 보이지만 실제 학습 파라미터는 감소하고, 비선형 레이어는 오히려 증가해 모델의 표현력이 향상된다.
6. Inception-v4는 모듈의 다양화와 체계적 조합으로 발전했다.
Google의 후속 모델인 Inception-v4는 세 가지 유형의 Inception 모듈(A, B, C)과 Reduction 모듈을 체계적으로 조합했다. 특히 복잡한 연산을 여러 작은 연산으로 분해하는 접근법(예: 7x7 대신 1x7과 7x1 연속 적용)을 통해 파라미터 수를 줄이면서도 유사한 효과를 얻었다. 또한 Average Pooling을 사용해 특징 맵을 압축함으로써 Flatten 없이도 최종 분류층으로 직접 연결할 수 있게 했다.
7. 정교한 아키텍처 설계가 단순한 파라미터 증가보다 효과적이다. CNN 모델들의 발전 과정은 단순히 레이어를 깊게 쌓거나 파라미터 수를 늘리는 것보다, 효율적인 구조 설계가 더 중요함을 보여준다. 특히 제한된 계산 자원 내에서 최대 성능을 내기 위해서는 파라미터 효율성과 네트워크 표현력 사이의 균형이 중요하다.
결론적으로, CNN 아키텍처의 발전은 단순한 모델의 확장이 아니라 효율성과 표현력을 모두 고려한 정교한 설계의 결과이다. 특히 Inception 모듈과 1x1 컨볼루션, Bottleneck 구조는 딥러닝 모델 설계의 핵심 원리를 보여주는 뛰어난 예시다. 파라미터 수를 최소화하면서도 네트워크의 표현력을 최대화하는 이런 접근법은 현대 딥러닝 아키텍처 설계의 기본 원칙이 되었다.