Differentiation
import sympy as sym
from sympy.abc import x
sym.diff(sym.poly(x**2 + 2*x + 3), x)
- 미분값을 더하면 함숫값 증가
- 미분값을 빼면 함숫값 감소
Gradient Descent
- 미분값을 빼서 함수의 극솟값을 구함
- Input : gradient, init, lr, eps
- Output: var
var = init
grad = gradient(var) # gradient: 기울기 계산
while(abs(grad) > eps):
var = var - lr * grad
grad = gradient(var)
Gradient Vector
var = init
grad = gradient(var) # gradient: gradient vector 계산
while(norm(grad) > eps): # 절댓값 대신 norm 계산
var = var - lr * grad
grad = gradient(var)
Stochastic Gradient Descent
- 데이터의 일부(mini batch)만 활용하여 gradient 업데이트