Google机器学习速成课程学习记录(二)未完

迭代方式降低损失

迭代学习:机器学习算法用于训练模型的迭代试错过程如图1所示

540f4ef647274703acca539c3ffb41a5

图1

刚开始,需要猜测一个初始值(比如w1=0),然后等待系统计算出损失为多少。然后,再通过尝试另一种猜测(比如w1=0.5),再看看损失为多少。如此反复下去,只要以正确的方式进行猜测,通常损失会越来越小。这个问题最难的部分在于尽可能高效地找出最佳的模型(损失最小的模型)。

首先,模型部分(即图1中蓝色部分)将一个或者多个特征作为输入,然后返回一个预测值(y')作为输出。现为简化,不妨设只有一个特征作为输入的预测模型:

y'=b+w1x1

对于线性回归问题,初始值并不重要,可以随机选值,这里不妨设b=0,w1=0。

假设第一个特征值是10(即x1=10),则代入预测模型可得此时的y'=0+0*10=0。

计算损失部分(即图1中红色部分)是模型要使用的损失函数,这里假设使用我们上次所学的平方损失函数。损失函数将所有的y'与y(y是特征x1对应的正确标签)作为输入。接下来,计算参数更新部分(即图1中绿色部分)会检查损失函数的值,并且为b与w1生成新值。然后又会再根据所有标签重新评估所有特征。然后又会生成新的预测值,计算损失部分也会随之生成新值,然后计算参数更新部分又会生成新的b和w1。这种学习过程将会持续迭代直到该算法发现损失可能最低的模型参数。通常,您可以不断迭代,直到总体损失不再变化或至少变化极其缓慢为止。这时候,我们可以说该模型已收敛。

计算参数更新部分算法:梯度下降法

扫描二维码关注公众号,回复: 1960819 查看本文章

c8796fe97a974942a5b56179ff606bbb

图2

假设我们有时间和计算资源来计算 w1 的所有可能值的损失。对于我们一直在研究的回归问题,所产生的损失与 w1 的图形始终是凸形。换言之,图形始终是碗状图,如图2。

凸形问题只有一个最低点;即只存在一个斜率正好为 0 的位置。这个最小值就是损失函数收敛之处。

梯度下降法的第一个阶段是为 w1 选择一个起始值(起点)。起点并不重要;因此很多算法就直接将 w1 设为 0 或随机选择一个值。如图3选择一个稍大于0的起点。

42c647bd4b8549788356aa601c34c128

图3

然后,梯度下降法算法会计算损失曲线在起点处的梯度。简而言之,梯度是偏导数的矢量;它可以让您了解哪个方向距离目标“更近”或“更远”。请注意,损失相对于单个权重的梯度(如图 3 所示)就等于导数。

梯度是一个矢量,因此具有方向和大小。

梯度始终指向损失函数中增长最为迅猛的方向。梯度下降法算法会沿着负梯度的方向走一步,以便尽快降低损失,如图4

a2ee082420d04feaa4832c696a58fc88

图4

为了确定损失函数曲线上的下一个点,梯度下降法算法会将梯度大小的一部分与起点相加,如图5

dc7d1878204641c19cbfe628e3216cab

图5

  • 可以在每步上计算整个数据集的梯度,但事实证明没有必要这样做
  • 随机梯度下降法:一次抽取一个样本
  • 小批量梯度下降法:每批包含 10-1000 个样本
    • 损失和梯度在整批范围内达到平衡

猜你喜欢

转载自www.cnblogs.com/hjhome/p/9281706.html
今日推荐