加入收藏 | 设为首页 | 会员中心 | 我要投稿 惠州站长网 (https://www.0752zz.com.cn/)- 办公协同、云通信、物联设备、操作系统、高性能计算!
当前位置: 首页 > 业界 > 正文

5分钟用Python理解人工智能优化算法

发布时间:2021-03-12 10:57:03 所属栏目:业界 来源:互联网
导读:梯度下降是迭代法的一种,可以用于求解最小二乘问题(线性和非线性都可以)。在求解机器学习算法的模型参数,即无约束优化问题时,梯度下降(Gradient Descent)是最常采用的方法之一,另一种常用的方法是最小二乘法。在求解损失函数的最小值时,可以通过梯度下降

梯度下降是迭代法的一种,可以用于求解最小二乘问题(线性和非线性都可以)。在求解机器学习算法的模型参数,即无约束优化问题时,梯度下降(Gradient Descent)是最常采用的方法之一,另一种常用的方法是最小二乘法。在求解损失函数的最小值时,可以通过梯度下降法来一步步的迭代求解,得到最小化的损失函数和模型参数值。反过来,如果我们需要求解损失函数的最大值,这时就需要用梯度上升法来迭代了。在机器学习中,基于基本的梯度下降法发展了两种梯度下降方法,分别为随机梯度下降法和批量梯度下降法。

该算法在损失函数的梯度上迭代地更新权重参数,直至达到最小值。换句话说,我们沿着损失函数的斜坡方向下坡,直至到达山谷。基本思想大致如图3.8所示。如果偏导数为负,则权重增加(图的左侧部分),如果偏导数为正,则权重减小(图中右半部分) 42 。学习速率参数决定了达到最小值所需步数的大小。
 

误差曲面

寻找全局最佳方案的同时避免局部极小值是一件很有挑战的事情。这是因为误差曲面有很多的峰和谷,如图3.9所示。误差曲面在一些方向上可能是高度弯曲的,但在其他方向是平坦的。这使得优化过程非常复杂。为了避免网络陷入局部极小值的境地,通常要指定一个冲量(momentum)参数。
 

我很早就发现,使用梯度下降的反向传播通常收敛得非常缓慢,或者根本不收敛。在编写第一个神经网络时,我使用了反向传播算法,该网络包含一个很小的数据集。网络用了3天多的时间才收敛到一个解决方案。幸亏我采取一些措施加快了处理过程。

说明 虽然反向传播相关的学习速率相对较慢,但作为前馈算法,其在预测或者分类阶段是相当快速的。

(编辑:惠州站长网)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读