본문 바로가기

학부/논문 리뷰

EfficientNet 논문 리뷰

728x90
반응형

2019년 5월, Google Brain팀에서 개발한 신경망(CNN) architecture로써, 기존의 CNN 모델보다 더 나은 성능과 더 적은 parameter를 가지고 있다.

모델의 정확도를 높일 때, 일반적으로 모델을 크게 만들어서 성능을 높인다. 모델을 크게 만드는 것은 3가지 방법이 있는데,

  • Network의 depth를 깊게 만드는 것
  • Channel width (filter의 개수)를 늘리는 것 (width가 넓을수록 미세한 정보가 많이 담긴다.)
  • Input image의 크기 조절 (해상도를 높이는 것)

기존에는 이 3가지를 수동으로 조절했기 때문에 최적의 성능과 효율을 얻지 못했다. 하지만 EfficientNet은 AutoML을 통해 이 3가지를 효율적으로 조절할 수 있는 compound scaling 방법을 제안하고 있다.

Depth / Width / Input image size 사이의 일정한 관계가 있다는 것을 실험적으로 찾아내고, 이 관계를 수식으로 만든다. 이를 바탕으로 NAS (Neural Architecture Search) 구조를 수정해 SOTA (state of the art : 최고 수준의 결과) 를 달성한다.

w(너비), d(깊이), r(해상도)에 따른 accuracy 값이다. 첨부한 사진을 보면, 주요 parameter인 w(width), d(depth), r(resolution)에 대한 값을 조정했을 때의 accuracy가 어떻게 달라지는 지를 나타낸 figure이다. 각 dimension의 값이 커질수록 정확도가 향상되지만, 세 개를 동시에 조정하거나 혹은 하나의 parameter만 조정해도 성능이 더 안 좋아지는 경우가 생길 수 있다.

위의 그림은 d,r 값을 특정 값으로 고정해둔 상태에서 w의 관점에서 scaling한 결과이다. Scaling 결과에서도 볼 수 있듯이, 실험적으로 더 넓은 resolution은 더 큰 receptive field가 필요하다는 것(=Layer 증가)을 알 수 있으며, Resolution이 커지면 유사한 픽셀의 영역이 증가하므로, 더 잘 사용하기 위해서 channel 증가가 필요하다.

이처럼, w,d,r 값들이 independent한 parameter이 아니기 때문에 복합적인 차원의 균형 및 조정이 필요하다는 결론에 이르게 된다. 그래서 w,d,r을 조절해 최고의 효율을 찾아낸 방법이 compound scaling이다.

Compound Scaling의 구성이며, 

Efficient Net은 parameter의 수가 다른 모델보다 적어도 훨씬 더 높은 accuracy를 나타낸다.

EfficientNet의 기본 블록 : MBConv (Mobile Inverted Residual Bottleneck)

⇒ 전통적인 convolution layer 대신, Inverted Residual과 Depthwise Convolution을 사용하여 더 효율적인 계산을 수행한다. 또한, Shortcut connection을 사용해 Depth가 증가할 때 발생하는 gradient loss 문제를 해결한다.

EfficientNet은 B0 ~ B7까지 8개의 모델이 있으며, 숫자가 클수록 더 큰 모델을 의미한다.

 

MobileNetV1 (2017)

  • Depthwise Separable Convolution 개념을 제시 : 모든 channel에 한꺼번에 convolution 연산을 적용하는 것 대신, 이미지 혹은 feature map을 채널 별로 쪼개서 convolution 진행 (Depthwise Conv)
  • 이후, 1-D Convolution으로 여러 개의 채널을 하나의 채널로 합치는 역할

MobileNetV2 (2018)

  • Linear Bottle neck을 갖는 inverted residual structure
  • Expansion layer로 채널 수를 늘려 depthwise convolution 수행 후, projection layer를 통해 다시 원래 채널 개수로 줄이는 bottleneck 형태의 구조
  • Inverted residual : Depthwise Separable Conv + Linear Bottleneck, Resnet에서 나온 개념으로 여러 layer들 사이에서도 gradient가 잘 전파되도록 한다.

 

 

Noisy Student (2020) : Self-training with Noisy Student improves ImageNet classification

 

2020년에 발표된 논문이며, unlabeled image를 활용하여 성능을 향상시켜 SOTA에 등록된 모델을 소개하고 있다. EfficientNet 논문을 기반으로 SOTA를 갱신했으며 핵심 아이디어는 다음 사진에서 쉽게 확인할 수 있다.

Noisy Student Training은 다음과 같은 과정으로 이루어져 있다.

  • Labeled image로 teacher model을 학습 

  • Teacher model을 사용하여 Unlabeled image의 pseudo label을 생성

  • Labeled image와 pseudo labeled image를 결합해 Student model을 학습 (1차 student model)

  • 학습된 Student model을 teacher로 사용하여 다시 pseudo label을 생성 (Student model이 Teacher model이 됨)
  • 생성된 pseudo labeled image로 다른 student를 학습 (2차 student model)

이와 같은 과정을 반복하는 알고리즘이 Noisy student이다.

Student model을 학습할 때, noise를 추가한 것(1)과 teacher보다 같거나 큰 student model을 사용(2)하는 것이 이전 모델과의 차이점이었으며, student model은 기존 teacher model보다 어려운 환경에서 학습이 이루어지기 때문에 더 나은 성능을 갖게 된다.

Student model을 학습시킬 때, Noise 기법은 'Random'에 초점을 맞추었다. 학습시킬 때, "Stochastic Depth", "Dropout", "RandAugment" 등의 학습 기법들을 사용했고, Random한 학습 기법들을 사용했다는 것을 Noise라고 부르고 있다.

실제 사용된 모델들에 대한 설명이며, B7, L0, L1, L2는 뒤로 갈수록 크기가 큰 model (params의 수가 늘어남) 을 의미한다. 

위와 같은 step들을 반복하면서 생성된 model들이 점차 더 향상된 성능을 보여주는 표이다.

이는 Noisy Student를 사용했을 때, 기존에 있었던 모델들과 성능 비교를 한 결과이다. Noisy student를 기존의 EfficientNet-L2 모델에 사용했으며, B7 모델에 비해 학습 시간이 5배정도 더 소요되었지만, 더 나은 성능을 보여주고 있다.

이는 L2 model보다 상대적으로 크기가 작은 모델에 noisy student training을 적용했을 때 결과를 의미한다. 결과를 살펴보면, B0 ~ B7 까지의 모든 모델에서 기존 학습 방식보다 Noisy student training을 사용했을 때, 성능 향상이 있었다는 것을 확인할 수 있다.

또한, Noisy student 알고리즘의 또 다른 장점은, "Robustness"에 초점을 맞춘 연구가 아니었음에도 robustness가 매우 증가했다는 점이다.

Robustness 란?) 모델이 입력 데이터의 다양한 변화에 대해 대응할 수 있는 능력을 의미한다. Robustness는 noise, error, 왜곡, 불확실성과 같은 다양한 환경 변화에 대응할 수 있는 정도를 바탕으로 모델의 안정성, 신뢰성과 관련된 특성을 나타낸다.

ImageNet-C / P dataset은 2019년, 'Benchmarking Neural Network Robustness to common corruptions and perturbations' 라는 논문에서 처음 제안이 되었으며, classificiation network들이 공통적으로 어려워하는 실제 image들을 모아 만든 dataset이다. 이러한 dataset을 사용하여, robustness를 측정할 수 있다.

사진에 보면, ImageNet-C에서의 mCE / ImageNet-P에서의 mFR은 숫자가 낮을수록 좋은 값인데, 기존 다른 모델들에 비해 확실히 좋은 성능을 보여주고 있음을 확인할 수 있으며, ImageNet-A에서는 굉장히 높은 accuracy값을 보여주고 있다.

 

결론적으로, noisy student 알고리즘은 2020년에 SOTA 모델을 달성할만큼의 accuracy와 매우 좋은 robustness를 나타내면서도 사용된 알고리즘의 아이디어가 상대적으로 간단하다는 점에서 여러모로 살펴볼 점이 많았다.

 

Meta Pseudo Labels (2021)

현재 EfficientNet을 기반으로 하는 가장 좋은 성능의 model이며, 상위 Top 10 모델들과 비교했을 때, 확연히 적은 parameter를 사용하면서 크기도 가장 작은 모델이다.

Parameter의 수가 480M개로 적은 편은 아니지만, 상대적으로 다른 ImageNet classification model에 비해서는 유의미한 차이가 보일 정도로 크기가 작다는 것을 확인할 수 있다.

이번 모델은 Transformer 계열 모델 사이에서 크기가 상대적으로 매우 작은 모델로도 고성능을 기록한 것에 큰 의의를 두고 있다. 앞선 Noisy Student 모델의 아이디어를 어느정도 빌려왔다고 생각하면 이해하기 더 편할 것 같다.

Meta Pseudo Label은 EfficientNet을 기본으로 사용하고 있으며 Noisy Student 방법과 비슷한 Semi-supervised Learning 방식을 차용하고 있다.

 

Pseoudo Label이란?

-이전에 소개했던 Noisy student model의 핵심 아이디어로, 모델이 추론 softmax를 label로 사용했다고 생각하면 된다. Pseudo label을 설정하는 방법은 위에 있는 noisy student model의 논문을 참고하면 좋을 것 같다.

 

기존의 pseudo label은 teacher model이 부정확할 경우, 연이어 그 다음 단계들이 영향을 받아서 확증 편향(confirmation bias)이 발생할 가능성이 높았다.

 

Meta Pseudo Label은 기존의 이런 문제들을 보완하면서 여러가지 의의를 가진 모델이 되었다.

1. 확증 편향(Confirmation bias)을 보완

  • pseudo label이 student model에 미치는 영향을 관찰
  • student로부터의 feed back을 활용
  • feedback signal (=reward to train the teacher) => Student model의 Labeled dataset에 대한 성능을 의미

2. Semi-Supervised Learning 방법 차용

  • Teacher Network : Unlabeled data에서 Pseudo label을 생성
  • Student Network : Unlabeled data에서 Pseudo label로 학습

3. 기존 Teacher Network는 고정하되, Student Network가 Labeled dataset에서의 성능이 어느정도인지를 활용하여 Teacher Network에 피드백을 제시했다.

결론적으로, 학생만 선생님을 통해서 배우는 것이 아니라 선생님도 학생을 통해서 배운다.

Two Moon Experiment

-각 Label의 학습 방법에 대한 결과를 나타낸 figure이다. 앞선 2가지의 방법을 혼용해서 사용한 Meta Pseudo Label에서 조금 더 명확하게 classification이 되는 것을 확인할 수 있다.

학생 모델의 loss feedback을 활용해 교사가 조정되면서 더 나은 pseudo label이 생성되었기 때문에, 가장 적합한 분류기를 찾았다고 결론을 내릴 수 있다.

 

기본적인 모델은 EfficientNet-L2 를 사용했으며, 이는 Noisy student model에서도 사용된 것과 같은 모델이다.

추가 실험 모델로는 L2보다 크기가 작은 B6-wide 모델을 사용했다.

다른 모델과 비교해봤을 때, Image Net에서의 성능을 비교해본 결과이다.

Transformer 구조가 Vision task에 빠르게 들어오면서, 크기가 큰 transformer 모델들을 사전학습 시킬 때 생기는 한계를 Meta Pseudo Label이 새로운 관점을 제시했다는 점에서 굉장히 큰 의미가 있다.

하지만, student / teacher model을 동시에 학습시켜야 하고, 모델 크기가 다른 모델에 비해서 상대적으로 작다는 것이지, 객관적인 입장에서는 480M개의 parameter를 사용해야 하는 상당히 큰 모델이므로, 추가적인 연구가 더 필요할 것으로 보인다.

 

 

출처 : https://kmhana.tistory.com/33 / https://hoya012.github.io/blog/Self-training-with-Noisy-Student-improves-ImageNet-classification-Review/ / https://deep-learning-study.tistory.com/554 / https://kmhana.tistory.com/26 / https://rahites.tistory.com/97

 

실제 논문 : https://arxiv.org/pdf/2003.10580v4.pdf / https://arxiv.org/pdf/1905.11946.pdf / https://arxiv.org/pdf/1911.04252.pdf

728x90
반응형