본문 바로가기

Data/Data Science

[Gradient Descent] 경사하강법

반응형

경사하강법 사용 이유

- 함수(딥러닝에서는 Cost Function)의 최소값을 찾는 문제에서 이용

 

바로 미분 계수가 0인 지점을 찾으면 되지않을까?

- 함수가 닫힌 형태가 아닌 경우

- 함수가 너무 복잡해서 미분 계수가 어려운경우엔 경사하강법이 구하기가 더쉬울떄가 있음

- 데이터 양이 너무 많은 경우 효율적으로 계산하기 위해

 

* 닫힌 형태(closed form)란 방정식(equation)의 해(solution)를 해석적(analytic)으로 표현할 수 있는 종류의 문제를 말한다. 닫힌 형태(closed form)의 반대 개념으로 열린 형태(open form)라는 것도 있다. 열린 형태란 유한 개(finite)의 수학적 표현을 사용해서 정확하게 해를 표현할 수 없는 문제를 말한다. 정리하면 닫힌 형태의 문제란 주어진 문제를 수학적으로 잘 formulation해서 해석적인 해가 존재하는 형태의 방정식으로 바꿨다는 의미로 이해를 하면 된다. (출처: wanochoi.com/?p=5061)

 

Gradient descent는 함수의 기울기(gradient)를 이용해 x의 값을 어디로 옮길 때 최소값을 갖게 되는지 알아보는 방법.

- 기울기가 양수: x의 값이 커질수록 함수의 값이 커짐

- 기울기가 음수: x의 값이 커질수록 함수의 값이 작아짐

 

x_i+1 = x_i - 이동 거리 * 기울기의 부호

근데 여기서 이동 거리는 결국엔 기울기의 크기만큼 이동하는거니까

x_i+1 = x_i - 기울기

로 바꿔질수있다.

이 때, 사용자의 필요에 맞게 이동 거리를 조절할 수 있어야하기 때문에 step size조절 인자를 넣어준다. 여기서 step size는 우리가 흔히 듣던 learning rate값이다.

따라서, 최종 수식은

x_i+1 = x_i - (learning rate)*기울기

가 된다.

 

경사하강법을 사용하면서 마주치는 문제는 local minima문제인데

위의 그림에서 보이듯이 학습을 진행할때, 기계가 local minima(노랑색점)에서 cost function이 최소값을 얻는것으로 착각하여 학습을 끝낼경우다. 우리가 원하는건 global maximum(빨간색점)에 있는 위치이다.

 

따라서, 이런경우를 해결하기위해서 모멘텀이라는 경사하강법을 사용한다.

모멘텀이란 단어 뜻대로 관성을 이용한다는건데, 이론적으로 기존에 업데이트에 사용했던 기울기의 일정비율을 남겨서 현재의 기울기와 더하여 업데이트에 사용하는 방식.

반응형

'Data > Data Science' 카테고리의 다른 글

[ML] 짜투리정리  (0) 2021.02.14
[머신러닝] LGBM, XGBoost, GBM  (2) 2021.02.03
[Pytorch] Autoencoder Base code  (0) 2020.11.29
[Pytorch] Basic Neural Network  (0) 2020.11.23
Normalization, Regularization, Standardization  (0) 2020.11.14