python人工智能深度学习算法优化

 更新时间:2021年11月12日 10:19:31   作者:Swayzzu  
这篇文章主要为大家介绍了python人工智能深度学习关于算法优化详解,有需要的朋友可以借鉴参考下,希望能够有所帮助,祝大家多多进步

1.SGD

随机梯度下降

随机梯度下降和其他的梯度下降主要区别,在于SGD每次只使用一个数据样本,去计算损失函数,求梯度,更新参数。这种方法的计算速度快,但是下降的速度慢,可能会在最低处两边震荡,停留在局部最优。

2.SGDM

SGM with Momentum:动量梯度下降

动量梯度下降,在进行参数更新之前,会对之前的梯度信息,进行指数加权平均,然后使用加权平均之后的梯度,来代替原梯度,进行参数的更新。如此,更新的时候,都会包含之前的梯度信息。

计算的时候,会在加权平均的梯度上加上一个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人工智能算法优化的资料请关注脚本之家其它相关文章!

相关文章

  • react中useLayoutEffect 和useEffect区别

    react中useLayoutEffect 和useEffect区别

    本文主要介绍了react中useLayoutEffect 和useEffect区别,文中通过示例代码介绍的非常详细,具有一定的参考价值,感兴趣的小伙伴们可以参考一下
    2021-12-12
  • 基于Python实现excel表格数据一键转json格式小工具

    基于Python实现excel表格数据一键转json格式小工具

    这篇文章主要为大家详细介绍了如何使用Python开发excel一键转json小工具,实现任意选中excel的xlsx和xls文件转化成json文件,并把结果显示在界面中,需要的可以了解下
    2025-09-09
  • Python从Excel中读取日期一列的方法

    Python从Excel中读取日期一列的方法

    今天小编就为大家分享一篇Python从Excel中读取日期一列的方法,具有很好的参考价值,希望对大家有所帮助。一起跟随小编过来看看吧
    2018-11-11
  • Python异常之常见的Bug类型解决方法

    Python异常之常见的Bug类型解决方法

    这篇文章主要介绍了Python异常之常见的Bug类型解决方法,主要分享一些粗心导致和知识不熟练导致的语法错误以及被迫掉坑等内容,文章介绍非常详细需要的小伙伴可以参考一下
    2022-03-03
  • Python爬取网易云音乐热门评论

    Python爬取网易云音乐热门评论

    本文将详细介绍了Python获取网易云音乐热门评论的实例。具有很好的参考价值,下面跟着小编一起来看下吧
    2017-03-03
  • python面试题Python2.x和Python3.x的区别

    python面试题Python2.x和Python3.x的区别

    这篇文章主要介绍了python面试题Python2.x和Python3.x的区别 ,在面试中也经常会问到,本文给大家介绍的非常详细,具有一定的参考借鉴价值,需要的朋友可以参考下
    2019-05-05
  • python基于Node2Vec实现节点分类及其可视化示例详解

    python基于Node2Vec实现节点分类及其可视化示例详解

    这篇文章主要为大家介绍了python基于Node2Vec实现节点分类及其可视化示例详解,有需要的朋友可以借鉴参考下,希望能够有所帮助,祝大家多多进步,早日升职加薪
    2023-04-04
  • 基于Python实现一个网页转PDF工具

    基于Python实现一个网页转PDF工具

    本文介绍了 Python 网页转 PDF 工具的开发实战,工具核心需求包括单个 / 批量 URL 转换、自定义 PDF 参数及错误处理,技术选型为 pdfkit、wkhtmltopdf、argparse 和 os 库,文中详细阐述环境搭建步骤,需要的朋友可以参考下
    2025-10-10
  • 一文带你掌握Python中的双下划线写法

    一文带你掌握Python中的双下划线写法

    在 Python 中,双下划线--也被称为“dunder”--是一种用于修饰类属性名称或类方法名称的行为,下面小编就来和大家详细讲讲如何在Python中使用双下划线吧
    2023-10-10
  • Python Paramiko模块中exec_command()和invoke_shell()两种操作区别

    Python Paramiko模块中exec_command()和invoke_shell()两种操作区别

    invoke_shell 使用 SSH shell channel,而 exec_command 使用 SSH exec channel,本文主要介绍了Python Paramiko模块中exec_command()和invoke_shell()两种操作区别,具有一定的参考价值,感兴趣的可以了解一下
    2024-02-02

最新评论