[AI Math] 경사하강법 part 2

hyunsooo·2022년 9월 22일
0

지난 시간에 무어-펜로즈 역행렬을 이용한 선형회귀식을 구하는 방법에 대해 알아보았다.
이번 시간에는 위와 같은 방법이 아닌 경사하강법으로 선형회귀의 계수를 구하는 방법을 알아보자.

  • 선형회귀의 목적식은 yXβ2||y-X\beta||_2이고 이를 최소화하는 β\beta를 찾는 것이 목적이다.

  • 따라서 아래와 같은 그래디언트 벡터를 구해야한다

    • βy=Xβ2=(β1yXβ2,...,βdyXβ2)\nabla_{\beta}||y=X\beta||_2 = (\partial_{\beta1}||y-X\beta||_2,...,\partial_{\beta d}||y-X\beta||_2)

    • βkyXβ2=βk{1ni=1n{yij=1dXijβj}2}1/2\partial_{\beta k}||y-X\beta||_2 = \partial_{\beta k} \{\frac{1}{n}\sum_{i=1}^n\{y_i - \sum_{j=1}^d X_{ij}\beta_j\}^2\}^{1/2}

    • 위에서 구한 그래디언트 벡터와 경사하강법을 사용해 목적식을 최소화 하는 알고리즘은 아래와 같다

    • βt+1=βtλβyXβ(t)\beta^{t+1} = \beta^t - \lambda \nabla_{\beta}||y-X\beta^{(t)}||, (λ=\lambda = learning rate)

경사하강법은 만능일까?

  • 이론적으로 미분가능하고 볼록(convex)함수이면 적절한 파라미터를 선택함으로 최적값에 수렴할 수 있다.

  • 선형회귀의 목적식 yXβ2||y-X\beta||_2β\beta에 대해 볼록함수이기 때문에 수렴 가능하다.

  • 비선형문제에서는 수렴이 보장되지 않으며 특히 딥러닝의 경우 목적식의 대부분이 비선형이기 때문에 적용하기 힘들다.

확률적 경사하강법(SGD)

  • 확률적 경사하강법은 모든 데이터를 사용해 업데이트하는것이 아닌 일부분만 사용한다.

  • 볼록이 아닌 경우에도 SGD를 통해 최적화가 가능하다.

  • 일부 데이터만 사용하기 때문에 연산량이 감소하여 효율적으로 활용할 수 있다.

  • SGD는 학습률과 학습회수 뿐만 아니라 배치사이즈도 고려해한다.

  • 배치사이즈가 너무 적으면 경사하강법 보다 더 느릴 수 있다.

원리

일부 데이터(mini-batch)를 사용하기 때문에 매 순간마다 목적함수가 바뀌게 된다. 실제 목적함수가 convex하지 않는다 하더라도 조금씩 변하는 목적함수 때문에 local minima와 같은 곳에서 탈출이 가능하며 극소점으로 다가갈 수 있다.

profile
지식 공유

0개의 댓글