首页 > 编程知识 正文

最速下降法matlab,模拟退火算法matlab

时间:2023-05-06 09:24:19 阅读:12008 作者:2883

1 .概念

(1)批量梯度下降---最小化所有训练样本的损失函数,最终求解的是全局最优解,即求解的参数是最小化风险函数。

)2)随机梯度下降---最小化每个样本的损失函数。 每次迭代得到的损失函数并不朝向全局最优方向,但较大的整体方向朝向全局最优解,最终结果往往接近全局最优解。

2 .数学表达

以以下圆拟合为例,m个数据拟合点是已知的,需要找到最佳拟合圆,即最佳圆的中心(xc,yc ),和最佳拟合半径r。

圆拟合损失函数可以表示为:

圆拟合损失函数

就是找到最佳拟合圆,使损失函数最小化。

最小化损失函数

2.1 .批量坡度下降的解决思路

(1)将l对xc、yc、r求偏导数,得到各自的梯度

参数梯度

)2)因为是使风险最小化的函数,所以针对每个参数在坡度负方向上针对每个参数进行更新,将学习率设为lr

更新参数

)从上式可以看出,它得到了全局最优解,但每次迭代都要用到训练集中的所有数据。 如果m大,则可以考虑该方法的反复速度! 所以,这引入了另一种方法,随机梯度下降。

2.2 .随机梯度下降的求解思路

随机梯度下降求每个样本的损耗函数,对参数求偏导数,得到相应的梯度,更新参数。

第I个样本的损失函数

第I个样本的参数梯度

参数更新的随机梯度下降按采样迭代更新。 在采样数较多(例如数十万)的情况下,其中只有数万个或数千个采样,可能正在将theta反复进行最佳解。 与上面的批量梯度下降相比,迭代一次需要十几万个训练样本,一次迭代不是最佳的。 如果迭代次数为10次,则需要遍历10次训练样本。 然而,与SGD相关联的一个问题是,噪声比BGD多,并且SGD并非每次重复都朝向整体优化的方向。

3.matlab代码

批次梯度降低

随机梯度下降

核对结果

版权声明:该文观点仅代表作者本人。处理文章:请发送邮件至 三1五14八八95#扣扣.com 举报,一经查实,本站将立刻删除。