AI과 데이터 : 알고리즘보다 트라이얼과 에러가 중요한 이유

  박민우 크라우드웍스 대표


2016년 3월 알파고 충격 이후 AI이란 용어는 두려움의 대상이었다. 그러나 최근 다양한 AI 스피커의 등장 등으로 이제는 AI이 대중에게 친숙한 기술로 변해가고 있다. 과거 AI은 특정 분야에서 전문가를 위한 제품과 기술이 주를 이루었다면, 현재는 일반인을 대상으로 하는 B2C 상품이 등장하고 있다는 점에서 AI ‘컨슈머 시대’라고 불릴만하다.

과거에 비해 AI 기술에 대한 거부감은 많이 줄어들었다. 하지만 여전히 AI이 모든 것을 해결해 줄 것이라는 막연한 기대감과 인간의 일자리를 뺏을 거라는 두려움이 공존한다. 마치 AI이 인류의 미래를 좌지우지할 것처럼 느껴지지만, 현재 시점에서 AI은 우리가 생각하는 것처럼 만능이 아니다.

최근 딥러닝은 AI과 머신러닝을 대변하는 용어가 되었다. 딥러닝은 다양한 머신러닝 방법 중에 하나일 뿐이지만, 적지않은 엔지니어는 AI 문제를 딥러닝으로 대부분 해결할 수 있다고 오해하고 있다.

일반적인 머신러닝을 통해서 서비스를 만드는 과정은 다음과 같다. 



이미지 인식, 컴퓨터 비전, 음성 인식, 음성 합성, 자연어 번역 등 딥러닝의 목적은 비정형화된 새로운 데이터에 대해서 얼마나 높은 신뢰수준의 예측을 할 수 있는 모델을 만드느냐에 달려있다. 이 과정에서 서비스의 정확도는 사람이 참여하는 학습데이터 생산 (Human-in-the-loop)의 수준에 달렸다.

알고리즘이나 모델은 이미 구글, 마이크로소프트, 페이스북과 같은 글로벌 IT 기업이 자사의 솔루션을 통해서 공개하고 있다. 더 이상 알고리즘이 AI의 핵심 경쟁력이 아니라는 의미다. 또한 이런 프레임워크는 자사의 클라우드 컴퓨팅 환경에 최적화되어 있어서 사실상 하드웨어 인프라까지도 자유롭게 사용할 수 있는 세상이다. 이제 AI 서비스를 만드는 데 필요한 것은 학습데이터뿐인 셈이다.

AI 학습과정에서 정확도(Precision)와 재현율(Recall)이라는 중요한 두 가지 요소를 만족시켜야 한다. 이미지에서 사람을 찾는 인식 서비스를 만든다고 가정할 때, 재현율만 높은 경우는 사람 인식을 100% 하지만 다른 물체들까지 인식하는 오류가 발생할 수 있다. 정확도만 높은 경우는 찾은 사람의 정확도는 100%지만 모든 사람을 다 찾아내지 못할 수도 있다. 이 평가 요소는 과거 정보검색(IR, Information Retrieval)에서 검색 수준을 평가할 때 사용하던 방식인데, 머신러닝에서도 동일한 평가 기준이 적용된다.

결국 머신러닝을 통한 학습과정이라는 것은 데이터 모델링과 학습데이터의 생산, 그리고 평가(Evaluation)와 반복(Iteration)을 통해서 문제점을 찾아내고, 그 문제점의 개선 방법으로 학습데이터를 수정하는 고단한 과정의 연속이라고 볼 수 있다.  

처음에는 어떤 문제를 해결하기 위해 딥러닝 방식만으로 접근하지만, 결국 평가와 반복을 통한 수많은 시행착오를 통한 고전적인 기계학습 방법을 병행해가며 문제에 대한 답을 찾아간다.  AI에서는 어떤 알고리즘을 선택할지보다 풀고자 하는 문제의 정의가 더 중요하다. 문제의 정의와 영역(도메인)에 따라서 접근하는 방법이 달라지며, 적용해야 할 모델과 알고리즘이 선택된다. 그리고 목표하는 신뢰수준에 따라서 학습의 양과 질도 달리 결정된다. 

하지만 문제를 정의하고 알고리즘을 결정해도, 최종 서비스 수준은 학습량에 의해 결정되는 경우가 대부분이다. 특히 딥러닝과 같은 인공신경망 구조에서는 노이즈가 없는 소량의 학습데이터를 사용할 경우 과적합(Overfitting) 문제가 발생하게 된다. 즉, 학습은 정확하게 시켰으나 실제 문제를 해결하는 과정에서는 일반화(Generalization)가 불가능한 것이다. 

딥러닝을 통한 학습 방식은 어린 시절 그림책을 보면서 동물과 사물을 인지하는 과정과 비교해보면 쉽게 이해할 수 있다. 많은 양의 그림책을 본 아이는 실제 사물을 인식할 때 다양한 사물을 구별할 수 있게 된다. 반대로, 정확한 몇 개의 그림만으로 학습한 아이는 형태가 조금만 변해도 인식률이 떨어진다. 딥러닝 학습 방식도 이와 같다. 결론적으로 딥러닝은 어린아이가 사물과 음성을 학습하는 과정을 엄청나게 빠르게 진행할 수 있다는 장점이 있을 뿐 모든 학습 과정을 뛰어넘을 수는 없다. 이런 식의 지도학습(Supervised learning)에서 부모의 역할이 중요하듯이 딥러닝에서는 양질의 학습데이터가 핵심이라고 볼 수 있다. 

그렇다면 양질의 학습데이터란 무엇인가? 

실제 딥러닝을 통해서 서비스를 만드는 엔지니어들에게 가장 큰 어려움이 무엇인지 물어본다면 80~90%는 전처리(Pre-processing)에 들어가는 시간과 노력이라고 답한다. 왜냐하면 평가와 반복을 통한 학습데이터 수정이라는 전처리 과정이 결국 양질의 학습데이터를 만드는 과정인 것이다. 좋은 알고리즘이란 따로 존재하는 것이 아니다. ‘Trial and Error’ 즉, 얼마나 많은 시행착오를 반복하느냐가 서비스의 품질을 결정한다. 

좋은 학습데이터의 기준에는 최신성과 지역성이 존재한다. 시대와 지역을 뛰어넘는 AI 서비스를 만드는 것은 불가능하다. 따라서 서비스를 만들고자 하는 주체는 분명한 대상을 결정해야 된다. 음성의 경우를 예로 들자면, 같은 국가내에서 각 지역마다 서로 다른 발음과 억양을 갖는다. 그리고 10년전에 사용하던 대화 방식과 현재의 대화 방식에도 차이가 있다. 대부분의 학습데이터는 이 2가지 문제를 모두 해결해야 된다. 그러다 보니 데이터를 구조화하는 과정뿐만 아니라 수집하는 과정에서부터 어려움에 접하게 된다.  

오래전부터 학습데이터에 대한 고민을 해왔던 미국의 경우, 데이터의 수집과 구조화를 대신 해주는 다양한 서비스가 존재한다. 그중 가장 오래된 역사를 자랑하는 것은 아마존의 Mechanical Turk(이하 Mturk)이다. 2005년부터 시작한 Mturk은 원래 아마존 쇼핑몰의 상품 이미지 분류를 위해서 만들어졌으나 지금은 학습데이터 생산에 주로 사용된다. 미국에서 50만 명 이상이 Mturk에서 크라우드소싱(Crowdsourcing) 방식으로 학습데이터를 생산하고 있다. 이들 중에는 수년간 이 업무가 전업인 사람이 있는데, 이들을 터커(Turker)라고 부른다. 그 외에도 Crowd Flower, Defined Crowd와 같은 100만 명 이상의 작업자를 보유한 크라우드소싱 플랫폼들이 존재한다. 국내에서는 크라우드웍스(Crowdworks)가 학습데이터 생산을 목적으로 하는 최초의 온라인 크라우드소싱 플랫폼이다. 

현명한 머신러닝 엔지니어라면 알고리즘과 모델링에 집착하기보다는 어떻게 효율적으로 전처리를 할 것인가를 먼저 고민해야 한다. 이러한 과정에서 학습데이터 생산 플랫폼을 활용하는 것은 비용과 시간을 절약하는 하나의 방법이 될 수 있다. 어차피 학습데이터는 계속 반복해서 생산하고 수정해야 한다. 처음부터 많은 양의 데이터로 학습을 시키는 것보다 목적과 방향에 따라 다양한 시도를 해보고, 원하는 모델이 결정되면 가이드를 통해서 기준을 명확하게 한 뒤에 양을 늘려나가는 방식이 보다 효율적이다.

일반적으로 학습데이터 형태는 이미지, 텍스트, 음성, 동영상이 대부분이지만, 서비스 목적에 따라서 이를 구조화 하는 방식은 천차만별이다. 최근에 가장 많은 양의 학습데이터를 수집하는 분야는 자율주행 자동차에 사용하는 컴퓨터 비전용 데이터다. 보통 수집 과정은 차량 내에 설치된 블랙박스 영상을 활용하는데, 서비스 목적에 따라서 수집해야 될 객체의 종류와 속성이 다양해진다. 



위 2개의 이미지에서 보이는 바와 같이 사물을 인식할 것인지, 사람을 인식할 것인지에 따라서 레이블링 대상이 달라지며, 유효 크기에 대한 기준도 필요하다. 사람의 경우는 진행방향을 예측해야 하기 때문에 방향 속성을 추가할 것인지도 고민해야 한다.

완전한 자율주행에 필요한 데이터의 양은 얼마일까? 최근에 도요타 연구소에서 발표한 자료에 의하면 약 100billion miles(약 1,600억 km)의 영상이 필요하다고 한다. 이 문제를 해결하기 위해서 블록체인(Blockchain) 기술을 활용하는 것을 제안하기도 하였다. 

결국 한 가지 기술만 가지고 완전한 서비스를 만들어내는 것은 불가능하다. 특히 전처리 과정에서 사람의 손을 빌리는 작업은 상당한 비용이 수반된다. 하지만 전처리 과정에 너무 많은 기술을 적용하고자 한다면 오히려 효율이 떨어지게 된다.  

양질의 학습데이터를 생산하기 위한 과정은 머신러닝의 기술과는 별개로 순수하게 데이터를 가공하는 방법과 효율을 가지고 접근해야 한다. 기존의 검증된 비 머신러닝 방식의 데이터 처리 방식과 사람의 인지능력을 활용한 Human-in-the-loop를 병행하는 것이 가장 효과적인 방식이 될 것이다. 데이터 처리에 대한 관심과 방식에 더 많은 연구가 필요한 이유이기도 하다.