이번 포스팅에서는 Rule based machine learning overview를 해보도록 하겠습니다.
http://www.edwith.org/machinelearning1_17/lecture/10579
이제 드디어 machine learning의 도입부입니다. 강의에서도 얘기가 나왔듯, learning, 즉 배우는 것은 경험(experience)으로부터 얻게 되는 것이고, 특정 task에 대해 익히게 됩니다. 더 많은 경험을 하면 할수록 그 task에 대해서는 점점 전문가가 되기를 희망하며 익히게 되듯, machine learning도 같은 아이디어로 동작하기를 희망하는 것입니다.
이번에는 Perfect World example을 예로 드셨는데요. 주어진 날씨 조건에 따라 밖에 나가 놀 것인지 아닌지 분류하는 모델을 만든다고 가정해보겠습니다. 사실 현실에서는 주어진 날씨 조건만이 factor로 작용할 수는 없을텐데, 그러한 점들을 고려하지 않고, 현재 주어진 조건에 의해서만 완전히 결정난다는 가정을 하는 것입니다. 누군가는 이런 가정이 비현실적인데 이렇게 하는 것이 의미가 있느냐, 라고 질문하실 수도 있지만, 이런 것이 모델링이고, 현실에서 해당 모델이 정확히 맞길 바라는 것이 아니라, 현실 상황은 어차피 너무나 복잡하기 때문에 현실 상황에서 가장 중요한 factor 기준으로 추상화를 하고, 그 추상화된 것을 기준으로 모델링을 했을 때 비로소 이러한 공부했던 것들이 쓸모가 있어지는 것입니다.
어쨌든 현재 perfect world의 가정으로, 다음의 몇가지 가정을 합니다.:
1. (error-free) 관찰값에 에러가 없을 것
2. (noise-free) 일관되지 않은 관찰이 없을 것
3. (target function is deterministic) 관찰한 상황에 랜덤 프로세스가 없을 것
4. (target function is contaeind in hypotheses set) 관찰값들에 모든 정보가 있을 것
이러한 가정하에 강의에서는 아래의 예를 들었습니다.:
위의 표에서 row 단위로 하나의 data라고 생각하면, 이런 경우에는 Yes를 했고, 이런 경우는 No를 했고... 하면서 모델에게 경험(experience)을 심어주는 것입니다. 여기서의 특정 task는 바로 분류(classification)이며, 이러한 table의 row가 많으면 많을수록 더 많은 학습(training)을 하게 될 것입니다. (물론 data가 없는 것보단 많은 것이 좋지만, 많다고 하여 무조건 학습이 잘 되는 것은 아닙니다. 양질의 데이터가 중요한 이유죠.) 이렇게 학습을 마친 모델에게 학습했을 당시의 input과 같은 형태의 input vector를 주면 모델을 거쳐 Yes나 No를 판별하게 될 것입니다. 이 과정을 test 혹은 inference라고 합니다.
결국 machine learning이라고 하는 것은 이러한 데이터를 기반으로 training input data와 대응하는 target output 사이의 관계(함수)를 찾아내는 것(function approximation)을 말합니다. 이 함수를 target function이라고 하죠. 이 때의 row에 해당하는 vector $X$를 instance라고 하고, instance에서 sky, temp 등을 feature, enjoyspt를 label이라고 말합니다. 가끔 데이터 전처리를 할 때 labeling하는게 보통 일이 아니라는 얘기를 들어본 적 있으실수도 있는데, 이러한 input마다 적절한 label을 붙여주는 것을 labeling이라고 합니다. 지금의 경우 첫 번째 줄에는 Yes를 붙여줬고, 세 번째 줄에는 No를 붙여준 것이죠. 다음으로 이러한 Table, 즉, instance의 모임을 training dataset $D$라고 부릅니다. 그리고 training dataset을 보고 input과 output 사이의 관계를 어렴풋이 짐작해볼 수도 있을텐데요. 예를 들어 $$ \mathbf{h}_i:\text{ <Sunny, Warm, ?, ?, ?, Same> }\Rightarrow\text{ Yes } $$ 라고 한다면, 이 때의 $\mathbf{h}_i$를 hypotheses $H$라고 합니다.
Instance와 hypotheses간의 관계를 나타낸 그림이 있습니다.
$ [\mathbf{h}_1:\text{ <Sunny, ?, ?, ?, Warm, ?> }\Rightarrow\text{ Yes }] $은 $\mathbf{x}_1$, $\mathbf{x}_2$, $\mathbf{x}_3$에 모두 해당하므로 그림에서는 이 셋을 모두 포함하는 원으로 표현되었습니다. 나머지 hypotheses도 비슷하게 표현되었죠. 만약에 instance vector가 이 셋만 주어졌다면, 이 모델은 아마도 $\mathbf{h}_1$을 만족하면 Yes, 그렇지 않으면 No를 주는 함수를 찾아낼 것입니다. 만약에 $\mathbf{h}_1$의 결과가 의도되지 않은 것이라면, 이를 충분히 표현해 줄 수 있는 data가 부족했거나, 혹은 data의 전처리를 하는 과정에서 오류가 있거나, 모델의 성능이 부족하여 주어진 data로부터 해당하는 hypothesis를 찾아내는 과정을 제대로 해내지 못했을 수도 있을 것입니다.
다음 포스팅에서 이어서 얘기해보도록 하겠습니다.
'AI > 인공지능 및 기계학습 개론' 카테고리의 다른 글
[인공지능 및 기계학습 개론] 2.3. Introduction to Decision Tree (0) | 2022.08.16 |
---|---|
[인공지능 및 기계학습 개론] 2.2 Introduction to Rule Based Algorithm (0) | 2022.08.15 |
[인공지능 및 기계학습 개론] 1.4 Probability and Distribution (0) | 2022.08.13 |
[인공지능 및 기계학습 개론] 1.3 MAP (0) | 2022.08.12 |
[인공지능 및 기계학습 개론] 1.2 MLE (0) | 2022.08.12 |