본문 바로가기
딥러닝

CNN(합성곱 신경망)의 역사: 왜 CNN인가?

by 데이널 2024. 1. 4.

이번 포스팅에서는 딥러닝 중 CNN의 역사에 대해 알아보도록 하겠습니다. 영상이나 이미지에 대한 처리 알고리즘으로 CNN을 많이 쓰는데요. CNN을 왜 사용하게 되었고 어떻게 발전해 왔는지 확인해 보도록 하겠습니다. 
 

 

왜 CNN(Convolutional Neural Network)일까?

우리는 먼저 왜 합성곱을 사용했을까 생각해 볼 필요가 있습니다. 이유는 두 함수를 합성곱 하면 Input으로 들어오는 신호, 이미지, 영상 등을 우리가 원하는 함수로 만들어 낼 수 있기 때문입니다. 그래서 영상처리를 위해 고안된 다층신경망이라 불리기도 합니다. 기본적으로 이 모델은 컨볼루션 과정과 서브샘플링 과정 두 단계로 진행합니다.
모델의 특징이 가중치를 공유하기 때문에 학습속도가 빠르고 일반화 능력이 우수하다는 장점을 가진 모델입니다. 더 자세한 것은 CNN 알고리즘 파트에서 자세히 살펴보겠습니다. 

  • 컨볼루션 과정 : 데이터를 특징으로 추출하여 패턴을 파악
  • 풀링 과정 :
    • 서브샘플링으로 차원축소를 통해 층의 사이즈를 줄여줌
    • 풀링 과정을 통해 데이터 노이즈가 감소되고 일관적인 특징만을 얻을 수 있게됨

그렇다면 대표적인 CNN 모델들을 살펴보겠습니다. CNN 모델들은 성능과 정확도를 높여가는 방향으로 발전 해 나갔습니다.

CNN의 역사
CNN의 역사

LeNet-5

  • 초기(1998) 6층 CNN 모델로서 3개의 컨볼루션 층과 2개의 서브샘플링 층, 1개의 완전연결층 구조
  • 컨볼루션 과정에서 시간이 많이 사용되기 때문에 같은 크기의 MLP보다 실행 속도가 3배 정도 느린 단점 존재

Alexnet

  • Hinton 교수진이 2012년에 만든 딥러닝 혁명을 이끈 8층 CNN 모델(5개의 컨볼루션 층과 3개의 완전연결층 구조)
  • 활성함수로 ReLU를 사용
  • GPU를 사용해 컨볼루션 연산을 수행하기 때문에 Lenet5에 비해 학습시간이 굉장히 단축됨
  • 완전 연결층에 Drop-out 정규화 방법을 적용해 과다학습을 방지(26->16%로 현저히 줄임)


GoogLenet

  • 22층 CNN으로 인셉션 모듈이라는 빌딩 블록을 반복 사용하는 모델
  • 물체 분류와 물체 검출 과제에서 신기록을 갱신(5% 인간보다 낮은 3%)
  • 제한된 계산 자원을 최대한 이용하여 신경망을 설계한 구조인 인셉션 모듈 적용
  • 인셉션 모듈은 CNN의 최적의 지역적 희소 구조를 찾아내고 이를 사용 가능한 자원으로 근사하는 목적