#3 인공지능의 중반기 - 기계 학습(ML) 1: 지도 학습(Supervised Learning)과 비지도 학습(Unsupervised Learning)
Artificial Intelligence Day 3
인공지능(AI)의 중반기 - 기계 학습(ML) 1
#2에서 (대략 1970년대) 인공지능은 기술의 한계가 아닌 기계의 한계 때문에 연구에서 진척이 거의 없었다고 언급했다. 그럼에도 불구하고, 이 때 연구되었던 많은 기계학습(ML: Machine Learning, 머신러닝) 기술들은 지금의 인공지능(AI)의 뿌리가 되었다. 그럼, 과거 기계 학습(ML)에는 또 어떤 기술(접근법)들이 있었으며, 어떻게 지금의 인공지능(AI)의 뿌리가 되었을까? 기계 학습의 기술들을 이해하기 전에, 우선 통상적인 기계 학습의 방법론이 큰 범주에서 어떤 방식으로 나뉘는 지를 먼저 이해해야한다.
지도 학습(Supervised Learning)과 비지도 학습(Unsupervised Learning)
기계 학습(ML)에 사용되는 기술들을 모두 이 두 가지 지도 학습(Supervised Learning)과 비지도 학습(Unsupervised Learning) 중 하나에 해당된다.
위키피디아(Wikipedia)에서는 두 용어를 아래와 같이 정의한다.
지도 학습: 훈련 데이터(Training Data)로부터 하나의 함수를 유추해내기 위한 기계 학습(Machine Learning)의 한 방법이다.
비 지도 학습(Unsupervised Learning): 기계 학습(Machine Learning)의 일종으로, 데이터가 어떻게 구성되었는지를 알아내는 문제의 범주에 속한다.
출처: 위키피디아
두 정의 모두 해당 단어들을 잘 설명해주고 있지만, '데이터, 함수, 훈련' 등의 생소한 단어들이 많아 이해가 어려울 수 있다. 좀 더 쉽게 위의 내용을 이해하려면 우리가 인공지능(AI)를 통해 무엇을 하려는지를 다시 떠올려봐야한다.
강인공지능(Strong AI)와 약인공지능(Weak AI)
통상적으로 강인공지능(Strong AI 혹은 General AI)와 약인공지능(Weak AI 혹은 Narrow AI)는 아래와 같이 정의된다.
강인공지능(Strong AI 혹은 General AI)
: 인간이 지적 행위의 전체를 인공적으로 구현한 것.
약인공지능(Weak AI 혹은 Narrow AI)
: 인간이 지적 행위의 부분을 인공적으로 구현한 것.
즉, 강인공지능(Strong AI 혹은 General AI)은 인간 그자체를 표현하기 위한 기술을 말하는 것이고, 약인공지능(Weak AI 혹은 Narrow AI)은 인간의 지적 행위의 일부를 인공적으로 표현하고자 하는 것이다. 더 쉽게 이야기하면, 약인공지능(Weak AI 혹은 Narrow AI)은 언어 번역(Translation), 음성 인식(Voice Recognition), 이미지 분류(Image Classification)과 같이 특정한 업무(Task)만을 대체하기 위한 기술이라고 볼 수 있다. 그리고 우리가 일반적으로 말하는 인공지능(AI)는 모두 이 약인공지능(Weak AI 혹은 Narrow AI)에 해당된다. 그렇다면, 위의 지도 학습(Supervised Learning)과 비지도 학습(Unsupervised Learning)에서 설명하고 있는 함수(Function)은 위의 업무(Task)를 잘 하기 위한 방법, 수단이라고 해석하면 된다.
용어 설명
함수: 기계 학습(ML)에서 인공지능(AI)이 특정 업무(Task)를 잘 수행하기 위해 사용하는 방법. 이런 함수는 기계 학습(ML)에 사용하는 기술에 따라서 업무(Task)를 더 잘 수행할 수도, 못 수행할 수도 있게 된다.
학습 방법 (훈련)
이런 함수를 학습시키는 것을 통상적으로 우리는 '훈련(Training)'이라고 부르고, 학습하는 과정을 훈련 과정(Training Process)라고 부른다. 그리고 함수(Function)의 훈련은 데이터(data)를 통해서 학습한다. 이런 방식은 사람이 업무를 배우는 방식과 유사하다.
일반적으로 보면, 업무에서 다루는 문제들은 최상의 답이 있거나 정해진 답이 있다. 그렇기 때문에, 사람들은 문제들을 직면했을 때, 자신이 생각하는 답안대로 문제를 해결한다 (그림 1). 이 때, 문제를 배우는 방식은 미리 업무에 대한 답을 암기한 상태에서 새로운 혹은 유사한 문제를 해결할 수 있고 (그림 2), 답은 모르지만 문제의 종류들만 인지하고 있는 상태에서 자신만의 학습법으로 문제들을 해결하는 방법이 있다 (그림 3). 그리고 그림 2는 지도 학습(Supervised Learning), 그림 3은 비지도 학습(Unsupervised Learning)이다.
지도 학습(Supervised Learning)
지도 학습은 함수를 학습할 때, 넣어주는 문제(입력값, input)와 해당되는 답안(label)을 모두 다 넣어준 상태에서 이를 바탕으로 함수를 학습하는 방식이다. 즉, 고양이 사진을 주면서, '이 사진은 고양이야'라고 알려주며 학습시키는 방법이다. 이런 학습 방식은 기계가 정답을 잘 맞췄는지 아닌지를 쉽게 알 수 있다 (그림2).
따라서, 지도 학습의 경우 훈련 데이터(Training Data)는 input과 label이 항상 함께 저장되어있다. 학습에 사용하는 데이터를 훈련 데이터(Training Data)라고 부른다.
훈련 데이터(Training Data): 기계 학습(ML)에서 학습에 사용하는 데이터.
시험 데이터(Test Data): 기계 학습(ML)에서 학습된 함수의 성능을 평가하기 위해 사용하는 데이터.
비지도 학습(Unsupervised Learning)
비지도 학습은 지도학습과는 달리 해당되는 label을 알려주지 않는다. 오로지 input만을 알려주고, 문제 해결을 바라는 방식이다. 그림3과 같이 고양이 사진과 개 사진을 input으로 주지만, 해당되는 사진들이 고양이인지 개인지는 알려주지 않는 것이다. 이런 방식의 학습은 주로 input들을 비슷한 pattern이나 특징을 가진 것들끼리 분류하고자 할 때, 많이 사용된다. 왜냐하면, 기계는 정답을 모르는 상태에서 input을 받기 때문에 비슷한 input들끼리 군집화해서 분류하려는 특징을 가지고 있기 때문이다. 위의 예시에서는 비록 사진들이 고양이인지 개인지에 대한 정보가 없을지라도, 생김새(예: 다리 갯수, 눈 갯수, 피부색 등)를 통해 비슷한 것들끼리 분류하려는 함수를 학습할 것이고, 새로운 input이 data가 들어왔을 때, 기계가 어디에 분류했었는지를 대답해준다.
비지도학습의 경우, training data는 label이 없다.