All about

Abstract

DNN 모델을 모바일 디바이스 위에 deploy 하기 위해 경량화를 하는 시도들이 이미 많이 연구되었다. 이 논문에서는 DNN 모델 자체보다는 Input resolution을 동적으로 조절하여 정확도는 떨어뜨리지 않으며 평균 FLOPs를 낮추는 시도를 하였다.

이를 위해 저자는 RP(Resolution predictor) 를 사용하는 DRNet(Dynamic resolution network)를 제안한다.

Idea

같은 DNN 모델이더라도 이미지에 따라 정확히 prediction 하기 위해 필요한 resolution 은 다를 수 있다는 것에서 이 연구가 시작되었다. Fig 1. 을 보면 전경과 배경이 잘 구분되는 panda 같은 이미지는 작은 resolution으로 모델에 입력해도 (confidence가 낮을 수는 있지만) prediction 결과가 같은 반면, 전경과 배경이 잘 구분되지 않는 damselfly 같은 경우 resolution을 줄이면 prediction 결과가 다르게 나옴을 관찰할 수 있다.

Resolution resize 과정에서 FLOPs가 증가할 수 있지만, 작은 resolution을 사용함으로서 classifier의 FLOPs가 줄어드는 양이 더 크기 때문에 실보다 득이 많다.

 

Method

DRNet의 구조

DRNet은 기존의 Classifier 앞에 RP가 붙어 있는 구조를 가진다.

 

1. RP는 입력 이미지의 classifier input resolution 을 결정(Prediction)하며
2. 결정된 input resolution 으로 resize 된 이미지가 classifier의 입력으로 사용된다.

 

RP는 pre-trained 된 classifier 를 fine tune 하는 과정에서 함께 학습된다. 이를 위해 사용되는 Loss는 아래와 같다.

 

각 Loss term의 계산 과정과 목적을 하나씩 풀어서 설명해보겠다.

 

Cross Entropy

Cross Entropy(CE)는 기존에 잘 알려진 classification loss이다. DRNet에서는 RP 때문에 CE를 계산하기 전에 일부 계산과정이 추가된다.

 

1. 입력 Image X를 candidate resolution으로 먼저 resize를 한다.

2. resize된 X_r1, X_r2, ... , X_rm를 RP에 입력으로 feeding 한다.

3. RP의 출력인 각 resolution r 에 대한 확률 값 P_r = [P_r1, P_r2, ... , P_rm] 이 계산된다.

4. P_r 을 Gumbel softmax를 사용하여 one-hot encoded 값인 h로 변환한다.

* Gumbel softmax는 resolution resize 과정이 discrete 하기 때문에 back-propagation 과정이 미분 불가능해지므로 이를 해결하기 위해 사용한다.

5. h_r * X_r 을 통해 classifier에 입력될 resolution r의 이미지 x_hat이 결정되었다.

 

6. x_hat을 classifier F 에 입력하여 predicted class label y_hat을 구하고

7. y_hat과 ground truth인 y를 통해 CE loss를 게산한다.

* 원래의 batch 안에서 각 resolution 별로 mini-batch를 만들어 feeding 함.

 

FLOPs constraint regularization loss

만일 CE만 loss로 사용할 경우 RP는 큰 Resolution만 결과값으로 출력하는 경향성이 생기기 때문에 새로운 loss를 적용한다.

1. 각 input image resolution j 에 해당하는 미리 FLOPs를 계산한다. 이를 C_j라 함.

2. C_j를 ross entropy 를 계산할 때 구했던 h_j와 곱하여 이를 모두 더하면 실제 사용되는 resized image에 대한 FLOPs를 계산할 수 있다.

3. 전체 dataset에 대한 평균 FLOPs가 작으면 L_reg도 작아짐을 볼 수 있다.

 

Resolution-aware batch normalization layer

저자는 일반 Batchnorm(BN)을 사용하지 않고 Resolution-aware batch normalization layer를 정의하여 사용했다. 일반적인 BN을 사용하면 resolution 마다 입력의 mean, variance가 달라서 accuracy drop이 일어나는 현상이 발생했기 때문이다. 이를 해결하기 위해 각 resolution 마다 서로 다른 각각의 BN을 사용(즉, 한 layer에 여러 개의 BN이 존재함)한다. 이로 인해 parameter가 늘어나지만 전체 parameter에 비해 미미한 수준으로 무시할 수 있는 정도이다.

 

RP structure

RP로 인해 늘어나는 FLOPs보다 작은 resolution 을 사용함으로써 줄어드는 FLOPs가 더 커야 하기 때문에 RP는 큰 모델을 사용할 수가 없다. 때문에 저자는 4개의 Residual block을 가진 모델을 사용하였다.

 

Experiments

어느 논문이나 그렇듯이 이 논문 또한 Experiment를 통하여 자신들의 연구가 유의미하다고 주장한다. Experiment는 내용이 매우 단순하기 때문에 생략한다.

공유하기

facebook twitter kakaoTalk kakaostory naver band
loading