[딥러닝 논문 리뷰와 알고리즘 공부] #4 Neural Architecture Search: A Survey

Jude's Sound Lab·2022년 3월 10일
0

Paper Review

목록 보기
4/16

Abstract

참신한 neural architecture들의 이면에는 문제 해결의 최적의 모델을 찾기 위한 전문가들의 시간들이 녹아있다. 자연스럽게 neural architecture를 사람의 손이 아닌 자동화를 통해 찾는 방법에 대한 관심도는 높아졌고 본 논문에서는 이 분야의 진행을 말해보고자 한다. 연구는 크게 세가지 부분으로 나누어서 살펴볼 수 있다. 먼저 search space, search strategy, performance estimation strategy이다.

Introduction

딥러닝의 성공은 automated feature engineering process에 기반한다. 이때 자연스레 architecture engineering에 많은 노력이 필요하게 된다. 따라서 이 과정을 자동화하는 Neural Architecture Search NAS가 필요하게 된다. 기존의 NAS 연구들을 earch space, search strategy, performance estimation strategy의 세 dimension으로 구분할 수 있다.

Search Space

Neural Architecture를 탐색하는 범위이다. prior knowledge를 반영할 수록 탐색 범위가 줄어들지만 human bias가 들어갈 수 있다.

Search Strategy

Search Space를 탐색하는 방법

Performance Estimation Strategy

탐색한 모델의 성능을 평가하는 방법 일반적으로 Train-Validation의 방법을 사용하기쉽지만 비용이 많이 든다.

Search Space


Chain-Structured neural networks을 넘어서서 Skip Connection과 같은 modern design(multi-branch network lik ResNet)에도 적용하는 방법을 연구
1.layer의수
2.operation : conv, pool
3.hyperparams : filters, kernel size


VGG, ResNet 등은 repeated motif(블록을 쌓는 방식) 방법으로 모델이 구성되어 있다.
Cell Search Space는 이 아이디어를 사용해서 하나의 cell or block을 NAS를 통해 탐색함으로 cell을 반복적으로 쌓는 방식으로 모델을 구성한다. 새로운 블록이 아니라 반복되는 블록을 탐색함으로 탐색의 범위가 축소되고, 다른 데이터에도 적용이 가능해진다.(다른 데이터에도??)

Search Strategy

Reinforcement Learning

discrete하기 때문에 RL을 사용한다.
agent action으로 architecture생성 environment reward로 architecture performance를
가장 performance를 높이는 방향으로 학습을 하게 된다. 환경이 주는 state가 agent의 인풋이 되어야 하는데 sequential process 중 환경과의 interaction이 없기 때문에 알고리즘을 multi-armed bandit problem으로 축소가 가능하다(??)

Neuro-evolutionary

과거에는 architecture, parameter 모두 진화 알고리즘을 사용했으나 최근에는 architecture만 최적화를 한다.
model population -> evaluation -> offspring 생성, mutation의 구조이다.
(neuro-evolutionary는 모르는 알고리즘이라 좀더 공부가 필요할듯 하다.)

Real et al.(2019)논문

RL, Neuro-evolution, random search를 비교
RL과 NE가 유사한 성능을 냈다고 한다. 다만 NE가 RL보다 anytime performance가 좀더 좋고 일부 모델들에서는 좀더 좋은 성능을 낸듯 하다.

Bayesian Optimization

hyperparameter optimization에서 가장 잘 쓰이는 방법이다.
Gaussian process가 low dimensional continuous optimization probelm(??)에서 많이 적용이 된다. Tree 기반 모델/탐색 등에 연구가 된다.

Gradient-Based Optimization

가장 최신의 방법이다. DART논문을 참고하면 좋을듯 하다.
continuous relaxation에 discrete한 operations들로 부터 convex combination을 계산한다.

Performance Estimation Strategy

NAS는 Unseen data에 대해 가장 큰 성능을 보이는 모델을 탐색하는 것이 목적이다. 따라서 탐색한 모델을 적절하게 평가하는 것이 중요하다. Train-Val의 방식으로는 많은 자원을 필요로 한다.

lower fidelity : 적게 실행, 작은 모델, 적은 데이타를 사용
learning curve extraploation : 지금까지의 커브를 바탕으로 예측
weight inheritance : 자식은 물려받은 weight로 실행
one-shot model : 큰 모델을 만들고 sub-graph로 weight를??

Future Directions

CIFAR 10와 같은 Image Classification에 집중되어 있음
등등등

profile
chords & code // harmony with structure

0개의 댓글