BookmarkSubscribeRSS Feed

경사하강법(Gradient Descent)

Started 3 weeks ago by
Modified 3 weeks ago by
Views 80

 

경사하강법이란, 함수의 최솟값을 찾는 방법입니다.

단순회귀분석에서 경사하강법을 사용하는 방법을 설명하겠습니다.

 

 

image.png

 

 

여기서 B0는 y의 절편이며, B1은 기울기, E는 오차항을 의미합니다.

경사하강법은 파라미터인 B0과 B1을 최적화하기 위해서 사용됩니다.

주로, 인공지능이 최적화할 때 사용되는 알고리즘입니다. 인공지능이 더 좋은 값으로 개선하는 방향으로 학습해 최적의 값을 찾아나갈 때 경사하강법을 사용합니다.

경사하강법은 손실함수(loss function)을 최소화하는 방법으로 파라미터를 반복적으로 업데이트 합니다.

 

 

■ 손실함수(Loss Function)

Loss란 실제값과 예측값과의 차이를 의미합니다. Loss를 함수로 표현한 것을 Loss Function이라고 합니다.

다양한 Loss Function 이 존재하며 MAE, MSE, RMSE 등이 있습니다. 회귀에서 가장 많이 사용되는 Loss Function은 MSE(Mean Square Error)입니다.

 

 

image.png

 

N은 데이터 갯수, hat_y(i) 는 예측값, y(i)는 실제값입니다. 오차값이 음수일 수 있어 제곱을 취해 오차의 절대적인 값을 구합니다.

 

image.png

 

 

 

위의 그래프는 2차함수로 Loss가 최소인 값을 찾는 것 입니다.

2차 함수는 미분값이 0 이 되는 지점을 찾으면 됩니다.

 

 

 

고차원 함수일 경우에는 한번에 최솟값을 찾기 힘들 수 있습니다.

그래서 최소값을 찾기 위해 최초 지점에서 조금씩 움직이며 최적의 값을 찾아나가는 것이 Gradient Descent 입니다.

 

Gradient Descent 를 통해 파라미터를 업데이트 하는 과정은 다음과 같습니다.

1) Gradient 를 구해 이동할 방향을 정한다.

2) 한번 이동시, 얼마나 이동할 것인지 step size를 정해 learning rate를 곱해서 그 만큼 이동

3) 최적의 해를 찾을 때까지 1)번과 2)번을 반복한다.

 

image.png

 https://builtin.com/data-science/gradient-descent 

 

 

Learning Rate란 보폭을 의미합니다.

'한번에 얼만큼 이동할 것인가?'를 설정한 것으로 값이 크면 적절한 값을 찾지 못할 수 있으며

값이 작으면 최적화되기까지 시간이 너무 오래걸린다라는 단점이 있습니다.

 

 

 

Version history
Last update:
3 weeks ago
Updated by:
Contributors

sas-innovate-2024.png

Available on demand!

Missed SAS Innovate Las Vegas? Watch all the action for free! View the keynotes, general sessions and 22 breakouts on demand.

 

Register now!

Article Labels
Article Tags