②AutoML의 한계와 미래
<스마트하게 머신러닝 적용하는 법 1편>
https://brunch.co.kr/@8d1b089f514b4d5/44
앞서 스마트하게 머신러닝 적용하는 법 1부에서는 AutoML이란 무엇인지, AutoML이 가진 장점과 주목받는 이유를 살펴봤습니다. 하지만 AutoML의 목적과 정의를 이해하는 것과 현실에서 AutoML 적용을 이야기하는 것은 다른 차원의 문제입니다. 이번 글에서는 AutoML이 어디까지 발전해왔고, 어떤 모습으로 AutoML을 맞이할 수 있는지에 대해 이야기합니다. 또한 최종적으로 현재 AutoML이 지니는 한계점은 무엇인지, 이를 바탕으로 우리가 주의해야 할 점은 무엇이 있는지 알아보겠습니다.
본격 AutoML 적용을 위해 필요한 것
AutoML을 적용하면 많은 머신러닝 작업을 자동화하여 업무를 효율적으로 진행할 수 있습니다. 하지만 아직까지는 AutoML을 업무에 바로 적용하기엔 몇 가지 한계가 존재합니다. AutoML을 실제 적용하기 위해선 필요한 준비물이 있습니다.
1) 머신러닝에 대한 이해
AutoML을 이용하기 위해서는 머신러닝에 대한 이해가 반드시 선행되어야 합니다. 1부에서도 머신러닝에 대한 간단한 개요를 살펴보았으나, 이는 AutoML 자체의 이해를 위한 것이었습니다. 실제 AutoML 적용은 더욱 깊은 수준의 머신러닝 이해도가 필요합니다. AutoML이 각 머신러닝 절차 속에서 작업을 수행한 이후에 내놓는 결과물은 어떤 것이며, 그 과정에 어떤 비교 실험을 진행했는지 이해해야 하기 때문입니다. 머신러닝에 대한 이해가 부족해도 AutoML을 수행할 수는 있지만, 절차에 맞는 수행과 결과물 해석은 아무나 할 수 없습니다.
예를 들어, 모든 AutoML은 각 작업이 모듈화 된 기능으로 존재하고 있습니다. 클릭 몇 번 혹은 코드 한 줄로 처음부터 끝까지 모든 단계를 완벽히 자동화할 수는 없습니다. 머신러닝 각 절차에 따라 데이터 전처리에 필요한 기능, 알고리즘 선택에 필요한 기능이 따로 존재하여 데이터 분석가가 이를 조합하여 활용해야 합니다. 만약 분석가가 머신러닝에 대한 높은 이해가 없는 상태로 AutoML을 수행한다면, 잘못된 순서로 머신러닝 작업을 수행할 수도 있습니다. 또한 각 기능에서 어떤 작업을 실행시켰는지에 대한 이해가 부족할 수 있습니다.
2) 시스템과 자원
AutoML을 현실에 적용하기 위해서는 시스템이나 자원의 뒷받침이 필요합니다. 이는 AutoML의 종류에 따라 다르지만, 기본적으로 굉장히 많은 알고리즘을 모두 수행하며 그 결과를 비교해 단 하나의 알고리즘을 선정하는 것이 기본 작동 원리입니다. 그만큼 많은 알고리즘을 수행하기 위해서는 높은 컴퓨터 자원이 준비되어야 합니다. 일반적인 머신러닝 수행 역시 어느 정도 좋은 사양의 컴퓨터가 필요하지만, 특히 AutoML을 적용하려면 비교도 할 수 없이 높은 사양의 컴퓨터가 필요합니다.
기업에서 AutoML을 수행할 때도 마찬가지입니다. 높은 사양의 컴퓨터가 필요함은 물론 보안 등의 이유로 인해, 외부 기능을 불러오는데 한계가 있다면 AutoML을 활용하기 어렵습니다. 많은 돈을 지불하고 AutoML 솔루션을 구입해도, 그것을 회사 내부 시스템에 연동할 수 있는 방법을 먼저 생각해야 합니다.
AutoML의 종류와 현황
다행히 AutoML은 여러 가지 방법으로 발전해와서 AutoML 종류를 잘 선택하면, 위에서 언급한 문제를 피할 수도 있습니다. 또한 AutoML의 종류마다 그 특성이 달라지기에 현재 어떤 종류가 있는지 현황을 아는 것이 매우 중요합니다.
1) OSS(Open Source Software)
현재 적용되고 있는 AutoML은 크게 세 가지로 분류가 가능합니다(Xin D., et al. “Whither AutoML? Understanding the Role of Automation in Machine Learning Workflows,” CHI Conference on Human Factors in Computing Systems, Yokohama, Japan, May 2021). 첫 번째는 OSS로 무료로 제공되는 소프트웨어를 통해 AutoML을 적용하는 방법입니다. OSS 방식은 파이썬, R 등 각 프로그래밍 환경에 라이브러리 형태로 AutoML 기능이 내장되어, 이를 사용자가 그대로 적용할 수 있는 방식입니다. 쉽게 이해하자면 파이썬과 같이 머신러닝에 자주 이용되는 컴퓨터 언어 속에 AutoML 기능을 삽입한 다음 이용하는 방식입니다.
OSS 방식을 통해 AutoML을 적용한다면 무료로 이용할 수 있다는 큰 장점이 존재합니다. 또한 다른 AutoML 종류와는 다르게 직접 코드를 불러와 수행하기 때문에, 개인화(Customization)하여 AutoML을 수행하기에 가장 최적화되어 있습니다. 하지만 같은 이유로 코딩 작업에 인간의 관여가 상대적으로 많은 편이기에 완전한 자동화를 진행하거나, 쉽게 AutoML을 바로 적용하기에는 한계가 있습니다. 이런 점이 일반적으로 OSS 방식의 단점으로 이야기되고 있습니다.
2) Cloud Provider solutions
AutoML을 적용하는 두 번째 방법은 클라우드 환경을 통해 AutoML 기능을 이용하는 Cloud Provider Solutions입니다. 클라우드란 개인 혹은 기업 각자의 컴퓨터 장치를 이용하는 것이 아닌, 클라우드라는 환경 속에서 제공되는 컴퓨터 자원을 이용해 작업을 수행하는 방식을 의미합니다. GCP, AWS 등 다양한 클라우드 시스템이 이미 우리 삶과 업무에 많이 활용되고 있는데요. 이를 활용하는 방법입니다. 평소 해당 클라우드 시스템을 활용해 작업을 수행하고 있다면, 가장 적용하기 쉬운 방법은 클라우드에서 직접 제공하는 솔루션을 이용하는 것입니다.
클라우드 시스템 기반의 솔루션들을 이용한다면, AutoML을 위한 준비물 중 시스템과 자원에 대한 부분은 자연스럽게 해결됩니다. 클라우드 시스템 특성상, 직접 소유하고 있는 컴퓨터가 아닌 웹 상에 존재하는 거대 기업의 컴퓨터 자원을 활용하기 때문입니다. 하지만 OSS 방식과는 반대로 클라우드 시스템에서 제공되는 AutoML을 그대로 이용하여 사용은 쉽지만, 작업 과정을 투명하게 관찰하거나 AutoML을 개인화 하기에는 단점이 있습니다.
3) AutoML Platforms
마지막은 AutoML만을 위해 개발된 플랫폼을 이용하는 방식인 AutoML Platform입니다. AutoML만을 위해 하나의 프로그램을 새로 개발하여, 이를 활용하는 방식이라 이해하면 좋습니다. 해당 방식은 일반적으로 기업에서 AutoML을 활용할 때 가장 많이 이용합니다. 직접 AutoML을 위해 개발된 솔루션 혹은 프로그램의 비용을 지불하고, 하나의 일관된 분석 환경으로 사용합니다.
앞선 두 방식과는 다르게 AutoML만을 위해 새롭게 솔루션을 구매해 사용하는 방식으로, 비용 측면에서는 단점이 될 수 있습니다. 또한 프로그램 자체를 이용하는 것으로 직접 코드를 조작해, 개인화된 AutoML을 구성하기에는 OSS 방식에 비해 한계가 있습니다. 하지만 AutoML만을 위해 개발된 솔루션이어서, 가장 쉽고 간단하게 AutoML을 구현할 수 있게 설계되었습니다. 효율성 측면에서는 가장 인기가 많은 종류이기도 합니다.
AutoML의 한계점
이렇듯 다양한 종류의 AutoML이 있지만, 방식과 상관없이 현실 적용에는 공통적인 한계가 존재합니다.
1) 비용적 한계
먼저 현재 수준에서 AutoML을 구현하고자 한다면 비용적인 한계가 있습니다. 앞서 말한 AutoML의 종류 중 OSS 방식을 제외한다면 각각 클라우드 사용 비용, 솔루션 구매 비용 등을 지불해야 합니다. 개인이 지불하기에는 당연히 부담스럽고, 기업 역시 지속적으로 AutoML을 위해 비용을 쓰는 것은 부담이 될 수 있습니다. AutoML은 기본적으로 사람이 할 수 있는 일을 자동화해주는 작업이기에 비용을 지불하려면 심리적인 부담도 따릅니다. 자동화 솔루션을 거꾸로 말하면 ‘사람이 할 수 있는 일을 굳이 비용을 지불하며 처리하는 것’이기 때문입니다.
또한 앞서 언급한 OSS에 해당하는 AutoML 구현 방식도 비용적 한계에서 완전히 자유로운 것은 아닙니다. 비록 프로그래밍에 구현되어 있는 코드를 그대로 활용하는 것뿐이지만, 이 경우는 온전히 개인이 소유하고 있는 컴퓨터 자원을 활용하고 있기 때문입니다. AutoML은 기본적으로 높은 수준의 컴퓨터 자원을 필요로 하며, OSS 방식의 AutoML을 사용한다는 것은 컴퓨터 자원 구축은 순전히 개인이 온전히 부담한다는 의미이기도 합니다. 이는 일반 개인이 쉽게 넘겨짚을 수 없는 부분입니다.
2) 기능적 한계
또한 현재까지의 AutoML은 그 기능적 한계가 명확한 편입니다. AutoML은 본디 사람이 수행하던 일을 더 빨리, 더 정확하게 수행하기 위해 발전했습니다. 하지만 현재까지의 AutoML은 정확도 측면에서 사람이 만드는 머신러닝보다 품질이 떨어지는 경향이 있고, 모델 완성에 걸리는 시간도 더 많습니다. 즉, 초기에 목표했던 정확하고 빠른 머신러닝 구축에 실패하는 사례가 많다는 것입니다.
우선 정확도가 상대적으로 낮은 현상은 보통 인간의 도메인 지식 때문이라고 해석합니다. 도메인 지식이란 머신러닝이 적용되는 분야의 지식을 의미합니다. 예를 들어 머신러닝을 통해 두 축구팀이 경기를 할 때 어떤 팀이 승리할지를 예측한다면, 축구에 대한 지식이 도메인 지식이 됩니다. 인간은 도메인 지식을 활용하여 결과 예측에 유효하게 작용하는 변수를 컴퓨터에게 선별하여 입력해주는 반면, AutoML에서는 단순히 처음 주어진 데이터만을 활용하여 머신러닝을 진행함으로써 정확도에 한계를 보입니다. 따라서 단 1%라도 정확도가 높은 작업이 필요하다면, AutoML보단 사람이 직접 수행을 하는 것이 더 타당하다는 의견이 많습니다.
또한 AutoML은 다양한 경우의 수를 직접 비교하며 알고리즘을 선정하기 때문에, 매우 많은 시간이 소요됩니다. 컴퓨터가 작업을 수행하는 동안 인간이 다른 일을 할 수 있다는 점에선 효율적일 수도 있지만, 소요되는 시간은 더 많기 때문에 결국은 효율적이지는 않다는 역설적인 상황에 놓이게 됩니다.
AutoML의 가능성과 미래
AutoML의 종류와 방법론은 다양하지만, 아직까진 한계점이 명확해 활용하기에 어려움이 있습니다. 다만 중요한 점은 AutoML은 지금 이 시간에도 발전하는 중이며, 추후에는 어떤 대단한 자동화 시스템이 만들어질지 모른다는 것입니다. 또한 컴퓨터에게 온전히 머신러닝 자동화를 맡기는 것이 아니라 AutoML을 통해 특정 작업을 구현하고, 그 외에 작업은 사람이 진행하는 것처럼 사람과 AutoML이 함께 작업을 수행하는 장면도 충분히 상상할 수 있습니다.
결국 중요한 것은 AutoML이 어떻게 발전하고 있는지 이해하고, 이를 어떻게 활용하면 좋을지 고민해야 한다는 점입니다. 이번 글을 정리하면 AutoML이라는 존재는 아직 한계점은 명확하지만, 그 가능성과 영향력은 무궁무진하다는 점입니다. 앞으로 머신러닝 업무 수행의 효율성이 어떤 관점으로 변화할지 살펴보는 것도 흥미로운 일입니다.
위시켓/요즘IT의 지원을 받아서 작성한 글입니다.
https://yozm.wishket.com/magazine/detail/1282/