머신러닝 & 딥러닝 #1_4 Gradient Descent

2020. 1. 1. 21:05필요/AIOT

안녕하세요. 드디어 5일간 교육을 마쳤습니다.

시간적 여유가 생겼기에 계속해 교육내용을 간단히 정리하겠습니다.

 

 

저번 시간에 Machine Learning의 Machine은 Function이라고 했습니다.

y = w*x + b 의 함수는 input(x)에 대한 output(y)을 예측한다는 뜻입니다.

예측값은 y_hat, 실제 값은 y로 나타내겠습니다. 그렇다면 y - y_hat = error(오차)입니다.

ㅣ y - y_hat ㅣ = error

이렇게 실제값과 예측값의 차이를 비교하는 지표가 여럿 있습니다.

Loss Function은 L(y, y_hat) = (y - y_hat)^2입니다.  제곱을 시켜주는 이유는 부호 문제, 후술 할 Gradien Descent에서의 미분가능성 문제를 해결할 수 있어서입니다.

실제 사용하는 지표는 Cost Function으로 Loss Function의 평균입니다.

Cost Function = mean(L(y, y_hat)) = mean( (y - y_hat)^2)입니다.

 

Cost Function에서의 값을 MSE(Mean Squred Error)라고 합니다.

MSE를 최소로 하는 Parameter(w, b)를 찾는 것이 목적입니다.

 

* J(θ) = J(w,b) 입니다.

위 그래프에서 O의 위치를 보면 MSE가 높습니다. w, b의 값을 조절하며 MSE를 낮춰야 합니다.

그러기 위해서 Gradient(경사) Descent(하강)을 해야 합니다.

 

Gradient Descent(경사 하강법)

경사하강법

w, b를 기준으로 각각 편미분을 합니다.

전체 미분 값은 기울기가 0이 될 때까지 0이 되지 않으므로 θ를 최적의 w, b 위치로 수렴시킬 수 있습니다.

Υ은 Learning Rate or Step Size로 우리가 임의로 설정하는 값입니다.

이러한 사용자 설정 값을 Hyper Parameter라고 부릅니다. 위 그래프의 경우 Υ을 너무 크게 설정하면 그래프가 분산해버리고, Υ을 너무 작게 설정하면 경사 하강이 덜 이루어집니다.

Hyper Parameter를 적절하게 설정해야 올바른 Gradient Descent가 이뤄집니다.

 

다음 시간엔 Google Colaboratory를 이용한 실습을 하겠습니다.

새해 복 많이 받으세요.