####################################################################
##    _______   ___   .______    __    __   _______ .______       ##
##   /  _____| / _ \  |   _  \  |  |  |  | |   ____||   _  \      ##
##  |  |  __  | | | | |  |_)  | |  |__|  | |  |__   |  |_)  |     ##
##  |  | |_ | | | | | |   ___/  |   __   | |   __|  |      /      ##
##  |  |__| | | |_| | |  |      |  |  |  | |  |____ |  |\  \----. ##
##   \______|  \___/  | _|      |__|  |__| |_______|| _| `._____| ##
##                                                                ##
####################################################################
###########################################
##          ___        _                 ##
##         / _ \      | |                ##
##    __ _| | | |_ __ | |__   ___ _ __   ##
##   / _` | | | | '_ \| '_ \ / _ \ '__|  ##
##  | (_| | |_| | |_) | | | |  __/ |     ##
##   \__, |\___/| .__/|_| |_|\___|_|     ##
##    __/ |     | |                      ##
##   |___/      |_|                      ##
##                                       ##
###########################################

[-] g0pher's Deep Learning

Machine Learning?

개발자가 과정을 직접 정해주지 않고 데이터들을 통해 스스로 학습하도록 하는 방법이다.

  1. Supervised Learning
    Dataset이 정해져있는 데이터로 학습하는것을 말한다. 이것은 A야 와 같이 해당 데이터가 무엇인지 명확하게 분류를 알려준다.
    ex) 이미지 판독, 스팸메일 필터링, 학점 예측 등
  2. Unsupervised Learning
    Dataset이 정해져있지 않은 데이터로 학습하는것을 말한다. 단순히 데이터를 보고 스스로 분류하고 학습하는 방법이다.

Supervised Learning

결과에 따라 다음과 같은 종류로 나뉜다.

  1. Regression
    성적과 같은 데이터처럼 정확한 수치의 결과로 예측하는 것을 말한다.
  2. Binary classification
    Pass / non-pass와 같이 둘중 하나를 택하는 방식이다.
  3. Multi-label classification
    학년과 같이 여러 분류가 있고, 이를 택하는 방식이다.

Regression

Linear Hypothesis(선형가설)

다음과 같은 데이터셋이 주어진다고 가정하자

x y
1 1
2 2
3 3

이를 그래프로 그려보면 (1,1) (2,2) (3,3) 위치에 점이 찍히고, 이어보면 하나의 직선으로 그려진다. 이러한 선형 그래프로 가설을 세우는 것을 Linear Hypothesis(선형가설)이라고 한다. 보다 정교한 가설을 찾아가는 것이 학습이다.

선형가설은 H(x) = Wx + b 와 같은 일차방정식으로 간단하게 나타낼 수 있다. 가능한 선은 여러가지가 있겠지만 데이터 셋을 학습하며 가장 근사한 선을 찾아낼 수 있다.

Cost function

우리가 세운 가설이 H(x) = Wx + b 라고 했을 때, 예측한 결과와 실제 결과가 차이가 날 때, 이러한 오차를 표현하는 방법이 Cost Function이다. cost(W,b)로 나타내며, 우리가 세운 가설의 결과인 H(x)에서 실제 결과인 y의 차이를 구하고, 플러스와 마이너스를 무시하고자 제곱을 해서 구할 수 있다. 계산해야할 값이 한개가 아니라 여러개일 경우 평균을 이용해 구하면 된다.

Linear Regression은 이러한 cost의 값을 최소화 하는 선이 가장 정교한 선을 구하는 방법이다.