* 본 글은 서울대학교 융합과학기술대학원 이원종 교수님의 <데이터분석개론> 강의 내용을 바탕으로 재구성하였습니다.
바야흐로 알파고의 시대다...
알파고와 함께 떠오르는 이들이 있으니 인공지능, 머신러닝(기계학습), 데이터 마이닝, 로봇, 데이터 사이언스 등.. 비슷한듯 다른 뉘앙스를 품기는 "인공지능/머신러닝(기계학습)/데이터 마이닝"의 개념을 간략히 정리해보고자 한다.
인공지능 분야의 선구자인 스탠포드 대학의 Nils John Nilsson 교수는 인공지능을 다음과 같이 정의한다.
(Nils J. Nilsson의 저서 <THE QUEST FOR ARTIFICIAL INTELLIGENCE>는 전문 무료 다운이 가능하다. 거장의 관대함..)
For me,artificial intelligence is that activity devoted to making machines intelligent,and intelligence is that quality that enables an entity to function appropriately and with foresight in its environment.
인공지능이란 기계를 지능적으로 만드는 것이고, 그 지능이란 개체가 환경에서 통찰력을 가지고 적절하게 기능하는 것이다. 그런데 이 "통찰력을 갖고 적정하게 기능하는 것(function appropriately and with foresight)"이 환경마다 너무 다른 능력을 요구하기 때문에 다양한 지능들(intelligences)의 연속인 것이다.
For these reasons, I take a rather generous view of what constitutes AI. That means that my history of the subject will, at times, include some control engineering, some electrical engineering, some statistics, some linguistics, some logic, and some computer science.
이런 이유로 Nils J. Nilsson은 AI를 구성요소들에 대해 관대한 관점을 지닌다. 그에게 있어 인공지능이란 약간의 제어 공학, 약간의 전기공학, 약간의 통계, 약간의 언어학, 약간의 논리 그리고 약간의 컴퓨터 과학인 것이다.
스스로 학습하는 프로그램(self-learning program)을 처음으로 만든 Arthur Samuel은 기계학습을 명백하게 프로그래밍하지 않고, 컴퓨터에게 학습할 수 있는 능력을 주는 분야("Field of study that gives computers the ability to learn without being explicitly programmed")로 정의한다.
이후로도 기계학습에 대한 다양한 정의들이 나오는데, 카네기 멜론 대학의 Tom Mitchell 교수는 T,P,E라는 개념을 통해 이를 보다 명료하게 정의한다. (기계학습 영역에 대한 Mitchell의 원문)
# 기계학습에 대한 정의(Tom Mitchell, 2006)
• T: 특정 과제에 대해(task)
• E: 경험을 통해(experience)
• P: 퍼포먼스를 개선(performance)
하는 알고리즘에 대한 연구
T, P, E를 어떻게 구체화하는지에 따라 해당 부부은 데이터 마이닝, 자동 탐색, 데이터베이스 업데이팅, 프로그래밍 등 다양한 명칭으로 명명될 수 있는 것이다. 그리고 학습을 함에 있어 피드백 제공 여부에 따라 지도학습(supervised learning), 비지도 학습(unsupervised learning), 강화학습(reinforcement learning)으로 세분화되는 것이다.
일리노이 대학의 Jiawei Han 교수는 데이터 마이닝을 데이터로부터의 지식(knowledge)의 발견("searching for knowledge - interesting patterns - in data")이라고 정의한다. (데이터 마이닝의 기본 개념서와 같은 Jiawei Han 교수의 <Data Mining : Concepts and Techniques> 역시 전체 공개. 국내에도 <데이터 마이닝 개념과 기법>이란 제목으로 에이콘 출판에서 번역본이 출시됨.) 방대한 양의 데이터로부터 흥미로운 패턴을 도출하는 것("Extraction of interesting patterns or knowledge from huge amount of data")이다. 데이터 마이닝 역시 다양한 분야들의 융합으로 이루어진다.
데이터 마이닝이 해결하고자 하는 태스크는 크게 예측 태스크(prediction task)와 서술 태스크(description task)로 나뉜다.
# 데이터 마이닝의 태스크
• 예측(Prediction Tasks): 특정 변수(variables)를 사용해서 알려지지 않거나 미래의 다른 변수를 예측하는 것.
• 서술(Description Tasks): 데이터를 설명하는 패턴을 찾는 것.
# 예측 및 서술에 대한 대표적인 태스크들
• 분류(Classification): 클래스가 존재하는 비연속적인 범주형 라벨(categorical labels)에 대한 예측
• 회귀(Regression): 수치 데이터(numerical data) 값에 대한 예측
• 이상치 검출(Deviation Detection/Outlier Analysis): 일반적인 모델을 벗어나는 이상치가 중요한 문제의 경우 이상치에 대한 예측
• 군집화(Clustering): 클래스가 정해진(class-labeled) 데이터를 다루는 분류나 특정값(value)을 갖는 데이터를 예측하는 회귀와 달리 클래스 라벨이 없는 데이터에 대한 분석. 군집 내(intraclass)의 유사도를 최대화하고, 군집 간(interclass)의 유사도를 최소화하도록 설계됨.
• 상관관계(Association Rule Discovery): 데이터를 통해 속성(attribute) 사이의 연관성(correlation)을 발견하는 것. 이 규칙을 통해 예측(Prediction Tasks)이 가능함. 추천 시스템이 대표적.
• 순차 패턴(Sequential Pattern Discovery): 사건의 타임라인과 관련된 데이터들이 주어졌을 때, 서로 다른 이벤트들 간의 강한 순차적 관계를 추론하는 것.
AI, ML, DM 모두 데이터를 통해 모델을 만들고 태스크의 퍼포먼스를 개선시켜나간다는 점에서 교차점을 갖고 있으며, 점점 그 경계선이 불분명해지고 있다. 아니 어쩌면 시간의 축 속에서 파생하고 발전하였다는 점에서 경계를 판단한다는게 무의미할지도? 시대의 요구에 부합하는 방향으로 새로운 영역(혹은 용어)들이 등장하였고, 서로는 서로를 위해 존재하는 근간이자 수단이다.
인공지능이 등장.
인공지능의 발전을 위해 기계학습이 탄생.
방대한 양의 데이터 분석이 가능해지면서 데이터 마이닝이 탄생했고, 데이터 마이닝 방법은 기계학습에 많이 사용됨.
이런 일련의 과정들을 통해 실용적인 결과 창출에 대한 수요가 증가하면서 데이터 과학(Data Science)란 용어가 등장함.
아래는 이런 중첩적 영역을 표현한 Drew Conway의 벤다이어그램
해킹 스킬과 수학 및 통계적 지식 그리고 특정 영역에서의 실질적인 전문성, 이 세 가지가 데이터 과학을 위한 요건인 것이다. 이를 위해 특정분야의 전문가가 데이터 과학을 배우거나, 데이터 과학자가 특정분야를 터득하던가, 아니면 함께 협력하던가, 무엇이 가장 쉬운 길일까?