您了解机器学习中的成本函数、学习率和梯度下降吗?
成本函数
我们机器学习的主要目标是最小化成本函数,因此将进行优化过程来减少这种投资。成本函数由下式给出: ![]()
要了解成本函数的几何形状,我们先了解凹函数和凸函数:
凹函数
在凹函数 g(x) 中,对于 x 轴 For ,a和b的任意两个值,点g(a)和g(b)之间的直线总是在g(x)之下。凹函数的最大值是导数为 0 的点 ![]()
凸面
凸函数具有相反的性质,凸函数的最小值是导数为 0 的点。 ![]()
如何计算我们找到成本函数的最大值或最小值?
求一个值的最小值或最大值有两种方法:
分析方法:凹函数的最大值和凸函数的最小值是导数为0的点直到导数 = 0 后才能成立方程为止,分析法是比较好的方法。 ![]()
爬山算法:这个算法是一个完整的算法,我们从正确的坡度位置(θs)开始,不断变化尝试接近最大值或最小值的斜率。现在的问题是我应该增加 θ(将 θ 向右移动),还是应该减小 θ(将 θ 向左移动)以更接近最优值。如果存在凸函数,我们可以求导数,如果导数为正,则需要增大θ,即向右,如果导数为负,则需要减小θ。 ![]()
t 是回报,α 是学习率。 ![]()
在学习中
学习率决定了“爬山算法”中的步长。有两种类型的学习率:
静态:静态学习率是所有迭代期间的恒定速率。
动态:学习率逐渐变化,即最初当θ偏离最优值时,α很大,随着接近最优值不断减小。
选择学习率
学习率不能太小,因为需要多次迭代才能达到最小值。另外,学习率不宜太大,否则可能达不到最优点。 ![]()
更好的想法是选择随着时间的推移而降低的动态学习率,因为它允许算法快速检测点。基本的学习率递减时间表如下: ![]()
理想情况下,对于凸函数,最优值出现在: ![]()
然而,在实践中,需要设置一个阈值来定义“接近”最优解。 for: ![]()
什么是渐进下降?
渐进下降用于实现爬山算法。为了理解梯度的起源,让我们看看是否要最小化成本函数,它可以是许多变量的函数。为了简单起见,我们假设 C 是两个变量的函数:
劳动力成本的变化由下式给出: ![]()
梯度向量 (∇C) 包含 C 关于 v 的导数部分,即∇C 确实 v 的变化与 C 的变化相关: ![]()
将向量的变化 (ΔV) 和梯度向量 (∇C) 代入 ΔC 方程: ![]()
我们需要选择 Δv,使得ΔC 为负值。考虑:![]()
,其中 eta 是一个小的正参数(称为学习率)。那么ΔC可以写成这样: ![]()
因为∥∇C∥²≥0,所以保证ΔC≤0,即C永远减少,永远不会增加。减少 C 是主要动机,因为我们希望将成本保持尽可能低。因此,我们按照以下方式应用梯度:
梯度下降是机器学习的基础,因此每个人都必须了解算法背后的数学原理才能真正理解机器学习模型的工作原理。此外,所有深度学习模型都使用梯度下降算法来更新反向传播期间的权重和偏差。我希望本文能帮助您了解机器学习中成本函数、学习率和梯度下降的基础知识。
版权声明
本文仅代表作者观点,不代表Code前端网立场。
本文系作者Code前端网发表,如需转载,请注明页面地址。
code前端网