1 분 소요

스탠포드대학에서 발표한 CNN 강의 영상을 듣고 자료를 정리했습니다.

Lecture 9 | CNN Architectures

CNN을 활용한 모델들을 알아보자.

1. AlexNet (2012)

image

  • 최초의 Large Scale CNN 모델
  • Convolution Layer와 Pooling Layer가 반복적으로 진행되는 패턴
  • LeNet 보다 layer가 많다.
  • 활성함수: ReLU
  • 정규화: Dropout
  • 최적화: SGD momentum
  • if input 227 * 227 * 3,
    • output 55 * 55 * 96
    • param 개수 11113*96 = 348348



2. VGGNet (2014)

image

  • Conv Layer와 Pooling Layer가 반복적으로 진행되는 패턴
  • AlexNet 보다 더 깊고(layer개수 많아짐) 3 * 3 size filter 사용
  • GoogleNet 다음으로 성능이 우수하다.
  • 다른 데이터에서도 특징 추출이 잘 되고, 일반화 능력이 뛰어나다.



3. GoogleNet (2014)

image

image

  • 네트워크 더 깊어짐(22개의 layer)
  • 연산 효율 증가
  • Inception module 여러 개 쌓음
    • inception module 내부에 다양한 필터들이 병렬로 존재
  • FC-Layer 없앰 → 파라미터 줄일 수 있음
  • 문제: 레이어, pooling을 거칠 때마다 Depth가 늘어남 → 계산량이 커짐
  • 방법: Bottleneck Block(1 * 1 conv) 사용 = 입력을 더 낮은 차원으로 보내 계산 복잡도를 줄일 수 있다.

image

  • 보조 분류기(일반적으로 Average Pooling) → Gradient Vanishing 문제 해결



4. ResNet (2015)

image

  • 깊은 네트워크 (152 layer)
  • residual connection 사용
  • 문제: 모델이 깊어질 수록 최적화 어려워 성능 저하되기 쉬움
  • 해결: identity mapping = 얕은 네트워크를 가져와 input을 output으로 내보냄
    • residual block안에 identity mapping을 사용해 출력단으로 보내고, 실제 layer은 그 안에 추가된 F(x)변화량 만 학습
    • 최종 출력값: input X + 변화량(F(x))
  • 마지막 FC layer 없앰 → 파라미터 수 줄임 → Global Average Pooling 사용하여 FC layer 하나만 갖게 함
  • Conv layer 다음 Batch Normalization(BN)을 사용한다.
  • 초기화는 Xavier를 사용하는데 2로 나눈 것을 쓴다. 이렇게 하면 SGD+Momemtum에서 좋은 성능을 가진다.
  • learning rate 는 0.1로 설하고 loss가 줄어들지 않도록 조금씩 줄여준다.
  • dropout은 사용하지 않는다.
  • weight decay는 1e-5 이다



5. GoogleNet + ResNet (2017)

image

  • 2017년 기준으로 모델 성능을 비교했을 GoogleNet과 ResNet을 결합한 모델이 가장 좋은것을 확인할 수 있다.(원의크기 메모리 크기 , x축: 연산량, y축: 성능(정확도))
  • VGG : 기장 많은 메모리를 요구하고 연산량도 많다.
  • GoogleNet : VGG와 비교해서 성능은 비슷하지 메모리와 연산량을 줄였다.
  • AlexNet : 연산량은 적고 성능도 낮다. 메모리또한 많이 요구된다.
  • ResNet : 메모리나 연산이 중간이고 성능이 제일 좋다.

댓글남기기