미분
미분값을 알면 (한 점에서 접선의 기울기를 알면), 어느 방향으로 점을 움직여야 함수값이 증가하는지/감소하는지 알 수 있다.
미분은 변수의 움직임에 따른 함수값의 변화를 측정하기 위한 도구이다. 어떠한 변수가 바뀌면, 얼마나 함수값이 오차가 커지는지 등을 알 수 있고, 이를 통해 오차를 줄이도록 변수를 조정하며 최적화 할 수 있다.
벡터가 입력인 다변수 함수의 경우 각 변수의 편미분을 계산한 gradient 벡터를 이용하여 경사하강/상승법에 사용할 수 있다.
$\nabla f=(\partial _{x_1} f, \partial _{x_2} f, ..., \partial _{x_d} f)$
경사하강법
경사하강법을 사용하여 선형회귀식을 찾는다고 가정해보면,
선형회귀의 목적식은 $||y-X\beta||_2$ 이고, 이를 최소화하는 $\beta$ 를 찾는 것이 목표이다.
$\nabla ||y-X\beta||_2 =$ ${-X^T(y-X\beta)}\over {n||y-X\beta||_2}$
L2-norm 은 제곱근을 사용하지만, 제곱의 미분 최소값을 찾는 것과 결과가 같으며, 오히려 식이 간단해지는 장점이 있다.
$\nabla ||y-X\beta||_2^2 =$ $-2 \over n$ $X^T(y-X\beta)$
경사하강법 기반 선형회귀 알고리즘
딥러닝을 사용하는 경우 목적식이 non-convex 하기 때문에 경사하강법으로 수렴하지 않는다. 이때 SGD를 사용하여 최적화한다.
확률적 경사하강법(Stochastic Gradient Descent)
모든 데이터를 사용해서 업데이트하는 대신 일부(mini batch) 활용하여 그라디언트를 계산한 후 업데이트한다.
일부 데이터를 활용하여 파라미터를 업데이트하기 때문에 연산 자원을 효율적으로 사용할 수 있다.
확률적 경사하강법의 원리 : 미니배치 연산
경사하강법은 전체 데이터를 가지고 목적식의 그라디언트 벡터를 계산하고, SGD는 mini batch를 가지고 그라디언트 벡터를 계산하는 것이 차이점이다.
(그림) SGD를 순차적으로 진행하다보면, 미니배치를 매번 새로 샘플링하기 때문에 목적식 모양이 바뀐다.
→ 매번 목적식이 바뀌면서 극소값이 기존 값과 차이가 발생한다. 따라서 non-convex함수여도 극소점을 탈출하게 되면서 최소값을 찾아갈 수 있다.
경사하강법보다 더 빠르게 최솟값을 찾아갈 수 있다. 하이퍼 파라미터로 미니배치 사이즈가 추가된다. (이를 추가적으로 고려해야 함)
'네이버 부스트캠프 AI tech 3기' 카테고리의 다른 글
5. CNN과 RNN (0) | 2022.01.25 |
---|---|
4. 확률론, 베이즈 (0) | 2022.01.25 |
3. 딥러닝 학습방법 이해하기 (0) | 2022.01.24 |
1. 벡터와 행렬 (0) | 2022.01.23 |
회고(1주차) (0) | 2022.01.23 |