brunch

You can make anything
by writing

C.S.Lewis

by 선한인공지능연구소 Mar 08. 2020

2-3.딥&머신러닝

*AI>ML>DL 그림표시

딥러닝(Deep Learning)

엑셀에서 데이터의 추세선 옵션을 이용한 그림 그리기는 한번쯤은 해보거나 보았을 것이다. 이는 회귀분석(Regression Analysis)을 엑셀로 활용한 아주 간단하고 쉬운 방법 중 하나이다. 많이 들어봤겠지만 회귀분석은 데이터간의 관계를 분석하고 모델식을 만드는 데이터 마이닝 기법 중에 하나이다. 정확성이 상대적으로 떨어지고 모델 정교화를 위해 분석가의 노력이 많이 필요하다는 단점을 가지고 있다. 그래서 등장한 것이 인공신경망(Artificial Neural Network, ANN)이다. 이는 사람의 뇌를 영상케하는 방법으로, 블랙박스 형태로 데이터를 입력하면 자동으로 복잡한 수학식으로 모델링 되는 기법이다. 예를 들면, 텍스트, 사진, 동영상 등에서 강아지를 구분해야 할 때 강아지의 특징들을 확인하고 다양한 요소들을 조합하여 자동으로 강아지를 검출한다. 

인공신경망: 인공신경망은 사람의 뇌를 영상케하는 방법으로 인풋에 따라 아웃풋이 결정되는 블랙박스 형태이다. 이해를 위해서는 인공신경망을 살펴볼 필요가 있다. 

훈련 데이터(Training Data)를 통해 학습된 속성을 기반으로 예측 및 분류하는 알고리즘을 연구하는 분야를 우리는 머신 러닝(Machin Learning; 기계학습)이라고 부른다. 즉, 인공신경망은 머신 러닝의 한 분야이다. 인공신경망의 정확성을 높이기 위해 학자들의 연구가 많이 이루어졌다. 

특히 최적화 이론(Optimization)과 다양한 커널 함수(kernel function)를 활용해서 모델식의 정확성을 높였다. 또한, 빅데이터 기술이 등장하면서 많은 데이터를 모델링에 쓸 수 있었으며 정확성도 더욱 높아지는 효과를 볼 수 있었다. 여기서 인공신경망에 빅데이터를 결합한 것을 우리는 딥 러닝(Deep Learning)이라고 부른다. 따라서 딥 러닝은 머신 러닝의 한 종류라고 할 수 있다.

딥 러닝을 주로 사용하는 분야는 음성인식 및 이미지 인식이다. 데이터 양도 많아지고 있고, 정확성이 상대적으로 높기 때문에 딥러닝 기술을 활용하여 많은 기업에서 관련 서비스를 제공하고 있다. 예를 들면 페이스북, 구글이 대표적인 기업이다.      

페이스북 사용자라면 누구든지 알 것이다. 친구들과 찍은 사진을 올리면 자동으로 친구의 이름이 태그 되는 것을 볼 수 있다. 이는 딥 러닝 기술을 활용하여 친구의 얼굴을 인식하고 분류하는 딥 페이스(Deep Face)라는 알고리즘이다. 인식 정확도는 97.25%이며 인간이 인식(97.53%)한 것과 거의 비슷하다고 할 수 있다. 딥러닝 기술은 광고에도 활용되고 있다. 게시한 사진의 제품을 분석하여 이를 기반으로 사용자에게 맞춤형 광고를 하고 있다. 글에서는 사진 태킹, 음성 인식에 딥 러닝을 활용하고 있다. 오래 전 개발되었던 구글 번역기도 딥 러닝 기술을 활용한 이후 정확도가 점점 높아지고 있다. 또한, 구글은 이용자들의 사진들을 인식하고 분류해 앨범을 자동으로 만들어주는 서비스도 제공하고 있다. 

중국의 구글이라고 불리는 바이두는 음성인식, 이미지 인식, 이미지 검색 기능을 강화하기 위해 딥러닝 기술을 사용하고 있다. 국내의 경우, 네이버의 음성 검색에서 딥 러닝 기술을 적용하고 있다. 또한 뉴스 요약 및 이미지 분석에도 딥 러닝을 확대 적용하고 한다. 올해 초 구글이 개발한 알파고로 인해 세상이 들끊면서 인공지능에 대한 인기가 치솟았다. 알파고도 딥 러닝 기술을 활용한 사례라고 볼 수 있다. 또한, 자동차 무인주행도 마찬가지로 딥 러닝을 활용하였다. 아직은 안전상의 문제로 대중화되지는 못했지만, 예전에 비해 기술발전이 크게 이루어지고 있다. 

과거의 경우 차가 건널목을 지나려고 할 때 건널목에 사람이 있는지, 차가 있는지, 신호가 바꿨는지 등등 일일이 사람이 질문을 만들어서 넣어줘야 했다. 하지만 지금은 건널목에서 차가 지나갈 때의 위험한/정상인 상황의 방대한 동영상 및 사진 데이터를 넣어두고 컴퓨터가 그 데이터를 학습하고 건너야 할지 말아야 할지를 자동으로 파악한다. 

알파고도 마찬가지로 수많은 바둑 상황 데이터를 넣어두고 상황에 맞게 자동 판단한다. 다른 점은 가능한 모든 상황에 따라 이길 확률을 계산하고 확률이 높은 수를 선택한다는 것이다. (Monte-Carlo Tree Search 방법 사용)

인공신경망의 기술적 발전과 방대한 데이터를 다룰 수 있는 빅데이터 기술의 발전으로 인해 딥 러닝은 우리 생활에서 큰 역할을 하기 시작하였다. 하지만 다양하고 방대한 데이터의 보유 여부에 따라 딥 러닝의 성공여부가 갈린다. 즉, 아직 발생하지 않았거나 거의 발생하지 않는 상황의 데이터까지 컴퓨터가 자동으로 판단할 수 없다. 이런 함정으로 인해 5번의 경기 중 이세돌 9단이 이길 수 있었던 계기가 된 것이다. 무인주행의 사고 또한 마찬가지이다. 

많은 양의 사고 영상 및 위험한 상황의 데이터를 보유하고 있어도 우리가 상상하지 못하는 사고는 항생 발생하기 마련이다. 딥 러닝의 성공적 적용을 위해서는 다양한 데이터의 수집하고 우리가 알지 못하는 미지의 상황에 대한 대체방법을 생각해야 한다. 

많은 양의 데이터가 있더라도 그것을 어떻게 딥 러닝 기술로 활용할 것인지, 정확도를 높이기 위한 미세 조정을 어떻게 할지, 인간이 만족할 만한 수준에 이르기까지 앞으로 많은 노력과 비용이 들것이라 생각한다.     

텐서플로우     

머신러닝은 복잡한 분야다. 그러나 구글 텐서플로우(TensorFlow)와 같은 머신러닝 프레임워크 덕분에 머신러닝 모델을 구현하는 과정은 예전만큼 복잡하거나 어렵지는 않다. 머신러닝 프레임워크는 데이터 획득, 모델 학습, 예측, 미래 결과 정제와 같은 과정을 쉽게 해준다.     

구글 브레인 팀이 개발한 텐서플로우는 수치 계산과 대규모 머신러닝을 위한 오픈소스 라이브러리다. 텐서플로우는 다수의 머신러닝과 딥 러닝(신경망) 모델과 알고리즘을 결합해 공통 메타포를 통해 유용성을 높혔다. 파이썬(Python)을 사용, 프레임워크로 애플리케이션을 구축하기 위한 편리한 프론트 엔드 API를 제공하며 성능이 우수한 C++로 애플리케이션을 실행한다.     

텐서플로우는 필기 숫자 판별, 이미지 인식, 단어 임베딩, 반복 신경망, 기계 번역을 위한 시퀀스 투 시퀀스 모델, 자연어 처리, PDE(편미분방정식) 기반 시뮬레이션 등을 위한 신경망을 학습, 실행할 수 있다. 무엇보다 좋은 점은 학습에 사용되는 것과 동일한 모델로 대규모 프로덕션 예측을 지원한다는 것이다.     

모든 기기에서 파이썬으로 보여주는 텐서플로우

텐서플로우에서 개발자는 데이터가 그래프 또는 일련의 처리 노드를 통해 움직이는 방법을 기술하는 구조인 데이터 흐름(dataflow) 그래프를 만들 수 있다. 그래프의 각 노드는 수학적 연산을 나타내며, 노드 간의 각 연결 또는 가장자리는 다차원 데이터 배열, 또는 텐서(tensor)를 나타낸다.     

텐서플로우는 프로그래머를 위한 이런 모든 기능을 파이썬 언어를 통해 제공한다. 파이썬은 배우고 다루기 쉬우며, 고차원 추상화 결합 방법을 편리하게 표현하는 방법을 제공한다. 텐서플로우의 노드와 텐서는 파이썬 개체이며 텐서플로우 애플리케이션은 그 자체가 파이썬 애플리케이션이다.     

그러나 실제 계산 작업은 파이썬으로 수행되지 않는다. 텐서플로우를 통해 제공되는 변환 라이브러리는 고성능 C++ 바이너리로 작성된다. 파이썬은 각 조각 사이의 트래픽에 길을 안내하고 이를 연결하기 위한 고차원적 프로그래밍 추상화를 제공할 뿐이다.     

텐서플로우 애플리케이션은 로컬 머신, 클라우드의 클러스터, iOS와 안드로이드 디바이스, CPU 또는 GPU 등 거의 모든 기기에서 실행이 가능하다. 구글 자체 클라우드를 사용한다면 구글의 맞춤형 텐서플로우 프로세싱 유닛(TPU) 실리콘에서 텐서플로우를 실행해 속도를 더 높일 수 있다. 텐서플로우에 의해 생성되는 모델은 거의 대부분의 기기에 배포되어 예측 수행을 위해 사용할 수 있다.     

텐서플로우의 이점, '추상화'

텐서플로우가 머신러닝 개발에서 제공하는 가장 큰 이점은 추상화(abstraction)다. 알고리즘 구현의 세부적인 면에 신경을 쓰거나 한 함수의 출력을 다른 함수의 입력으로 집어넣기 위한 적절한 방법을 알아내느라 고심할 필요 없이 개발자는 애플리케이션의 전체적인 논리에만 집중할 수 있다. 배후의 세세한 부분은 텐서플로우가 알아서 처리해준다.     

텐서플로우는 텐서플로우 앱을 디버그하고 내부를 살펴봐야 하는 개발자를 위한 부가적인 편의 기능도 제공한다. 즉시 실행(eager execution) 모드를 사용하면 전체 그래프를 하나의 불투명한 개체로 구축해서 한꺼번에 평가하는 대신 각 그래프 연산을 개별적으로, 투명하게 평가하고 수정할 수 있다. 텐서보드(TensorBoard) 시각화 도구 모음은 웹 기반의 대화형 대시보드를 통해 그래프 실행 방법을 검사하고 프로파일링을 할 수 있게 해준다.     

물론 구글의 최상위 상용 제품도 텐서플로우의 든든한 지원군 역할을 한다. 구글은 텐서플로우 프로젝트의 빠른 개발을 촉진했을 뿐만 아니라 텐서플로우를 보다 쉽게 배포하고 사용할 수 있게 해주는 여러 가지 중요한 요소를 만들었다. 구글 클라우드에서 성능 가속을 위한 앞서 언급한 TPU 실리콘, 프레임워크로 만들어진 모델을 공유하기 위한 온라인 허브, 브라우저 및 모바일 텐서플로우 버전 등이 대표적인 예이며 그 외에도 많다.     

한 가지 주의해야 할 부분은 텐서플로우 구현의 몇 가지 특성으로 일부 학습에서 완전히 결정론적인(deterministic) 모델 학습 결과를 얻기가 어렵다는 점이다. 똑 같은 데이터를 공급하더라도 한 시스템에서 학습된 모델과 다른 시스템에서 학습된 모델이 약간 다를 수 있다. 정확한 이유를 파악하기는 어렵다.     

예를 들어 난수가 시드로 투입된 방법이나 위치, GPU를 사용할 때 비결정론적인 특정 동작이 이유가 될 수 있다. 그러나 이러한 문제를 피해갈 수 있는 방법이 있으며, 텐서플로우 팀에서도 워크플로의 결정론에 영향을 미치는 더 세부적인 제어 기능을 연구 중이다.     

텐서플로우와 경쟁 프레임워크 비교 

텐서플로우는 여러 머신러닝 프레임워크와 경쟁한다. 파이토치(PyTorch), CNTK, MXNet은 텐서플로우와 상당 부분 용도가 비슷한 주요 경쟁 프레임워크다. 필자가 생각한 텐서플로우와 비교한 각 프레임워크의 장단점은 다음과 같다.     

- 파이토치(PyTorch): 파이썬으로 구축된다는 점 외에도 텐서플로우와 유사한 부분이 많다. 하드웨어 가속 구성 요소, 진행하면서 설계가 가능한 고도의 대화형 개발 모델, 그 외의 많은 유용한 구성 요소가 기본적으로 포함된다. 파이토치는 일반적으로 단시간 내에 실행해야 하는 빠른 프로젝트 개발에 더 유리하지만 큰 프로젝트와 복잡한 워크플로에서는 텐서플로우가 더 적합하다.     

- CNTK: 마이크로소프트 코그니티브 툴킷(Cognitive Toolkit)은 텐서플로우와 마찬가지로 그래프 구조를 사용해 데이터 흐름을 기술하지만 딥 러닝 신경망을 만드는 데 초점을 둔다. CNTK는 여러 가지 신경망 작업을 더 빠르게 처리하며 폭넓은 API를 보유하고 있다(파이썬, C++, C#, 자바). 그러나 현재 CNTK는 텐서플로우만큼 배우고 배포하기가 쉽지는 않다.     

- 아파치(Apache) MXNet: 아마존이 AWS의 고급 딥 러닝 프레임워크로 채택했으며 복수의 GPU와 머신에 걸쳐 거의 선형적으로 확장이 가능하다. 또한 파이썬, C++, 스칼라, R, 자바스크립트, 줄리아, 펄, 고 등 폭넓은 언어 API를 지원한다. 다만 네이티브 API의 사용편의성은 텐서플로우에 비해 떨어진다. 



MDM 마스터 데이터관리

빅데이터 시대를 맞아 기업들은 가치 있는 정보와 통찰(Insight)을 얻기 위해 사내/외에서 발생하는 각종 데이터를 수집하여 분석하는 데 역량을 집중하고 있다. 온라인 버즈와 소셜 미디어를 활용해 마케팅 전략을 도출하는 디지털 마케팅도 데이터 분석을 근간으로 한다. 또, 제조업의 경우 생산 공정을 모니터링하고 이상 정보를 조기에 감지하여 실시간 피드백 체계를 구현하는 오퍼레이셔널 인텔리전스(OI, Operational Intelligence) 영역에서 데이터 분석이 활용된다. 금융업에서는 시장 변화를 감지하고 자산과 포트폴리오에 미치는 영향을 실시간으로 예측해 포트폴리오 리밸런싱을 하는 등 고객 리스크를 최소화하는 Market Climate Watcher를 위해 데이터 분석을 필요로 한 현황이다.     

다양하고 방대한 양의 데이터를 분석∙활용하기 위해 반드시 선행되어야 할 사항은 ①기업 내/외부의 ‘핵심 정보’를 구분하여, ②이를 표준화하고, ③업무에 정확하게 활용될 수 있도록 기본 체계를 갖추는 것이다. 이 ‘핵심 정보’를 ‘기준정보(Master Data)’라고 하는데, 기준정보는 기업의 업무 프로세스와 정보 시스템에서 동일한 기준으로 사용되는 정보를 의미한다. 트랜잭션 데이터나 리포트 데이터를 비롯해 기업 내/외부에서 발생하는 빅데이터의 품질 고도화 및 동질성 유지 등을 위한 기본 데이터다. 이렇듯 기준정보의 품질과 일관성을 유지하고 업무 변화에 대응할 수 있도록 표준 관리 방식과 거버넌스를 수립하고 정비하는 체계를 ‘MDM(Master Data Management)’이라고 한다.     

MDM은 2000년대에 이미 제조업을 중심으로 전사 데이터 관리 차원에서 관심을 받았던 분야이다. 당시에는 ERP와 경영정보시스템 간의 기준정보 관리 필요성이 대두되면서 대기업을 중심으로 적용되었다. 그러나 기업들이 데이터에 대한 지식과 관리 역량을 제대로 갖추지 못한 상태에서 중앙 집중적 방식으로 신규 데이터의 통제에 집중하다 보니, 이전의 정보가 쌓이면서 현재 시점에서 긴급히 처리해야 할 업무를 제대로 지원하지 못하는 상황이 빈번하게 발생했다. 결국 MDM의 활용도는 낮아졌고, MDM에 대한 시장의 관심도 식는듯했다.

그러나 빅데이터 시대가 도래하면서 MDM은 다시 주목받고 있다. 4차 산업혁명에 따른 디지털 변혁을 겪으며 데이터 기반의 비즈니스에 나선 기업들이 내부 데이터뿐 아니라 온라인, 소셜, IoT 단말 등에서 발생하는 외부 데이터까지 수집해 빅데이터 플랫폼으로 이를 분석하기 시작하면서 데이터 품질의 중요성, 그리고 잘 갖추어진 데이터 관리 체계의 필요성을 깨달았기 때문이다. 

빅데이터 시대를 맞아 데이터의 가치가 높아진 만큼 형태와 구조가 복잡다단해지면서, 데이터 관리 능력이 기업 경쟁력의 중요한 축으로 부상하고 있다. 그리고 그 근간이 기준정보와 MDM이다.

기준정보 관리의 중요성과 실제 비즈니스 현장에 활용된 사례에 대해 알아보도록 하겠다. 

기준정보 관리의 중요성 및 효과

기업의 다양한 업무 프로세스에 포괄적으로 적용되는 기준정보는 '프로세스 수행'과 '분석'의 근간이 되기 때문에 항상 '동일한 의미'로 인지될 수 있도록 꾸준히 관리되어야 한다. 그럼 기업 사례를 통해 살펴보자. 

P&G의 아기 기저귀 물류 담당 임원은 수요를 분석하다가 흥미로운 사실을 발견했다. 제품 특성상 시장 수요가 일정함에도 불구하고, 도매점 및 소매점의 주문량은 변동폭이 컸던 것이다. 게다가 ‘고객-소매점-도매점-제조기업-원자재 공급기업’으로 구성된 공급사슬이 고객으로부터 멀어질수록 주문 변동폭이 더 커졌다. P&G에서는 이를 '채찍 효과(Bullwhip Effect) '라고 불렀죠. 대체 왜 이런 일이 일어난 것일까?

사실 기업의 정보관리 체계에서도 채찍 효과와 같이 정보의 왜곡 현상이 발생할 수 있다. 잘못된 기준정보가 업무 프로세스를 거치면서 오류가 점점 커져 잘못된 분석 결과를 도출하게 되고, 결국에는 잘못된 의사결정에까지 이르게 되는 것이다. 이를 방지하기 위해서는 기준정보의 표준 체계를 정립해야 하며 데이터 품질도 지속적으로 관리해야 한다.

아울러 오류가 발생했을 때에는 표면적으로 보이는 이상 데이터를 단순 조치하는 것에 그치는 것이 아니라 숨어 있는 근본 원인을 찾아내 제거해야 한다. 그리고 동일한 오류가 더 이상 발생하지 않도록 개선해 나가는 활동도 필요하다. 

많은 기업들은 이미 기준정보 관리의 중요성을 인지하고 있다. 하지만 이를 제대로 실행하는 것은 결코 쉬운 일이 아니다. 기준정보 관리가 IT 담당자의 전담 업무라는 인식이 팽배하거나 현업 부서가 기준정보에 꾸준한 관심을 가지지 않을 경우도 있다. 그러면 결국 데이터의 관리 주체가 불명확해져 시스템별로 각기 다른 기준정보를 쌓게 되거나, 특정 시스템에 한정된 관리로 치닫게 된다. 그 결과, 활용도가 떨어지는 저 품질 데이터가 양산되는 등 본연의 기준정보 관리 목적을 무색하게 만드는 상황이 발생하게 된다.

따라서 기준정보를 제대로 관리하기 위해서는 무엇보다도 현업과 IT 부서 간 긴밀한 협업을 바탕으로 전담 조직을 갖추는 것이 필요하다. 더불어 데이터 중복을 방지하면서 다양한 업무 관점을 수용할 수 있는 표준화된 관리 체계를 구비하고, 기준정보의 품질을 지속적으로 향상시켜 나갈 수 있는 견고한 운영 정책을 마련하고 실행해 나가야 한다. 

기준정보를 잘 관리하면 업무 프로세스 운영이 최적화되어 업무 속도가 향상될 뿐 아니라 비용 절감 효과도 볼 수 있다. 예로 연구, 제조, 마케팅, 영업 및 재무 업무 간 중복되거나 이원화된 제품 코드를 통합해서, 코드 수량 감소나 재고 관리 비용의 감축 효과를 볼 수 있죠. 또한 부서 간 의사소통이 원활해져 업무 속도 향상을 기대할 수도 있다.

    이뿐만이 아니라. 수작업 등의 비효율 업무를 제거하여 업무 프로세스가 개선되고, 운영 정보를 최적의 값으로 관리하게 되면서 무 투자 Capacity 증대라는 재무성과를 얻을 수도 있다. 또한 경영진 관점에서는 정확도가 높은 고품질 데이터를 토대로 Global Single View 체계를 갖출 수 있다. 이를 통해 의사 결정 수준이 향상됨과 더불어, 실시간 경영 기반이 갖추어져 비즈니스 환경 변화에 기민하게 대응할 수 있다.

정리하면, 올바른 기준정보 관리 체계를 갖추기 위해서는 검증된 프레임웍을 적용하여 거버넌스(원칙, 프로세스, 조직), 운영 표준(표준 체계, 품질 체계) 및 IT 인프라 영역별로 적합한 기준을 정립한 다음, 이를 구현하고 지속적으로 유지 관리 해나가는 노력이 필요하다.

작가의 이전글 2-5.과목별 AI융합
작품 선택
키워드 선택 0 / 3 0
댓글여부
afliean
브런치는 최신 브라우저에 최적화 되어있습니다. IE chrome safari