INSIGHT

‘만들어지는 예언가’, 머신러닝 톺아보기

by 정태수

2018년 07월 02일

머신러닝, 과거 데이터의 규칙 찾기가 기본 

데이터가 클린해야 예측이 정확해진다 

머신러닝 인공지능 데이터

 

글. 정태수 고려대 산업경영공학부 교수

 

여전한 머신러닝 열풍

 

재작년 알파고 열풍이 휩쓸고 지나간 이후에도 여전히 인공지능(AI), 머신러닝(Machine Learning)은 업계 내외에서 많은 관심을 받고 있습니다. 최근 인공지능, 머신러닝 기술의 발전은 그야말로 놀라울 정도입니다. 아마존은 첨단 센서 기술과 ‘컴퓨터 비전’, ‘딥러닝(Deep Learning)’ 등 다양한 인공지능 및 머신러닝 기술을 결합해 점원 없는 무인상점 ‘아마존 고(Amazon Go)’를 일반인에게 공개하기에 이르렀습니다.

 

차량공유 플랫폼 우버(Uber)는 ‘미켈란젤로’라는 자체 머신러닝 서비스 플랫폼을 제작·운영하는 것으로 비즈니스에 머신러닝 기술을 활용하고 있습니다. 일례로 지난해 8월에 한국에 진출한 우버의 음식배달서비스 우버이츠(UberEATS)는 머신러닝 기법을 통해 주문부터 음식이 준비되기까지의 시간, 배송기사가 해당 음식점에서 배달음식을 픽업하기 위해 음식점으로 이동, 주차, 픽업한 후 최종적으로 고객의 집까지 배달완료를 하는데 소요되는 시간을 예측한다고 합니다.

 

소비자가 주문하고, 식당에서 주문을 확인해 음식을 주문해 그것을 배송기사가 소비자에게 배달하는 것, 어찌보면 단순해 보이는 과정입니다. 하지만 단계적으로 수행되는 이 모든 업무가 이뤄지는 총 시간을 정확히 예측하는 것은 결코 쉬운 일이 아닙니다.

 

먼저 식당의 입장에서, 식당 주방 상황은 시간대별로 달라집니다. 주문 음식에 따라 그것을 준비하는 시간도 다릅니다. 배송시간에 영향을 미치는 가장 큰 요소인 도심 교통량 역시 시간대별로 계속 변하게 됩니다. 또한, 만약 배송기사가 오토바이나 차를 이용한다면 음식을 픽업하거나 최종 소비자에 음식을 전달하는 시간 동안 이동수단을 세워둘 주차공간도 찾아야합니다.

 

자세한 매커니즘이 밝혀진 바는 없지만, 우버이츠는 이러한 복잡한 환경 하에서 머신러닝 기법을 활용하여 매우 높은 수준의 정확도로 예상시간을 소비자에게 제공하는 것으로 알려져 있습니다.

 

우버이츠의 배송기사는 도시 곳곳을 돌아다니면서 교통 체증 상태와 같은 정보를 실시간으로 수집합니다. 엄청난 양의 데이터를 기반으로 도심의 교통 상황 등 다양한 요소를 고려해 우버이츠의 머신러닝은 점점 예측 정확도를 높이고 있습니다.
머신러닝 우버이츠 인공지능

 

물류·유통을 포함한 산업 전반에 걸쳐 인공지능, 머신러닝 기술을 활용한 서비스가 속속 등장하고 있습니다. 그렇다보니 종종 해당 앞선 기술들을 ‘만능 해결사’로 여기는 듯한 반응이 나오기도 합니다. 과연 인공지능은 현재 우리가 당면하고 있는 모든 문제를 해결해줄 수 있을까요?

 

‘머신러닝’이 대체 뭐길래

 

머신러닝(Machine Learning: 기계학습)은 기계로 하여금 스스로 학습하고 실행할 수 있도록 하는 알고리즘을 개발하는 연구 분야입니다. 즉, 컴퓨터로 하여금 어떻게 ‘학습’할 수 있게 할것인지 연구하는 것입니다.

 

이 때 ‘학습’은 경험을 바탕으로 스스로 성능을 향상시키기 위한 일련의 과정으로 정의됩니다. 학습이 이뤄지기 위해선 먼저 과거에 어떻게 해왔는지에 대한 ‘기억’이 필요하고, 이를 바탕으로 ‘추론’이라는 과정을 거쳐 성능을 향상시킬 수 있습니다. 컴퓨터에게 있어서 ‘기억’은 과거에 누적된 데이터가 될 것이며, 머신러닝 알고리즘은 그러한 데이터를 기반으로 컴퓨터 스스로 추론할 수 있도록 도와주는 추론 메커니즘이 됩니다.

머신러닝 ▲ 기존의 의사결정 체계(좌)와 머신러닝에 기반한 의사결정 체계(우)

 

기존 의사결정 방식은, 그간 축적되어 왔던 지식을 토대로 다양한 규칙(의사결정자의 직관도 포함)을 도출하는 것이었습니다. 이어서 알고리즘 개발 등과 같은 방식으로 의사결정 체계를 구축한 후 데이터를 입력하여 의사결정에 필요한 답을 구합니다.

 

쉬운 예로, 물류 현장에서 A라는 문제에 부딪혔다고 가정해 봅시다. 이 상황에서 베테랑 작업자라면 자신의 겪었던 과거 경험이나 직관을 통해 A를 해결하는 방법을 생각해냅니다. 이것이 기존의 의사결정 방식입니다. 그리고 그 답이 실제 의사결정에 반영되게 됩니다.

 

반면 머신러닝은 과거에 있던 이력을 기반으로 규칙을 찾아냅니다. 머신러닝은 데이터뿐만 아니라 해당 데이터에 상응하면서도, 우리가 알고 싶어 하는 결과 혹이 답이 이미 있다면, 그것도 확보합니다. 이를 기반으로 머신러닝 알고리즘은 소위 말하는 데이터 속에 숨겨진 ‘규칙’ 혹은 ‘패턴’을 찾게 됩니다. 우리는 이런 규칙 혹은 패턴을 ‘머신러닝 모델’이라 부르게 됩니다.

 

기존 방식의 경우, 새로운 형태의 규칙이 나타나면 이를 매뉴얼하게 알고리즘을 설계·구현하여 시스템에 반영을 해야 합니다.

 

앞선 예시를 다시 들어, 주변의 제반환경이 바뀐 상황에서 A라는 문제가 다시 생겼다고 가정해봅시다. 그렇다면 이전에는 A를 해결했던 방법이 효과가 없을 수도 있습니다. 이때 작업자는 다시 바뀐 환경을 고려하여 새로운 규칙을 찾아내어야 합니다. 또한, 새로운 데이터에 맞는 규칙을 직접 시스템에 반영해주어야 합니다.

 

또 다른 예로, 컴퓨터가 고양이를 인식해야 하는 상황을 가정해봅시다. 이전에는 컴퓨터가 특정 이미지를 고양이로 인식하기 위해, 사람이 고양이의 특징을 규정해 ‘고양이는 이렇다’라는 규칙을 만들고 훈련시켰습니다. 그러다보니 이미지가 옆으로 돌아 있는 경우엔 컴퓨터가 돌아간 이미지를 고양이로 인식할 수 없었습니다.

 

이와 달리 머신러닝의 원리는 내가 명시적으로 규칙을 제시하지 않아도 컴퓨터가 스스로 바뀐 환경에 대처하는 방식을 찾아내는 것입니다. 이를 위해 머신러닝은 컴퓨터가 스스로 어떠한 규칙을 찾아낼 수 있도록 수많은 데이터를 학습합니다.

 

그 학습 과정에서 머신러닝 알고리즘이 ‘고양이는 이런 특징이 있다’는 규칙을 찾게 되는 것입니다. 즉, 머신러닝은 기존 매커니즘은 변하지 않은 채 새로 입력된 데이터로부터 새로운 형태의 규칙을 스스로 도출할 수 있는 것입니다.

 

요리는 재료가, 머신러닝은 데이터가 좌우한다

 

당연한 이야기지만, 머신러닝은 데이터를 기본 재료로 합니다. 따라서 머신러닝 모델엔 ‘목적’에 부합하는 ‘적절한 형태’의 데이터가 필요합니다. 단순히 데이터가 많다고 해서 훌륭한 모델이 탄생하는 것이 아닙니다. 머신러닝 모델을 통해 비즈니스적으로 활용하고자 하는 목적을 잘 생각하고 그에 맞는 데이터를 확보해야 합니다.

 

가령 분기별 수요예측이 필요한 상황이라면, 머신러닝을 위한 훈련 데이터 역시 분기별, 혹은 적어도 분기보다는 적은 단위에 대한 데이터여야 합니다. 내가 가진 데이터가 연간 데이터인데 한 분기 뒤 수요를 예측하고자 해당 데이터를 그대로 적용시킨다면 머신러닝 모델 자체가 만들어지지 않습니다.

 

수요에 대한 분기별, 혹은 특정 기간별 트렌드가 존재하는 것이 아니라면 단순히 연간 데이터를 4분의 1, 혹은 n분의 1로 나눈다고 해서 정확한 데이터가 나오는 것이 아닙니다. 부정확한 데이터를 기반으로 머신러닝 모델을 만들게 되면, 이를 통한 예측값 또한 정확도가 낮아지게 됩니다.

 

데이터를 가공할 수 있다고 할지라도, 가공 중에 소위 말하는 ‘쓸 만한 데이터’가 없는 상황이 발생하기도 합니다. 머신러닝 모델을 구축하다보면 데이터가 즉시 사용할 수 없는 형태인 경우가 생각 외로 많습니다. 따라서 대부분의 경우 목적에 맞게 주어진 데이터를 가공하고 정제하는 작업을 동반하게 됩니다.

 

머신러닝을 위한 훈련 데이터를 만들어가는 전처리 과정이 일반적으로 예상하는 것 이상 오래 걸리기도 합니다. 즉, 좋은 성능의 머신러닝 모델을 만들기 위해서는 빅데이터가 중요한 것이 아니라, 오히려 분석 및 예측 목적에 맞는 ‘클린’ 데이터가 필요합니다.

 

머신러닝

 

머신러닝의 예측을 ‘용하게’ 만드는 방법

 

많은 이들이 ‘머신러닝 모델’을 활용해 미래를 ‘예측’한다고 말합니다. 앞서 언급된 것처럼, 머신러닝 모델은 과거 경험(데이터)로부터 특정한 규칙(패턴)을 추론하는 메커니즘을 가지고 있습니다. 이에 따라 ‘머신러닝의 예측’은 ‘미래에 어떠한 입력 값들이 주어졌을 때 우리가 관심 있는 값은 어떨 것이다’라고 유추하는 것을 의미합니다.

 

그렇다면 이 예측은 어떻게 해야 더 정확해질까요? 기본적으로 과거의 데이터로부터 도출된 규칙 및 패턴들이 미래에도 유효해야 합니다. 교통 흐름 및 정체 등과 같이 어느 정도 유사한 패턴이 반복이 되어 과거로부터의 추론이 미래에도 의미가 있는 경우가 이에 해당합니다.

 

혹은 관심이 되는 시스템 혹은 분석의 대상이 변하지 않는 경우도 머신러닝 모델의 예측 정확도가 높아질 수 있습니다. 가령 사람이 가지는 물리적인 특징 중 하나는 얼굴 안에 눈, 코, 입의 배치되어 있다는 규칙이고, 이 규칙은 미래에도 유효할 것입니다. 즉, 시스템의 재연성이 높을수록, 과거에 찾은 패턴이 유의미할수록 머신러닝 모델은 그 효과를 발휘합니다.

 

또한, 머신러닝 모델을 구축할 땐, 우리가 알고 싶어 하는 값, 그것에 영향을 미치는 요소들을 최대한 반영해야 합니다. 머신러닝의 키포인트는 사람이 알 수 있는 패턴이 아닌 인지하지 못했던 패턴을 찾을 수 있다는 것입니다. 사람은 인지능력의 한계로 인해 주어진 현상에 대해 ‘직관적으로’ 패턴의 규칙을 찾아냅니다.

 

이와 달리 머신러닝은 데이터를 기반으로 하기에 사람이 미처 찾지 못했던 규칙, 미처 예상하지 못했던 요소들 간의 관계를 찾아낼 수 있습니다.

 

동시에 머신러닝 모델은 그 생성 과정에서 주어진 학습 데이터 내 설명변수*들을 벗어날 수 없습니다. 과거 데이터에서 고려 혹은 포함하지 않았던 요소는 머신러닝 모델이 반영하지 못하는 것입니다.

* 다른 변수의 변화와 관계없이 독립적으로 변화하는 변수를 말하며, 독립변수라고도 불린다.

 

반대로 생각하면, 이런 특징으로 인해 아직까지 머신러닝이 극적인 효과를 발휘하기 힘든 분야가 존재하기도 합니다. 바로 주식과 중장기 수요예측 분야입니다.

 

주식 영역에서 단기 예측에선 예측력이 높을 수 있지만, 장기예측의 경우 변동성이 큰 정치적·경제적 요인까지 고려해야 합니다. 현재까지의 머신러닝 모델은 이런 요소를 반영하지 못하기 때문에 주식의 장기 예측에 관련해선 큰 효과를 기대하기 어렵습니다. 장기 수요예측도 위와 같은 맥락에서 마찬가지입니다.

 

따라서 기업은 머신러닝 도입을 결정하기에 앞서 자신의 비즈니스나 속한 산업구조가 머신러닝 메커니즘이 잘 동작하는 경우인지 아닌지를 명확히 파악해야 합니다.

 

다만, 여기서 말하고자 하는 바는 ‘수요예측을 하는데 머신러닝을 쓰지 말라’는 의미가 아닙니다. 수요가 비교적 안정적이며, 방향성이 예상이 되는 제품에 대해서는 머신러닝 기법을 적용함으로써 기존 예측방법보다 높은 정확도를 보이는 경우도 다수 존재하기 때문입니다. 머신러닝을 통해 도출된 수요예측 모델은 현업에서 고려할 수 있는 여러 수요예측 방법 중 하나의 대안이 될 수 있습니다.

 

물류산업은 기존 물류업체들 뿐만 아니라, 유통업체, 제조업체, 그리고 혁신적 기술로 무장한 IT업체들의 진입으로 갈수록 경쟁이 치열해지고 있는 상황입니다. 산업 간 경계가 허물어지는 무한 경쟁의 시대, 인공지능과 머신러닝은 물류업체의 경쟁력 확보를 위한 수단으로 충분히 활용될 수 있습니다.

 

TMS(배송관리시스템), WMS(창고관리시스템) 등에 누적되어 있는 빅데이터를 기반으로 자사의 목적에 맞게 머신러닝 기법을 활용한다면 비용절감은 물론 운영효율화를 이끌어내는데 큰 역할을 할 수 있을 것으로 기대합니다.



정태수

싱가포르국립대학(NUS) 산업시스템공학과 조교수와 The Logistics Institute-Asia Pacific (TLI-AP) 자문교수를 거쳐 현재 고려대학교 산업경영공학부 부교수로 재직중이다. 물류, SCM 및 스마트 제조분야에서 머신러닝 및 수리최적화 등을 기반으로 운영최적화를 연구 중에 있다. 현재 관심 분야로는 스마트 제조환경에서의 경영기법, 온디맨드 물류 및 강화학습 기반 수리최적화 기법 연구 등이 있다.




다음 읽을거리
추천 기사

잠시만 기다려 주세요...