①AutoML이란?
빅데이터를 활용하는 다양한 방법 중 단연코 가장 인기가 많은 것은 머신러닝입니다. 머신러닝은 빅데이터의 활용성을 비약적으로 발전하게 함과 동시에 AI의 근간이 되고 있습니다. 이에 따라 최근 머신러닝에 대한 교육이나 강의도 많이 개설되고 있습니다. 하지만 현실에서 머신러닝을 근사하게 구사하기란 매우 어려운 일입니다. 제대로 머신러닝을 이해한 이후에 상황에 맞는 방법론을 적용하는 것이 어렵기 때문입니다. 이러한 경향 속에서 최근 AutoML(Automated Machine Learning)이 주목을 받고 있습니다. 이번 스마트하게 머신러닝 적용하는 법에서는 AutoML이 무엇이기에 최근 주목을 받고 있으며, 머신러닝과는 어떤 관계인지에 대해 이야기해보겠습니다.
머신러닝은 무엇인가?
AutoML을 가장 직관적으로 쉽게 설명하면 자동화된 머신러닝으로 이해할 수 있습니다. 따라서 AutoML의 정의와 주목받고 있는 이유 등을 알기 위해서는 머신러닝에 대한 이해가 선행되어야 합니다. AutoML이라는 분야 자체가 머신러닝을 더욱 편하고 효율적으로 수행할 수 있도록 개발되고 있기 때문입니다.
1) 머신러닝 개요
머신러닝은 기본적으로 인공지능의 한 분야로 컴퓨터가 스스로 학습하도록 알고리즘과 기술을 개발하는 일을 뜻합니다. 그리고 머신러닝의 주요 목적은 특정한 미래의 일을 예측하는 데 있습니다. 예를 들어 은행에서 대출을 신청한 고객이 있을 때, 은행은 이 고객이 추후에 대출금을 상환할 수 있을지 없을지에 대한 결과를 사전에 예측할 수 있어야 합니다. 해당 고객이 충분히 대출금을 상환할 수 있다고 판단되면 대출을 해주어도 무방하고, 그렇지 않다면 대출을 해주지 않는 것이 타당합니다. 이 과정에서 고객의 대출금 상환 여부를 머신러닝으로 사전 예측할 수 있습니다.
머신러닝을 정확하게 이해하기 위해 반드시 알고 있어야 할 개념 두 가지는 바로 머신러닝의 입력 값과 출력 값입니다. 일반적으로 머신러닝은 흔히 빅데이터라고 부르는 데이터를 입력 값으로 받습니다. 그리고 머신러닝 알고리즘을 거쳐 해당 데이터를 가공한 뒤에 미래에 일어날 일에 대한 예측 결과를 출력 값으로 반환합니다. 위의 예시를 다시 활용하면, 고객이 대출을 신청할 시 고객의 나이, 재산 정도, 수익 정도와 같은 정보를 받을 수 있고 이는 데이터로 활용 가능합니다. 이 데이터가 전체 머신러닝의 입력 값인 빅데이터가 되며, 해당 데이터를 머신러닝 알고리즘을 통해 조작한 뒤에 대출금 상환 혹은 대출금 미상환의 결과 값을 예측합니다. 그리고 이 값이 전체 머신러닝의 출력 값이 됩니다.
2) 머신러닝 절차
위에서 살펴보았듯, 머신러닝은 입력 값과 출력 값의 형태가 정해져 있기 때문에 자연스레 전체 머신러닝 수행 절차도 어느 정도 결정이 되어 있습니다. 머신러닝 수행 절차가 어느 정도 고정되어 있다는 것은 자동화된 머신러닝을 개발할 때, 어떤 절차를 자동화하면 될지 가이드라인이 존재한다는 것입니다. 전체 머신러닝의 절차를 간소화해서 살펴보면 다음 그림과 같습니다.
처음 데이터를 입력받으면 데이터 전처리라는 작업을 수행합니다. 이 과정은 머신러닝 알고리즘 수행 전에 처리해야 하는 모든 과정을 포괄하고 있습니다. 데이터 오류가 있을 시 이를 해결하거나, 데이터 형태를 통일시켜주는 등의 과정이 포함됩니다. 데이터 전처리가 완료되면 변수 생성 단계를 거칩니다. 이 단계에서는 난잡하게 존재하는 원 데이터를 문제 해결에 적합한 변수 형태로 바꿉니다. 예를 들어 특정 지표가 대출금 상환 여부를 결정하는데 매우 유의미한 영향을 준다면, 입력받은 데이터를 통해 해당 지표를 새롭게 생성할 수 있습니다.
이후에 머신러닝 알고리즘 수행을 거쳐, 최종적으로 머신러닝이 얼마나 정확하게 결과를 예측하는지 성능을 평가합니다. 이 과정에서 성능이 너무 좋지 않다고 판별되면, 다시 첫 단계로 돌아가 머신러닝 과정을 수행해야 할 수도 있습니다. 만약 머신러닝이 꽤 괜찮게 미래 일을 예측하고 있다면, 알고리즘이 어떻게 이 결과를 예측하고 있는지 해석 단계를 거쳐 실제 업무에 활용하게 됩니다. 이 마지막 단계는 사후처리 단계라고도 불립니다.
AutoML이란 무엇인가?
앞서 나온 간단한 머신러닝의 개념과 절차를 이해했다면, AutoML 대해서도 쉽게 이해를 할 수 있습니다. 머신러닝에 대해 전문가 수준의 지식을 가지고 있지 않더라도, 간단하고 효율적으로 머신러닝을 수행하게 해주는 것이 바로 AutoML입니다.
1) AutoML의 정의
AutoML은 Automated Machine Learning의 줄임말로 자동화한 머신러닝을 의미합니다. 기존의 머신러닝을 수행하기 위해서는 데이터 전처리와 알고리즘 결과 해석까지 모든 단계에서 인간의 노력이 많이 필요했습니다. AutoML은 이 모든 절차를 일괄적으로 자동화시켜 전체 머신러닝 수행에 들어가는 노력을 줄이거나, 완전히 없애는 것을 목표로 합니다. 물론 기존의 머신러닝이 가지고 있는 정밀한 미래 예측 정확도는 그대로 유지하면서 투입되는 노력만 줄이는 것이죠.
그리고 각 머신러닝 절차 자동화의 핵심은 여러 대안들의 정확도를 자동으로 테스트하여 비교하는 것에 있습니다. 머신러닝은 각 절차마다 다양한 방법론이 존재합니다. 예를 들어 데이터에 오류가 있을 때 그 오류 데이터를 아예 삭제할 수도 있으며, 오류를 전체 데이터의 평균으로 대체하는 방법도 있습니다. 머신러닝 알고리즘은 경우의 수가 훨씬 더 많습니다. 회귀 분석, 랜덤 포레스트, XGBoost, DNN 등 정말 많은 알고리즘이 있으며, 데이터 분석가는 이 알고리즘들 중 최종적으로 하나의 알고리즘만 선택합니다.
여러 대안들 중 실제로 적용할 단 하나의 알고리즘을 고르는 최선의 방법은 각 방법마다의 성능을 직접 비교하는 것입니다. 기본적으로 AutoML은 매우 다양한 머신러닝 알고리즘들을 직접 수행해보고 그 결과를 비교하여, 최종적으로 어떤 알고리즘을 적용하면 되는지 사용자에게 간단한 결과를 제공해줍니다.
2) AutoML의 장점
이렇듯 머신러닝을 수행할 때 AutoML을 적용하게 되면 얻는 장점은 크게 두 가지입니다. 바로 시간과 정확도인데요. 먼저, AutoML의 초기 목적대로 원활하게 모든 작업을 자동화한다면 시간 측면에서 이점을 얻을 수 있습니다. AutoML을 적용하면 데이터 분석가 입장에서 직접 모든 코드를 구성하고, 각 머신러닝 알고리즘의 성능을 비교할 필요가 없습니다. 이 모든 과정을 컴퓨터가 자동으로 진행해주기 때문에 상대적으로 간단한 코드 몇 줄만 적어내면, 모든 머신러닝 작업을 끝낼 수 있습니다. 이는 더 이상 데이터 분석가가 모델 간 비교 방법을 구상하고 그에 상응하는 코드를 만들 필요가 없다는 것을 의미합니다.
다음으로 AutoML을 적용할 경우 기존의 머신러닝보다 더 높은 정확도를 지닌 결과물을 기대할 수 있습니다. 인간이 머신러닝 작업을 수행한다면 현실적으로 모든 알고리즘과 방법론을 직접 비교하기엔 무리가 있습니다. 시간적 여유가 부족하고, 모든 방법론을 일일이 비교하기에는 양이 너무 방대하기 때문입니다. 하지만 AutoML에서는 이것이 가능합니다. 인간이 선택한 몇몇 방법론 vs 존재하는 모든 방법론이라는 잣대로 비교한다면, 자연스레 AutoML을 적용했을 때 더욱 정밀한 머신러닝 결과물을 얻을 가능성이 높습니다.
AutoML이 주목받고 있는 이유
AutoML은 이상적으로 생각했을 때 많은 장점을 지니고 있으며, 그에 따라 여러 효과를 불러일으키고 있습니다. 이 기대 효과들은 너무나 매력적이어서 사람들이 AutoML에 더욱 주목할 수밖에 없습니다.
1) 머신러닝의 기회비용
AutoML이 계속해서 주목받는 첫 번째 이유는 기존 머신러닝에 투입되는 기회비용이 상당하다는 것입니다. 앞서 언급했듯이 하나의 머신러닝 작업을 수행하는 데는 정말 많은 시간과 노력이 요구됩니다. 여기서 중요한 점은 들이는 노력의 많은 부분이 여러 알고리즘 간 성능 비교와 같은 단순 작업의 반복이라는 것입니다. 결국 머신러닝을 활용하기 위해서는 그 절차와 시스템을 정확하게 이해하고 있는 고급 인력이 단순 반복 작업을 수행해야 한다는 딜레마에 빠지게 됩니다.
이때 AutoML을 적용하게 되면, 데이터 분석가가 훨씬 더 생산적이고 발전적인 일을 할 수 있습니다. 단순히 모델을 돌리고 그 정확도를 파악하게 하는 일의 반복에서 벗어나, 현 데이터에 어떤 문제가 있는지, 어떤 데이터를 추가적으로 활용하면 좋을지, 해당 머신러닝 과제의 방향성은 어떻게 가져가면 좋을지 등에 집중할 수 있습니다. 이 모든 상황은 데이터 분석가가 온전히 머신러닝을 수행한다면 일어나기 힘든 일입니다.
2) 머신러닝에 대한 높은 접근성
두 번째 이유는 바로 AutoML이 머신러닝에 대한 접근성을 높여줄 수 있다는 점입니다. 기본적으로 사람이 머신러닝을 수행하기 위해서는 코딩 능력이 필수적입니다. 그것도 기초 수준이 아니라 원하는 대로 데이터에 조작을 가하고, 원하는 머신러닝 알고리즘을 끌어 쓸 수 있는 수준의 높은 코딩 능력이 필요합니다. 이는 많은 기업과 사람들이 머신러닝을 적용하고 싶어도 하지 못하게 만드는 가장 큰 장애물입니다.
하지만 AutoML을 적용한다면 이야기가 달라집니다. 물론 AutoML 분야에서도 코딩 능력이 필요하기는 하지만 그 수준이 확연히 낮아집니다. 모든 머신러닝 절차의 자동화를 추구하기 때문에 AutoML은 훨씬 직관적이면서도 간단한 코드로 모든 작업을 실행할 수 있게 환경이 설정되어 있습니다. 기존에는 어떤 작업을 수행하기 위해 10줄의 코드가 필요했다면, AutoML에서는 1줄의 코드로 같은 일을 수행할 수 있습니다. 따라서 AutoML은 머신러닝에 대한 접근성을 비약적으로 높여줍니다. 코딩에 천부적인 능력을 가지고 있지 않아도 누구나 간소화된 AutoML만의 기능을 통해 머신러닝을 수행할 수 있습니다.
그렇다면 한계는 없을까?
종합하자면 AutoML은 머신러닝 수행을 훨씬 간단하면서도 정확하게 수행하기 위해 고안되었고, 계속 발전하고 있습니다. 그리고 그에 따른 장점과 기대 효과가 높아, 많은 사람들이 AutoML의 발전 및 적용을 주목하고 있습니다. 한편으론 많은 사람들이 인공지능의 자동화 능력 때문에 일자리가 없어지는 것을 걱정하고 있습니다. 그런데 이제는 인공지능마저 인공지능이 자동화하려는 상황에 놓여 있습니다. 하지만 AutoML은 아직 완전하지 않습니다. 많은 사람들이 AutoML을 발전시키기 위해, 각기 다른 측면에서 노력을 기울이고 있지만 그에 따른 한계점도 명확히 존재합니다. 이에 대해서는 다음 편에서 자세히 살펴보겠습니다.
위시켓/요즘IT의 지원을 받아서 작성한 글입니다.
https://yozm.wishket.com/magazine/detail/1267/