?상명대학교 / 서광규 교수
최근 인공 신경망을 활용한 연구는 음성, 이미지, 비디오, 자연어 등의 추론 정확도를 높이는 것에서 더 나아가 신경망 최적화 및 자동 구조화 분야로 그 폭을 넓혀가고 있다. 인공지능에서 목표 데이터 또는 태스크가 다를 경우 같은 작업이 반복 수행되어야 하는 문제점을 극복하고, 더욱 빠른 훈련 및 분석을 보장하기 위해 많은 AI 관련 연구자들이 자동기계학습(AutoML: Automated Machine Learning) 기술에 주목하고 있다. 즉, 인공지능이 스스로 진화하는 영화 오토마타(automata)처럼 인간의 개입 없이 ‘진화론’과 ‘적자생존’방법을 응용해 스스로 진화하는 방향으로 발전해 가고 있다. 구글 컴퓨터 과학자인 쿠옥르(Quoc Le)와 동료들이 고등학생 수준의 기본적인 수학 개념만을 사용해 최적의 머신러닝 알고리즘을 자동으로 만드는 인공지능(AI) ‘오토 머신러닝 제로(AutoML-Zero)’를 개발했는데, 새롭게 발표한 ‘AutoML-Zero’는 인간의 입력이 거의 없는 AI 프로그램이다. 이 연구 결과는 동료 평가와 검증을 받고 학술지에 올리기 전에 먼저 공개하는 학술 플랫폼 아카이브(arXiv)에 논문명 ‘AutoML-Zero: Evolving Machine Learning Algorithms From Scratch’으로 2020년 3월에 게재되었는데, 이 글에서는 이 논문의 핵심기술에 대하여 기술하기로 한다.
서론
AutoML은 Machine Learning을 Automatic하게 수행하는 과정을 의미하는데, AutoML을 다룬 연구는 짧은 시간동안 많은 발전을 이루었다. 대표적인 Neural Architecture Search(NAS)로 이제는 발전을 거듭하여 하나의 GPU로 몇 시간만에 사람이 설계한 아키텍처의 성능을 뛰어넘고, 연산량, throughput까지 고려한 아키텍처를 자동으로 찾아준다. 대부분의 AutoML 연구는 아키텍처를 찾는데 집중을 했는데, 이 논문에서는 탐색 공간(search space)에서의 사람의 개입을 최소화하는 것을 목표로 하고 있다. 예를 들어 아키텍처 탐색은 각 레이어(layer)에 1x1 conv, 3x3 conv, 3x3 max pooling 등 여러 옵션을 먼저 사람이 정해 놓은 뒤 탐색 알로리즘을 통해 아키텍처를 설계한다. 이 논문에서는 혁신적인 AutoML로 가기 위해선 전체 ML 알고리즘을 설계하는 과정에서 사람의 개입을 최소화해야 한다고 설명하고 있다.
이 논문에서 설명하고 있는 AutoML-Zero의 전체 개요와 구성요소는 그림 1과 같은데 중요한 구성요소를 차례대로 설명하기로 한다.

[그림1. AutoML-Zero의 전체 개요와 구성요소]
탐색 공간(Search Space)
ML과 관련 있는 요소들을 오로지 고등학교 수학 수준의 65가지의 연산들만 이용하였는데, 논문의 Supplementary Material S1에 65가지 연산 목록이 나와 있다. 기존 연구에서도 수학 기호들을 탐색 공간으로 하여 AutoML을 적용을 시도하였는데, 이 연구에서는 최적연산자를 제외한 나머지 영역은 사람이 개입을 하였다면, AutoML-Zero는 prior를 사용하지 않고 처음부터 시작하는 점이 다르다. 제시한 65가지의 연산을 Instruction이라 하며, 어떠한 방식을 써서라도 ML 알고리즘을 만들고, 학습을 시켜서, Test Set에 대한 정확도를 측정하여야 하기 때문에, 딱 3가지의 component function인 Setup, Predict, Learn을 정의하고 search를 시작한다. Setup은 weight를 초기화하는 것을 의미하고, Predict는 forward propagation을 구성하는 모든 요소이며 Learn은 training에 관여하는 모든 요소를 포함하고 있다.
탐색 방법(Search Method)
탐색공간이 설정되었으면 이를 기반으로 탐색이 수행되게 되는데, AutoML-Zero에서는 진화 알고리즘을 채택하였다. 정확히는 regularized evolution search method를 사용하였는데, 이는 유전 프로그래밍과 비슷하지만 트리 구조가 아닌 프로그래머가가 코드를 작성하는 것처럼 instruction의 sequence 형태로 프로그램을 표현하였다. 그림 2에는 이를 설명하고 있다. 이 논문에서는 가장 단순하면서 효율적인 방법이라고 판단돼서 regularized evolution search method를 사용하였고, 더 복잡한 진화 알고리즘, 강화 학습, 베이지안 최적화 등은 향후 연구로 남겨두었다.

[그림2. regularized evolution method의 한 싸이클]
탐색 속도 가속
탐색 속도를 2000~10000/sec/cpu 정도로 빠르게 만들기 위해 총 2가지 방법을 적용하는데, 먼저 적용한 방법은 functional equivalence checking(FEC) 라는 방식이다. 이는 탐색 방법으로 찾은 함수들이 supervised ML 알고리즘에서 사용되는 함수와 같은 역할을 하는지 확인하는 것이다. 이를 확인하기 위해 일부의 데이터를 10개의 training step, 10개의 validation step을 거친 뒤 결과가 같은 지 알아보는 방식을 사용하였으며, 이 FEC 방식을 통해 4배의 speedup을 이룰 수 있었다. 두 번째 방법은 2019년 ICML에 발표된 The Evolved Transformer에서 제안한 hurdles을 추가하여 5배의 throughput 향상을 이루었다.
실험결과
이 논문에서는 총 3가지 질문에 답하기 위해 실험을 설계하였는데, 그 실험결과를 요약하면 다음과 같다.
1) Finding Simple Neural Nets in a Difficult Space
첫번째 질문은 “how difficult is searching the AutoML-Zero space?”이다. 즉, 탐색 공간의 어려움에 대해 질문을 던지고 이에 대한 답을 찾은 것이다. 이에 대한 답을 찾기 위한 실험을 위해 regression task를 생성하였고, 좋은 solution이 존재하는 것을 담보하기 위해 teacher neural network를 생성하였다. 그 뒤, evolutionary search가 teacher의 코드를 재발견하는지 확인하는 실험을 수행하였다. 결론은 생성해낸 teacher network를 재현하는데 성공하였고, task의 개수를 100개로 늘리면, 각 task가 서로 다른 weight를 발견해야 하는데, 이 과정에서 evolution은 단순히 forward pass를 발견하는 것뿐만 아니라, weight를 학습하기 위한 backward propagation code도 찾아냈다.
2) Searching with Minimal Human Input
두 번째는 질문은 “can we use our framework to discover reasonable algorithms with minimal human input?”이다. 즉 최소한의 사람의 개입을 해도 납득할만한 알고리즘을 발견할 수 있는지에 대한 대답을 얻기 위해 실험을 진행하였다. 실험결과는 시간이 지날수록 Input noise, Loss Clipping, SGD, Gradient Normalization, Hard-coded LR, ReLU, Random Weight Initialization, averaged perceptron, weight averaging 등을 차례대로 배워가는 모습이 관찰되었고 최종적으론 높은 정확도를 내는 깔끔한 코드로 완성되었다.
3) Discovering Algorithm Adaptations
마지막 질문은 “can we discover different algorithms by varying the type of task we use during the search experiment?인데, 이는 문제 상황이 바뀔 때 유연하게 적응할 수 있을지 확인하는 것을 목표로 실험을 진행하였다. 실험결과는 문제 상황에 대해 굉장히 놀랍게 잘 적응을 하는 것을 확인하였다. 우선 training example이 부족한 경우에 AutoML-Zero는 input data에 noise를 주입하여 augmentation을 하는 것을 스스로 배웠다. 빠른 학습을 위해서는 스스로 learning-rate decay를 배웠으며, class의 개수가 늘어난 경우에도 스스로의 수학적 연산을 통해 성능이 향상되었다.
결론
AutoML-Zero는 최적의 알고리즘을 찾을 때까지 초당 수만 개의 알고리즘을 작성하고 테스트한다. AutoML-Zero는 유전 프로그래밍과 비슷한 진화적 알고리즘으로 기존 머신러닝 알고리즘 자동설계(AutoML)와는 개념 자체가 다르다. 기존 AutoML은 NAS(Neural Architecture Search) 같이 학습을 통해 최적의 아키텍처를 생성했다. 특히 AutoML-Zero는 신경망 설계를 0부터 시작했다는 점이다. NAS는 컨볼루션이나 맥스풀링 같은 최소단위를 사람이 미리 구현했지만 AutoML-Zero는 기초적인 수학 연산자만 가지고 진화를 시켰기 때문에 확장 가능성이 높다. AutoML-Zero는 앞으로 미래에 등장할 수많은 자동 머신러닝 설계 인공지능 중 매우 의미 있는 접근법으로 무궁무진한 가능성이 있으나 스스로 진화하기에는 아직 가야 할 길이 멀다고 하겠다.
참 고 문 헌
- Esteban Real, Chen Liang, David R. So, Quoc V. Le. AutoML-Zero: Evolving Machine Learning Algorithms From Scratch, The 37th International Conference on Machine Learning (ICML 2020). March 2020.
- https://hoya012.github.io/blog/automl-zero-review/
- https://cloud.google.com/products/ai/
- http://www.itnews.or.kr/?p=32787
- 문용혁, 신익희, 이용주, 민옥기, 자동 기계학습(AutoML) 기술 동향, 전자통신동향분석 34권 제4호, pp.32-42, 2019년 8월.
저작권정책
K-ICT 클라우드혁신센터의 저작물인 『구글 AytoML-Zero: 처음부터 시작하는 머신러닝 알고리즘』은 K-ICT 클라우드혁신센터에서 상명대학교 서광규 교수에게 집필 자문을 받아 발행한 전문정보 브리프로, K-ICT 클라우드혁신센터의 저작권정책에 따라 이용할 수 있습니다.
다만 사진, 이미지, 인용자료 등 제3자에게 저작권이 있는 경우 원저작권자가 정한 바에 따릅니다.
