CV 3강) Image Classification 2

한량·2021년 9월 7일
0

[U-stage] Computer Vision

목록 보기
3/13
post-thumbnail

Problem with deeper layers

  • AlxeNet --> VGGNet에서 layer를 깊게 쌓을수록 성능이 높아진다는 것을 확인함
    • larger receptive field
    • more capacity and non-linearity
  • 하지만 deeper layer는 harder to optimize
    • gradient vanishing/exploding
    • computationally complx
    • degradation problem

CNN architectures for image classification

GoogLeNet

  • Depth가 아니라 width를 키움
    그로 인해 늘어나는 복잡도는 1x1 conv(bottleneck layer)로 극복

  • 1x1 conv로 channel의 수를 바꿔서 parameter의 수를 줄일 수 있음

  • Auxiliary classifier로 중간에 backpropagation을 넣어서 gradient vanishing 문제를 해결
  • Auxiliary classifier는 학습 도중에만 사용하고 test에는 맨 마지막 classifier만 사용

ResNet

  • 기존의 model은 degradation problem 때문에 depth를 많이 쌓을수록 성능이 낮아짐

  • Residual block으로 H(x)H(x)가 아니라 F(x)F(x)만 학습하게 해서 부담을 줄임

  • Backpropagation에서도 gradient가 2가지 방향으로 flow할 수 있기 때문에 gradient vanishing 문제도 해결

  • Gradient가 모든 block을 거치는 것부터, 아무것도 안 거치는 것까지 다양한 mapping을 학습할 수 있음

DenseNet

  • Dense block에서는 channel 축으로 concat(resnet은 add), 정보가 그대로 남아있어서 나중에 참조가 가능

  • 바로 직전뿐만 아니라 훨씬 이전의 입력도 넘겨줘서 훨씬 dense하고 상위 layer에서도 하위 layer의 특징을 잘 참조할 수 있게 함

SENet

  • Squeeze, Excitation을 통해 activation을 rescaling함
    • Squeeze: global average pooling으로 각 channel의 공간정보를 없에고(H, W를 1로 만들고) 분포를 구함
    • Excitation: fc layer를 거쳐서 channel간의 연관성을 고려한 attention score를 구함
  • 중요도가 떨어지는 것은 gating이 되도록(닫히도록) feature를 통해 값을 낮추고 중요한것은 더 강하게 만듬

EfficientNet

  • Depth, width, resolution을 키워서 성능을 높임

  • 그런데 너무 높이면 saturation이 오기 때문에 적절한 비율로 동시에 scaling해서 성능을 높임

Deformable convolution

  • 자동차 같이 고정된 물체가 아니라 사람, 동물은 움직임에 따라 구조가 변하기 때문에 receptive field도 그에 맞춰 바꿔줌

  • Offset field에 따라 weight를 옆으로 벌려줌


Summary of image classification

  1. AlexNet: 가장 간단한데 parameter의 수가 많아 memory 부담
  2. VGGNet: highest memory, heaviest computation
  3. GoogLeNet: Inception-v4까지 따지면 성능 나쁘진 않은데 EfficientNet한텐 밀림
  4. ResNet: 적절한 계산량, memory size. 하지만 Inception한텐 밀림

  • GoogLeNet이 성능이 좋긴 한데 auxiliary classifier 등으로 사용하기엔 복잡함

  • 따라서 Backbone으로는 VGGNet, ResNet을 사용하는 편


Reference

profile
놀고 먹으면서 개발하기

0개의 댓글