[딥러닝 논문 리뷰와 알고리즘 공부] #5 DARTS: Differentiable Architecture Search

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

Paper Review

목록 보기
5/16

Abstract

이 논문에서는 reinforcement learning이나 evolution과 같은 전통적인 방법과는 달리 미분 가능한 방법으로 architecture search에 scalability challenge를 제시한다. continuous relaxation의 방법으로 discrete한 search space를 미분 가능한 방식으로 풀어내었다. 기존의 연구보다 몇배 더 빠른 성능을 보인다.

Introdcution

최근 NAS분야는 image classification, object detection 등에서 좋은 성능을 보인다. 하지만 성능이 좋은 탐색 알고리즘들은 많은 컴퓨팅 자원을 요구하고 있다. 이를 해결하기 위해서 hierarchical structure, performance prediction, weight sharing등의 방법으로 효율성을 높이기 위한 시도를 하였지만 근본적인 해결이 되지는 못했다.
아키텍처 search의 방법으로 discrete space에서 하나의 아키텍처를 만들면 학습과 평가의 과정이 많은 시간이 소요가 된다. 따라서 이 논문에서는 continuous space를 사용해서 validation score에 따른 gradient descent로 학습을 하는 방법을 제안한다.

Search Space

Cell based approach를 사용한다. latent representation(tensor, vector)가 node, operation이 edge이다. directed acyclic graph의 형태로 만들어진다.

Continuous Relaxation and Optimization


a.모두 동일한 값을 가짐
b.모든 가능한 연산에 대해서
c.학습이 진행됨에 따라 서서히 만들어짐
d.가장 확률값이 높은 edge들로 아키텍처가 선택이 됨


어려운 문제를 좀더 relax한 방법으로 접근한다는 의미에서 relaxation이라고 한다.
특정 operation에 대한 categorical choice를 모든 가능한 operation에 대한 softmax로 relax시킨다. 따라서 operation은 확률값들로 표현이 되어서 그 값들에 대한 가중치를 곱해서 더해주게 된다.

Bilevel Optimization

validation score는 architecture parameter를 a라고 하면 a가 만든 아키텍처의 파라미터는 w(a)이다. 기존의 방법에서는 a에 최적화가 된 즉, train Loss가 가장 낮은 w가 w(a)가 되고 이 가중치를 사용해서 val Loss를 최소화 하는 a를 찾는 방식이었다.

Approximate Architecture Gradient

w*(a)를 제대로 구하는 학습의 계산비용은 높기 때문에 only a single training step을 통한 approximation을 사용한다.

first order - second order

E엡실론 값을 사용하느냐의 여부

Experiments and Results

First Stage

DARTS를 사용해서 최적의 architecture를 탐색함

Second Stage

first stage에서 탐색한 cell을 사용해서 larget architecture를 구성한다. 완성된 모델에 대해서 test set으로 성능을 평가한다.
논문에서 만든 구조는 아래 그림과 같다.

profile
chords & code // harmony with structure

0개의 댓글