데이터/자료 관리자를 위한 인공 지능 시리즈 (2/4)
2016년과 2017년 한국에선 4차 산업 혁명 연관 뉴스거리가 많았습니다. 빅데이터가 인공지능과 자동화에 필수요소란 짤막한 설명들이 곁들여지고요. 대부분의 내용은 혁명인지 아닌지, 얼마나 생활에 영향이 있을지에 대한 추측과 예측이 난무하는 가운데, 정작 인공지능과 기계학습 (Machine Learning)과 심층학습 (딥러닝/Deep Learning)의 차이점을 통계학 비전문가에게 설명하는 곳은 적은 것이 안타까웠습니다. 그리하여 여기 4 부분으로 구성된 시리즈의 2부에선 이걸 다뤄볼까 합니다.
- 이전 1부에선 인공지능의 역사와 지금 뜨는 이유를 정리해 보았고
- 오늘 2부에서 좀 더 쉽게 비교해서 인공지능과 기계학습 차이점을 나열해보고
- 3부에서는 새로운 프로젝트를 위한 데이터베이스 선택 시 딥러닝을 위해 고려할 사항들을
- 4부에서는 제가 NoSQL 시스템을 딥러닝에 사용하는 예제와 이유를 설명해보려 합니다.
많은 대화 속에 인공 지능, 기계 학습 및 심층 학습이 혼용되는 걸 봅니다 - 하지만 사실 기계 및 심층 학습은 아래 표에서 보실 수 있다시피 인공 지능 밑에 포함된 개념입니다. 인공 지능은 지능형 행동이 가능한 기계를 만드는 데 중점을 둔 컴퓨터 과학의 한 부분으로 생각할 수 있습니다. 굉장히 광범위한 개념이죠.
하지만 기계 및 심층 학습은 알고리즘을 사용하여 데이터를 탐색하고, 데이터에서 배우고, 예측을 하거나 자발적인 행동을 취하는 '방식'으로 생각하는 게 맞습니다. 근대에 소프트/하드웨어적 발전을 거듭하면서 실질적인 용도에 대한 기대치가 증가되면서 사용 가능성이 확인된 경우이죠. 1부에서도 설명했지만, 알고리즘에 대한 특정 제약 조건을 프로그래밍하는 기존의 '전문가 시스템' 대신 시간적 효율성을 높인 학습 시스템이 가능해진 겁니다. 인공 지능의 요즈음 들어 가장 큰 발전은 대량의 데이터와 클라우드를 사용하여 알고리즘을 학습시킴으로써 특정 작업을 독립적으로 학습하고 추론하는 것을 가능케 하는 단계에 다다른 것이라 할 수 있겠습니다.
우선 인공지능이 포괄적 개념이라는 것을 염두에 두고, 기계학습에 대해 알아보면 크게 두 가지로 분류되는 걸 알 수 있습니다. 기계가 배우는 것을 어떻게 접근하느냐가 차이점인데요, 감독/지도 학습 (supervised learning)과 비감독/비지도 학습 (un-supervised learning)입니다. 알파고 대 이세돌 등의 바둑을 통해 보인 사례는 두 가지와 조금 또 다른 강화 학습 (reinforcement learning)으로서, 3부에서 다루도록 하겠습니다.
감독/지도 학습. 현재 가장 일반적인 학습 방법입니다. 감독 학습에서 알고리즘은 개발자나 분석가가 직접 입력 한 데이터를 사용하여 모델을 학습하고 예측을 생성합니다. 여기서 입력했다는 것은 데이터가 정보로서의 의미를 가졌을 때의 가치 값이 평가되었고, 그것을 입력했다는 것을 말합니다. 한 예로, 교과목 점수가 A/B/C/D/F로 나누어졌을 때 A > B > C > D > F로 순서가 주어진 것으로 생각하면 쉽습니다. 기계가 보기에는 A가 알파벳의 첫 자이기에 1 < 2 < 3 < 4 < 5처럼 A < B < C < D < F로 인식하는 가능성이 있지만, 지도를 하는 거지요, A가 가장 큰 값이고 B는 그보다는 적지만 C보다는 큰 값이라고 말입니다.
감독 학습은 다시 또 회귀 (regression) 및 분류 (classification) 분석의 두 그룹으로 구분할 수 있습니다.
우선 회귀 분석의 예를 보죠. 옆의 표를 보면 부동산 업계에서 도용된, 기계학습 교육에 자주 등장하는 두 가지의 데이터가 있습니다 - 건평 (x)와 가격 (y). 둘 다 적은 값에서 (x, y: 0,0)에서 큰 값으로 연속되는 데이터까지 (x, y: 77:33) 존재하는 경우, x가 90일 때에 y값을 예측하는 것은 회귀 문제라 할 수 있죠. 아까의 교과목 점수를 예로 들자면 집중 공부시간 (x)에 따른 시험 점수 (y)를 예측하는 경우가 되겠습니다. 표기된 빨간 X의 수가 많으면 많을수록 연두색 예측선의 정확도가 높아지는 거고요.
이제 분류 분석의 예를 보겠습니다. 이번엔 의료학 예제 표를 보시죠 - 역시 두 가지 데이터가 있습니다 - 종양의 크기 (x)와 환자 나이 (y). 종양은 양성 및 음성 종양으로 분류됩니다. 감독된 분류 알고리즘은 데이터를 통해 직선을 맞추어 종양을 두 개의 다른 분류로 분류하려고 시도합니다. 선에 따라서 이후에 추가되는 데이터는 직선 분류에 따라 양성 또는 악성으로 분류될 수 있습니다. 분류 분석에선 개별 그룹이 발생하지만 반드시 출력 그룹 수를 제한할 필요가 없습니다. 예제에선 두 개의 그룹 (음/양) 만 있지만 더 많은 분류 (양성, 유형 1 악성, 유형 2 악성 등)가 있을 수 있습니다. 기본적으로 데이터를 정해진 기준에 따라 그룹으로 나누는 경우이겠고, 크게 두 가지로 볼 수 있습니다 - 2진법 (binary - yes/no)을 쓰는 경우에 '양성 종양 확률이 높은가?' 하는 문제에 답할 수 있는 체제가 되겠고, multi-label classification을 쓰는 경우에 양성 및 다른 유형으로도 그룹 지을 수 있게 됩니다.
비 감독/지도 (자율) 학습. 자율 학습은 값의 가치가 주어지지 않은 (감독/지도가 없는) 데이터로부터 미래를 예측하는 학습방법입니다. 평가되어 있지 않은 데이터로부터 패턴이나 형태를 찾아야 하는 것이 핵심이죠. 자율 학습도 데이터가 분리되어 있는지 (Categorial data), 연속적인지 (Continuous data) 나눌 수가 있고, 또한 회귀 (regression)와 분류 (classification) 방식을 사용할 수 있습니다.
이전의 감독/지도 예제에서, 가치 값이 지정된 데이터 집합 (양성 또는 악성 분류)은 알고리즘이 정답을 결정하는 데 도움이 됩니다. 하지만 자율 학습은 알고리즘에 가치가 책정되지 않은 데이터 세트를 제공받고 알고리즘에 의존하여 데이터의 구조와 패턴을 나열할 수 있어야 하는 거죠. 옆에 보시면 각 데이터 포인트가 나타내는 정보가 없으므로 알고리즘은 데이터에서 구조를 찾도록 요청됩니다. 여기서 자율 학습 알고리즘은 두 개의 별개의 클러스터가 있는지를 결정하고 클러스터 간에 직선 분류를 할 수 있습니다. 쉽게 보면 데이터들이 얼마나 붙어 있는지 (서로 가까운지)데 따라서 그룹 지을 수 있는 거죠. 자율 학습은 Google 뉴스, 소셜 네트워크 분석, 시장 세분화 및 은하계 주변의 천문학적 분석과 같은 많은 사례에서 광범위하게 적용됩니다. 또한 저 같은 경우에는 감독/지도가 원활하지 않은 경우, 1차 처리/분류를 자동화하는 경우에 적용하고 있습니다.
엄밀히 따지자면 여기서 다뤄야 하겠지만, 강화 학습 (reinforcement learning)은 인간의 뇌가 배우는 방법과 비교하며 3부에서 다루기 위해서, 여기서 블로그 시리즈의 2번째 부분을 마무리 짓습니다. 제 3부에서는 딥러닝 프로젝트를 위한 데이터베이스를 선택할 때 핵심 고려 사항을 언급하도록 하겠습니다.