import sympy as sym
from sympy.abc import x
sym.diff(sym.poly(x**2 + 2*x + 3), x)
input : gradient, init, lr, eps, Output: var
# gradient: 미분을 계산하는 함수, init: 시작점, lr: 학습률, eps: 알고리즘 종료조건
var = init
grad = gradient(var)
while(abs(grad) > eps) :
var = var - lr * grad # 경사하강법의 속도를 lr로 조절
grad = gradient(var)
import sympy as sym
from sympy.abc import x, y
sym.diff(sym.poly(x**2 + 2*x*y + 3) * sym.cos(x + 2*y), x)
input : gradient, init, lr, eps, Output: var
# gradient: 미분을 계산하는 함수, init: 시작점, lr: 학습률, eps: 알고리즘 종료조건
var = init
grad = gradient(var)
# 경사하강법이 벡터로 사용되기에 절댓값이 아닌 노름으로 계산된다
while(norm(grad) > eps) :
var = var - lr * grad # 경사하강법의 속도를 lr로 조절
grad = gradient(var)