JLOG

[머신러닝/딥러닝 기초]Linear Regression과 Gradient descent algorithm 본문

AI/basic concepts of AI

[머신러닝/딥러닝 기초]Linear Regression과 Gradient descent algorithm

정정선선 2020. 9. 22. 08:57

!! 목표

선형적인 관계에 있는 Linear Regression(선형회귀)와기울기를 이용해 loss를 줄이고 W,b를 갱신하는 Gradient descent algorithm(경사하강법)에 대해 알아보자


 

1. Linear Regression의 Hypothesis 와 cost 설명

-Linear Regresssion

Linear Regression : 선형적인 관계에 있는 식이라 생각할 수 있다.

데이터들을 바탕으로 적절한 Linear 관련 식을 찾아, Regression 할 수 있도록 한다.

-Hypothesis : 어떤 값이 나올지 예측하는 것

H(x) = Wx+b에서 정답에 제일 부합하는 W & b를 찾는 것이 목표

이 그림에서는 파란선(w = 1, b = 0)이 가장 정답과 유사한 그래프가 된다.

 

-Cost Function (Loss Function)

정해진 H(x) = Wx+b의 식에서 값들에 대한 Cost(Loss)를 계산하는 식

Cost를 최소화하도록 W, b를 조절하는 목적의 Training이 진행 된다.

 

예측값 H(x)과 정답(label값=y)을 빼서 제곱해주어 Cost를 구했다.

Cost는 양수, 음수가 구별되어서는 안되 제곱해주었고, 절대값을 취해주어도 된다고 한다.

만약 제곱한 경우에는 기울기가 가팔라져 Gradient descent algorithm에서 변화가 절대값을 취한 것보다 더 빨리 일어날 것을 예측할 수 있다.

 

 

 

-Gradient descent algorithm - Linear Regression의 cost 최소화 알고리즘의 원리 설명

수식을 간단화하기 위해 b를 무시하고 진행한다.

각 W의 값이 다를 때 마다 Cost 값이 다르게 나온다.

 

CostFunction에 제곱을 하는 이유는 앞서 말했듯이 모두 양수로 만들어서 미분하기 편하기 위해서 이다.

해당 Cost_function을 그래프로 그리면 아래와 같이 나타난다.

 

Cost를 최소화하기위해 Gradient descent algorithm을 사용한다.

 

-Gradient descent algorithm(경사하강법)

시작하는 지점에서 미분을 통해 경사를 구한다. 각 점에서 기울기를 이용해 가장 Cost가 최소화 되도록 이동한다.

식의 Cost 앞에 - 값은 기울기가 +면 뒤로가고, -면 앞으로 가면서 Cost가 최소화 되는 방향으로 이동한다는 의미를 가지고 있다.

Cost function을 미분해 W를 갱신하는데에 사용한다.

 

여기서 식을 나타내면 Wnew = Wold - α*C'(x,y)이다.

왜 -를 해주는지는 오른쪽 그림을 보면 알 수 있다.

기울기가 + 값을 가지면 w은 왼쪽으로 이동해야지 Error를 줄일 수 있다.

이와 같이 기울기의 증가 감소와 반대로 이동해야지 기울기를 줄일 수 있기 때문이다.

 

-learning rate(α) : 한번 W&b 갱신하는 정도를 정할 수 있다.

각 Cost Function의 미분 값과 learning rate를 곱한 값을 이용한다.

 

 

이 gradient descent algoritm을 이용해 W를 update하면서 Cost를 최소화한다.

 

항상 Cost Function을 설계할때 반드시 아래 사진과 같이 Convex function의 모양이 되는지 확인해야한다.

만약 저렇게 밥그릇 모양이 아니면 경사하강법을 사용할 때 Gradient Vanshing, local minimum 같은 문제가 발생할 수 있다.

 

*참고

 Gradient Vanshing : 기울기가 거의 0에 가까워 Cost가 최소가 아니지만 학습이 진행되지 않는 것. 

 local minimum      : 원하는 글로벌한 최소 Cost 값이 아니라 부분적으로 Cost 최소값에 갇혀 버리는 것.

 

 

수식으로 확인할 수 없지만 다차식으로 갈수록 minmum한 값에 수렴한다고 한다.

 


이글은 모두를 위한 딥러닝 시즌1[Lab2, 3]을 참고해 공부용으로 정리 되었습니다.

출처 

www.youtube.com/watch?v=qPMeuL2LIqY&list=PLlMkM4tgfjnLSOjrEJN31gZATbcj_MpUm&index=2

 

Comments