(ENAS) Efficient Neural Architecture Search via Parameter Sharing

rnn
convolutional
google
automl
2018

(Curtis Kim) #1

위 첫번째 NAS 논문이 CNN의 경우에 한정해서 좋은 결과를 내어 #CVPR2017 에 실렸던 두번째 논문처럼, Search Space를 재 정의하고, 이를 통해서 효과적인 Architecture를 찾은 결과입니다.

가장 중요한 포인트는 학습 대상인 여러 네트워크 구조에서 Weight를 공유하게 함으로써 학습시간을 단축해, 효율적으로 검색했다는 점입니다.

GTX 1070Ti 1개로 16시간 만에 실험을 끝냈다고 합니다. 대략 기존 NAS대비 1천배 수준의 향상입니다.

Search on DAG(Directed Acyclic Graph)

네트워크 구조를 쌓아가는 것을 위와 같은 DAG로 표현하고 있습니다. 즉 (1)이라는 구조 위에 (2)를 얹고, 그 위에 (3)과 (4)를 잇는 형태 등이 위로 표현된 것입니다. 빨간색 화살표가 실제로 연결된 구조이고, 검정색은 연결가능한 모든 경우를 표시하고 있습니다.

RNN

RNN의 Cell을 디자인하는 문제로 이 경우를 살펴보면, 위 그림과 같습니다.

  • (1)이라는 연산으로 시작해서
  • (2)와 (4) 연산으로 연결되고,
  • (2)는 다시 (3)이라는 연산으로 연결되어
  • 결국 최종 출력은 (3)과 (4)인

Cell 디자인을 나타낸 그래프입니다. 아웃풋이 2개인 경우이므로, 평균을 내어 출력하고 있습니다. 두번째 그림이 최종적으로 디자인된 Cell 모습입니다. 또 이를 출력하는 Controller의 모습이 세번째 그림에 있습니다.

세번째 그림은, 선택된 노드를 입력하면 연산이 나오고, 연산을 넣으면 노드를 선택해주는 구조입니다. 즉

  • 0번째 노드(input)가 선택되자 tanh가 선택되고,
  • 그 이후엔 1번째 노드를 선택해 Relu를,
  • 2번째 노드를 선택해 다시 Relu를 선택하고
  • 마지막으로 다시 1번째 노드를 tanh를

선택하여 Cell이 완성됩니다.

CNN

CNN도 비슷하지만, Original NAS 에서처럼이 아니라, 이후에 변형된 것처럼 Convolutional Cell을 디자인하는 방식으로 제안되었습니다.

전체적인 네트워크 구조는, 위처럼 정한 상태입니다.

그리고 RNN에서처럼, 2개의 인풋을 골라 각각 선택된 연산을 적용하고, 이를 합치는 방식을 반복합니다.

Sharing Weights

이 때, DAG에서 Node와 Node 사이의 Weight는 공유 됩니다. 즉, (1)노드에서 (2)노드로 연결되는 경우를 한번 학습했다면, 이 Weight는 이후에도 반복적으로 사용되는 것입니다. Shared Weights는 다양한 네트워크를 미니배치로해서 학습합니다.

Experiements

RNN : Penn Treebank

GTX 1080Ti 1대로 10시간 정도 학습했다고 합니다.

NAS 대비 6 Perplexity 개선되면서 1천배 나은 연산양이라고 합니다.

CNN : Cifar10 & Imagenet

동일 환경에서 7시간 걸렸으며, 이는 기존 NAS 대비 5만배 정도의 효율성이라고 합니다.

두가지 실험을 합니다.

  • Macro Search Space : 네트워크 전체를 디자인하도록 하는 것
  • Micro Search Space : Convolutional Cell만 디자인하게해서 사람이 제안한 네트워크에 cell만 삽입하는 것

Macro Search Space 대비 Micro Search Space 에서의 성능이 더 낫습니다. 사람이 어느정도 가이드해주는 것이 아직까지는 성능이 더 나은 것 같습니다. NAS 대비 더 나아지지는 않았지만, 거의 유사한 성능입니다.

역시 기존 연구에서와 마찬가지로 찾아진 모델은 local minimum으로 판단되는데 그 이유는 네트워크 구조를 조금 바꾸면(skip connection을 바꾸거나, separable conv를 normal conv로 바꾸거나) 성능이 떨어진다고 합니다.

ENAS를 통해 찾아진 Conv Cell입니다.

Conclusion

기존 NAS 대비 1천배 이상 효율적인 방식을 제안합니다. 많이 바뀐 것은 아니고 DAG 형태로 모델링해서, 동일한 연결에 대해서는 기존에 학습했던 파라미터를 그대로 사용하는 것이 핵심입니다.


DARTS: Differentiable Architecture Search
'Optimization / Training' Outline
'nas' 카테고리의 설명