欢迎光临散文网 会员登陆 & 注册

【Pytorch学习】用随机梯度下降算法思想求函数极值

2022-04-19 09:13 作者:梦醒南天  | 我要投稿

随机梯度下降(Stochastic gradient descent,SGD)算法,在深度学习中,经常被用来对神经网络模型的参数进行更新。这里,为了便于学习理解,我们用参照这种算法思想和原理来求解函数的极值。

已知函数 f(x),定义域 {-11 < x < 10}

y%20%3D%20%5Cfrac%7B1%7D%7B3%7D%20x%5E3%20%2B%202x%5E2%20-26x%20%2B%204 

首先,我们借助 python 将函数图像绘制出来,如下图所示:

f(x) 函数图像

接下来,我们用 pytorch 提供的自动求导功能,根据随机梯度下降算法的思想来求函数的极值。

经过多轮的 x 值的更新迭代之后,可以看到 y 的值已经逼近函数的最小值了。

多轮迭代后的计算结果

如果不确定这个值是否正确,我们可以手动计算一下。

y%20%3D%20%5Cfrac%7B1%7D%7B3%7D%20x%5E3%20%2B%202x%5E2%20-26x%20%2B%204

y%5E%7B'%7D%20%20%20%3D%20x%5E2%20%2B%204x%20-%2026

极值点为:x%20%3D%20%5Cpm%20%5Csqrt%7B30%7D%20-%202%20

x%20%3D%20%5Csqrt%7B30%7D%20-%202%20 时,y%20%5Capprox%20-48.211


【Pytorch学习】用随机梯度下降算法思想求函数极值的评论 (共 条)

分享到微博请遵守国家法律