자세히 보기

Martin Heller
Contributing Writer

우리 회사는 AI·머신러닝에 준비돼 있을까?··· ’10가지 체크리스트’

인공지능, 머신러닝에 대한 기업들의 기대가 크다. 여기에는 이를 활용해 수익을 창출할 수 있을 것이라는 기대도 포함돼 있다. 그러나 현실은 꼭 그런 것만도, 그렇지 않은 것만도 아니다. 오늘은 인공지능을 다룰 만한 준비가 되었는지 자가 진단할 수 있는 기준을 소개하고, 만일 아직 준비가 안 되었다면 어떻게 그 준비를 마칠 수 있을지에 대해 살펴본다.

우선, 인공지능을 통해 예측 또는 탐지하고자 하는 대상이 분명히 정해져 있는가? 예측 모델을 만들고 분석하기 위한 충분한 데이터를 수집 하였는가? 이러한 모델들을 정의하고 교육할 적절한 인재와 툴을 확보 하였는가? 또 예측의 기초가 되어 줄 통계적, 물리적 모델이 있는가?

오늘은 AI 및 MI 프로젝트 성공에 필요한 것들을 살펴보고, 머신러닝 및 딥러닝, 인공지능을 활용할 준비가 되었는지를 판단하는 몇 가지 기준에 대해 소개해본다.

– 충분한 데이터는 확보했는가?
– 데이터 과학자를 충분히 채용하고 있는가?
– 중요 요인들을 추적하고 관찰할 수 있는가?
– 데이터를 청소, 변형할 수 있는 방법을 보유하고 있는가?
– 데이터에 대해 통계 분석을 마쳤는가?
– 최적의 모델을 찾기 위해서 다양한 접근을 시도하고 있는가?
– 딥러닝 모델 교육을 위한 컴퓨팅 역량을 확보했는가?
– 수립한 ML 모델이 통계 모델을 능가하는가?
– 예측 모델을 배치할 수 있는가?
– 주기적으로 모델을 업데이트 할 수 있는가?

충분한 데이터는 확보했는가?
관련 데이터가 충분한지 여부는 예측 및 기능 식별의 필요 조건이라 할 수 있다. 이러한 데이터가 충분히 갖춰지지 않으면 성공은 아예 불가능하다. 얼마만큼의 데이터가 필요할까? 더 많은 요소를 고려하고 있을 수록 필요한 데이터 양도 많아진다. 그것이 평범한 통계 예측이건, 머신러닝이나 딥러닝이건 말이다.

예를 들어 다음 달 마이애미에서 네이비 색상의 반팔 블라우스가 얼마나 판매될지를 예측한다고 해보자. 그리고 이를 위해 마이애미 매장과 애틀란타의 물품 창고에 얼마만큼의 재고를 비축해 두어야 백 오더를 방지하고 수요량에 맞는 재고를 유지할 수 있을지를 알고자 한다.

리테일 업체들의 판매량은 특히 계절을 많이 타기 때문에 과거 수 년 동안 축적되어 온 월별 판매 통계 데이터가 있어야만 월별, 그리고 연간 트렌드를 정확히 파악할 수 있게 된다. 물론 이는 어디까지나 표준적인 시계열 분석일 때의 이야기이고, 머신러닝을 이용하려면 통계 모델보다 더 많은 데이터를, 딥러닝은 그보다 몇 배는 더 많은 데이터를 필요로 한다.

지난 5년간 한 의류 판매 체인의 월별 블라우스 판매량을 분석하는 통계 모델이 있다고 해 보자. 이 모델은 이러한 데이터를 분석하여 다음 달 총 블라우스 판매량을 예측하고자 한다. 판매량은 아마 10만 벌 단위일 것이다(분석 결과 약 30만 벌의 판매량이 예측 되었다고 가정해 보자).

이 경우 마이애미 매장의 블라우스 판매량은 전국 판매량 대비 특정 비율(예컨대 3% 정도)이 될 것이고 이와 별개로 전체 블라우스 판매량 중 반팔 블라우스 판매량이 차지하는 비율은 약 1% 가량 될 것이라고 예측할 수 있다. 이러한 계산을 통해 다음 달 마이애미 매장에서 판매될 반팔 블라우스는 약 90벌 정도임을 예측할 수 있게 된다. 그리고 과거 판매량 통계를 통해 매년 동일한 월에 특정 제품의 판매량이 예측치와 얼마나 일치하는지를 살펴보면 예측의 정확도를 어느 정도 확신할 수 있다.

이제 날씨나 패션 트렌드와 같은 외생 변수들을 계산에 넣어 보자. 반팔 블라우스는 덥고 햇볕이 쨍한 기후에서 많이 팔릴까, 아니면 서늘하고 비가 잦은 기후에서 자주 팔릴까? 아마도 전자일 것이다. 이를 확인하려면 과거 기후 데이터를 분석 모델에 포함시키면 된다.

그러나 이러한 분석은 시계열 통계 모델만으로는 하기가 조금 벅찬 측면이 있으므로, 디시젼 포레스트(decision forest) 회귀 분석을 시도해 봐도 좋다. 또 그렇게 한 김에 다른 7가지 머신러닝 모델을 회귀 분석에 활용해 볼 수도 있을 것이다(상단 스크린샷 참조). 그리고 각 모델의 예측 결과를 지난해의 실제 데이터와 비교해 최선의 모델을 찾아낸다.

작년 동월 대비 다음달의 네이비 블루 색상 판매량이 줄어들까, 늘어날까? 이것이 궁금하다면 네이비 색상 옷의 월별 판매량 데이터를 분석한 후 연간 패션 트렌드를 예측하여 이를 머신러닝 모델에 적용할 수 있다. 경우에 따라 패션 산업 종사자나 미디어 등 해당 분야 전문가들의 조언을 반영하여 예측 분석 과정에 ‘인적 요소(만일의 경우에 대비해 예측치를 20% 가량 높게 잡는 등)’를 적절히 반영할 수도 있을 것이다.

심층 뉴럴 네트워크의 형성은 예측의 정확도를 더욱 높여준다. 숨겨진 레이어를 추가할 때마다 회귀 분석 에러가 조금씩 개선되다가, 일정 수준에 다다르면 더 이상의 레이어 추가가 정확도 개선에 별다른 기여를 하지 못하는 시점이 온다. 이는 모델 내에 더 이상 인지할만한 특징이 없거나, 더 이상 구체적인 분석을 가능케 할 정도의 데이터가 부족하기 때문이다.

데이터 과학자를 충분히 채용하고 있는가?
앞서 언급한 예측 모델은 모두 사람이 직접 만들어야 하는 것들이다. 하지만 데이터 분석은 단순히 데이터 뭉치를 입구에 쏟아 붓고 ‘분석’ 버튼을 누르는 것으로 끝나지 않는다. 사용하는 툴과 관계 없이, 머신러닝을 통해 유의미한 결과물을 얻기 위해서는 경험과 직관, 프로그램 능력과 통계학에 대한 수준 높은 지식이 요구된다.

벤더들 중에는 ‘누구나’, ‘직무에 관계 없이’ 자신들의 응용 머신러닝 모델을 사용할 수 있다고 광고하는 이들이 있다. 예를 들어 퀘벡식 불어를 영어로 번역하는 등, 당장 코앞에 닥친 구체적인 하나의 문제만을 해결해야 하는 상황이라면 그것이 가능할 지도 모른다. 그러나 실생활에서는 기존의 머신러닝 모델과 데이터가 잘 들어맞지 않는 경우가 훨씬 더 많다. 아직까지 엔지니어링이나 과학보다는 개인의 ‘기술’이 더 크게 좌우하는, 모델을 교육하는 과정에 이러한 교육을 주도할 데이터 애널리스트와 데이터 과학자가 필요한 이유가 여기에 있다.

데이터 과학자를 채용할 때 가장 이해가 되지 않는 부분이 바로 지원자에게 요구하는 자질들이다. 이런 기술들은 실제로 현장에서 요구되는 기술들과도 동떨어져 있다. 채용 공고는 보통 ‘STEM Ph.D, 20년 이상 경력자 채용’ 등을 담고 있다. 하지만 몇몇 문제가 있다.

우선 데이터 과학이라는 분야 자체가 생긴 것이 20년이 채 되지 않는다. 게다가 기업들은 채용 공고에서는 20년 이상 경력을 요구해 놓고도 실제로 그 정도 경력자를 채용할 경우 비용이 너무 많이 들 것을 우려해 20대 중, 후반의, 막 대학원을 졸업한 청년을 뽑는 경우가 허다하다. 위선적인 태도인 게 분명하고 어쩌면 나이를 기준으로 한 불법적 차별 행위 일수도 있겠지만, 현실에서 일어나는 채용 실태는 이렇다.

중요 요인들을 추적하고 관찰할 수 있는가?
충분한 데이터를 확보하고, 이를 모델에 적용할 데이터 과학자 채용까지 마쳤다 해도 모든 관련 변수들에 대한 데이터를 다 확보하고 있는 것은 아닐 것이다. 쉽게 말해 열은 다 찼는데 행은 여기저기 비어 있는 상황이다. 통계적으로도 설명되지 않은 가변성이 남아 있을 수 있다.

기상 관측과 같은 독립 변수의 측정은 아주 쉽게 이루어 질 수 있으며 데이터 세트로의 통합도 수월하다. 그러나 개중에는 통합이 어렵고, 실용적이지 못하거나 측정에 많은 비용이 들어가는 변수들도 있다.

화학을 빌어 예를 들어 보자. 구리에 납을 입힐 때 붕불산 도금액의 농도와 온도를 측정해 애노드 전반의 볼티지를 기록할 수는 있지만, 도금액에 충분한 펩티드가 없으면 제대로 붙지 않는 것과 마찬가지 이치다. 도금액에 포함될 펩티드 양을 제대로 측정해 두지 않았다면 이 핵심 촉매제가 얼마만큼 포함되었는지 알 수 없기 때문에 다른 변수들을 통해 도금 품질의 분산, 편차를 설명하기 어려워진다.

데이터를 청소, 변형할 수 있는 방법을 보유하고 있는가?
데이터에는 언제나 변수가 존재한다. 측정에는 언제나 한두 가지 값이 빠져 있을 수 있고, 개별 값들이 독립적으로 다른 값들과 조화를 이루지 못하거나 일관성이 없을 수 있다. 전자적 측정은 전기적 잡음으로 인해 정확도가 떨어질 수 있다. 또한 질문에 답한 사람들이 질문을 제대로 이해하지 못했거나, 성실하게 답변하지 않았을 가능성도 존재한다.

모든 분석 프로세스에서 데이터 필터링은 가장 많은 노력이 요구되는 단계이다. 경험상 전체 분석에 걸리는 시간의 80%~90%는 바로 데이터 필터링에 소요된다. ETL(extract, transform, load) 프로세스에서 데이터를 청소해 애널리스트들이 불량 데이터를 배제하고 볼 수 있도록 하는 기업도 있지만, 모든 데이터를 선별하지 않고 데이터 웨어하우스나 데이터 레이크에 모아두는 경우도 적지 않다. 즉, 시간이 흐를수록 데이터 필터 및 변형 능력이 더욱 다듬어 질 것이라는 믿음 하에 오염된 데이터들도 함께 저장되고 있는 것이다.

필터링을 거친 정확한 데이터조차도 분석 전에 약간의 변형이 필요할 수 있다. 통계 분석 방식과 마찬가지로, 머신러닝 모델 역시 각각의 가능한 상태들에 대하여 유사한 수의 열이 존재할 때 최적의 기능을 발휘한다. 이는 랜덤 샘플링을 통해 가장 빈번하게 등장하는 상태들의 수를 축소시킴을 의미한다. 또한 통계 모형과 마찬가지로, ML 모형 역시 모든 변수가 정상화 된 상태에서 가장 최적의 기능을 발휘할 수 있다.

예를 들어 코타나 머신러닝(Cortana ML)을 통한 트럼프와 클린턴의 대선 캠페인 분석은 레이블을 생성하고, 데이터를 프로세싱하며, 부가적 기능들을 엔지니어링 하고, 데이터를 청소하는 일련의 과정을 통해 어떻게 머신러닝에 필요한 데이터 세트을 준비해야 하는가를 여실히 보여주었다. 이 분석에 대한 논의는 마이크로소프트 블로그 포스트를 통해 이뤄지고 있다.

이 분석은 SQL과 R에서 여러 데이터 변형을 거치고 있다. 이는 각 후보의 대선 캠페인과 관련된 여러 위원회, 대선 기금 등을 식별하고 이름을 바탕으로 기부자의 성별을 분석하며, 오타를 수정하고, 클래스 간 불균형을 바로잡기 위한 것이다. (데이터 세트에 따르면 전체 송금의 94% 가 소액 기부로 클린턴에게 보내진 것이었다). 이 샘플의 결과를 이중 클래스 로지스틱 회귀 분석 모델에 적용하는 방법에 대해 애져(Azure) ML 스튜디오를 위한 ‘시작하기’ 튜토리얼에 설명해 두었다.

데이터에 대해 통계 분석을 마쳤는가?
데이터 분석뿐 아니라 모든 문제 해결 과정에서 가장 경계해야 할 것이 곧바로 원인 공략에 나서는 것이다. 어떤 일이 왜 일어났는가를 파악하기에 앞서 한 걸음 물러서서 모든 변수와 그들 간의 관계를 살펴보아야 한다.

탐구 데이터 분석은 모든 변수들의 범주를 간략하게 보여준다. 특정 변수들이 상호 의존적인지 혹은 독립적인지, 변수들이 모여 있는 지점이 어디인지, 다수와 동떨어진 변수가 존재하는 지점이 어디인지 하는 것 등이다. 특히 상호 연관성이 높은 변수들의 경우 분석 과정에서 둘 중 하나를 제외하거나, 단계적 선형 회귀 분석(stepwise multiple linear regression)과 유사한 분석을 시행하여 최적의 변수를 선택해야 한다.

최종적 모델이 선형 모델이 될 것이라는 이야기는 아니지만, 복잡한 모델을 도입하기 전 좀 더 단순한 선형 모델을 시도해 보는 것이 도움이 될 것이다. 모델 상에 지나치게 많은 항이 존재할 경우 그 결과 시스템의 과잉결정상태가 발생할 수 있다.

최적의 모델을 찾기 위해서 다양한 접근을 시도하고 있는가?
주어진 데이터 세트에 대한 최적의 모델을 찾아내는 방법은 단 하나, 모든 모델을 다 시도해 보는 것뿐이다. 이미지 특성 인식이나 언어 인식처럼 잘 알려진, 그러나 까다로운 분야를 분석하는 것이 목적인 경우 ‘가장 잘 알려진’ 모델 몇 가지만을 시도해 보고 싶다는 생각이 들 것이다.

그러나 사실 그런 모델일수록 가장 컴퓨팅 집중적인 딥러닝 모델이다. 이미지 인식의 경우 나선형 레이어를, 언어 인식 모델의 경우 장 단기 메모리(LSTM, long short-term memory) 레이어를 포함하고 있다. 이러한 심층 뉴럴 네트워크를 교육할 경우 평균보다 더 강력한 컴퓨팅 파워가 요구된다.

딥러닝 모델 교육을 위한 컴퓨팅 역량을 확보했는가?
데이터 세트의 규모가 커질수록 딥러닝 모델이 포함하는 레이어도 늘어나고, 이러한 뉴럴 네트워크를 교육하는 데 걸리는 시간도 길어진다. 데이터 양이 많은 것은 모델의 정확도를 높여주지만 반대로 교육 시간이 늘어난다는 단점이 있다. 마찬가지로 레이어가 많은 것 역시 더 많은 특성을 구체적으로 식별하게 해 주지만 교육 시간이 오래 걸린다. 각 모델의 교육에 1년씩 투자할 수 있는 시간적 여유를 가진 사람은 많지 않을 것이다. 현실에서는 교육을 위해 할당되는 시간이 1주일 전후이다.

이러한 시간 문제를 조금이나마 우회할 수 있는 방법은 엔비디아의 것과 같은 일반적 용도의 그래픽 프로세싱 유닛(GPGPUs, general purpose graphic processing units)을 사용해 뉴럴 네트워크 레이어 기저에 있는 (선형 방정식이라고도 불리우는) 벡터 및 매트릭스 컴퓨테이션을 실행하는 것이다.

K80 GPU와 CPU의 결합은 CPU 혼자일 때보다 교육 시간을 5에서 10배 가까이 가속화 시켜줄 수 있다. 네트워크 ‘커널’ 전체를 GPU 로컬 메모리에 가져올 수 있다면 말이다. P100 GPU는 단일 CPU일 때보다 교육 시간을 100배 가까이 빠르게 하기도 한다.

GPU 외에도 CPU와 GPU의 협력 네트워크를 만들어 문제 해결에 드는 시간을 줄일 수 있다. 일년 내내 딥러닝 모델을 교육할 만한 시간적, 금전적 여유가 있는 것이 아닌 이상, 클라우드 상의 GPU 렌팅이 가장 비용 효율적인 옵션일 수 밖에 없다.

CNTK, MXNet, TensorFlow 등 여러 딥러닝 프레임워크들이 CPU와 GPU의 평행 컴퓨테이션을 지원하며 대규모 가상 머신 인스턴스 네트워크에 대한 합리적인 확장 계수(한 테스트 결과에 따르면 최대 85%)를 보여주고 있다. 메이저 클라우드 벤더들의 프레임워크는 대부분 GPU 지원과 VM 인스턴스가 이미 설치되어 있다.

수립한 ML 모델이 통계 모델을 능가하는가?
상대적으로 단순한 통계 모델은 머신러닝 및 딥러닝 모델의 효율성을 측정하는 기준이 된다. 기존 모델을 통해 그 기준을 향상시킬 수 없다면 방법을 수정하거나 새로운 접근 방식을 찾아야 할 것이다. 하이퍼파라미터 튜닝 알고리즘(hyperparameter tuning algorithm)의 통제 하에 다수의 모델에 대하여 평행 교육을 설정하고 가장 나은 결과를 추출해 이를 프로세스 다음 단계에 대한 가이드로 활용하게 된다.

예측 모델을 배치할 수 있는가?
이러한 모델 교육의 궁극적 목적은 이들을 실제 상황에 실시간으로 투입하는 것이다. 애플리케이션에 따라 모델의 예측이 서버 상에서 이뤄지기도, 클라우드나 개인 PC, 혹은 전화 상에서 이루어 지기도 한다. 딥러닝 프레임워크는 이러한 예측 모델을 웹 및 모바일 앱에 내장하는 다양한 옵션을 제공한다. 아마존, 구글, 마이크로소프트 모두 언어를 이해하는 스마트 기기 앱을 출시함으로써 이러한 옵션의 실용성을 강조하기도 했다.

주기적으로 모델을 업데이트 할 수 있는가?
직접 데이터를 가지고 모델 교육을 진행해 보았다면 모델의 오류 비율이(긍정 오류이건 부정 오류이건) 점차 증가한다는 것을 느꼈을 것이다. 이는 시간이 지남에 따라 데이터가 변화하기 때문이다. 판매량 패턴이 변하고, 경쟁 기업이 변하고, 스타일이 변하고, 경제 상황도 변화한다.

이러한 변화를 적절히 반영하기 위해 대부분 딥러닝 프레임워크들은 새로운 데이터에 맞춰 기존 모델의 재교육을 실시하고 새로운 모델로 예측 서비스를 대체하고 있다. 매 월 이러한 작업을 진행한다면 변화하는 외부 환경에 큰 영향을 받지 않을 수 있을 것이다. 그러나 지속적인 업데이트가 이루어지지 않는다면 결국 그 모델은 제대로 된 현실 반영을 하지 못한 채 정체되어 실용성을 잃고 말 것이다.

다시 최초의 질문으로 돌아와, 아래와 같이 묻지 않을 수 없다. 당신은 이러한 인공지능 모델을 통해 예측 및 탐지하고자 하는 대상이 무엇인지 알고 있는가? 이러한 예측 모델을 형성하기 위한 충분한 데이터를 확보하고 있는가? 모델을 교육하고 정비하기 위한 적절한 인재와 툴이 준비되어 있는가? 그리고 예측의 기초가 되어 줄 통계적, 물리적 모델을 구비하고 있는가?

만일 이 모든 준비가 끝났다면, 움직여야 할 시점은 지금 당장이다.

* Martha Heller는 CIO닷컴과 인포월드의 자문 편집자이자 리뷰어다. 웹 및 윈도우 프로그래밍 컨설턴트였으며 1986년부터 2010년까지는 데이터베이스, 소프트웨어, 웹사이트 개발자로 근무했다. 최근에는 알파소프트웨어 기술 및 교육 부사장과 튜블파이의 CEO를 역임했다. dl-ciokorea@foundryco.com

Martin Heller

Martin Heller is a contributing writer at InfoWorld. Formerly a web and Windows programming consultant, he developed databases, software, and websites from his office in Andover, Massachusetts, from 1986 to 2010. From 2010 to August of 2012, Martin was vice president of technology and education at Alpha Software. From March 2013 to January 2014, he was chairman of Tubifi, maker of a cloud-based video editor, having previously served as CEO.

Martin is the author or co-author of nearly a dozen PC software packages and half a dozen Web applications. He is also the author of several books on Windows programming. As a consultant, Martin has worked with companies of all sizes to design, develop, improve, and/or debug Windows, web, and database applications, and has performed strategic business consulting for high-tech corporations ranging from tiny to Fortune 100 and from local to multinational.

Martin’s specialties include programming languages C++, Python, C#, JavaScript, and SQL, and databases PostgreSQL, MySQL, Microsoft SQL Server, Oracle Database, Google Cloud Spanner, CockroachDB, MongoDB, Cassandra, and Couchbase. He writes about software development, data management, analytics, AI, and machine learning, contributing technology analyses, explainers, how-to articles, and hands-on reviews of software development tools, data platforms, AI models, machine learning libraries, and much more.

이 저자의 추가 콘텐츠