Processing math: 100%
경사하강법(매운맛)

경사하강법 II


선형회귀분석

image.png 선형모델의 경우 위와 같은 유사역행렬을 이용해서 회귀분석이 가능하다.이번에는 유사역행렬이 아니라 경사하강법으로 선형회귀식을 찾는다. 좀 더 일반적인 기계학습 모형에서 최적할 때 사용하는 방법론으로 확인해 볼 수 있다.


경사하강법으로 선형회귀 계수 구하기

선형회귀의 목적식은 yXβ2이고 이를 최소화하는β를 찾아야 하므로 다음과 같은 그레디언트 벡터를 구해야 한다.

image.png 계산의 편의를 위해서 yXβ2가 아닌yXβ22를 최소화해도 된다.


image.png

이 식을 직접 유도해 보면 다음과 같다. image.png


복잡한 계산같지만 사실 Xβ를 계수 β에 대해 미분한 결과에 XT만 곱해진 것이다. image.png


이제 목적식을 최소화 하는 β를 구하는 경사하강법 알고리즘은 다음과 같다. λlearning rate을 의미한다.

β(t+1)β(t)λβyXβ

여기서 λβyXβ값을 대체해서 보면 아래와 같은 식이 된다.

β(t+1)β(t)+λnXT(yXβ(t))yXβ


yXβ2가 아닌yXβ22로 최소화

image.png

β(t+1)β(t)+2λnXT(yXβ(t))


경사하강법 기반 선형회귀 알고리즘

# norm: L2-norm을 계산하는 함수
# lr: 학습률, T: 학습횟수

for t in range(T):
    erro=y-X@beta
    grad=-transpose(X)@error
    beta=beta-lr*grad

for t in range(T)
종료조건을 일정 학습 횟수이다.

for문 안에 코드
βyXβ22항을 계산하여 β를 업데이트한다.

  • 이제 경사하강법 알고리즘으로 역행렬을 이용하지 않고 회귀계수를 계산할 수 있다.
  • 경사하강법 알고리즘에서는 학습률학습횟수가 중요한 hyperparameter가 된다.


경사하강법은 만능?

  • 이론적으로 경사하강법은 미분가능하고 볼록(convex)한 함수에 대해선 적절한 학습률과 학습횟수를 선택했을 때 수렴이 보장되어 있다.
  • 특히 선형회귀의 경우 목적식 yXβ2회귀계수 β에 대해 볼록함수이기 때문에 알고리즘을 충분히 돌리면 수렴이 보장된다.

image.png

하지만 비선형회귀 문제의 경우 목적식이 볼록하지 않을 수 있으므로 수렴이 항상 보장되지는 않는다



확률적 경사하강법

  • 확률적 경사하강법(stochastic gradient descent)은 모든 데이터를 사용해서 업데이트하는 대신 데이터 한개 또는 일부 활용하여 업데이트합니다.
  • 여기서 일부 데이터만 사용하는걸 mini batch라 한다.
  • 볼록이 아닌(non_convex)목적식은 SGD를 통해 최적화할 수 있다.

image.png

  • SGD라고 만능은 아니다 딥러닝의 경우 SGD가 경사하강법보다 실증적으로 더 낫다고 검증되었다.

SGD는 데이터의 일부를 가지고 패러미터를 업데이트하기 때문에 연산자원을 좀 더 효율적으로 활요하는데 도움이 된다. image.png 전체 데이터(X,y)를 쓰지 않고 미니배치 (X(b),y(b))를 써서 업데이트 하므로 연산량이 b/n으로 감소한다.


원리: 미니배치 연산

image.png 경사하강법은 전체데이터 𝒟=(X,y)를 가지고 목적식의 그레디언트 벡터인 θL(𝒟,θ)를 계산하게 된다.


image.png SGD는 정확한 목적식을 계산하는 것이 아니라 미니배치 𝒟(b)=(X(b),y(b))𝒟를 가지고 그레디언트를 계산하기 때문에 목적식이 살짝 위의 그림과 같이 바뀌게 된다. 미니배치를 사용했기때문에 그레디언트가 다를 수 있겠지만, 방향은 유사하 것이라고 기대할 수 있다.확률적 경사하강법을 사용하면 원래 경사하강법과 유사하게 이동시키게 된다.


image.png 매번 다른 미니배치로 계산하기 때문에 목적식의 모양이 고정되어 있지않고 바뀌게 된다. non-convex(볼록이 아닌)일때, local point(극소점,극대점)에 도착해도 확률적 경사하강법을 사용하는 경우에는 극소점이나 극대점에서 목적식이 확률적으로 바뀌기 때문에 극소점이나 극대점이 더 이상 아니게 될 확률이 발생하게 된다. 이때문에 극소점이나 극대점에서 탈출을 할 수 있다.

'AI > 이론' 카테고리의 다른 글

Pandas III  (0) 2021.01.28
딥러닝 학습방법 이해하기  (0) 2021.01.27
Pandas II  (0) 2021.01.27
Pandas I  (0) 2021.01.27
경사하강법 I  (0) 2021.01.26
행렬  (0) 2021.01.25
벡터  (0) 2021.01.25
Numpy part III  (0) 2021.01.25

+ Recent posts