[논문 리뷰] VGGNet: VERY DEEP CONVOLUTIONALNETWORKSFORLARGE-SCALEIMAGERECOGNITION

2022. 6. 21. 16:43·Paper review/2D Classification
728x90
반응형

나의 정리

  • 네트워크의 깊이가 모델의 좋은 성능을 보이는데 중요한 역할을 한다는 것을 보여줌
  • 3x3, stride 1, zero padding 1의 filter를 3겹을 사용하여 7x7 필터와 같은 receptive field를 가진다.
    max-pooling도 사용.
  • 작은 사이즈 필터를 여러 번 나눠 적용하면 conv layer를 거칠 때마다 ReLU도 더 많이 통과하게 되어 non-linear 한 의사 결정을 더 잘하게 된다.
  • FC layer가 있어서 파라미터가 매우 많아 연산량이 매우 크다는 단점이 있다.

서론

  • large-scale image recognition에서 ConvNets의 깊이가 정확도에 끼치는 영향에 대한 논문
  • 3x3 매우 작은 필터를 사용하여 깊이가 깊은 네트워크를 평가한다.

소개

  • ConvNet 구조 디자인에서 깊이의 다른 중요한 측면을 언급한다.
  • 마지막에 구조의 파라미터를 고치고 꾸준하게 Conv layer를 추가하여 깊이를 늘려나간다.
  • 매우 간단한 파이프 라인을 가지고 좋은 성능을 낸다.

ConvNet configurations (환경)

ConvNet 깊이로 개선한 부분을 측정하기 위해 다른 layer(AlexNet, Ciresan) config와 동일하게 세팅을 해준다.

 

Architecture

더보기

input : 224x224x3 (RGB)

preprocessing : subtracting mean RGB value (data를 원점으로 이동)

filter size : 3x3 (매우 작음), 1x1 stride : 1, padding : spatial padding 1

pooling : max pooling 2x2, stride : 2

FC layers : 총 3개, 1,2 번째 4096채널, 세 번째는 1000 채널(dataset class 개수) 세 번째 FC layer는 softmax layer 모든 히든 layer는 ReLU를 포함, 어떤 네트워크도 LRN(local response normalization)을 포함하지 않는다.

  • Configurations
    • A~E 까지A~E까지 깊이가 다른 모델들이 있다. 처음 layer에서는 64부터 마지막 layer는 512까지 Channel을 늘린다.

  • A~E 까지 깊이가 다른 모델들이 있다. 처음 layer에서는 64부터 마지막 layer는 512까지 Channel을 늘린다.
  • Discussion2개의 3x3이 5x5의 효과를 낸다.
    • 왜 single 7x7이나 5x5를 쓰지 않고 stack of three 3x3을 쓸까?
      1. 3개의 non-linear rectification layer를 사용함으로써 decision function이 더 식별을 잘하게 한다.
      2. 파라미터의 개수를 줄이기 위해.
  • receptive field가 7x7, 11x11과 같이 크지 않고 매우 작은 3x3으로 사용한다.

Classification Framework

  • Traininginitialization이 중요한데, A를 임의로 initialize 하여 학습하고, 더 깊은 구조를 학습할 때 처음 4개 Conv layer와 마지막 3개의 FC layer를 A의 layer로 초기화해준다.
    임의로 초기화 할 때는 평균 0, 분산 10^-2의 정규 분포에서 정하고, bias는 0으로 초기화한다.
    논문 제출 후 pre-training 없이 가중치 초기화가 가능한 것을 알았다.
    rescale parameter S 정하는 법
    1. fix S → 256, 384 2가지로 고정 384로 할 때 시간 절약을 위해서 256으로 pretrained 된 가중치로 초기화를 해주고 작은 initial learning rate를 설정한다.
    2. multi-scale training → 각 train 마다 randomly sampling 해서 S를 정한다.
      주로 Smin = 256, Smax = 512로 한다. → scale jittering 같은 augmentation 효과를 가져온다.
      성능 개선을 위해 fix S=384로 pretrained 된 모델을 사용한다.
  • 224x224 input image를 rescaled해 random crop 한 뒤 augmentation으로 horizontal flip, random RGB color shift를 해준다.
  • Training procedure는 일반적으로 AlexNet을 따라한다.
    (multi-scale crop input sampling 빼고) multinomial logistic regression, mini-batch gradient descent with momentum batch size : 256
    momentum : 0.9
    regularization : weight decay(L2), dropout(처음부터 두 개의 FC layer에서 p=0.5)
    learning rate : initially set 10^-2, val accuracy가 개선이 안되면 10배 줄인다.
    learning rate는 총 3번 줄어든다.
    implicit regularization과 특정 layer의 pre-initialization 때문에 적은 epoch으로 학습이 가능할 것이라고 추측한다.
  • Testing
    1. input image를 사전 정의된 Q(test scale)로 등방성 rescale을 해준다. (Q는 S와 같을 필요 없다.)
    2. 첫 번째 FC layer는 7x7 Conv layer로 나머지 두 개의 FC layer는 1x1 Conv Layer로 변환된다.
    3. Fully-convolutional net이 이미지에 적용된다.
      • 결과
      • Channel 수가 class 수와 같으며 입력 이미지 크기에 따라 가변 공간 해상도를 갖는 클래스 점수 맵이 생긴다.
    4. 이미지에 대한 고정된 크기 벡터를의 클래스 점수를 얻기 위해 스코어 맵을 공간적으로 평균화한다. (sum-pool)
    5. horizontal flip을 해준 이미지와 원본 이미지의 소프트 맥스 클래스 포스터는 최종 점수를 얻기 위해서 평균화된다.
    test time에서는 전체 이미지에 적용되므로 sample muliple crop이 필요 없다.
  • Implementation Details

Classification Experiments

  • Single Scale Evaluation
    • 로컬 응답 정규화 (A-LRN)를 사용하는 것이 표준화 계층이 없는 모델 A에서 개선되지 않는다.
    • ConvNet 깊이가 증가함에 따라 분류 오류가 감소한다.
    • Training에 jittering을 사용하는 것이 더 좋은 성능을 발휘한다. (scale jittering)
    • 1x1 convolution filter를 사용하는 이유
      • Filter 수 조절
      • 연산량 감소 → bottle neck 구조
      • Non-linearity 증가
  • Multi-Scale Evaluation
    • scale jittering을 사용하는 것이 Single scale보다 좋은 성능이 나옴
  • Multi-Crop Evaluation
    • multi-crop이 dense 평가를 사용하는 것보다 조금 더 좋은 성능을 보인다.
  • ConvNet Fusion
  • comparison with the state of the art

Conclusion

  • Large scale image classification에서 매우 깊은 CNN을 통한 학습에 성공했다.
728x90
반응형

'Paper review > 2D Classification' 카테고리의 다른 글

[논문 리뷰] A Battle of Network Structures: An Empirical Study of CNN, Transformer, and MLP (2021)  (0) 2022.07.26
[논문 리뷰] MLP-Mixer: An all-MLP Architecture for Vision (2021)  (0) 2022.07.13
[논문 리뷰] Swin Transformer: Hierarchical Vision Transformer using Shifted Windows (2021)  (0) 2022.07.13
[논문 리뷰] ResNet: Deep Residual Learning for Image Recognition  (2) 2022.06.23
'Paper review/2D Classification' 카테고리의 다른 글
  • [논문 리뷰] A Battle of Network Structures: An Empirical Study of CNN, Transformer, and MLP (2021)
  • [논문 리뷰] MLP-Mixer: An all-MLP Architecture for Vision (2021)
  • [논문 리뷰] Swin Transformer: Hierarchical Vision Transformer using Shifted Windows (2021)
  • [논문 리뷰] ResNet: Deep Residual Learning for Image Recognition
성장형감자
성장형감자
공부 기록
    반응형
  • 성장형감자
    단순하게
    성장형감자
  • 전체
    오늘
    어제
    • Category (66)
      • Paper review (38)
        • 2D Object detection (11)
        • 3D Object detection (20)
        • 2D Segmentation (1)
        • 2D Classification (5)
        • 3D classification (1)
      • Programming (4)
        • Python (1)
        • Linux (3)
      • Project (0)
      • Study (24)
        • algorithm (20)
        • etc. (1)
        • Radar (3)
  • 인기 글

  • 블로그 메뉴

    • 홈
  • 250x250
  • hELLO· Designed By정상우.v4.10.0
성장형감자
[논문 리뷰] VGGNet: VERY DEEP CONVOLUTIONALNETWORKSFORLARGE-SCALEIMAGERECOGNITION
상단으로

티스토리툴바