이번 포스팅에서는 딥러닝 중 CNN의 역사에 대해 알아보도록 하겠습니다. 영상이나 이미지에 대한 처리 알고리즘으로 CNN을 많이 쓰는데요. CNN을 왜 사용하게 되었고 어떻게 발전해 왔는지 확인해 보도록 하겠습니다.
왜 CNN(Convolutional Neural Network)일까?
우리는 먼저 왜 합성곱을 사용했을까 생각해 볼 필요가 있습니다. 이유는 두 함수를 합성곱 하면 Input으로 들어오는 신호, 이미지, 영상 등을 우리가 원하는 함수로 만들어 낼 수 있기 때문입니다. 그래서 영상처리를 위해 고안된 다층신경망이라 불리기도 합니다. 기본적으로 이 모델은 컨볼루션 과정과 서브샘플링 과정 두 단계로 진행합니다.
모델의 특징이 가중치를 공유하기 때문에 학습속도가 빠르고 일반화 능력이 우수하다는 장점을 가진 모델입니다. 더 자세한 것은 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의 최적의 지역적 희소 구조를 찾아내고 이를 사용 가능한 자원으로 근사하는 목적
'딥러닝' 카테고리의 다른 글
텐서(Tensor)의 개념: 텐서플로우 vs 파이토치 vs 케라스 (1) | 2024.01.09 |
---|---|
RNN(순환 신경망)의 역사: LSTM, seq-to-seq, 트랜스포머 (0) | 2024.01.08 |
딥러닝의 암흑기 원인: 기울기 소실(Vanishing Gradient) (2) | 2024.01.03 |
퍼셉트론과 역전파(Back propagation) (0) | 2024.01.02 |
딥러닝(Deep Learning)의 역사: 왜 주목 받고 있나? (1) | 2023.12.29 |