2017.09.22

"누구나 할 수 있는 머신러닝" 6가지 AML 프로젝트

Serdar Yegulalp | InfoWorld
머신러닝은 강력하지만 그만한 대가를 치러야 한다. 기술과 도구, 하드웨어, 데이터를 갖춘다 해도 머신러닝 모델을 만들고 세밀하게 조정하는 데는 복잡함이 따른다.

그러나 머신러닝의 핵심이 과거 사람이 직접 해야 했던 일을 자동화하는 데 있다면 머신러닝 자체의 단조로운 작업을 머신러닝을 사용해서 해결하는 것도 가능하지 않을까?

Image Credit : GettyImagesBank

짧게 답한다면 조건부로 가능하다. “AML(Autimated Machine Learning, 자동화된 머신러닝)”로 통용되는 몇 가지 기술은 모델을 준비하고 정확성을 개선하기 위해 점진적으로 다듬는 데 필요한 작업을 줄여줄 수 있다.

AML은 아직 초기 단계다. 현재는 여러 가지 개별적인 조각과 상호 단절된 기술들의 모음이지만 빠른 속도로 상용화되고 있으며, 머신러닝 전문가가 아닌 일반적인 비즈니스 사용자도 이용할 수 있을 만큼 발전했다.

그 길을 이끌고 있는 6가지 AML 툴을 소개한다.

Auto-sklearn과 Auto-Weka
이미 보급된 AML의 두 가지 예는 일반적인 머신러닝 기능 패키지로 폭넓게 사용되는 Scikit-learn 프로젝트를 강화하는 형태의 툴이다.

Scikit-learn에는 여러 가지 “추정자(estimator)” 기능, 즉 제공된 데이터로 학습하기 위한 방법론이 제공된다. 적절한 추정자를 선택하는 일은 지루한 과정이 될 수 있는데, Auto-sklearn 프로젝트는 이러한 지루함을 일부 없애는 것을 목표로 한다. Auto-sklearn은 자체 분석을 수행해 주어진 Scikit-learn 작업을 위한 최적의 알고리즘과 하이퍼 매개변수 집합을 결정하는 보편적 추정자 기능을 제공한다.

Auto-sklearn에도 여전히 일부 수작업이 필요하다. 최종 사용자는 튜닝 프로세스에서 사용할 수 있는 메모리와 시간 제한을 설정해야 한다. 그러나 이 정도만 선택하고 나머지를 머신에 맡기는 편이 모델 선택과 하이퍼 매개변수를 붙잡고 씨름하는 것보다 훨씬 더 쉽다.

자바와 웨카(Weka) 머신러닝 패키지를 사용하는 머신 러너라면 Auto-Weka라는 비슷한 프로젝트가 있다. Auto-sklearn은 사실 Auto-Weka에서 착안해 만들어진 프로젝트다.

프로디지(Prodigy)
자연어 처리와 같이 사람이 감독하는(supervised) 머신러닝 모델을 만들 때 가장 많은 노동이 필요한 부분 중 하나는 주석 단계다. 즉, 모델에 사용되는 데이터를 설명하고 주석을 달아 메타데이터를 생성하는 작업이다.

이 프로세스를 완전히 자동화하기란 적어도 아직까지는 불가능하다. 그러나 머신러닝을 사용해 이 프로세스의 속도를 높이고 조금이라도 쉽게 하는 정도는 가능하다.

프로디지라는 주석 툴은 이런 생각에서 출발한 툴이다. 프로디지는 웹 인터페이스를 사용해서 주석이 첨부된 데이터 집합이 필요한 모델의 교육 프로세스를 최대한 빠르고 직관적으로 만들어준다. 이미 데이터 집합에 추가된 주석은 앞으로의 주석을 위한 가이드로 사용되어 계속해서 주석 프로세스의 속도를 높이게 된다.

프로디지는 머신러닝 환경으로 파이썬을 폭넓게 사용한다. 모델 교육, 테스트, 주석 데이터 집합 탐색, 프로젝트 간 결과 관리를 위한 파이썬 모델을 제공한다. 완성된 모델은 파이썬 패키지로 내보내서 다른 파이썬 앱을 통해 프로덕션에 투입할 수 있다.

H2o 드라이버리스 AI(H2o Driverless AI)
비전문가의 머신러닝 접근성을 높이기 위한 또 다른 툴은 H2o.ai의 드라이버리스 AI다. 드라이버리스 AI는 머신러닝 알고리즘의 원리에 대해 배울 필요 없이 데이터를 통해 통찰력을 얻고자 하며 타블로(Tableau)와 같은 제품에 익숙한 비즈니스 사용자를 위해 만들어진 툴이다.

프로디지와 마찬가지로 드라이버리스 AI도 웹 기반 UI를 사용한다. 사용자가 웹 기반 UI에서 해결하고자 하는 데이터 집합의 대상 변수를 하나 이상 선택하면 시스템이 답을 내준다. 결과는 인터랙티브 차트를 통해 제공되며 영어로 된 주석 설명이 붙는다.

프로디지와 달리 드라이버리스 AI는 오픈소스가 아니다. H2o.ai의 스택 대부분은 오픈소스지만 드라이버리스 AI는 아니다. 기술적 배경이 없는 사용자를 위한 머신러닝은 오픈소스 스택보다는 상용 제품을 통해 제공되는 추세를 보여주는 사례 중 하나다.

구글의 AutoML과 비지어(Vizier)
최근 몇 개월 동안 구글은 두 가지 자체 프로젝트(전적으로 내부 프로젝트이긴 해도)를 AML을 구현하는 방법의 예로 제안해왔다.

첫 번째 프로젝트인 “AutoML”은 다계층 딥 러닝 모델의 설계를 자동화하기 위한 목적으로 만들어졌다.

구글은 “네트워크를 설계하는 과정에서 머신러닝 전문 지식을 보유한 전문 인력으로 많은 시간 동안 많은 실험을 해야 한다”고 말했다. 사람이 딥 러닝 네트워크 설계를 하나하나 만들어 테스트하는 대신 AutoML은 증강 학습 알고리즘을 사용해서 수천 가지의 가능한 네트워크를 테스트한다. 각 알고리즘 실행의 피드백을 사용해서 다음 실행을 위한 새 후보 아키텍처를 만들 수 있다. 충분히 많이 실행하면 학습 메커니즘은 어떤 모델 구조가 더 나은 결과를 도출하는지 알아낼 수 있다.

또 다른 구글 프로젝트인 구글 비지어는 8월에 게시된 논문에 기술된 “블랙 박스 최적화를 위한 서비스”다. 쉽게 설명하자면 제공한 매개변수와 도출한 결과 간의 상관관계를 찾기 어려운 경우 시스템을 위한 최선의 운영 매개변수를 찾는 방법이다.

논문에 따르면 구글은 동작 조정을 통해 개선이 가능한 구글 서비스의 수를 파악하기 위한 연구에 비지어를 사용했다. 예를 들어 “글꼴, 썸네일 크기, 색 구성, 간격과 같은 사용자 인터페이스 매개변수, 또는 사용자에게 보여줄 항목 결정에서 다양한 신호가 가진 상대적 중요성과 같은 트래픽 관련 매개변수 튜닝”이 있다.

현재 비지어는 구글 내부에서만 사용된다. 그러나 구글이 내부적으로 텐서플로우(TensorFlow)를 개발한 다음 외부에 공개했듯이 추후 비지어 서비스를 상품화하거나 오픈소스 프로젝트로 공개할 가능성도 충분히 있다.  editor@itworld.co.kr

2017.09.22

"누구나 할 수 있는 머신러닝" 6가지 AML 프로젝트

Serdar Yegulalp | InfoWorld
머신러닝은 강력하지만 그만한 대가를 치러야 한다. 기술과 도구, 하드웨어, 데이터를 갖춘다 해도 머신러닝 모델을 만들고 세밀하게 조정하는 데는 복잡함이 따른다.

그러나 머신러닝의 핵심이 과거 사람이 직접 해야 했던 일을 자동화하는 데 있다면 머신러닝 자체의 단조로운 작업을 머신러닝을 사용해서 해결하는 것도 가능하지 않을까?

Image Credit : GettyImagesBank

짧게 답한다면 조건부로 가능하다. “AML(Autimated Machine Learning, 자동화된 머신러닝)”로 통용되는 몇 가지 기술은 모델을 준비하고 정확성을 개선하기 위해 점진적으로 다듬는 데 필요한 작업을 줄여줄 수 있다.

AML은 아직 초기 단계다. 현재는 여러 가지 개별적인 조각과 상호 단절된 기술들의 모음이지만 빠른 속도로 상용화되고 있으며, 머신러닝 전문가가 아닌 일반적인 비즈니스 사용자도 이용할 수 있을 만큼 발전했다.

그 길을 이끌고 있는 6가지 AML 툴을 소개한다.

Auto-sklearn과 Auto-Weka
이미 보급된 AML의 두 가지 예는 일반적인 머신러닝 기능 패키지로 폭넓게 사용되는 Scikit-learn 프로젝트를 강화하는 형태의 툴이다.

Scikit-learn에는 여러 가지 “추정자(estimator)” 기능, 즉 제공된 데이터로 학습하기 위한 방법론이 제공된다. 적절한 추정자를 선택하는 일은 지루한 과정이 될 수 있는데, Auto-sklearn 프로젝트는 이러한 지루함을 일부 없애는 것을 목표로 한다. Auto-sklearn은 자체 분석을 수행해 주어진 Scikit-learn 작업을 위한 최적의 알고리즘과 하이퍼 매개변수 집합을 결정하는 보편적 추정자 기능을 제공한다.

Auto-sklearn에도 여전히 일부 수작업이 필요하다. 최종 사용자는 튜닝 프로세스에서 사용할 수 있는 메모리와 시간 제한을 설정해야 한다. 그러나 이 정도만 선택하고 나머지를 머신에 맡기는 편이 모델 선택과 하이퍼 매개변수를 붙잡고 씨름하는 것보다 훨씬 더 쉽다.

자바와 웨카(Weka) 머신러닝 패키지를 사용하는 머신 러너라면 Auto-Weka라는 비슷한 프로젝트가 있다. Auto-sklearn은 사실 Auto-Weka에서 착안해 만들어진 프로젝트다.

프로디지(Prodigy)
자연어 처리와 같이 사람이 감독하는(supervised) 머신러닝 모델을 만들 때 가장 많은 노동이 필요한 부분 중 하나는 주석 단계다. 즉, 모델에 사용되는 데이터를 설명하고 주석을 달아 메타데이터를 생성하는 작업이다.

이 프로세스를 완전히 자동화하기란 적어도 아직까지는 불가능하다. 그러나 머신러닝을 사용해 이 프로세스의 속도를 높이고 조금이라도 쉽게 하는 정도는 가능하다.

프로디지라는 주석 툴은 이런 생각에서 출발한 툴이다. 프로디지는 웹 인터페이스를 사용해서 주석이 첨부된 데이터 집합이 필요한 모델의 교육 프로세스를 최대한 빠르고 직관적으로 만들어준다. 이미 데이터 집합에 추가된 주석은 앞으로의 주석을 위한 가이드로 사용되어 계속해서 주석 프로세스의 속도를 높이게 된다.

프로디지는 머신러닝 환경으로 파이썬을 폭넓게 사용한다. 모델 교육, 테스트, 주석 데이터 집합 탐색, 프로젝트 간 결과 관리를 위한 파이썬 모델을 제공한다. 완성된 모델은 파이썬 패키지로 내보내서 다른 파이썬 앱을 통해 프로덕션에 투입할 수 있다.

H2o 드라이버리스 AI(H2o Driverless AI)
비전문가의 머신러닝 접근성을 높이기 위한 또 다른 툴은 H2o.ai의 드라이버리스 AI다. 드라이버리스 AI는 머신러닝 알고리즘의 원리에 대해 배울 필요 없이 데이터를 통해 통찰력을 얻고자 하며 타블로(Tableau)와 같은 제품에 익숙한 비즈니스 사용자를 위해 만들어진 툴이다.

프로디지와 마찬가지로 드라이버리스 AI도 웹 기반 UI를 사용한다. 사용자가 웹 기반 UI에서 해결하고자 하는 데이터 집합의 대상 변수를 하나 이상 선택하면 시스템이 답을 내준다. 결과는 인터랙티브 차트를 통해 제공되며 영어로 된 주석 설명이 붙는다.

프로디지와 달리 드라이버리스 AI는 오픈소스가 아니다. H2o.ai의 스택 대부분은 오픈소스지만 드라이버리스 AI는 아니다. 기술적 배경이 없는 사용자를 위한 머신러닝은 오픈소스 스택보다는 상용 제품을 통해 제공되는 추세를 보여주는 사례 중 하나다.

구글의 AutoML과 비지어(Vizier)
최근 몇 개월 동안 구글은 두 가지 자체 프로젝트(전적으로 내부 프로젝트이긴 해도)를 AML을 구현하는 방법의 예로 제안해왔다.

첫 번째 프로젝트인 “AutoML”은 다계층 딥 러닝 모델의 설계를 자동화하기 위한 목적으로 만들어졌다.

구글은 “네트워크를 설계하는 과정에서 머신러닝 전문 지식을 보유한 전문 인력으로 많은 시간 동안 많은 실험을 해야 한다”고 말했다. 사람이 딥 러닝 네트워크 설계를 하나하나 만들어 테스트하는 대신 AutoML은 증강 학습 알고리즘을 사용해서 수천 가지의 가능한 네트워크를 테스트한다. 각 알고리즘 실행의 피드백을 사용해서 다음 실행을 위한 새 후보 아키텍처를 만들 수 있다. 충분히 많이 실행하면 학습 메커니즘은 어떤 모델 구조가 더 나은 결과를 도출하는지 알아낼 수 있다.

또 다른 구글 프로젝트인 구글 비지어는 8월에 게시된 논문에 기술된 “블랙 박스 최적화를 위한 서비스”다. 쉽게 설명하자면 제공한 매개변수와 도출한 결과 간의 상관관계를 찾기 어려운 경우 시스템을 위한 최선의 운영 매개변수를 찾는 방법이다.

논문에 따르면 구글은 동작 조정을 통해 개선이 가능한 구글 서비스의 수를 파악하기 위한 연구에 비지어를 사용했다. 예를 들어 “글꼴, 썸네일 크기, 색 구성, 간격과 같은 사용자 인터페이스 매개변수, 또는 사용자에게 보여줄 항목 결정에서 다양한 신호가 가진 상대적 중요성과 같은 트래픽 관련 매개변수 튜닝”이 있다.

현재 비지어는 구글 내부에서만 사용된다. 그러나 구글이 내부적으로 텐서플로우(TensorFlow)를 개발한 다음 외부에 공개했듯이 추후 비지어 서비스를 상품화하거나 오픈소스 프로젝트로 공개할 가능성도 충분히 있다.  editor@itworld.co.kr

X