728x90
반응형

Google Brain에서 ICLR 2017에 발표한 “Neural Architecture Search with Reinforcement Learning”

 

Neural Architecture Search with Reinforcement Learning

Neural networks are powerful and flexible models that work well for many difficult learning tasks in image, speech and natural language understanding. Despite their success, neural networks are still hard to design. In this paper, we use a recurrent networ

arxiv.org

 

새로운 neural network을 설계하고 튜닝하는 것이 어려운데, 학습을 통해서 자동화할 수 있을까에 대한 첫 시도

 

이 논문에서는 새로운 구조를 gradient 기반으로 찾는 Neural Architecture Search라는 방법을 제안합니다.

 

Methods

아래는 이 연구에서 사용한 방법을 한 장으로 요약한 그림입니다.

 

(그림 출처: 서기호 님의 슬라이드 “Neural Architecture Search with Reinforcement Learning”

 

[한국어] Neural Architecture Search with Reinforcement Learning

모두의연구소에서 발표했던 “Neural Architecture Search with Reinforcement Learning”이라는 논문발표 자료를 공유합니다. 머신러닝 개발 업무중 일부를 자동화하는 구글의 AutoML이 뭘하려는지 이 논문을 ��

www.slideshare.net

 

https://jamiekang.github.io/2017/06/19/neural-architecture-search-with-reinforcement-learning/

 

Neural Architecture Search with Reinforcement Learning · Pull Requests to Tomorrow

Neural Architecture Search with Reinforcement Learning 19 Jun 2017 | PR12, Paper, Machine Learning, Reinforcement Learning, RNN 오늘 소개하려는 논문은 Google Brain에서 ICLR 2017에 발표한 “Neural Architecture Search with Reinforcement Lear

jamiekang.github.io

 

[기본 프로세스]

 

1) 뉴럴 네트워크의 hyperparmeter (fitler 개수, convolution 연산의 차원 등)을 지정해주는 RNN Controller를 생성

 

2) 생성된 hyperparameter를 기반으로 네트워크를 여러 개 구축

 

3) 학습을 효과적으로 하기 위하여 생성된 네트워크 (child network)를 병렬적으로 학습

 

4) 학습된 네트워크로부터 validation accuracy를 reward로 받아와 policy gradient 기반으로 RNN Controller를 업데이트

 

RNN Controller는 sequence-to-sequence 형태의 RNN 구조를 띄고 있다. 각 state 별로 사전에 정해진 hyperparameter의search space로부터 값을 샘플링한다. 이 과정을 반복하여 일정 개수만큼의 레이어에 대한 hyperparameter 값들을 지정하게 된다. 이 과정을 마치면 병렬처리를 통해 '동일한 hyperparameter로 만들어진 다수의 child network'를 학습한다. 같은 구조를 갖는 뉴럴 네트워크라 하더라도 학습되면서 얻어지는 validation accuracy는 서로 조금씩 다르기 때문에 반복실험의 효과를 가질 수 있다. 해당 논문에서 CIFAR-10에 알맞는 CNN 구조를 생성하기 위해 총 800개의 child network를 동시에 학습했다고 한다. Validation Accuracy는 RNN Controller의 파라미터에 대하여 미분이 불가능하기 때문에, policy gradient 기반의 방법론을 사용하여 RNN Controller를 업데이트한다. 미분이 불가능한 이유에 대해서 생각해보면, RNN Controller의 매 시점마다 softmax classifier를 통해 'child network의 hyperparameter'들이 나오는데, 이는 argmax로 정해져서 나오며 validation accuracy 계산에는 직접적으로 명시가 되지 않는다. NAS에서는 Williams의 REINFORCE 알고리즘을 사용하였으며, Q-learning 등의 다른 알고리즘보다 튜닝이 더 편하다는 장점이 있다고 한다.

 

[CNN 아키텍쳐 생성]

 

CNN에서 주로 사용되는 테크닉 중 skip connections을 만들어주기 위해 anchor point라는 개념을 소개한다. 이는 이전 레이어들의 정보를 attention 기반으로 받아들일 수 있는 지점이라고 생각할 수 있다. N번째 레이어의 anchor point는 이전 N-1개 레이어들의 정보를 받아들일 수 있는 N-1개의 connections이 있으며, 모델을 생성하기 위해서는 해당 connections들의 확률분포를 기반으로 샘플링하게 된다. 실험 결과 생성된 CNN 구조를 살펴보면 Filter의 높이, 너비를 따로 선택하기 때문에 직사각형 모양의 필터가 많이 생성된 것을 볼 수 있으며, 첫 번째 convolution 연산이 일어난 직후에 skip connections가 많이 생성된 특징을 찾을 수 있다.

 

[RNN Cell 생성]

 

RNN Cell을 생성하기 위해서 논문에서는 RNN 연산을 일종의 트리 구조로 표현하였다. 트리 구조는 RNN Cell 내부에서 일어나는 연산의 흐름을 설명하며, 이는 RNN Controller에서 hyperparameter를 연속적으로 생성하는데 알맞는 구조라고 생각된다. 첫 번째 연산단계에서 leaf node들은 이전 hidden state의 정보와 현재 state의 x값을 input으로 받아 add, elementwise multiplcation과 같은 '2개의 input을 합치는 combination 연산'을 수행하게 된다. 이후에 activation 연산을 통해 비선형 변환을 수행하게 되며 이 과정이 하나의 스텝이다. 이러한 과정을 연속적으로 반복하여 최종 output 단계로 갔을 때 이는 다음 hidden state 정보로 저장된다. 또한, RNN Controller의 마지막 2개의 block에서는 1) cell variable에 저장할 트리의 인덱스 2) 이전 cell variable의 정보를 합칠 트리의 인덱스를 지정하게 되어 LSTM에서 사용되는 cell memory 기능을 디자인 할 수 있도록 설계한 것이 CNN 구조 설계와는 차이점이라고 할 수 있다.

 

[실험 결과 및 이후 논문들]

 

CNN과 RNN Cell을 디자인하여 각각을 CIFAR-10, Penn Treebank에 적용하여 모델의 성능을 평가한 결과, 사람이 직접적으로 디자인한 state-of-art 모델들과 유사한 성능을 내며, RNN Cell의 경우 오히려 더 좋은 성능을 보였다고 한다. 하지만, 모델의 구조를 조금 바꾸면 전체적으로 성능이 하락하는 것으로 보아 일종의 local optimum이라는 한계점이 존재한다. 가장 중요한 점은 모델을 학습시키는데 있어서 여러개의 GPU와 CPU를 사용해야 한다는 현실적인 제약조건이 있으며, 네트워크 구조를 학습하는데 오랜 시간이 걸린다. 이를 해결하기 위해서 여러가지 논문이 나왔으며, 그 중 2개를 세미나 마지막에 간략하게 소개하였다.

 

Learning Transferable Architectures for Scalable Image Recognition은 CNN의 경우에 한정지어 NAS를 효과적으로 디자인하는 논문이다. Hyperparameter를 찾는 Search Space를 연산의 집합으로 정의하여 효율을 높였으며, 기존에는 전체적인 레이어와 세부적인 파라미터들을 모두 디자인하였다면 이 논문에서는 Convolution Cell의 블록을 설계하는데 초점을 맞추었다. Input으로 받아올 2개의 이전 레이어를 선택한 후, 각각의 레이어에 대하여 convolution, pooling 등의 연산을 수행하고 결과를 합치는 과정을 반복적으로 수행하여 레이어를 순차적으로 쌓아나아게 된다. 비록 전체적인 CNN Architecture는 사람이 설계했지만ImageNet 실험 결과 다른 최신 논문들보다 좋은 성능을 낸 것을 확인하였다.

 

Efficient Neural Architecture Search via Parameter Sharing은 올해 2월달에 구글에서 발표한 논문으로, NAS에 비해 약 1천배 이상의 효율을 보여주는 구조를 설계하였다. Directed Acyclic Graph를 이용해 네트워크를 만드는 구조 및 과정을 표현하고, 학습되는 다수의 child network의 weight를 서로 공유하게 디자인함으로써 학습시간을 획기적으로 단축하였다. NAS에서는 병렬처리를 위해 800개의 컴퓨터를 사용하였지만, 해당 논문에서는 GPU 1개로 약 16시간 동안 실험을 진행하여 네트워크 구조를 디자인하였다고 한다.

 

(http://dmqm.korea.ac.kr/board/view.asp?B_CATEGORY=0&B_CODE=b_papers&tID=105&sID=122&IDX=143&gotopage=1&search_category=&searchstring=

 

가비아 호스팅 서비스:웹호스팅,웹메일호스팅,쇼핑몰호스팅,단독서버,동영상호스팅

 

errdoc.gabia.net

 

Auto-DeepLab: Hierarchical Neural Architecture Search for Semantic Image Segmentation

 

(https://arxiv.org/abs/1901.02985

 

Auto-DeepLab: Hierarchical Neural Architecture Search for Semantic Image Segmentation

Recently, Neural Architecture Search (NAS) has successfully identified neural network architectures that exceed human designed ones on large-scale image classification. In this paper, we study NAS for semantic image segmentation. Existing works often focus

arxiv.org

제목에서 알 수 있듯이 Neural Architecture Search(NAS)를 Semantic Segmentation에 적용한 논문입니다.

최근 Neural Architecture Search의 Trend(RL-based --> Gradient based)에 맞게 Gradient based search 방식을 차용하였으며 Search에 3 GPU days가 소요되었다고 합니다.(Cityscapes 데이터셋)

Cityscape, PASCAL VOC 2012, ADE20K 데이터셋에 대해 test를 하였으며, 본 논문의 방법은 ImageNet Pretraining을 하지 않아서 ImageNet pretrained architecture(ex, PSPNet, DeepLabv3+, etc)등 선행 연구들보다는 testset 성능이 낮지만 비슷한 수준을 보이고 있으며, ImageNet pretraining을 사용하지 않은 경우에는 State-of-the-art 성능을 달성하였습니다.

또한 무엇보다 NAS 논문들에서 제시하는 대표적인 결과물인 "효율적인 연산"도 결과에 담고있으며, 기존 사람이 design한 network들에 비해 적은 수의 parameter, # of multiply, add operation로 비슷한 성능을 내는 것도 보여주고 있습니다.

조만간 Object Detection, Image Restoration 등 다양한 vision task에 NAS가 적용되리라 전망을 해봅니다.

 

 

 

https://www.facebook.com/groups/TensorFlowKR/permalink/826024361071957/

 

이호성

안녕하세요, 4일전 나온 따끈따끈한 논문 한편 소개드립니다. Auto-DeepLab: Hierarchical Neural Architecture Search for Semantic Image Segmentation (https://arxiv.org/abs/1901.02985) 제목에서 알 수 있듯이 Neural Architecture...

www.facebook.com

 

728x90
Posted by Mr. Slumber
,