티스토리 뷰
[Parameter Learning]
1. Gradient descent(기울기 강하)
- linear regression에서 cost function J 등 여러가지 함수를 minimize하는 알고리즘으로, 머신 러닝 전역에 사용됨
- 두 parameter를 가지는 J function이 있을 때 이를 minimize한다고 하면, 일단 두 parameter가 0으로 초기화될 것을 가정함. 그리고 그 두 파라미터를 인풋으로 한 J의 아웃풋이 local minimum이 되도록 함
- 3D 그래프에서 경사를 가능한 빠르게 내려가는 방법은? 기울기가 가장 급한 곳을 greedy하게 찾아서 내려감. initial point에 따라 local minimum이 완전히 다른 곳으로 가는 특징이 있음
- Gradient descent algorithm
- 기호 := 는 assignment operator, 기호 = 는 truth assertion 따라서, a = a + 1 는 틀린 표현으로 사용하지 않음
- ⍺는 learning rate 이고, 뒤의 표현은 미분식이며, θ_0, θ_1은 동시에 업데이트 되는 것을 거의 전형적으로 사용. 동시에 업데이트 한다는 것은, 업데이트 된 value가 concurrent하게 반영되어야 하므로 주의해야 함. 동시에 업데이트 되지 않을 경우 gradient descent가 아닌 완전 다른 알고리즘이 됨
2. Gradient descent algorithm
- 하나의 parameter를 가진 cost function J를 생각해보자, J(θ_1) 에서 θ_1은 실수이다.
- 1개 변수를 가진 J에 대한 미분을 본래 편미분 기호로 쓰지 않고 미분기호(d : derivative)로 쓴 것은 function J의 parameter 개수에 달려있는데 같은 것으로 생각하고 넘어감
- 1개 변수를 가진 J는 그래프로 2차 함수와 같은 곡선을 갖는데 이때, 이 함수에 대한 미분은 θ_1 지점에서의 tangent(접선) 이다.
- 만약 접선의 기울기가 양수라면, learning rate ⍺는 항상 양수이므로, θ_1에서 해당 값들을 뺀 값으로 convergence하게 됨
- 음수라면 θ_1 값에 learning rate x 기울기 값을 더한 보다 큰 값으로 convergence하게 됨. minimum으로 향하게 됨
- learning rate가 너무 작다면, 아기 걸음마하듯 아주 조금씩 내려가므로 convergence speed가 느리게 됨 반대로 너무 크다면, overshoot되어, 커지면서 convergence되어야 하는 값이 오히려 작아져서 성능을 저해하거나 convergence하지 못하고 심하면 발산(diverge)하게 됨
- convergence 한다는 것은 결국 기울기 값이 0이 되어서, θ_1가 변하지 않는 값인 local optimum이 되는 것임
- 접선의 기울기는 convergence하면서 줄어들게 되므로, 진행되면서 local optimum에 가까워질수록 small step으로 접근하게 됨. 따라서, 우리가 ⍺(learning rate)를 맞게 조정해주거나 시간을 줄이거나 할 필요없음. 즉, ⍺가 fix된 상황에서도 점점 small step으로 convergence한다는 것임
3. Gradient Descent For Linear Regression
- 다변수 미분을 통해 2개의 parameter를 갖는 cost function J를 표현하면 다음의 식과 같음(Linear regression algorithm)
- 전형적으로 이러한 2개 변수 cost function은 전형적으로 bowl형태의 convex function을 갖게 되는데, 이 convex function의 특징은 단 하나의 global optimum을 갖는다는 것임. 따라서, linear regression을 쓰면 항상 global optimum으로 convergence하게 됨. 즉, global optimum 외에 다른 local optimum은 없음
- linear regression으로 표현되는 2차원 타원들에서 optimum으로 갈 때 linear regression이 fit하게 들어맞는 방향으로 convergence되는 것을 확인함
- "Batch" gradient descent하는 것은 각 gradient descent를 적용하는 step이 모든 training example을 사용할 때 "Batch"를 붙임
- gradient descent는 여러가지 절차와 iterative한 특징이 있지만, 앞으로 배울 다른 알고리즘들은 그렇지 않은 것도 많음
틀리거나 모르는 문제 - 2번
'공부 > 머신러닝' 카테고리의 다른 글
[Coursera]Machine Learning - Week3 (0) | 2016.08.21 |
---|---|
[Coursera]Machine Learning - Week2 (0) | 2016.08.21 |
[Coursera]Machine Learning - Week1 - (3) (0) | 2016.08.06 |
[Coursera]Machine Learning - Week1 - (1) (0) | 2016.08.05 |
- Total
- Today
- Yesterday
- 나의 존재 화이팅
- 도커
- 데이터과학
- 커널
- 코딩 호러
- 뭣이중헌디
- 예쁜 마음
- 영월행 일기
- 텐서플로우
- 데이터과학자
- 앤드류 응
- caffe
- ADP
- 딥러닝
- 프레젠테이션 문제 해결법
- linear regression
- Linear algebra
- vanashing gradient problem
- tensorflow
- Quora
- 암살 교실
- Andrew Ng
- 만성양꼬치
- 머신러닝
- ADsP
- 나는한번읽은책은절대잊어버리지않는다
- machine learning
- 아웃풋
- logistic regression
- 트러블 슈팅
일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
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 |