본문 바로가기
언어/Python

[Machine Learning] 텐서플로우 딥러닝 - 1. 기본적인 Machine Learning 의 용어와 개념 설명 (edwith)

by 민-Zero 2020. 4. 6.
edwith[부스트코스] 텐서플로우로 시작하는 딥러닝기초 강의를 통해 공부한 내용을 요약˙정리한것입니다.  

머신러닝(ML)은 일종의 소프트웨어이다. 

등장 배경

explicit programming의 한계를 극복하기 위해 등장했다. 예를 들어 Spam filter, Automatic driving 등의 프로그램들은 많은 rule을 요구하는데 이 rule들을 전부 프로그래밍 하기에는 한계점이 있고 이 한계를 극복하기 위해 등장했다. 

 

Arthur Samuel (1959) - "기계가 일일이 코드로 명시하지 않은 동작을 데이터로부터 학습하여 실행할 수 있도록 하는 알고리즘을 개발하는 연구 분야"

모든 경우를 프로그래밍하지 않고 어떤 자료나 현상에서 자동적으로 배우자라는 취지로 발생, 프로그램인데 개발자가 하나하나 어떻게 할지 정하지 않고 프로그램 자체가 어떤 데이터를 보고 학습해서 배우는 능력을 가지는 프로그램을 머신러닝이라고 한다.

 

지도학습(Supervised learning) / 비지도학습(supervised learning)

학습 방법에 따라 Supervised learning, Unsupervised learning이 나뉜다.
Supervised learning : 어떤 하나의 정해져 있는 데이터(레이블이 정해져 있는-training set)를 학습하고 결과를 도출 
예를 들어 이미지를 보고 고양이인지 강아지인지 레이블이 달려있는 이미지를 가지고 학습한 뒤 이미지를 입력받으면 강아지인지 고양이인지를 구분하는 프로그램
image labeling, email spam filter, predicting exam score 등이 예시로 있다.

Unsupervised learning: 구글 뉴스 grouping, word clustering 등 레이블을 직접 정하기 어렵고 데이터를 통해 스스로 학습하는 것

training set

X Y
3, 6, 9 3
2, 5, 7 2
2, 3, 5 1

데이터 : X, 정해진 답 : Y(label)를 가지고 학습하여 모델을 생성한다.
모르는 데이터 X[9, 3, 6]이 들어온다면 학습한 프로그램이 Y=3이라고 알려준다. 이때 가지고 있는 X, Y를 training set이라고 한다.

Type of Supervised learning

입력값(X)에 따라 결과값(Y)가 나오는 건 같다. 하지만 경우에 따라 표현하는 방법이 나뉜다.

명확한 구분이 있다면 classification(이때 class는 평등해야한다 ex. 혈액형) 
실수 형태의 값을 예측 regression

 

좀 더 예시를 통해 세분화해보면 

 

① 시험의 성적(0~100)을 공부한 시간에 따라 예측하는 시스템 - regression

X(hours) Y(score)
10 90
9 80
3 50
2 30

ML 모델은 Regression모델이 된다. X=7 이면 점수가 얼마가 나와? Y=75 이렇게 예측한다.


② 입력 받은 사진이 고양이인지 Yes or No로 판단 - binary classification

X(Picture) Y(result)
사진1 Yes
사진2 No
사진3 Yes

True or False로 구분되는 경우이다.

 

③ 입력으로 과일 하나만 찍힌 사진에서 어떤 과일이 있는지 판단 - multiclass classification

X(Picture) Y1(사과) Y2(딸기) Y3(바나나)
사진1 1 0 0
사진2 0 0 1
사진3 0 1 0

binary와 비슷하나 True or False가 아니라 여러 class 중 어떤 class에 속하는지 그리고 반드시 한 가지의 class에만 속한다.


④ 입력으로 소설의 제목을 입력받고 장르를 판단 - multilabel classification

X(Novel) Y1(판타지) Y2(코믹) Y3(액션)
소설1 1 1 1
소설2 0 1 0
소설3 1 0 1

class가 아니라 label은 multi-class와 다르게, 다양한 class에 속하여 여러 label을 가지는 경우이다.

댓글