1.梯度方向
对多元函数的参数求偏导,得到函数增加或减小最快的方向。具体来说,对于函数f(x,y),在点(x0,y0),沿着梯度向量的方向就是(∂f/∂x0, ∂f/∂y0)T的方向是f(x,y)增加最快的地方。
2.梯度下降算法过程如下:
(1)随机初始值a0;
(2)迭代ak+1=ak+skak直至收敛。sk表示在ak处的负梯度方向,ak表示学习率。
3.求y=cos(x)在(0,2*pi)上的最小值
(1)随机初值设置为5,学习率为0.1。
(2)cos(x)的导数为-sin(x),所以ak+1=ak+skak 为xk+1=xk-(learn_rate×(-sin(x)))。
import numpy as np x=5 learn_rate=0.1 for i in range (200): x+=learn_rate*np.sin(x) print(i,x)
结果收敛:
988 3.14159265359
989 3.14159265359
990 3.14159265359
991 3.14159265359
992 3.14159265359
993 3.14159265359
994 3.14159265359
995 3.14159265359
996 3.14159265359
997 3.14159265359
998 3.14159265359
999 3.14159265359