코린이의 공부일기

[Boost Camp] 1WEEK. 3Days-2 경사하강법 본문

BOOST CAMP_정리

[Boost Camp] 1WEEK. 3Days-2 경사하강법

SOJUNG 2021. 8. 8. 20:36

부스트코스 AI Tech강의 중  AI Math 3강 ~5강까지의 정리본입니다.

 

1. 미분이란?

 

  • 미분(differentiation)은 변수의 움직임에 따른 함수값의 변화를 측정하기 위한 도구로 최적화에서 제일 많이 사용하는 기법이다.
  • sympy.diff를 갖고 미분을 계산해줄 수 있다.
import sympy as sym
from sympy.abc import x

print(sym.diff(sym.poly(x**2 + 2*x+3),x))

#출력

Poly(2*x + 2, x, domain='ZZ')

 

  • 한 점에서 접선의 기울기를 알면 어느 방향으로 점을 움직여야 함수값이 증가하는지/감소하는지 알 수 있다.
  • 미분값을 더하면 경상상승법(gradient ascent)이라 하며 함수의 극대값의 위치를 구할 때 사용한다.
  • 미분값을 빼면 경사하강법(gradient descent)이라 하며 함수의 극소값의 위치를 구할 때 사용한다.
  • 극 값에 도달한다면 미분값은 0이 되므로 움직임을 멈춘다.-> 최적화가 자동으로 이루어짐

 

2. 경사하강법의 알고리즘

  • 극대값이 0이 완벽히 될 수 없으므로 eps값을 지정해 종료조건을 설정해준다.
  • 종료조건이 성립하기 전까지 미분값을 계속 업데이트한다.

3.경사가 벡터라면?

  • 미분(differentiation)은 변수의 움직임에 따른 함숫값의 변화를 측정하기 위한 도구로 최적화에서 제일 많이 사용하는 기법이다.
  • 벡터가 입력된 다변수 함수의 경우 편미분(partial differentiation)을 사용한다.

  • 편미분은 미분할 변수를 지정해주며 편미분을 계산해줄 수 있다.

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

  • 목적식인 L2-norm 을 최소화하도록 하는 β을 찾는 것이 목적 !

n개의 데이터가 있다고 가정하기에 n개의데이터를 모두 더해주고 평균값을 구해 N2-norm을 적용한다.

  • 목적식을 최소화하는 β을 구하는 경사하강법 알고리즘은 다음과 같다.

파라미터를 계속 업데이트화 시키며 극솟값을 찾는다.

5.경사하강법은 만능일까?

  • 이론적으로 경사하강법은 미분가능하며 볼록한 함수에 대해 적절한 학습률과 학습횟수로 선택했을 때 수렴이 수학적으로 보장되어있다.
  • 비선형회귀 문제의 경우 목적식이 볼록하지 않을 수 있으므로 수렴이 항상 보장되진 않는다.

6. 확률적 경사하강법- SGD (Stochastic Gradient Descent)

  • SGD는 모든데이터를 사용해서 업데이트를 하는 대신 데이터 한개 또는 일부만을 활용해 업데이트합니다.
  • 볼록이아닌(non-convex)목적식은 SGD을 통해 최적화할 수 있다.
  • 경사하강법보다 시간효율성이 좋다.

7.비선형모델의 신경망(neural network)

  • 어떠한 하나의 클래스를 분류할 때 사용하는 softmax도 비선형모델 신경망 중 하나이다.

softmax의 식으로 하나의 확률 값으로 표현

8. 활성함수(activation function)

  • 신경망은 선형모델과 활성함수를 합성한 함수이다.

  • 활성함수를 쓰지 않으면 딥러닝은 선형모형과 차이가 없다.
  • sigmoid함수나 tanh함수는 전통적으로 많이 쓰이던 활성함수지만 딥러닝에선 ReLU함수를 많이 사용하고 있다.
  • 신경망은 선형모델과 활성함수를 합성한 함수이다.
  • 다층(multi-layer) 퍼셉트론(MLP)는 신경망이 여러층 합성된 함수이다.

9.딥러닝의 학습원리- 역전파 알고리즘

  • 딥러닝은 역전파(backpropagation)알고리즘을 이용하여 각 층에 사용된 파라미터 (W,b)을 학습한다.

  • 각층에서 계산된 gradient을 역순으로 고층->저층으로 전달

  • 역전파 알고리즘은 합성함수 미분법인 연쇄법칙 기반 자동미분을 사용합니다
Comments