在方法论上,机器学习主要使用“最优化”方法,经常表现为最小化某个“目标函数”或“损失函数”。一般需要通过某种“迭代算法”寻找近似的“数值解”。
一阶导数仍然是x的函数,故可定义的导数,即二阶导数:
假设,则一阶导数为:,二阶导数为:
上述三条曲线的python代码:
import numpy as np
import matplotlib.pyplot as plt
x=np.arange(-3,3,0.1)
y=3*(x**3)+2*(x**2)
#一阶导数
y1=9*(x**2)+4*x
#二阶导数
y2=18*x+4
plt.plot(x,y,label="y")
plt.plot(x,y1,label="y'",linestyle="--")
plt.plot(x,y2,label="y''",linestyle="-.")
plt.xlabel("x")
plt.ylabel("y")
plt.title("y&y'&y''")
plt.legend()
plt.show()
绘制出的图像如下:
通过上述图像可知:
1、一阶导数表明的是函数的在x出的切线斜率是先降后升,最小值为0
2、二阶导数表明一阶导数的变化速率,即原函数的曲率是随着x的增加线性增加的
联系客服