EfficientNet

minsoo jeong·2021년 2월 15일
0
CNN 모델의 scale 확장에 따른 성능 향상
  • Width(#channel), Depth(#layer), Resolution(Image Size) 크기 증가에 따른 성능 분석 및 확장에 용이한 모델 설계
    - Depth: Stage(layer의 조합) 반복 횟수
    - Width: 채널 크기
    - Resolution: 이미지 크기
    - 어느 차원이든 scale이 커지면 성능은 증가하나 scale이 커질수록 gain은 줄어든다. 각 차원에 대하여 적절한 scale 파라미터를 적용해야한다.


  • 모델의 구조는 변경하지 않기 떄문에 Baseline 모델선택은 매우 중요함, 정확도와 FLOPS에 대하여 최적화된 Baseline모델을 구하기 위해 MNasNet과 동일한 모델 탐색을 이용하며 ACC(m)[FLOPS(m)/T]wACC(m)*[FLOPS(m)/T]^w (m은 모델, T는 target FLOPS, w는 ACC-FLOPS 오버헤드 조절을 위한 하이퍼파라미터)을 지표로 사용한다. 그 결과 MNasNet과 비슷한 구조의 Baseline 모델(EfficientNet-B0)을 얻었다.

  • 아래와 같은 방법으로 coefficient를 구함

    d=αϕd=\alpha^\phi
    w=βϕw=\beta^\phi
    r=γϕr=\gamma^\phi
    s.t. αβ2γ22s.t. \ \alpha*\beta^2*\gamma^2\approx2
    • 네트워크의 Depth가 2배 증가하면 연산량은 2배 증가, Width, Resolution이 2배가 되면 연산량은 4배 증가함
      - Step1. ϕ=1\phi=1 로 고정, EfficientNet-B0에 대해 scale 수행, 학습 및 추론을 반복하여 최적값 α=1.2, β=1.1, γ=1.15\alpha=1.2,\ \beta=1.1,\ \gamma=1.15을 구함
      - Step2. α, β, γ\alpha,\ \beta,\ \gamma를 고정 ϕ\phi를 늘려 EfficientNet B1-B7만듬
  • ResNet50에 비해 FLOPS는 작으나 학습속도는 느리다는 글을 본적이 있다.

0개의 댓글