티스토리 뷰


[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번






댓글