GIL's LAB

[AutoML] AutoML이란 무엇인가? 본문

데이터사이언스/머신러닝

[AutoML] AutoML이란 무엇인가?

GIL~ 2022. 2. 18. 20:38

이번에 회사 업무상 AutoML에 대해 정리해야 할 일이 있어, 온갖 자료를 다 끌어다가 정리해보고자 합니다.

특히, 제가 직접 AutoML 시스템을 개발해야할 수도 있어서 상용화된 AutoML을 분석해보고, 구현을 위해 어떤 지식이 필요한지 여러 포스팅을 통해 좀 딥하게 알아보고자 합니다. 

 

이번 포스팅에서는 AutoML에 대한 내용을 개괄적으로 정리하겠습니다.

 

AutoML이란?

AutoML이란 automated machine learning의 약자로, 이름 그대로 머신러닝 모델을 개발을 자동화하는 분야입니다. 아래 그림과 같이 많은 머신러닝 모델 개발 과제에서 반복적으로 수행하게 되는 데이터 분할, 정제, 특징 선택 및 추출, 모델 선택, 하이퍼 파라미터 튜닝 등을 함수화하여 자동화하는 것이라고 할 수 있습니다. 거창하게 표현하면 AutoML은 인공지능 모델을 만드는 인공지능이라고 할 수 있습니다. 

출처:
출처: "인공지능 기술 발전이 인재 양성 정책에 주는 시사점: AutoML의 사례"

AutoML이 각광받고 있는 이유는 머신러닝 시스템 개발 과정에서 수 많은 반복적인 공수가 들어가는데, 머신러닝을 개발할 수 있는 인력보다 많은 양의 과제가 생겨나기 때문이라고 할 수 있습니다. 

 

 

AutoML vs 전문 분석가

이 뉴스 기사처럼 AutoML이 전문 분석가(데이터 사이언티스트)를 대체할 수 있을까에 대한 논쟁이 있는데, 시험삼아 몇몇 시스템을 사용해본 결과 완벽히 대체하는 것은 아직 먼 미래의 얘기라고 생각합니다. 

데이터마다 적절한 접근 방식이 다르고, 어떻게 설계하느냐에 따라서 결과가 완전히 달라질 수 있는데, 현재의 AutoML은 모델 선택과 파라미터 튜닝에 지나치게 포커싱하고 있는 듯 합니다. 

툴이라는 느낌이 강하고 창의적인 분석은 할 수 없는 수준입니다.

다만, 이제 막 강의를 듣고 머신러닝 모델을 개발하고자 하는 초보 데이터사이언티스트는 충분히 대체할만합니다. 그래서 앞으로는 단순히 파이썬 코드를 짜는 사람은 손쉽게 대체될테지만 창의적인 분석을 할 수 있고, 문제 정의, 데이터 탐색을 통한 분석 계획 수립 등을 할 수 있는 사이언티스트는 대체되기 어려울 것 같습니다. 

 

 

AutoML의 기술

AutoML의 핵심 문제는 데이터가 주어졌을 때 가장 적절한 모델과 파라미터를 선택하는 CASH (Combined Algorithm Selection and hyper-parameter) 최적화 문제입니다. 

 

Auto-WEKA라는 시스템을 개발한 논문에서는 데이터 D가 주어졌을 때 최적의 알고리즘 A와 람다를 선택하는 문제로 표현했습니다.

다른 문제로 신경망의 구조를 최적화하는 NAS (Neural Architecture Search) 문제가 있지만, 사실 이 문제도 CASH에 포함된다고 봅니다.

이들 문제는 random search, Bayesian optimization, evolutionary algorithm, reinforcement learning 등의 알고리즘을 사용하여 해결하며, 핵심은 탐색 공간을 어떻게 설정하느냐일 것 같습니다. 모든 모델과 파라미터를 다 비교하는 것도 불가능할테고, 어느 정도 경험치를 바탕으로 가능성이 없어보이는 모델을 탐색하지 않는 것이 기술일 것 같습니다. 

실제로 분석가가 파라미터 튜닝을 할 때도 몇몇 모델을 픽스하니까요.

 

다만, AutoML이 분석가를 완전히 대체할 수 없는 이유도 여기서 드러납니다. 머신러닝 모델 성능에 가장 큰 영향을 주는 것은 특징 추출이나 고급 전처리인데, 그런 부분이 아예 빠져있고 이미 데이터는 깔끔하게 주어진다고 가정합니다. 

그래서 일반화된 AutoML 개발은 어렵거나 단순한 task만 해결할 수 있을 것 같고, 차라리 특정 도메인의 데이터를 포커싱하여 개발하는 것이 더 현실적이지 않을까라는 생각이 듭니다.  

 

 

AutoML 관련 패키지 및 시스템

AutoML과 관련된 상용 시스템 및 파이썬 패키지는 아래와 같습니다. 여기서는 다 소개하지 않고, 실제로 각 시스템 및 패키지를 사용한 다음에 해당 내용을 상세히 포스팅으로 정리하겠습니다. 

  • Auto-WEKA
  • IBM AutoAI
  • Microsoft AzureML
  • Google AutoML
  • Amazon SageMaker
  • H2O AI
  • Auto-sklearn
  • Neural Network Intelligence
  • DataRobot

 

 

Comments