머신러닝, 제대로 쓰기 위한 3가지 키워드

데이터-인력-컴퓨팅 파워 3박자 맞아야

일반입력 :2014/12/14 14:15    수정: 2014/12/14 15:16

---------------------------------------

*글 싣는 순서

1)구글CEO도 흥분시킨 머신러닝의 세계

2)머신러닝이 몰고올 IT 진화 시나리오

3)머신러닝, 제대로 쓰기위한 3가지 키워드

---------------------------------------

국내에서 머신러닝 전문가를 만나는 건 예상보다 어려운 일이었다. 어려운 가운데 만난 이들이 공통적으로 얘기한 것이 있었다. 한국의 상황에선 머신러닝을 도입, 혹은 활용하기 앞서 갖춰야 할 조건이 있다는 것이었다.

그들이 하나같이 꼽은 선결 조건은 ▲데이터 ▲인력 ▲컴퓨팅 파워였다. 각 항목은 필요조건이 아니라 충분조건으로, 세가지 중 하나만 허술해도 성공을 장담하기 어렵다는 설명이다.

데이터

사람을 교육할 때 가장 좋은 조건은 백지 상태다. 아무 것도 모르는 상태에서 외부의 지식을 접하고, 관심을 가져 학습함으로써 사람은 발전한다. 학습을 위해선 교재가 필요하다. 적절한 교재가 없이는 시작조차 힘들다. 기계도 마찬가지다. 하지만 기계는 사람과 달리 수동적이다. 사람이 적절한 교재를 통해 기계를 발전시켜야 한다. 머신러닝에서 교재는 데이터다

데이터는 과거 추이를 판단하기 위한 기초이자, 미래 추이를 예측하기 위한 근거다. 때문에 데이터의 양과 질이 풍부할수록, 학습의 결과는 진실과 가까워진다. 머신러닝을 활용하려면 풍부한 데이터가 필수다. 2차원 그래프로 무분별하게 찍힌 점들이 있다. 10개의 점만 찍힌 경우와 수만 개 점이 찍힌 게 있다고 할 때 과연 어느 쪽이 더 정확한 규칙을 발견할 수 있을 것인가는 자명하다.

머신러닝은 아무것도 모르는 기계가 법칙을 알게 만드는 것이다. 데이터를 집어넣지 않으면 결과는 없다. 데이터는 풍부할수록 좋다. 많은 교재를 학습한 학생이 더 많은 지식을 쌓는 것과 같다.

김정희 네이버랩스 수석연구원은 “머신러닝 방법중 하나인 딥러닝은 가장 복잡한 방법인데 모델링을 하려면 훈련시킬 데이터가 충분해야 한다”며 “처음 나왔을 당시엔 데이터가 충분치 않았고, 장비도 불충분했지만 이제 복잡한 함수를 기계에 학습시킬 만큼 재료가 충분해지니 각광받는 것”이라고 설명했다.

그는 “해외에서 딥러닝을 하는 곳은 구글, 페이스북, 트위터, 바이두 같은 서비스 회사들”이라며 “이들의 공통점은 방대한 데이터를 가진 곳이란 점”이라고 덧붙였다.

한국의 기업 가운데 데이터를 충실히 오랜 시간 쌓아온 곳은 없다. 누구나 인정하는 2014년 현재 한국 최대 기업조차 데이터의 가치에 관심을 보인 건 오래되지 않았다. 그만큼 국내 머신러닝은 출발지점에 서 있다.

외국의 경우 머신러닝에 동원할 만한 데이터를 손쉽게 구할 수 있다. 공공 데이터뿐 아니라 각 업체와 연구기관이 공개해놓은 데이터를 쉽게 구해 활용할 수 있다. 한국의 경우 머신러닝에 활용할 충분한 데이터를 가진 곳은 손에 꼽힌다. 수천만 사용자가 이용하는 네이버, 다음 같은 대형 인터넷 서비스업체가 아니고선 기계를 학습시킬 만한 데이터, 즉 ‘교재’가 희박하다.

이건복 한국MS 이사는 “한국은 데이터 축적이 아직 안 된 상태이고, 데이터를 주고 받거나 거래하는 마켓 활성화도 안 돼 있다”며 “일본이나 미국, 인도 등은 데이터 시장이 크게 형성돼 있다”고 말했다.

■인력

데이터를 많이 갖고 있다고 해도 기계를 학습하게 만드는 건 사람이다. 결국 머신러닝을 위한 사람이 없으면 데이터도 무용지물이다.

사람은 스승이 없다고 해도 자발적인 학습을 할 수 있다. 하지만 기계가 자발적 학습을 한다는 건 불가능하다. 사람이 기계에 데이터를 부어 넣지 않으면, 학습은 아예 이뤄지지 않는다.

아무나 데이터를 기계에 넣는다고 해결되지도 않는다. 제대로된 학습을 위해 교재를 제대로 이해하는 제대로된 선생님이 필요하듯, 머신러닝도 데이터를 이해하는 사람을 필요로 한다. 최근 몇 년 사이 업계에서 많이 회자되는 ‘데이터 사이언티스트’다.

국내의 데이터 분석 역량은 이제 시작단계다. 전문가들은 머신러닝에서 데이터에 대한 사람의 이해수준에 따라 결과가 천양지차로 달라진다고 설명한다. 훌륭한 스승 밑에서 훌륭한 제자가 키워지는 것과 같은 이치다.

네이버랩스의 김정희 수석연구원은 “사용자가 데이터를 주는데 그걸 갖고 뭘 할 것이냐 하면, 당연히 데이터로 학습을 시킨 뒤 사람이 다시 원하는 피드백을 던져줄 필요가 있다”고 설명했다.

티그레이프의 유인관 박사는 “사람의 지식이 들어갈 수록, 기계가 배울 수 있는 여지가 더 높아지고, 더 정확하게 배울 수 있다”며 “.특징(피처)을 기계학습 알고리즘에 넣어줘야 하는데, 어떤 걸 넣어줘야 할지 사람이 잘 알면 더 좋은 성과를 거둘 수 있다”고 말했다.

머신러닝을 활용할 수 있는 분야는 다양하다. 이는 활용 분야의 가짓수만큼, 활용할 수 있는 데이터 속성도 다양하다는 뜻도 된다. 가령, 금융회사가 이상거래방지시스템(FDS)를 머신러닝 기반으로 구축한다고 할 때 국립공원 방문자 데이터를 활용하는 건 소용없다.

FDS를 머신러닝 기반으로 고도화하려면 금융거래 데이터를 통해 패턴을 찾아야 하고, 수많은 데이터 가운데 금융 데이터의 특징을 잘 이해하는 사람이 그에 적합한 머신러닝 알고리즘을 적용하거나 만들 수 있을 것이다.

데이터, 그리고 수요에 맞는 데이터를 명확히 이해하는 인력을 갖추지 못하면, 머신러닝을 제대로 활용하기는 어렵다는 지적이다.

이건복 한국MS 이사는 “머신러닝을 활용할 수 있는 툴은 많지만, 결국 데이터에 대한 깊이 있는 지식을 가진 사람이 없으면 아무 소용없다”며 “데이터도 충분하고 툴도 있는데, 어떻게 그를 가져와서 어떻게 활용할 지 정해주는 사람이 필요하다”고 강조했다.

그는 “머신러닝이 데이터사이언스트의 역할을 절대로 대체할 수 없다”며 “사람이 데이터를 보고 몇 %는 트레이닝, 나머지는 검증 등으로 나눠줘야 하는데, 데이터를 모르는 사람은 이게 왜 나뉘는지 감조차 잡을 수 없다”고 덧붙였다.

머신러닝을 활용하고 있다는 회사는 국내외에 여럿 있다. 오랫동안 존재해왔던 분야인 만큼 오픈소스로 구할 수 있는 머신러닝 알고리즘도 매우 많다. 그러나 다수가 공개된 머신러닝 알고리즘을 가져다 그대로 활용하는데 그친다. 알고리즘 자체를 만들거나, 혹은 패턴의 정확도를 높이기 위해 요구사항에 맞게 알고리즘을 수정할 수 있는 사람은 드물다.

복잡하지 않은 패턴이라면 공개된 알고리즘을 가져다 적용하면 된다. 그러나 누구나 똑같은 알고리즘을 쓴다면, 머신러닝을 쓸 이유는 없다. 사람의 작업 일부를 기계가 대신하게 할 뿐이다.

구글, MS, 페이스북 같은 회사가 최근 머신러닝 전문가나 집단을 파격적인 조건으로 스카우트하는 건 단순히 사람의 일을 기계로 대체하려는 게 아니다. 이들은 남과 차원을 달리하는 경쟁력을 갖고 싶기에 머신러닝 기술에 투자하고, 사람에 막대한 돈을 쏟아 붓는다. 스승격인 사람을 큰 돈을 지불하고 데려오고, 그의 밑에서 다시 우수한 인력을 뽑아내려는 것이다.

김정희 네이버랩스 수석연구원은 머신러닝 인력 부족 현상을 지적했다.

“머신러닝 인재풀이 암흑기를 거치면서 많이 배출되지 못했습니다. 요즘 서서히 다시 붐이 올라오면서 여러 분들이 다시 활발하게 연구를 하는 분위기죠. 학교란 게 돈이 들어와야 연구가 진행되는데, 그동안 기업이 조용하니 대학연구소도 머신러닝을 잘 안하게 됐어요.”

제대로 된 머신러닝 기술을 익히려면 어떤 것을 알고 있어야 할까.

김정희 수석연구원은 “머신러닝의 기본 지식은 컴퓨터 과학쪽이고. 그 기본은 수학”이라며 “코딩하는 개발자 이상의 수학실력을 갖고 있어야 알고리즘 자체를 설계하고 지능 높은 시스템을 만들 수 있다”고 말했다.

티그레이프의 유인관 박사의 좀 더 자세한 설명을 들어보자.

“폴리노미아 함수, 일반함수 피팅, 시그노이드 함수. 확률 피팅, 리그레션, 뉴럴넷, 서포트백터머신 등이 많이 쓰이는 알고리즘들이에요. 머신러닝을 잘하고 싶으면 고급수학을 잘 알아야 합니다. 공업수학 수준은 아니더라도, 확률(제1), 미적분 정도인데 학부수준이 아니라 수학과 전공수준의 해석학 정도는 해야 합니다. 그래야 고급 확률을 할 수 있을 거에요. 선형대수학도 아주 중요합니다. 처음 시작하는 사람이라면 선형대수학과 확률해석학, 함수해석 정도를 공부하는 게 좋겠습니다.”

■컴퓨팅 파워

머신러닝은 막대한 데이터를 연산하는 작업이므로 상당량의 컴퓨팅 파워를 요구한다.

구글이 만든 유튜브 고양이 식별 시스템엔 서버 3천대가 동원됐다. MS 아담은 신경 네트워크를 구성하는 데 18개월 걸렸고, 분석에 사용된 사진 자료만 1천400만장을 활용했다.

김정희 연구원은 “많은 데이터를 서비스에 적용할 수 있는 결과를 적절한 시간 안에 나오게 려면 서버 한 대로 도저히 안 된다”며 “스타트업이나 학생이 GPU 디바이스 한 두대 갖고 연구나 논문작성 수준에서는 쓸 수 있다”고 말했다.

앞서 살펴보듯 대학교 연구기관 외에 기업체에서 머신러닝을 사업에 활용하는 경우는 대부분 대형 기업이다. 구글, MS, 페이스북 같은 회사가 머신러닝에서 두드러지는 건 그들이 가진 조건 덕분이다. 데이터도 갖고 있고, 방대한 컴퓨팅 자원도 가진 만큼 머신러닝을 적극적으로 활용할 수 있는 것이다.

그는 “외국의 스타트업이나 벤처를 보면, 머신러닝으로 서비스를 제공한다기보다 기술자랑을 많이 한다”며 “모두가 공유하는 도전할 데이터는 존재하니 머신러닝 콘테스트 같은 곳에 기술을 자랑하는 벤처들이 나와서 기술력을 자랑하고, 큰 회사에서 인수하는 것”이라고 설명했다.

유인관 박사는 “엄청난 양의 데이터가 아니라면 크게 컴퓨팅 자원을 요구하진 않는다”며 “하지만 1테라바이트만 돼도 소팅(Sorting)에만 엄청 시간이 걸린다”고 말했다.

또 다른 측면의 컴퓨팅 파워문제가 있다. 시스템과 데이터, 알고리즘 등을 모두 깊이 있게 이해하는 슈퍼 개발자는 없다는 사실이다. 그런만큼, 머신러닝 전문가와 시스템 엔지니어링 전문가의 협업이 절실하게 요구된다. 둘 중 하나만으로는 경쟁력있는 머신러닝을 갖추기 어렵다.

이같은 상황은 머신러닝에 대한 마지막 질문과 연결된다. 머신러닝이 과연 누구의 영역인가?하는 것이다.

관련기사

다음은 김정희 연구원의 말이다.

“머신러닝의 성능을 좋게 나오도록 연구하는 사람과, 툴을 만드는 사람, 연구 자체를 해서 알고리즘을 만들어내는 사람은 소수일 것입니다. 그러나 머신러닝 툴은 누구나 쓸 수 있는 상황이 됐어요. N드라이브 이미지 분류도 기초적인 버전은 오픈소스로 다 풀려 있습니다. 누구나 기계랑 데이터만 있으면 소스를 받아서 돌려볼 수 있죠. 껍데기만 알아도 돌려볼 수는 있습니다. 누구든 접해보고 관심을 가져야 할 분야인 건 맞아요. 인터넷 서비스가 진보되면서 연구는 많이 이뤄지고 있습니다만, 아직 머신러닝으로 대박을 터뜨린 서비스는 없다고봅니다. 지금은 성급히 활용해서 돈을 벌겠다는 생각보다 오히려 미래를 준비하는 상황이 아닐까요. 분야 육성에 투자하고, 학계 인재 나올 시간을 기다리고, 코딩하던 개발자도 머신러닝이란 새 영역을 시간을 갖고 공부할 시간을 줘야 한다고 생각합니다.”