MNasNet과 PROXYLESSNAS와 ONCE-FOR-ALL network 알아보기

1. MnasNet

 

search space에 여러 후보 setting architecture를 올려두고 controller가 sampling을 통해 선택

 

trainer가 sample로 선택된 architecture를 가진 모델을 훈련해서 accuracy를 평가

 

그 다음에 mobile phone에 직접 넣어서 latency를 측정해봄

 

accuracy와 latency를 통하여 ‘multi-objective reward’라는 것을 계산하여 이를 바탕으로 다음 model을 선택

 

MnasNet의 기본 개요

 

이전까지는 mobile phone에 넣어본 것이 아니고 그냥 감으로 좋을 것이다라고 생각하여 compression을 해왔지만

 

mobile phone에 사용할 거니까 당연히 mobile phone에 넣어서 실험을 해봐야 최적인 search를 한다는게 논문의 핵심 아이디어

 

 

accuracy와 latency 측면에서 MnasNet의 압도적인 성능차이

 

MobileNet보다 latency가 약간 느렸지만 정확도는 압도적으로 좋음

 

mobile device를 위한 neural architecture search를 했다는 점에서

 

pruning이나 quantization등을 안썼어도 compression 기법이라고 볼 수 있음

 

<앞에서 NAS는 compression의 일종으로 볼수있다고 했다>

 

 

2. PROXYLESSNAS

 

candidate의 모든 조합을 large data를 사용한 large scale target task에 학습하는 것은 메모리 비용이 조금만 생각해봐도 엄청나다

 

그래서 전통적인 NAS 기법들은 실제 data의 일부인 small data set을 사용한다거나 전체 layer의 조합에서 일부 layer만 사용한다거나

 

전체 epoch에서 일부 epoch만 training한다든지 small scale의 비슷한 task에 학습을 한다든지

 

proxy로 학습을 하여 실제 target task에 transfer learning을 시켰다.

 

그러나 그렇게 하면 실제 edge device에 올려보면 성능이 제대로 안나오니 proxyless로 실제 target task에 바로 학습을 하는 방법을 제시했다.

 

 

proxy approach NAS와 proxyless NAS의 차이점

 

latency regularization loss를 이용하여 학습에 성공했다고 나옴

 

 

성능은 기존에 나온 사람이 만든 model이나 기계가 만든 모델 보다 좋았다

 

 

mobilenet, shufflenet, resnet은 사람이 특별한 아이디어로 구조를 만든 network

 

NASNet-A, DARTS, MnasNet은 NAS 기법으로 기계가 찾은 것

 

 

3. ONCE-FOR-ALL

 

ONCE-FOR-ALL network라는 여러 setting의 network의 조합으로 이루어진 network를 특별한 훈련 기법으로 한번만 학습하여

 

여러가지 edge device에 상황에 맞게 살짝씩 바꿔서 no retrain으로 바로 쓸 수 있게 만든 기법

 

기존에는 여러 architecture를 찾을려면 design cost로 O(N)이 들었지만 생각안하고 design을 상황에 맞게 그냥 넣으면 되니까 O(1)로 만들었다

 

once for all의 기본 아이디어

 

progressive shrinking 방법으로 resolution, kernel size, depth, width를 단계적으로 줄여나갔다고 함

 

 

계산비용을 압도적으로 줄이고 성능은 압도적으로 향상되었다고 한다.

 

 

NAS 계열이 계산비용이 적네??? 원래 크지 않나

 

CO2 emission이 MnasNet의 1335배나 줄였다는게 놀랍다

 

 

인간보다 co2 배출이 적네

 

 

TAGS.

Comments