1. Introduction


What is Machine Learning ?


Arthur Samuel이 정의한 Machine Learning 이란 ?

"the field of study that gives computers the ability to learn without being explicitly programmed."


Mitchel은 좀더 현대적 개념으로 정의 했다.

"A computer program is said to learn from experience E with respect to some class of tasks T and performance measure P, if its performance at tasks in T, as measured by P, improve with experience E."


예: playing checkers


E = the experience of playing many games of checkers

T = the task of playing checkers

P = the probability that the program will win the next game.



Supervised Learning


입력에 대한 정확한 출력을 아는 여러 데이터가 존재 한다.

이러한 입력과 출력의 관계속에서 그것을 규정하는 함수 F를 찾는것이다.


supervised learning은 크게 2가지 그룹으로 규정되는데, 첫번째는 "regression"이고 두 번째는 "classification"이다.


Regression의 경우 연속적인 출력에서 어떠한 결과를 예측 할 때 사용 한다. 따라서 규정되는 함수 F는 연속함수 이다.


Classification의 경우 이산출력 (discrete output)을 예측하는 것을 말한다. 이것은 불연속적인 특정 카테고리를 예측하는 함수 F로 규정 된다.


예: 크기에 따른 집값 예측

크기와 집 가격의 관계는 연속적이다. 이러한 문제는 연속적인 출력을 나타내므로 regression이라고 할 수 있다.


예: 요구되는 가격보다 집을 높은 가격에 팔지 아니면 낮은 가격에 팔지에 대한 문제

두 가지 결정에대해서 구분하는 것이므로 classification 문제이다.


Unsupervised Learning


해당 방법은 예측에 대한 어떠한 피드백도 없다. 즉 데이터에 애초에 정확한 출력값이 존재하지 않는 상황이다.

따라서 Clustering을 통해서 데이터들간의 특징을 파악하는 것이다.


Clustering과 Associative에 대해서 각각 예는 아래와 같다.


Clustering: 미국 경제에 관한 1000개의 에세이가 있다고 하자. 이러한 에세이를 여러 기준으로 그룹화 할 수 있다.

즉, 단어의 빈도, 문장의 길이, 페이지 양 등과 같은 것들이다.


Associative: 환자의 특징과 질병과의 관계 같은 것이 예이다. 즉 환자의 증상, 가족 병력, 물리적 신체 특성, mental outlook.

이런 정보들의 관계를 분석해서 어떠한 환자 특성과 질병간의 mapping function을 고안 할 수 있다.



2. Linear Regression with One Variable


Model Representation


Linear regression with one variable is known as "univariate linear regression."

univariate는 하나의 입력으로 하나의 출력을 예측하고 싶을때 사용 한다.


The hypothesis Function


일반적인 hypothesis function의 모습은:


$h_{ \theta  }(x)=\theta_0+\theta_xx$


이다.

위 hypothesis 함수는 결국 x라는 입력에 대해서 가장 신뢰할만한 y를 생성하는 함수인 것이다.

이러한 출력값은 $\theta_0$와 $\theta_1$에 의해서 결정 된다.


어떻게 생성하는지 알아보자.


예:


그냥 대충 만들면 $h_\theta$ 함수는: $h_\theta(x)=2+2x$ 라고 하자.

이러면, 입력 1에 대해서 해당 hypothesis 함수를 이용해서 y를 예측하면 4가 되고 이것은 3만큼 오차를 가지는 것을 알 수 있다.

이러한 오차가 가장 적은 hypothesis를 찾아내는 것이 핵심이다.



Cost Function


생성한 hypothesis 함수의 정확도를 측정하기 위한 함수 이다.

hypothesis에 의해서 만들어진 결과와 실제 결과값 같은 차이에 대한 평균으로 보통 많이 잡는다.


$J(\theta_0,\theta_1)=\frac {1}{2m} \sum _{i=1}^{m}{(h_\theta(x^{(i)})-y^{(i)})^2  }$


위와 같은 함수를 보통 "Squared error function" 또는 Mean squared error 라고 한다.


제곱과 $\frac{1}{2m} $하는 이유는 미분을 통한 하강 기울기(gradient descent) 계산을 쉽게 하기 위함이다.



Gradient Descent


cost function을 통해서 생성한 hypothesis 함수의 정확도를 평가할 수 있게 됬다.

이제는 이러한 hypothesis 함수를 자동으로 개선하는 방법을 익혀야 한다.


가장 대표적인 함수 최적화 방법으로 gradient descent 방법이 존재 한다. 이것은 local minimum을 찾아내는 방법이다.

이때 최적화는 learning rate라고 불리우는 $\alpha$에 의해서 이뤄진다.


기본적인 수식은 아래와 같다.


$\theta _{ j }:=\theta _{ j }-\alpha \frac { \partial  }{\partial\theta_j  } {J(\theta_0,\theta_1)}$


이것을 직관적으로 이해하면 다음과 같다.


$\theta _{ j }:=\theta _{ j }-\alpha$[slope of tangent aka derivative]






+ Recent posts