[논문 리뷰] ResNet, MobileNetV2, EfficientNet 간단 요약

Hayun Lee·2023년 9월 11일
1

논문 리뷰

목록 보기
5/11

ResNet

link: https://arxiv.org/pdf/1512.03385.pdf
CVPR 2016

Residual learning

  • 기존에는 H(x) = x 가 되도록 H 함수를 찾는 데 목표를 두었음
  • 이 논문에서는 H(x) - x 를 새로운 함수 F로 정의 ⇒ F(x) = 0 이 될 수 있도록 F 함수를 찾는 것이 목표가 됨
  • F: 예측값과 실제값의 차이인 잔차를 의미
  • 이렇게 F가 0이 되는 방식으로 최적화 하는 것이 H를 찾는 것보다 좋은 성능을 냄
  • H(x) = F(x) + x 로 다시 쓸 수 있음
    • H는 미분해도 x 때문에 1이 나옴 → 기울기 소실 방지
      • x 부분을 shortcut connection 이라고 함
  • 기본적인 모델은 VGG19에서 착안
  • shortcut해서 elementwise하게 덧셈을 하려면 input ↔ output dim 같아야 함
    • 안되면? zero padding이나 linear projection

Bottleneck

  • 1*1 conv: channel 수 줄이기 위함
  • resnet에서는 bottleneck 구조가 좋은 성능을 내진 못함

MobileNetV2

link: https://arxiv.org/abs/1801.04381
CVPR 2018

MobileNet V2

  • SOTA 모델 컴퓨팅 성능이 높아 모바일, 임베디드에 적용이 불가
  • ReLU activation의 비선형성 효과로 인해 정보(manifold)가 손실 → 채널 수 충분해야 정보 보존 가능

  • V2에서는 stride 값에 따라 두 가지 블록으로 나뉘게 됨
  • stride 1
    • inverted residual block에서 skip connection을 진행
  • stride 2
    • 블록 구조는 stride 1과 동일하나 skip connection을 생략하고 Depthwise convolution에서 stride 2를 통한 downsampling을 진행

Linear Bottlenecks

  • ReLU Activation은 채널 내의 정보를 불가피하게 손실
  • 채널 내에서의 정보는 손실되나 여러 채널 사이에서 input manifold로부터 embedding된 정보(Manifold of interest)를 얻을 수 있음
  • 낮은 차원으로 mapping할 때 하나의 채널에서 정보 손실되더라도 다른 채널에서는 손실된 정보가 살아있을 수 있기 때문에 정보가 보존됨

  • 즉 linear transformation 역할을 하는 linear bottleneck layer를 활용해서 차원은 줄이되 manifold of interest를 그대로 유지하여 네트워크 크기는 줄어들지만 정확도는 유지하는 전략

Inverted Residuals

  • bottleneck 블록은 모든 입력이 bottleneck-expansion 뒤에 따라오는 형태의 residual block과 형태가 비슷
  • 기존에 제안된 residual block에 linear bottleneck 형태를 붙인 형태
  • inverted residual block은 input output 채널 수가 낮기 때문에 residual block보다 메모리 효율이 좋은 장점
  • 연산량 비교: residual block vs inverted residual block
    • residual: h_i w_i d_i(k^2 + d_i)
    • inverted: h w d’ * t(d’ + k^2 + d”)
    • inverted residual block의 입력과 출력 채널 수가 더 적어 연산량 더 적음

EfficientNet

link: https://arxiv.org/abs/1905.11946
ICML 2019

summary

  • 효율적인 모델 구축을 위해 depth, width, image resolution을 스케일링하는 방법 제안
    • 이전 연구에서는 셋 중 하나만 scale하는 것을 주로 다뤘음
    • 상수 비율로 세 가지를 각각 scaling하면 됨
  • MnasNet에서 사용하는 conv 구조인 MBConv를 이용한 EfficientNet 제안

Compound Scaling Method

  • width, depth, resolution을 fixed scaling coefficient로 균일하게 scale함

  • 만약 2^N 만큼의 컴퓨터 자원을 더 사용할 수 있다면, depth를 α^N, width를 β^N, image size를 γ^N으로 증가시킴
    • 직관적으로 이미지가 크면 receptive field를 늘리기 위해 더 많은 layer가 필요하고, 더 미세한 pattern을 얻기 위해 더 많은 channel이 필요하기 때문
  • model scaling의 효과는 baseline network에 따라 다름
    • baseline: neural architecture search 사용, model의 조합을 scale up 하여 EfficientNet 만듦

EfficientNet Architecture

  • 처음부터 좋은 baseline network를 정하는 것이 중요함 → mobile-size의 baseline을 개발
  • α, β, γ를 찾아 큰 모델에 적용하면 더 좋은 성능을 내는 것이 가능하지만, 큰 모델의 경우 이 값을 찾는 비용이 더 많이 들었음
    • 이 문제를 해결하기 위한 방법
      • ϕ=1로 고정한 뒤 resource가 두 배로 있다고 가정하고 식3을 이용해 α, β, γ를 찾음
      • 또는 α, β, γ를 고정하고 ϕ값을 바꿔서 baseline network를 scale up 함

Conclusion

  • width, depth, resolution 간 균형이 model을 scale up 하는 데 중요한 요소였음을 보임
  • accuracy가 더 높고 효율적이면서, 쉽게 모델을 scale up 할 수 있는 방법을 제안
  • 전이학습에서도 더 적은 prameter와 FLOP으로 잘 동작함을 보임

0개의 댓글