设为首页 - 加入收藏 ASP站长网(Aspzz.Cn)- 科技、建站、经验、云计算、5G、大数据,站长网!
热搜: 数据 创业者 手机
当前位置: 首页 > 运营中心 > 建站资源 > 经验 > 正文

浅显易懂(2)

发布时间:2019-04-15 14:35 所属栏目:19 来源:机器之心编译
导读:现在,让我们将上面介绍的一切写成数学公式。在等式 y = mX+b 中,m 和 b 是其参数。在训练过程中,它们的值会进行较小的变化。我们将这个小变化表示成。参数的值将分别以m=m-m和 b=b-b 的方式更新。这里我们的目标

现在,让我们将上面介绍的一切写成数学公式。在等式 y = mX+b 中,m 和 b 是其参数。在训练过程中,它们的值会进行较小的变化。我们将这个小变化表示成δ。参数的值将分别以m=m-δm和 b=b-δb 的方式更新。这里我们的目标是找到y=mx+b 中能使误差最小的 m 和 b 值,即最小化成本函数的值。

重写成本函数:

其思想是,通过计算函数的导数和斜率,我们可以找到该函数的导数/斜率。

学习率

到达最小值或底部的步幅大小被称为学习率。更大的步幅/更高的学习率可以覆盖更大区域,但却有越过最小值的风险。另一方面,更小的步幅/更低的学习率到达最低点需要消耗大量时间。

下面的图片展示了学习率的概念。在第三张图中,我们用最少的步骤到达了最小值。这是这一问题的最佳学习率。

浅显易懂

可以看到,当学习率过低时,需要很多步骤才能收敛。而当学习率过高时,梯度下降将无法到达最小值,如下图所示。

不同学习率的实验结果可参考:

https://developers.google.com/machine-learning/crash-course/fitter/graph。

导数

机器学习在优化问题中使用导数。梯度下降等优化算法使用导数来实际决定是增大还是减小权重,以增大或减小目标函数。

如果我们可以计算出一个函数的导数,我们就会知道要继续的方向就是最小化该函数的方向。我们主要是处理两个来自微积分的概念:

1. 幂规则

幂规则计算的是提升成幂的变量的导数。

2. 链式法则

链式法则用于计算复合函数的导数。链式法则可以使用莱布尼兹符号表示如下:

如果变量 z 依赖于变量 y,而变量 y 又依赖于变量 x,则 y 和 z 是因变量,而且 z 也通过中间变量依赖于 x。这被称为链式法则,用数学式可写成:

让我们通过一个例子来理解:

将幂规则和链式法则用于导数,我们可以计算成本函数相对于 m 和 b 的变化方式。这涉及到偏导数的概念,即如果一个函数有两个变量,则寻找该函数相对于一个变量的偏导数的方法是将另一个变量视为常量。用例子解释会更清楚:

3. 计算梯度下降

现在我们将这些微积分规则应用于我们原来的等式,并找到成本函数相对于 m 和 b 的导数。重访成本函数:

为了简单,让我们摆脱其中的求和符号。这个求和部分很重要,尤其是涉及到随机梯度下降(SGD)与批梯度下降的概念时。在批梯度下降的过程中,我们一次性检查所有训练样本的误差;而在 SGD 过程中,我们每次检查每个误差。但是,为了简单起见,我们假设我们每次检查每个误差。

现在,我们来计算与 m 和 b 相关的误差的梯度:

将这些值放回成本函数,并将其与学习率相乘:

现在,这个等式中的 2 并不是那么重要,因为它只是表示我们的学习率有两倍或一半那么大。所以我们直接丢掉它。因此,最终这整篇文章都浓缩成了两个表示梯度下降的简单等式。

m¹,b¹ = 下个位置参数;m⁰,b⁰ = 当前位置参数。

因此,为了求解梯度,我们使用新的 m 和 b 值迭代我们的数据点并计算偏导数。这个新梯度能指出成本函数在当前位置的斜率以及我们应该移动的方向,以便更新我们的参数。我们的更新的大小受学习率控制。

总结

(编辑:ASP站长网)

网友评论
推荐文章
    热点阅读