Ordinary day

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

Study/ML 이론

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

minung14 2017. 1. 17. 12:46

1. Gradient descent

이전에 cost function에 대해 학습했었다. 우리의 목표는 J(θ0, θ1)값 (이제는 이 값을 cost라고 칭하겠다)을 최소화하는 파라미터를 찾는 것이다.
3차원 cost function이 아래와 같이 그려져 있다고 할 때,

 
우리는 임의의 위치에서 시작하여 θ0과 θ1의 값을 조금씩 변경하면서 cost가 감소하는 방향으로 따라가보자.
이렇게 파라미터 값을 변경하면서 cost가 감소하는 gradient를 선택하고 이 과정을 반복한다면
해당 영역에서 최소값에 수렴할 수 있을 것이다.
(시작하는 위치에 따라 수렴하는 값이 조금씩 차이가 있을 수 있다.)

위의 표현을 수식으로 정리해보면 아래와 같이 나타낼 수 있다.

    • := 의 의미는 대입한다는 뜻 
    • α 의 값은 learning rate로, 얼마만큼 파라미터 값을 움직일 것인가를 결정하는 것이라고 생각하면 됨 
    • 미분계수에 대해서는 추후에 다시 이야기 하겠다.


이제 위 공식에 근거하여 θ0과 θ1에 대해 계산한다고 하면, 


temp0 := θ0 - α∂J(θ0, θ1)/∂θ0
temp1 := θ1 - α∂J(θ0, θ1)/∂θ1 


의 계산 후에 각각의 값을 θ0과 θ1에 대입해야 한다.
(만약 temp0의 값을 계산하고 바로 θ0에 대입한다면 temp1의 값이 바뀌게 되므로 이상한 값이 도출될 수 있으므로 주의!)

2. Gradient descent intuition

θ0=0인 cost function J(θ1)이 아래와 같이 그려져 있다고 할 때,

 
θ1=8 에서의 미분계수 ∂J(θ0, θ1)/∂θ1 값은 0보다 크다.(positive)
θ1=3 에서의 미분계수 ∂J(θ0, θ1)/∂θ1 값은 0보다 작다.(negative)




만약 α의 값이 너무 작다면 위의 그래프처럼 기울기가 감소하는게 느릴 것이고, 

반대로 α의 값이 너무 크다면 아래 그래프처럼 기울기가 0으로 수렴하지 못할 것이다.


learning rate 즉 α값을 줄이면서 local cost 값을 최소값으로 수렴시킬 수도 있다.
방법은 간단하다. local minimum에 다가갈수록 learning rate 값을 점차 줄여나가면 된다.

3. Gradient descent for linear regression

앞에서 배웠던 것들을 정리해보면 

    • gradient descent algorithm: θj:= θj - ∂J(θ0, θ1)/∂θj 
    • Hypothesis: hθ(x) = θ01
    • cost function: J(θ) = 1/2m∑(hθ(x(i))−y(i))2

따라서 아래의 공식이 성립한다. 



j=0과 j=1에 대해 나누어서 생각해본다면, 아래 식을 도출할 수 있다.




cost function이 위의 그래프처럼 그려지게 된다면, 서로 다른 local minimum 값을 가질 수 있다.

그러나 linear regression cost function은 항상 convex function 이므로, 단 하나의 최소값을 가진다.
아래 그래프가 convex function의 그래프 모습이다.



파라미터 θ0과 θ1의 값에 따라서 hθ(x)의 그래프가 변하는 것을 알 수 있다.

그리고 이런 convex function은 global minimum값에 수렴할 수 있다.


이 알고리즘의 또다른 이름은 Batch Gradient Descent 이다.
여기서 Batch는 gradient descent의 각 단계에서 모든 트레이닝 데이터를 사용하는 것이다.
다시말해, 각 단계에서 m번 트레이닝된 값을 계산하기 때문에, Batch Gradient Descent 라는 용어가 전체 트레이닝 예제의 전체 batch를 말한다고 할 수 있다.
(간혹 non batch 버전을 볼 수 있는데, 그 때는 데이터가 적을때이다.)

Comments