본문 바로가기
LG Aimers(AI 전문가 과정)/Module 2. 지도학습(분류,회귀)

Part 3. Gradient Descent(경사하강법)

by 전주혁 2022. 7. 24.

Module 2. 지도학습(분류/회귀)은 이화여자대학교 강제원 교수님이 강의를 하셨고 Module 2에 관한 모든 내용은 LG Aimers 및 이화여자대학교 강제원 교수님으로부터 나왔다.

 

 

 

 

저번 포스팅에서 Gradient Descent(경사하강법)에 대해 간단하게 설명을 해보았다.

 

이번 포스팅에서는 지난 포스팅보다 심화적인 내용을 다뤄보겠다.

 

Gradient Descent Algorithm 

Key Components

 

 - Gradient : 벡터함수의 partial derivative를 가짐, 함수의 변화량이 가장 큰 변화량쪽으로 update

 

 - α(step size) : parameter 업데이트의 변화 정도를 조절하는 값으로 학습 이전에 설정하는 hyperparameter (사전에 정의하는 값) 

 

 첫번째 사진은 적절한 α값

 두번째 사진은 너무 적은 α값

 세번째 사진은 너무 큰 α값

 

 

 - Θ : learnable parameter(구하고자 하는 모델의 학습 parameter)

 

 

 

 

 

Batch gradient descent

 

Batch gradient descent의 단점으로는

 - 전체 샘플 m개를 모두 계산해야한다

     -> 복잡도가 증가

 

 

 

 

Stochastic gradient descent(SGD) 확률적 경사하강법

Batch에서 단점이었던 m을 1로 바꿨다

하지만 noise의 영향을 받기 쉽다(수렴하는 과정에서 많은 osciliation이 발생)

 

 

 

 

Gradient descent 알고리즘은 parameter의 초기의 포인트에 따라서

local minimum에 빠지기 쉽다

이것이 무슨 뜻인지 이해하기 어려울 수 있다.

 

사진으로 보도록 하자

Global optima와 local optima를 살펴보도록 하자

둘다 기울기가 0이 되는 지점이지만

Global optima가 아닌 local optima에 빠지게 된다면 모델은 더 좋은 성능을 낼 수 있는데도 local optima에 빠져서

기울기가 0인 그 값을 적용시키기 때문에 성능이 아쉽게 된다.

 

 

이때 local minimum을 회피할 수 있는 방법은 momentum이다.

 

 

 

Momentum

 - 과거에 Gradient가 업데이트 되어오던 방향 및 속도를 어느 정도 반영해서 현재 포인트에서 Gradient가 0이 되더라도 계속해서 학습을 진행할 수 있는 동력을 제공하는 것  

 

이처럼 0인 지점을 찾아도 계속해서 학습을 하게 만들어 준다.

 

 

 

이러한 momentum을 이용하는 gradient descent에서 더 발전한 것이

Nesterov Momentum 방식이다.

 

 

Nesterov Momentum

은 기존의 방식과는 다르게 gradient를 먼저 평가 후 업데이트를 한다

그래서 look ahead gradient step을 이용한다고 불린다

 

 

 

 

다음 방식으로는 AdaGrad 방식이 존재한다

AdaGrad

방식은 각 방향으로의 learning rate를 적응적으로 조절하여 학습 효율을 높인다

하지만 단점으로 gradient의 값이 계속 누적이 되기 때문에 learning rate가 작아지게 된다.

 -> learning rate가 작아져서 원하는곳에서 학습이 제대로 이루어지지 않는다.

 

 

AdaGrad 방식의 단점을 보완한

RMSprop에 대해 알아보자

AdaGrad의 r 과는 다르게

RMSprop에서는 p와 (1-p)를 각각 곱해줘서

r의 값을 조절해주게 된다.

 

 

이제 기계학습, 딥러닝을 하면서 가장 많이 접하게 될

Adam에 대해서 알아보자

Adam은 RMSprop + Momentum 방식을 합쳐놨다.

 

Adam의 과정을 살펴보자

1 . S와 같은 형태의 momentum을 구해준다

2 . RMSprop 방식으로 두번째 momentum을 구해준다

3 . 안정된 학습을 위해 bias를 조절한다

4 . 파라미터를 업데이트 한다

 

 

 

 

이제 Learning rate에 따른 loss함수의 변화량을 알아보자

 

이처럼 적절한 Learning rate의 값을 찾는것이 필수적이다.

 

 

 

 

마지막으로 Overfitting을 해결하려면 Regularization을 사용하면 된다.

 

 

 

Quiz를 풀고 마치도록 하자

 

정답 : O

 -> local optimum에도 빠지게 된다

 

 

정답 : X

 -> Momentum은 local minimum을 회피하는 것을 도와준다

 

 

 

정답 : O