일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | 3 | 4 | 5 | 6 | 7 |
8 | 9 | 10 | 11 | 12 | 13 | 14 |
15 | 16 | 17 | 18 | 19 | 20 | 21 |
22 | 23 | 24 | 25 | 26 | 27 | 28 |
29 | 30 | 31 |
- Spring Batch
- Git
- it
- 요리
- ubuntu
- ReactJS
- Oracle
- jenkins
- redis
- javascript
- jsp
- Web Server
- devops
- Spring Boot
- springboot
- Gradle
- IntelliJ
- elasticsearch
- java
- php
- Design Patterns
- JVM
- tool
- laravel
- MySQL
- Spring
- db
- 맛집
- AWS
- linux
- Today
- Total
아무거나
머신러닝이란 본문
머신 러닝 ML(Machine Learning)이란? 쉽게 말하면 어떤 로직을 가지고 프로그래밍을 하려면 그에 따른 조건들이 무수히 많을 경우가 있다. 그래서 어떤 자료에서 또는 어떤 현상에서 프로그램이 알아서 학습하게 만들자는 생각에 나오게 된 것이 머신 러닝이다.
즉, 프로그램 자체가 어떤 데이터를 보고 학습해서 뭔가 배우는 영역을 갖는 프로그램을 머신러닝이라 한다.
머신 러닝은 학습하는 방식에 따라서 Supervised / Unsupervised 2가지로 구분된다.
1. Supervised Learning (지도학습)
어떤 하나의 정해져 있는 데이터를 가지고 학습을 하는 것
ex) 만약 어떤 이미지가 주어지면 그 이미지가 고양이일까 개일까 이런 것을 알아보는 프로그램은 머신 러닝으로 만들어졌다.
이와 같은 학습 과정은 만약 고양이 이미지를 찾으려고 하면 각 이미지의 레이블이 고양이로 달려있는 이미지만을 가지고 학습한다.
즉, 이미지 레이블이 달려있는 자료를 가지고 학습을 하기 때문에 지도학습(Supervised Learning)이라고 한다.
Supervised Learning을 이용한 방법을 좀 더 쉽게 이해하고자 종류를 말하면 이러하다.
- Image Labeling : 위의 예처럼 이미지 레이블링을 하여 학습하는 방법
- Email spam filter : 이메일에 대해 스팸 또는 스팸이 아닌 것에 대한 레이블을 달고 학습한다.
- Predicting exam score : 어떤 사람이 시험을 보는데 이전에 시험 봤던 데이터를 기반으로 이 사람이 이번 시험에 얼마나 점수를 받는지 예측
2. Unsupervised Learning
만약 위의 Supervised Learning과 달리 우리가 일일이 레이블을 줄 수 없는 경우가 있다. 예를 들어 어떤 뉴스 사이트가 있는데
이 뉴스들은 자동적으로 유사한 뉴스들을 그룹핑을 한다.
이런 경우에 미리 레이블이 다 정해지기 어렵다. 그리고 비슷한 단어들을 모으는 경우 이것은 레이블을 직접 만들어 주는 것이 아니라
데이터를 보고 스스로 학습하기 때문에 이것은 Unsupervised Learning이라 한다.
[Training data set]
Training data set이란 말그대로 훈련 데이터들이 보관되어 있는 장소이다.
예를 들어 구글에서 선보였던 알파고는 Supervised Learning을 사용한 방법이다.
Training data set은 기보(=바둑의 첫 수부터 마지막 수까지의 기록)가 될 것이고. 해당 기보를 알파고가
학습하게 될 것이다. 그러면 대전하는 상대방이 바둑판에 수를 놓을 때 학습한 기보를 바탕으로 다음 수를 계산하여
바둑돌의 위치값을 알려주는 방식으로 되어있는걸 유추할 수 있다.
[Types of supervised learning - 학습유형]
1. Predicting final exam score based on time spent (소요 시간을 기준으로 최종 시험 점수 예측)
- regression(회귀)라고 한다. 즉, 시험 점수는 0 ~ 100 점대로 다양하다. 이러한 것들은 영역이 넓기 때문에
이런 유형의 예측을 하는 것을 regression라고 한다.
X(hours) |
Y(score) |
10 |
90 |
9 |
80 |
3 |
20 |
2. Pass/non-pass based on time spent (소요 시간을 기준으로 패스 또는 패스가 아닌 것을 예측)
- regression 방법 말고 좀 더 단순화시켜서 Pass 또는 non-pass에 대해서만 2가지로 나누어 볼 경우에 예측을 한다.
이런 경우에는 2개 중에 하나를 고르는 것이기 때문에 즉, binary classification 라고 한다.
X(hours) | Y(pass/fail) |
10 | P |
9 | P |
3 | F |
3. Letter grade (A, B, C, E and F) based on time spent (소요 시간을 기준으로 (A, B, C, D, F) 등급을 예측)
- regression과 binary classification 과는 다르게 보면 이번에는 등급을 매기려고 한다.
등급은 A, B, C, E and F가 있고 시간에 따라 어떤 등급을 받을지 예측해주는 시스템을 만들 텐데
이런 경우에는 A냐 B냐 C냐 D냐 F냐 그중에 하나를 고르는 거기 때문에 classification이며 여러개의 label이 있으므로
이것을 multi-label classification 라고 한다.
X(hours) | Y(score) |
10 | A |
9 | B |
3 | C |
* 끝으로 Supervised Learning을 다룰 때는 위의 regression, binary classification, multi-label classification의 유형으로 나누어지며 이런 용어가 있다는 것을 알아두자.
'AI or APP > Tensorflow' 카테고리의 다른 글
multi-variable linear regression (0) | 2019.12.01 |
---|---|
cost 최소화 알고리즘 설명 (0) | 2018.07.15 |
Linear Regression (0) | 2018.07.04 |
TensorFlow 설치 및 사용 (6) | 2018.06.22 |