전산/Deep Learning

[DeepLearning] 경사하강법

만두쓰 2023. 1. 3. 14:59

경사하강법

미분 가능한 함수가 있을 때 해당 함수의 최소점을 찾기 위한 방법.

수식

$$\theta \leftarrow \theta-\eta \cdot \frac{\partial L (\theta)}{\partial \theta}$$

$\theta$를 x축값 변수라하고, Loss function을 $L$함수라고 할 때, 최소점의 찾기 위해 $\theta$의 값을 변경해야 한다. 
현재의 $\theta$값에서 기울어진 방향으로  learning rate($\eta$)만큼 빼준다. 빼주는 이유는 값이 커져야 할 경우, 그레디언트 값이 음값으로 나오니, 기본적으로 음을 취해주어야 한다. 

이미지 출처 : https://hwk0702.github.io/ml/dl/machine%20learning/2020/05/28/GD/

딥러닝에서의 경사하강법

딥러닝에서는 입력과 출력 차원에 따라 가중치 파라미터의 크기는 매우 커질 것. 그러나 이렇게 높은 차원의 공간에서는 지역 최소점(local minima)이 큰 문제가 되지 않는다는 것이 학계의 중론이다. local minima에 빠지더라도 경험적으로 global minima의 근방에 위치할 것이라는 말도 존재한다. 이는 local minima을 구성하기 위한 조건들이 높은 차원에서는 만족되기 어렵기 때문이기도 한다. 따라서 local minima에 빠져 성능이 저하되는 상황은 크게 걱정하지 않아도 된다.  

Learning Rate

가중치 파라미터가 업데이터될 때 기울기 값을 얼만큼 반영할 것인지 설정하는 파라미터.

Learning Rate 조절

값이 클 경우, 손실값이 발산해버리는 상황이 발생 가능.
값이 작을 경우, local minima에 빠지는 현상 발생 가능. 파라미터가 조금씩 바껴서 학습 속도가 느려짐.

Hyper-parameter

사용자가 직접 tuning해야하는 파라미터