- 기계학습(ML; Machine Learning)이란 무엇인가?
- 일종의 소프트웨어(프로그램)로 명시적인 프로그램(explicit program)이다.
- 명시적인 프로그래밍(explicit programming)이란
- 개발자가 이런 환경에서는 이렇게 반응하고, 저런 환경에서는 저렇게 반응하도록 만드는 것
- 명시적인 프로그래밍의 한계
- 어떤 부분에서는 명시적으로, 정확하게 프로그래밍하기가 어려운 경우가 있다.
- 스팸 필터 : 규칙이 너무나 많아 개발자들이 규칙을 적용하는 것이 어렵다.
- 자율 주행 : 주행하기에 너무나 많은 규칙을 따라야 하는데 이를 구현하는 것이 어렵다
- Arthur Samuel의 정의(1959)
- 규칙을 일일이 프로그래밍하지 말고, 어떤 자료에서 혹은 어떤 현상에서 자동적으로 배우면 어떨까?하는 생각을 함
- "Field of study that gives computers the ability to learn without being explicitly programmed"
- 기계학습은 프로그램으로서, 개발자가 일일이 어떻게 하는지 정의하지 않고, 이 프로그램 자체가 어떤 데이터를 보고 학습하여, 학습에서 무언가를 배우는 영역을 갖는 프로그램
- 학습(Learning)이란 무엇인가?
- 기계학습 프로그램은 학습을 해야하기 때문에 학습에 필요한 데이터를 제공해야 한다.
- 학습 방벙에 따라 다음 2가지로 분류한다.
- 지도 학습(Supervised* Learning): *supervised : 감독하에
- 미리 표시가 되어 정해져 있는 데이터(labeled data)를 가지고 학습하는 것
- labeled data를 training set이라고 함
- training set의 예
- 고양이의 그림을 주면서 고양이라고 학습을 시킴
- 기계학습의 가장 일반적인 문제
- image labeling : 표시된 이미지를 통한 학습
- 이메일 스팸 필터 : 스팸인지 아닌지 표시된 이메일을 통한 학습
- 시험성적 예측 : 이전에 시험을 본 사람들이 공부하는데 소요된 시간과 점수를 통한 학습
- Training data set
- 어떤 기계학습 프로그램에 표시된 데이터로 학습을 시키면 어떤 모델이 만들어진다. 이 때 표시된 데이터를 training data set이라고 한다.
- Training data set으로 만들어진 기계학습 모델을 통해 모르는 값에 대한 결과값을 알아낼 수 있다.
AlphaGo도 기보를 training data set으로 학습한 기계학습 프로그램
- 지도 학습는 결과에 따라 분류를 할 수 있다.
- 회귀(regression) : 공부한 시간에 따른 시험 점수 예측
- 다음과 같은 데이터로 학습시킨 다음에 7시간 정도 공부했을 때 몇 점이나 받을까?
x(공부한 시간) |
y(시험 점수) |
10 |
90 |
9 |
80 |
3 |
50 |
2 |
30 |
- 이진 분류(binary classification) : 공부한 시간에 따른 시험 점수를 통과와 실패 두 종류로 분류
- 다중 분류(multi-label classification) : 공부한 시간에 따른 시험 점수를 등급(A, B, C, E, F)으로 분류
- 비지도 학습(Unsupervised Learning)
- 어떤 데이터의 경우에는 우리가 일일이 표시(labeling)할 수가 없다.
- 자동적으로 유사한 뉴스를 모으는 Google news grouping
- 단어들 간에 비슷한 단어를 모는 기계학습 프로그램의 경우에는 데이터를 보고 스스로 학습을 해야 한다
'모두를 위한 머신러닝' 카테고리의 다른 글
Lesson 3 연습 : Multi-variable Linear Regression (1) | 2017.04.16 |
---|---|
Lesson 3 : Multi-variable Linear Regression (0) | 2017.04.16 |
Lesson 2 연습 : Linear Regression의 Hypothesis와 cost의 개념 (0) | 2017.04.11 |
Lesson 2 : Linear Regression의 Hypothesis와 cost의 개념 (0) | 2017.04.10 |
Lesson 1 연습 : TensorFlow의 개념 (0) | 2017.04.03 |