대표적인 CNN 모델들

Lee Tae-Sung·2021년 12월 9일
0

대표적인 CNN 모델들

ImageNet Challenge에서 좋은 선능을 보여 검증된 CNN 모델들을 말함.

CNN 기반의 네트워크의 backbone이 됨

backbone이란?
https://en.wikipedia.org/wiki/Backbone_network

  • AlexNet
    CNN의 기반을 닦음
    GPU를 사용한 CNN 학습
    Activation함수로 ReLU 사용
    Data augmentation 활용
    CNN에 dropout도입
    => 가장 표준이 되는 CNN

Data Augmentation이란?
데이터의 label을 유지한 채로 상하좌우 반전, 회전, 노이즈 삽입 등등

  • VGGNet
    Very deep convolutional networks for large-scale image recognition
    Alex같은 경우는 9개의 layer를 가지는데 VGGNet은 19개의 layer를 가짐.
    또한 이미지 데이터도 144million parameters
    => 핵심 아이디어는 많이 하니 좋아지더라

왜 3x3 Convfilter만 사용?
단순하게 생각하면 위의 아이디어처럼 많이 하면 좋지 않을까?

3x3이 5x5, 7x7과 비교했을때 좋다
결국 동일한 효과를 내는 과정에서 레이어 수가 더 많고
파라미터의 수는 더 적다

  • ResNet
    현재에도 많이 사용되는 모델
    VGGNet의 아이디어처럼 사람들이 Conv layer를 계속 더 많이 쌓기 시작함.
    그런데, 그렇다고 해서 성능이 꼭 향상되지 않았음
    Residual block을 이용해 많은 Conv layer 학습 성공
    Skip connection이용
    152layer, 1001layer까지 확장
    => 지금 사용하려면 이 모델을 쓴다고 생각하면 됨.

최종적으로 인간보다 더 좋은 성능을 보이게 됨.

  • Residual block이란?
    Residual은 출력값과 입력값의 차이(잔차)
    많은 layer들이 겹치다보니 값이 뭉게지는 문제를 skip connection을 이용하여 이전 layer의 feature를 직접 받아옴.
    주로 여기에 쓰는 예가 identity function
    => layer를 한차례 점핑해서 넘김.

  • Bottleneck Block
    1x1 convolution을 활용하여 학습 parameter수와 연산량을 줄이는 구조
    => 뭔가 1x1 convolution을 추가해 넣으니 효율이 좋아짐. 왜인지는 모르겠다!!!!!!!!!!!!!!!!!!!!!!!!!!(?)

그 외 다른 CNN Model

  • 성능 향상
    주로 그냥 ResNet 씀
  • 모델 경량화
    MobileNet, SqueezeNet, ShuffleNet, ...
profile
긍정적인 에너지를 가진 개발자, 이태성입니다.

0개의 댓글