일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | 3 | ||||
4 | 5 | 6 | 7 | 8 | 9 | 10 |
11 | 12 | 13 | 14 | 15 | 16 | 17 |
18 | 19 | 20 | 21 | 22 | 23 | 24 |
25 | 26 | 27 | 28 | 29 | 30 | 31 |
- 파이썬
- Linear Regression
- 딥뉴럴넷
- cost function
- 취미
- model free
- ai
- NLP
- 리처드소처
- 파이썬과 케라스로 배우는 강화학습
- 벨만 방정식
- 양성평등
- 독서
- CS224N
- MDP
- 머신러닝
- 폴댄스
- MB
- kbpf
- 딥러닝
- 페미니즘
- 애쉬브라운
- 인공지능
- 강화학습
- tensorflow
- Gradient descent
- Richard Socher
- 행복
- 자연어처리
- 다이내믹 프로그래밍
- Today
- Total
Ordinary day
Andrew Ng 머신러닝 기초 강의 - Linear Regression with one variable(2) 본문
Andrew Ng 머신러닝 기초 강의 - Linear Regression with one variable(2)
minung14 2017. 1. 17. 12:461. 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) = θ0+θ1x
- 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 버전을 볼 수 있는데, 그 때는 데이터가 적을때이다.)
'Study > ML 이론' 카테고리의 다른 글
모두를 위한 머신러닝(RL) - Q-learning (1) | 2017.04.10 |
---|---|
Andrew Ng 머신러닝 기초 강의 - Neural Networks: Learning (0) | 2017.03.10 |
Andrew Ng 머신러닝 기초 강의 - Logistic Regression (0) | 2017.02.06 |
Andrew Ng 머신러닝 기초 강의 - Linear Regression with one variable(1) (0) | 2017.01.16 |
Andrew Ng 머신러닝 기초 강의 - Introduction (0) | 2017.01.15 |