머신러닝은 왜 필요할까? 머신러닝 이전에는 우린 explicit programming이라 하여 가능한 모든 경우에 대해 대응하는 코드를 작성해서 프로그램을 개발했다. 하지만 프로그램의 요구가 더욱 고도화되면서 모든 경우를 대응하는 것이 불가능해졌다. 예를 들어 대화하는 프로그램을 만든다고 하자. 가능한 모든 발화에 대해서 대답을 정해줘야 하나? 또 이전의 대화에 따라 무한히 많아지는 대화의 경우의 수를 일일이 신경 써줘야 하나? 불가능하다. 그래서 머신러닝은 모든 규칙을 신경 쓰는 대신 수많은 데이터를 보고, 데이터들이 가지는 경향성을 분석하여 결과를 예측한다. 그리고 머신러닝에서 데이터를 보고 경향성을 파악하는 작업을 "학습"이라고 한다.
머신러닝이 학습하는 방식의 종류는 Supervised Learning과 Unsupervised Learning으로 나뉜다.
Supervised Learning은 데이터셋에 분석하고자 하는 데이터와 정답이 쌍을 이루어서 묶여 있다. 예를 들어 손으로 쓴 숫자를 분석하는데 사용하는 데이터셋인 MNIST 데이터셋은 손으로 쓴 숫자의 이미지와 그 숫자가 무엇인지가 한 쌍으로 묶여있다.
한편 Unsupervised Learning은 데이터셋에 정답이 없다. 가령 유튜브에서 추천영상을 골라주는 인공지능은 동영상이 어떤 동영상인지에 대한 정답을 모른다. 즉, Unsupervised Learning이라고 할 수 있다.
Supervised Learning은 또 어떤 데이터를 학습하느냐에 따라 분류된다.
주어진 문장은 긍정적인가 부정적인가? : regression
주어진 사진이 개인가 고양이인가? : binary classification
$n$ 시간만큼 공부하면 몇등급(A, B, C, D, F)을 맞겠는가? : multi-label classification
학습을 마친 머신러닝은 모델을 가지게 된다. 모델은 데이터가 어떤 경향성을 가지는지 설명해주는 데이터이다. 가령 다음 데이터를 가지고 학습한 머신러닝은
X | Y |
1 | 2 |
2 | 5 |
3 | 8 |
다음과 같은 모델을 가진다.
$Y=2X+2$
그리고 $X=6$일때 $Y$의 값을 예측하기 위하여 모델의 $X$자리에 6을 대입한다. 그럼 결과로 $Y=14$가 나온다.
이것이 인공지능이 주어진 데이터를 가지고 주어지지 않은 결과를 예측한 것이다.
'이것저것 > AI' 카테고리의 다른 글
Softmax Regression Classification (0) | 2022.03.09 |
---|---|
로지스틱 회귀를 사용한 분류(Logistic regression classification) (0) | 2022.01.16 |
선형회귀(Linear Regression) (0) | 2021.12.29 |