미분(differentation) : 변수의 움직임에 따른 함수의 변화값을 측정할 수 있는 도구
최적화에서 사용
변화율의 극한(limit)
파이썬에서 sympy.diff로 계산할 수 있음
딥러닝에서도 미분 계산을 사용
import sympy as sym
from sympy.abc import x
# 다항함수 x**2 +2*x+3를 x로 미분하는 코드
sym.diff(sym.ploy(x**2 +2*x+3),x)
ploy(2*x + 2, domain ='zz')
"""
init: 시작점
lr: 학습률
eps: 알고리즘 종료조건
"""
var =init
grad= gredient(var)
# 미분값이 정확히 0이되는 것은 불가함으로 eps보다 작을 때 종료하는 조건 설정
while(abs(grad)>eps):
# 미분값을 구해, 알고리즘의 속도 조절,
var=var -lr *grad
# 미분값을 계산
grad= gradient(var)
import sympy as sym
from sympy.abc import x,y
# 다항함수 x**2 +2*x+3를 x로 미분하는 코드
sym.diff(sym.ploy(x**2 +2*x*y+3)+sym.cos(x+2*y),x)
2*x + 2*y - sin(x+2*y)