머신러닝(Machine Learning)
1. 사용자가 사용하는 앱에 입력을 하게 되면, 입력의 기반으로 데이터를 읽어서 보여주는 것. explicit programming로 불림.
2. 어떤 부분에서는 explicit programming 으로 개발하기 어려움.
(스팸 메일을 구별) 룰이 많기 때문에 어려움.
3. 로직을 가지고 프로그래밍을 할 수 있지만 규칙이 너무 어려움.
Arthur samuel(1959)
일일히 프로그래밍하지말고 어떤 자료, 현상으로 자동으로 배우면 어떨까?머신 러닝을 할 때 프로그램은 학습을 해야 한다.
학습하는 방법에 따라서 2개로 분류
Supervised learning
정해져 있는 (레이블 되어있는) 데이터, training set
예) 사람들이 고양이 그림을 먼저 주면서 (레이블이 달려있는) 학습을 합니다.
Unsupervised learning
구글 뉴스가 있는데 자동적으로 유사한 것들을 그룹핑 합니다. 레이블하지 않고 학습을 합게 됩니다.
비슷한 단어들도 모으라는 머신러닝이 있다면, 레이블을 직접 만들어 주는 것이 아니라 데이터를 보고 스스로 학습하는 것입니다.
x | y |
---|---|
3, 6, 9 | 3 |
2, 5, 9 | 2 |
2, 3, 5 | 1 |
이런 데이터의 레이블을 가지고 학습을 합니다. 학습을 통해 생성된 모델을 가지고
Test x의 값이 [9, 3, 6]을 모델에 넣으면 3 이라는 y값을 얻을 수 있습니다.
regression
x(hours) | y(score) |
---|---|
10 | 90 |
9 | 80 |
3 | 50 |
2 | 30 |
binary classification
x(hours) | y(pass/fail) |
---|---|
10 | P |
9 | P |
3 | F |
2 | F |
multi-label classification
x(hours) | y(grade) |
---|---|
10 | A |
9 | B |
3 | B |
2 | C |