python人工智能深度学习算法优化
目录
- 1.SGD
- 2.SGDM
- 3.Adam
- 4.Adagrad
- 5.RMSProp
- 6.NAG
1.SGD 随机梯度下降
随机梯度下降和其他的梯度下降主要区别,在于SGD每次只使用一个数据样本,去计算损失函数,求梯度,更新参数。这种方法的计算速度快,但是下降的速度慢,可能会在最低处两边震荡,停留在局部最优。
2.SGDM SGM with Momentum:动量梯度下降
【python人工智能深度学习算法优化】动量梯度下降,在进行参数更新之前,会对之前的梯度信息,进行指数加权平均,然后使用加权平均之后的梯度,来代替原梯度,进行参数的更新。如此,更新的时候,都会包含之前的梯度信息。
计算的时候,会在加权平均的梯度上加上一个beta参数,原梯度加上1-beta,二者之和就是用于进行参数更新的动量梯度。
由于有之前的梯度信息,因此该方法相当于对梯度下降加入了一个惯性。如果前面的是下降,那么此处会下降更快,如果突然接触到了最低点,也会因为有动量,而再往前走走。也就是说当前的方向,由此前积累的方向,和现在的梯度方向共同决定。因此,训练过程的震荡幅度会变小,速度变快。
SGDM速度没Adam快,但泛化能力好。
3.Adam Adam是一种在深度学习模型中用来替代随机梯度下降的优化算法
它是SGDM和RMSProp算法的结合,训练速度快,泛化能力不太行。
文章图片
4.Adagrad Adaptive Gradient自适应步长
该方法为现在的梯度*步长添加了一个系数:1/(历史梯度的平方和,再开根号)
文章图片
在数据分布稀疏的时候,能更好地利用稀疏梯度的信息,比标准的SGD更有效地收敛。
5.RMSProp 梯度平方根root mean square prop
文章图片
该方法和Adagrad的区别就是分母不一样,使得系数不会因为前几步的梯度太大而导致分母太大,从而导致系数变得太小而走不动了。类似于Momentum的计算方式。
6.NAG Nesterov Accelerated Gradient,是在SGD和SGDM的基础上的改进,在SGDM中,采用的梯度方向,是由当前的梯度方向,以及前面累积的梯度方向共同决定,但在NAG中,是先使用累积的动量计算一次,得到下一次的梯度方向,再把下一个点的梯度方向,与历史累积动量相结合,计算现在这个时刻的累计动量。
文章图片
以上就是python人工智能深度学习算法优化的详细内容,更多关于python人工智能算法优化的资料请关注脚本之家其它相关文章!
推荐阅读
- python学习之|python学习之 实现QQ自动发送消息
- 逻辑回归的理解与python示例
- python自定义封装带颜色的logging模块
- 【Leetcode/Python】001-Two|【Leetcode/Python】001-Two Sum
- 《深度倾听》第5天──「RIA学习力」便签输出第16期
- Python基础|Python基础 - 练习1
- Python爬虫|Python爬虫 --- 1.4 正则表达式(re库)
- Python(pathlib模块)
- python青少年编程比赛_第十一届蓝桥杯大赛青少年创意编程组比赛细则
- 人工智能|干货!人体姿态估计与运动预测