Ordinary day

Andrew Ng 머신러닝 기초 강의 - Linear Regression with one variable(1) 본문

Study/ML 이론

Andrew Ng 머신러닝 기초 강의 - Linear Regression with one variable(1)

minung14 2017. 1. 16. 22:12

1. Model representation

  • supervised learning: 데이터에서 각 예시에 대해 적절한 답이 주어짐.
    • Regression: 실제 출력값(real-valued output) 예측
    • Classification: 이산값(discreate-valued output) 예측

예를 들어 집값 data에서 data set 개수를 m, 집 크기를 x, 집 값을 y로 둔다고 해보자. 

m=training data 개수, x=input(value/feature), y=output(value/feature value) 라고 할 수 있다. 


(x, y) = 어떤 데이터 set의 한 예시라고 한다면,
(xi, yi) = i번째 데이터 라고 할 수 있다.(지수 표시가 아님!)


집 크기(x) 집 값(y)
2104 460
1416 232
1534 315

라고 데이터가 주어져 있을 때, x1 = 2104, y1= 460 이다.


 
여기에서 training set은 집값 data가 될 것이고, 이 데이터를 학습 알고리즘에 사용할 것이다.
이때, h는 가설인데, 이 가설은 어떤 집 크기가 x일 때, 그 집의 가격이 얼마일까를 도출하는 것이다. 


그렇다면 h는 어떻게 표현할까?
h(x) = θ0 + θ1x 로 표현할 수 있다.
이처럼 x 가 하나인 것을 Linear Regression with one variable 혹은 Univariate linear regression 이라고 한다.

2. Cost function

가설: h(x) = θ0 + θ1x
θi 를 파라미터라고 하는데, 이 값은 어떻게 결정할 수 있을까?


 
이처럼 파라미터의 값에 따라 h(x)가 변하게 된다.
그럼 어떻게 해야 가장 적절한 파라미터를 결정할 수 있을까?
이것은 예측한 h(x)값과 실제 y값의 차이를 가장 최소화하는 파라미터를 찾으면 된다!


위 그림과 같이 정의된 공식을 최소화하는 파라미터를 찾으면 되고, 이러한 함수를 cost function 이라고 한다.
이때, 1/m을 곱하는 이유는 평균값을 결정하기 위해 곱해준 값이며, 1/2를 곱한 이유는 계산을 좀 더 쉽게 만들기 위해서이다.

(사실 1/2는 상수이므로 상수를 곱한다고 해서 결과값이 달라지지는 않으므로 상관없다)

3. Cost function intuition(1)

앞에서 배운 것들을 정리하면 아래 그림과 같다.


우리의 목표는 cost function을 최소화하는 파라미터를 찾는 것이다.

h(x) = θ0 + θ1x 이지만, 식을 간단히 하기 위해 θ0는 0이라고 가정하자.
결국 h(x) = θ1x 이고, θ1 값을 바꿔가면서 cost function의 값을 계산해보자.

만약 주어진 data set이 아래의 표와 같다고 가정하고,

x y
1 1
2 2
3 3

  • θ1=1 이라고 한다면?
    1/6(0+0+0) = 0 이므로 J(1)=0 이 된다. 
  • θ1=0.5 일 경우는?
    1/6(0.52+12+1.52) = 3.5/6 이므로 J(0.5)= 약 0.58 이 된다. 
  • θ1=0 일 경우는?
    1/6(12+22+32) = 14/6 이므로 J(0)= 약 2.3 이 된다.


이런 식으로 θ1에 대해 cost function 값을 구해가면서 그래프로 나타낸다면 아래와 같은 그래프가 나올 것이다.


이때 cost function이 최소값이 되는 θ1의 값은 1이다!
이런 방식으로 파라미터 값을 찾아 나가면 된다.

4. Cost function intuition(2)

앞에서는 식을 간단히 하기위해 θ0=0 으로 뒀지만,
θ0 과 θ1 두 개의 파라미터 값을 찾고자 한다면 cost function은 3차원 그래프로 그려지게 된다.

  • x = θ1 
  • z = θ0  
  • y = J(θ01


마찬가지로 앞서 본것과 동일하게 y값 즉, cost function이 최소값이 되는 부분의 θi 를 찾으면 된다.

위의 3차원 그래프를 평면에서 나타낸다면 아래와 같은 그래프가 나온다.

 
같은 색으로 연결된 값들은 J(θ01) 이 동일하지만, θ0과 θ1의 값이 다르므로 다른 좌표상에서 그려지게 된다. 


  • θ0=800, θ1=-0.15 라고 가정할 때, h(x)는 아래와 같이 그려질 것이다.


  • θ0=360, θ1=0 라고 가정할 때, h(x)는 아래와 같이 그려질 것이다.


위의 두 그래프를 비교해 봤을 때, θ0=360, θ1=0 가 실제 y값과 좀 더 유사하게 그래프가 그려지는 것을 볼 수 있다.

Comments