Inception-v1 - 2014 (정리중)

TaeWoo Lee / Kris·2022년 7월 13일
0

Paper_study

목록 보기
3/3

Going deeper with convolutions(Inception-v1) - 2014


1x1 Convolution

  • 장점
    • 계산량을 줄일 수 있다.
    • 차원 축소가 가능하다.
      • 차원 축소로 인해 우리는 보다 핵심적인 데이터만 뽑아낼 수 있게 됨
    • 비선형성의 증가
      • 더욱 복잡한 패턴을 인식하는 데 더 좋은 효과
    • overfitting 방지 가능
      • 파라미터 계산량이 작기 때문에, overfitting을 방지

Abstract

  • architecture 의 주요 특징은 network 내부의 computing resources의 활용도 향상
  • crafted design에 의해 계산 비용을 유지하면서, network 의  depth and width 을 늘림
  • architectural decisions 은 Hebbian 와 multi-scale processing의 직관성에 기반

1. Introduction

  • 본 논문에서 우리는 컴퓨터 비전을 위한 효율적인 심층 신경망 아키텍처에 초점을 맞출 것
  • deep의 의미
    • “Inception module” 의 형태로 새로운 수준의 조직을 도입
    • 네트워크 깊이를 증가시킨다는 보다 직접적인 의미
  • LeNet-5 를 시작으로,   convolutional neural networks (CNN) 은 일반적으로  표준구조를 가지고 있음
    • stacked convolutional layers (선택적으로 대비 normalization and max-pooling)에 하나 이상의 fully-connected layers가 따라오는 구조
  • ImageNet 과 같은 대용량 데이터에서 최근 trend는 drouput로 overfitting문제를 해결하면서  레이어 수 와 레이어 사이즈를 늘이는 것
  • Inception layers은  여러 번 반복되어 GoogLeNet 모델의 경우 22-layer deep model로 이어짐
  • 모델에서 network에 1 × 1 convolutional 을 추가되어 그 깊이가 증가
    • 1 × 1 convolutions 두가지 목적
      • 장 중요한 것은 그것들은 주로 계산 병목 현상을 제거하기 위한 차원 축소 모듈로 사용
      • 네트워크의 크기를 제한할 수 있다는 것
  • 이를 통해 성능을 크게 저하시키지 않으면서 , 네트워크의 depth뿐만 아리라  width도 증가가능

3. Motivation and High Level Considerations

  • deep neural networks 의 성능을 향상시키는 가장 간단한 방법은 size를 늘리는 것
    • depth의 증가 - the number of network levers (layer)
    • width의 증가 - the number of units at each level 
  • 두가지 단점
    • size가 클 수록 parameters의 수가 많아져 확장된 network가 over-fitting되기 쉬움
    • 네트워크의 크기를 늘리는 것은 컴퓨터 자원의 사용이 크게 증가 -> 컴퓨터 계산 능력이 크게 요구
  • 두 가지 문제를 해결하는 근본적인 방법은 sparsity 을 도입하고 , fully connected layers 를 convolutions내부에서도 layers by the sparse로 대체
    • spare connected : 다 연결되는 것이 아님
    • fully connected : 다 연결

4. Architectural Details

  • Inception architecture의 구성 요소는 1×1, 3×3 and 5×5로 제한
  • 계산량이 많은 3x3이나 5x5 convolution 이전에는 reduction을 위한 1x1 convolution이 사용
  • Inception network는 위 유형의 모듈들이 서로 겹쳐져 있는 네트워크이며, grid의 해상도를 절반으로 줄이기 위해 stride 2가 있는 max-pooling layers 를 사용
  • Inception 구조는 계산 자원을 효율적으로 사용하므로, 성능은 약간 떨어지더라도 저렴한 계산 비용으로 깊고 넓은 네트워크를 구축할 수 있다

5. GoogLeNet

  • Inception modules 내부를 포함한 모든 convolutions은 rectified linear activation를 사용
  • receptive field의 크기는 the RGB color space with zero mean에서  224×224
  • 이 네트워크는 parameters 가 있는 layer만 셀 때 22 layers deep 
    pooling까지 계산하면 27 layers
  • 네트워크 구축에 사용되는 전체 계층(independent building blocks) 수는 약 100개
  • fully connected layers에서 average pooling 사용하면 top-1 정확도를 0.6% 정도 증가했으나 dropout의 중요성은 fully connected layers층이 없음에도 중요한 역할을 보임
  • auxiliary classifier를 포함한 extra network on the side의 정확한 구조
    • filter size  5×5 와 stride 3 인 average pooling layer 출력의 shape은 4×4×512 output for the (4a), and 4×4×528 for the (4d) stage
    • dimension reduction을 위한 1×1 convolution with 128 filters및  rectified linear activation
    • fully connected layer   1024 units 및  rectified linear activation
    • 70% ratio dropout layer
    • linear layer 를 사용한 softmax loss as the classifier 1000(predicting the same 1000 classes as the main classifier, but removed at inference time)

6. Training Methodology

  • 구글에서 개발 된 대규모 분산 학습 프레임워크로, 적당한 양의 모델과 데이터 병렬성을 이용하여 학습
  • 모바일이나 임베디드 시스템 상에서도 inference가 가능하도록 설계하는게 목적이었기 때문으로 생각
  • Competition 이후에는, 종횡비를 [3/4, 4/3]로 제한하여 8% ~ 100%의 크기에서 균등 분포로 patch sampling 하는 것이 매우 잘 작동한다는 것을 발견

7. ILSVRC 2014 Classification Challenge Setup and Results

  • top-1 accuracy rate는 ground truth를 highest score class와 비교하여 측정
  • top-5 error rate는 ground truth을 predicted score 상에서의 최상위 5개 class와 비교하여 측정
  • AlexNet보다 더 적극적인 cropping 방식을 적용

8. ILSVRC 2014 Detection Challenge Setup and

9. Conclusions

  • Object detection에서는 context의 활용 / bounding box regression을 수행하지 않아도 경쟁력 있는 성능을 보였으며, 이는 inception architecture의 강점에 대한 또 다른 증거가 된다. 또한, classification과 detection의 결과들은, 유사한 크기의 훨씬 비싼 non-Inception-type 네트워크와 성능이 비슷할 것으로 예상

참조자료

profile
일단 저지르자! 그리고 해결하자!

0개의 댓글