[경사하강법과  Learning Rate]



http://silentbrain.tistory.com/10 에 이어서 이해할 것.


ML연산의 최종 목표는 최소 가중치 J(θ_1~n)을 가지는 θ값들의 조합을 찾아내는 것


θ을 어떻게 변경하면서 J값을 계산해가야만 최종적으로 최소의 J값(즉, 가중치 그래프의 가장 바닥과 가까운 곳!)에 다다를 수 있을 것인가에 대한 방법론이 바로 경사 하강법이다.


공식  θ_j := θ_j - α * J(θ)미분


해당 공식이 의미하는 바를 풀이하면, 


  • x축 θ, y축 J(θ) 그래프에서 특정 θ_j값에 α를 곱한 J(θ) 그래프 기울기(미분)를 빼면서 θ_j값을 업데이트 해나가는 것 ( := 연산자는 a = a+1 과 같은 대입 연산자로 이해하면 된다.)
  • 특정 θ_j 값에서 J(θ) 기울기(미분)이 음수면 앞에 -α(Learning rate)를 곱하므로 다음 θ_j는 커질 것이고, 그 J(θ)는 좀 더 작아질 것이다.
  • J(θ) 기울기가 양수면? -α를 곱하므로 다음 θ_j는 작아지며, 그래야만 J(θ)가 작아질 것이다.

즉, 해당 연산을 계속하면 J(θ)기울기가 0인 지점(Global 또는 Local Optima)에 다다를 수 있게 된다.





여기서 α(Learning Rate)는 얼마나 효율적으로 Optima에 다다를 수 있는 가를 좌우한다. α가 크다면 연산에 따른 다음 θ_j의 변동폭이 매우 크므로 경우에 따라 매우 신속하게 optima에 다다를 수 도 있지만 그렇지 않다면 기울기 값이 +와 -로 요동치거나 기울기 0을 향해 엉금엉금 기어가는 비효율적인 연산을 계속하게 된다.  이 Learning Rate를 어떻게 선택하느냐에 대한 방법은 나중에 정리



==>

Q. 높이가 J(θ)인 산 정상에서 어느 방향으로 내려가야 신속하게 가장 낮은 곳(Global Optima) 또는 주변에서 상대적으로 가장 낮은 곳(Local Optima)에 도달할 수 있을 것인가?


A. 경사가 아래쪽을 향하는 곳으로 지속적으로 한발 한발 내려가면 평지(기울기 값이 0인)에 도달 할수 있다.





[Feature Scaling]


취합된 데이터들(x, y, z)이 가지는 일련의 규칙 함수 z = θ_1*x +θ_2*y + θ_3 따위를 도출해내는 것( θ_1~3 값을 구하는 것)이 ML의 목표이다. 
다음 데이터를 가정해보자

(집 넓이, 방 수, 집값)  = (2000제곱미터, 3개, 4000만원)  따위의 데이터가 있다고 가정해 보자. 
 
x = 집 넓이
y =  방 수
z = 집 값

위와 같이 대입하여 θ_1~3 값들을 열심히 바꿔가면서, z를 계산하고, 이로부터 MSE 도출할 것이다. 하지만 x가 y에 비하여 상대적으로 너무 크다!!!! 
이렇게되면 x값으로 인해 θ_1은 조금만 바꿔도 z가 매우 크게 요동치며 MSE값이 의도와 다르게 휘청거린다.
의미로서 아래 원이 동일한 MSE값을 의미하는 등고선 그래프를 참고하자




즉, 방의 수를 집 넓이와 체급을 맞추기 위해 몇배 뻥튀기 하여 계산함으로써 안정이고 효율적인 경사하강법 적용이 가능해진다. 
위의 *500은 이해를 돕기위한 비약으로 실제 Feature Scaling은 -1<= x<=1로 맞추는 것을 권고하지만 이것은 절대 강제사항이 아니다! 단순히 생각하여 Feature들(데이터셋의 입력값)이 너무 크거나 작게 하지 않도록 곱이나 나누기를 해주는 것이 핵심이다. 요것이 Feature Scaling!



'Machine Learning' 카테고리의 다른 글

Normal Equation  (0) 2018.07.11
RMSE(Root Mean Square Error), 평균 제곱근 편차 계산 과정  (1) 2018.06.01