본문 바로가기
Deep Learning/[논문] Paper Review

Inception V2/3

by a._muj 2023. 7. 6.
728x90
반응형

 

 

 

1. Intro
  • CNN이 발전하면서 모델 크기나 계산 효율성 때문에 한계 발생.
  • 이를 해결하기 위해 아래와 같은 방식을 소개함
  • 아래 방법으로 ILSVRC 2012 daset으로 top1 error가 17.2%, top5 error가 3.58%를 달성

 

  • VGGNet은 성능은 좋지만 파라미터 개수가 많아서 비용 많이 발생
  • Inception은 파라미터 개수 줄이고 성능 좋다는 결론이 나옴
  • inception이 구조가 복잡해서 오히려 최적화 방해가 된다는 결과 발생. 오히려 효율성이 떨어짐⇒ 이 친구는 구조가 복잡해서 수정하기 어렵 + 단순 확장의 경우 오히려 계산 오래 걸리게 됨
  • ⇒ 어떤 이유로 인해 효율성이 좋은지 정확하게 알 수 없어서 새로운 곳에 적용하기 어렵
  • 해서 단점들을 개선하기 위해 나온 것이 논문임.
2. Characters
2-1) Factorization into smaller convolutions (더 작은 합성곱으로 분해)
  • 5x5 , 7x7 conv ⇒ 3x3 conv로 분해하면 연산량 및 파라미터 감소
  • 5x5 conv의 경우, 25번의 연산을 수행.
  • 반면 3x3 conv 2번의 경우, 총 18번 연산 수행
  • 따라서 연산량이 확 줄어드는 것을 볼 수 있음※ 인접한 unit 간의 가중치 공유해서 파라미터 수를 줄여줌

⇒ VGG에서 소개된 방법

2-2) Asymmetric Convolutions (비대칭 합성곱 분해)
  • 3x3 conv를 더 분해 할 수 있을까? 에서 나온 답.
  • 2x2 conv로 분해하기
  • 하지만 실험해본 결과, 2x2 conv 보다 nx1 비대칭 conv로 분해하는 것이 더 효과적
  • 3x3 conv → 1x3 conv, 3x1 conv로 분해
  • 7x7을 1x7과 7x1로 분해한 inception module
  • Inception v2에서는 위와 같은 inception module 사용
2-3) Utility of Auxiliary Classifiers (보조 분류기의 활용)
  • 기존 googlenet에서 보조 분류기 활용하면 신경망 수렴에 더 효과적이라고 주장(모델이 길어서 기울기 소실 발생). but 효과 없다고..
  • 이 보조 분류기에 drop out이나 batch norm이 있었을 때, 성능 향상 결과가 더 나았음 ⇒ 그래서 정규화 효과에 더 가까워요! 라고 주장하게 됨
2-4) Efficient Grid Size Reduction (효율적인 그리드 크기 축소)
  • pooling의 문제점
    • 일반 CNN 신경망의 경우 feature map 사이즈 감소를 위해 pooling 연산 진행
    • representational bottlenet(pooling 하게되면 size 줄면서 정보량 줄어드는 것을 말함) 피하기 위해 필터 수 증가시킴
    • pooling을 통해 연산량은 절반으로 줄지만, 정보 손실도 발생
    • 왼쪽 사진의 경우, pooling을 거친 연산 ( 절반으로 됨)
    • 오른쪽 사진의 경우 pooling 안거친 연산 ⇒ 더 많은 연산량 필요
  • stride=2, conv layer의 병렬 사용
  • 표현력 감소x, 연산량 감소o
  • 문제 해결!
  • 왼쪽보면 stride=2
  • 오른쪽은 병렬 예시
2-5 ) Model Regularization via Label Smoothing
  • hard label을 soft label로 스무딩 하는 것을 의미
    • hard label: one-hot-encoded vector(정답은1, 나머지는 0으로 된 벡터)
    • soft label: label을 0~1 사이 값으로 구성
  • 왜 함?: 레이블을 부드럽게 해서 일반화 성능을 높이고자 사용(=정답에 대한 확신을 감소시켜서 일반화 성능 내고자)

ex) 기존 label : [0,1,0,0] ⇒ [0.025, 0.925, 0.025, 0.025]로 변경

3. Inception -v2/v3
0. Inception v1 - googlenet
1. Inception v2
  • 42층의 신경망
  • 연산량은 Googlenet보다 2.5배 많지만 VGG보다 효율적
  • 각 inception module에서 conv 연산의 경우, zero-padding 적용.
  • 이외에는 zero-padding 적용x
  • 3종류의 inception module 사용함
    1. 3x3 Conv 필터 사용 => 연산량 절감
    1. n x n 의 형태의 Conv를 1xn과 nx1 Convolution으로 분해 => 연산량 절감
    1. inception v1의 초반부에 있던 보조 분류기 삭제
    1. stride 2를 사용 => 이미지 사이즈 축소, 계산량 절감
2. Inception v3
  • Inception-v2에서 BN-auxiliary + RMSProp + Label Smoothing + Factorized 7x7 을 다 적용한 모델
4. Outro
  • 당시 최고의 에러율을 상당히 개선시켰으며, 2014 ILSVRC GoogLeNet ensemble error대비 거의 절반으로 줄임.
  • 또한, 79*79 size 같이 lower resolution에서도 높은 성능을 얻음.
  • 높은 성능을 유지하면서도 낮은 비용을 들여 네트워크를 설계

 

 

728x90
반응형

'Deep Learning > [논문] Paper Review' 카테고리의 다른 글

Fast R-CNN  (0) 2023.07.06
Transformer  (0) 2023.07.06
ELMO  (0) 2023.07.06
SegNet  (0) 2023.07.06
CycleGAN  (0) 2023.07.05