이것저것 담는 블로그

Neural Architecture Search : A Survey 논문 요약 및 리뷰 - Part 1 본문

IT/Machine Learning

Neural Architecture Search : A Survey 논문 요약 및 리뷰 - Part 1

버즈와우디 2021. 8. 2. 21:01

이 글은 Neural Architecture Search : A Survey, Thomas Elsken et al., 2019 논문을 요약하고 리뷰하는 첫번째 포스트이다.
논문 원본은 아래에서 볼 수 있다.

Neural Architecture Search: A Survey

Deep Learning has enabled remarkable progress over the last years on a variety of tasks, such as image recognition, speech recognition, and machine translation. One crucial aspect for this progress are novel neural architectures. Currently employed archite

arxiv.org


Abstract
딥러닝은 이미지 인식, 음성 인식, 기계 번역 등 다양한 분야에서 발전해왔으나 그 중심엔 정교하게 설계된 인공신경망이 있다.
보통 이 신경망은 전문가 즉 사람에 의해서 만들어져 왔으나 사실 이 부분은 굉장히 시간이 많이 소요되고 오류가 발생하기 쉽다.
이러한 배경으로 인공신경망을 자동으로 탐색하는 NAS(Neural Architecture Search)라는 학문이 이목을 끌고 있다.
이 논문은 1) 탐색공간, 2) 탐색전략, 3)성능 추정 전략이라는 세 개의 카테고리로 논문들을 서베이하였다.



1. Introduction
인식 task에서 딥러닝이 빠르게 발전할 수 있었던 이유는 feature engineering(특성 공학)이 자동화 되었기 때문이다.
더 방대한 구조를 손수 설계하고 있는 architecture engineering(구조 공학)분야에서도 자연스럽게 자동화하려는 움직임이 생겼다.
이렇게 생겨난 것이 NAS이며 image classification, object detection, semantic segmentation 등에서 사람보다 더 나은 성능을 내는 것이 확인되었다.
NAS는 AutoML의 한 세부 분야로 hyperparameter optimization, meta-learning과도 상당한 오버랩이 있는 분야이다.
이 서베이 논문에서는 NAS를 세 분야로 나눠서 설명한다.

  • Search Space (탐색 공간)

탐색 공간은 말 그대로 인공신경망의 architecture를 나타내는 파라미터들이 가질 수 있는 값의 공간이라고 보면 된다.
함수로 치면 정의역 같은 개념이다.
만약 어떤 task에 대해 잘 학습이 된다고 알려진 architecture의 속성이 있다면 그것을 활용해 탐색 공간을 줄일 수 있고 따라서 탐색 자체를 단순화시킬 수 있다.
하지만, 잘 알려진 architecture의 속성 또한 사람의 bias(편견)이 들어간 구조이기 때문에 사람이 생각하는 것 그 이상의 대단히 정교한 모델을 만들기 어려울 수 있다는 점도 유의해야한다.

---
따라서 만들고자 하는 전체 신경망에서 중요한 성능지표에 따라서 탐색 공간의 크기를 결정하는 것이 좋을 것으로 보인다.
속도가 중요한 모델이라면 탐색 공간을 줄이고, accuracy 같은 퍼포먼스가 중요하다면 탐색 공간을 더 넓혀서 더욱 정교한 모델을 만드는 게 중요할 것이다.

  • Search Strategy (탐색 전략)

탐색 전략은 말 그대로 탐색을 할때 exploration(탐험)과 exploitation(활용)을 어떤 전략으로 수행할 것이냐를 결정한다.
빠르게 적합한 architecture를 찾아야한다는 점, 또 지역 최저점에 빠져버리며 다소 이르게 수렴하는 경우를 피해야한다는 점을 만족하는 적절한 전략을 구사하는 것이 중요하다.

  • Performance Estimation Strategy (성능 추정 전략)

NAS에서는 미학습 데이터에 대해 높은 예측 성능을 보이는 architecture를 찾는 것이 중요하다.
보통은 스탠다드하게 데이터 기반으로 학습과 검증을 하는 것이 일반적이지만 이는 컴퓨팅 파워를 많이 쓰기 때문에 다양한 architecture를 탐색할 수 없게 만든다.
따라서 이러한 성능 추정의 컴퓨팅 cost를 줄이는 방법들을 소개한다. (Part 2에서 다룰 예정)



2. Search Space

가장 심플한 형태인 체인 구조 신경망은 위의 그림 2와 같이 여러 개의 레이어가 겹겹이 쌓여있는 형태이며 여기서는 색상별로 Convolutional, Pooling 레이어를 구성한 예시를 보여주고 있다.
왼쪽 그림은 체인 구조의 탐색 공간을 나타내고, 오른쪽 그림은 multiple branch와 skip connection을 포함한 좀 더 복잡한 탐색 공간의 요소를 나타내고 있다.
체인 구조는 말 그대로 i-1번째 레이어의 아웃풋 값을 i번째 레이어가 인풋 값으로 받는 구조이기 때문에 선택된 구조 A는 아래와 같이 수식화될 수 있다.


탐색 공간은 크게 세가지로 파라미터화 할 수 있는데

(1) (최대) 레이어의 개수 n
(2) 각 레이어가 수행하는 operation (예. pooling, convolution, depthwise seperable convolutions, dilated convolution ...)
(3) 각 operation 에 해당하는 hyperparameter (예. filter 개수, kernal 사이즈, convolution layer의 strides ...)

여기서 파라미터로 이루어진 탐색 공간은 사이즈가 fixed 되어 있는 것이 아니라 조건적으로 탐색 공간이 바뀐다는 것에 유의해야한다.

그림 2의 오른쪽 그림과 같은 특수한 multi branch 구조는
- chain-structured network

- residual networks

이전 레이어의 아웃풋 값을 더하는 구조

- DenseNets

이전 레이어의 아웃풋을 concat 하는 구조


등이 있다.

반복되는 motifs 구조에서 Zoph et al. (2018) Zhong et al. (2018a) 은 cell과 block이라는 개념으로 architecuture를 세분화한 개념을 제안했다.
Zoph et al. (2018)은 인풋과 아웃풋의 사이즈가 같은 normal cell, 인풋 대비 아웃풋의 사이즈를 줄여 spatial reduction된 reduction cell의 두 종류를 최적화했다.
그림 3처럼 cell들을 여러개 쌓는 구조로 최종 architecture가 결정된다.
이렇게 구상했을 때, 탐색 공간에 있어서 큰 장점은
- 탐색 공간을 줄일 수 있다는 점,
- 다른 데이터셋으로 전이가 잘 되는 구조라는 점,
- block을 반복적으로 쌓는 것이 일반적으로 좋은 설계라는 점이다.

cell 단위의 micro-architecture 도 중요하지만 macro-architecuture까지 동시에 최적화하는 것이 중요한데 macro를 최적화하는 방법으로는 hierarchical 하게 탐색공간을 구성하는 방법 등이 있다.
일반적으로 탐색공간을 규정한대로 최적화 문제의 난이도가 결정되는데 fixed macro-architecuture에 single cell 이래도 탐색공간은 불연속적이며 상대적으로 공간복잡도가 크다.