从头开始深度学习第3部分:推广梯度下降

2020-06-23 01:53:08

注:作为亚马逊会员,我从合格购买中赚取收入。我通过这个帖子中的链接获得购买佣金。请单击此处查看更完整的免责声明。

另一个注意事项:本系列假设您了解一些初中/高中数学(实际上仅仅是代数),以便最大限度地利用这些部分。

虽然下面的注释是我对渐变下降的普遍看法,但我正在关注一本更详细的书,因为我试图展示我所学到的更高水平的内容。你可以在曼宁出版公司买到这本书《摸索深度学习》,电子书的价格更便宜,或者亚马逊的纸质书可以在这里买到,网址是https://amzn.to/2YVTrmz。

如果第4章希望向您介绍梯度下降(GD),第5章将以几种不同的方式概括该概念:*具有一个输出节点的多个输入结点*冻结一个权重*具有多个输出结点的一个输入结点*多个输入和输出结点*多个输入和输出结点。

由于您有多个共享一个输出节点的输入节点,因此需要将计算出的增量均匀分布回每个输入节点。这样做将为每个节点提供适当的WEIGHT_DELTA。

请记住:Weight_delta值告诉您相对于各自的输入值,您的预测(正或负)与实际值相差有多远。如果使用数学计算,该等式将如下所示:“Weight_Delta=该特定输入值*计算出的增量”)。

在找到这个weight_delta值之后,您将使用weight-=alpha*该特定的输入节点的weight_delta值来计算新的权重值。有了这个新的权重,您对每个输入节点的预测将是pred=输入节点值*新权重值。您在x次迭代中重复此过程。

冻结一个权重基本上允许您查看哪些输入节点对预测值影响最大。换句话说,Trask就是这么说的,a(或者仅仅是你的神经网络中的一个输入节点)可能是一个强大的输入,具有很强的预测能力,但如果网络意外地想出了如何在没有它的情况下对训练数据进行准确预测,那么它永远也学不会把a纳入它的预测[1]。

如果您想知道如何冻结一个权重,那么只需在每次迭代中将该权重的值设为0即可。如果你把任何东西乘以0,你总是会得到值0。从本质上讲,权重值将始终与您在特定状态下“冻结”权重相同。

这一次的梯度下降与第一个小主题相反。您有一个输入节点对三个不同的输出节点产生影响。由于三个输出节点共享一个输入节点,因此每个增量值将告诉您与预测中的原始输入节点的距离有多远。

要记住的公式:*pred=一个输入节点值*初始权重*增量=pred-true。

由于有三个输出节点,Weight_Delta将是一个列表,其中包括Weight_Delta=一个输入节点值*来自每个输出节点的Weight_Delta列表。

最后,您将重复第一个项目符号主题的方法来计算新的权重值,以测试新的预测。

第一个小主题和这个小主题之间的区别只是神经网络的哪一侧(输入和输出)有一个或多个节点。然后进行必要的乘法。

最后一个副主题是当您有多个输入和输出节点时。如果你理解第一个和第三个小主题(在这些笔记和书中),那么这应该不难理解。

对于每一行的权重值和输入值,您将找到增量值。

在找到增量值之后,您必须为每个输出计算每行的增量_权重值。

最后,计算该行中每列的新权重值,并将其指定为要在预测中使用的新权重值。请参阅下面的代码片段。

#此代码片段假定您已经计算了weight_deltas#此嵌套的for循环基本上是为一行中的每一列(矩阵中的每行,j->行中的每一列)分配新的权重。#您遍历第(I)行中的所有列(J),然后移动到下一行,并从第0列开始计算Range(len(Weight))中的i:for j in range(len(Weight[0])):Weights[i][j]-。

因此,在这篇文章的笔记本和上一篇文章的笔记本之间,有很多关于深度学习中梯度下降的讨论。不过,我想展示数学实际运行情况的直观表示。我不太适合matplotlib(到目前为止),所以我相信下面的gif在显示/绘制数学上是很好的。

在下面的两张GIF图中,你可以看到(无论是点还是黑线),它们都在试图达到抛物线的最低点。特拉斯克说,你真正想要用神经网络做的是找出这个大误差平面(下面的抛物线)上的最低点,其中最低点是指最小的误差[2]。这意味着您的pred=input*权重实际上非常接近您想要查看的值,或者在本例中为true[2],这意味着您已经达到迭代中的最低错误值[2],这意味着您已经到达了迭代的某个点,其中pred=input*权重实际上非常接近您希望看到的值,或者在本例中为true。

与往常一样,jupyter笔记本也提供了第5章_GeneralizingGradientDescent|Kaggle供您参考。

[1]“一次学习多个权重:推广梯度下降”,安德鲁·W·特拉斯克著,曼宁出版社,2019年,第263页。

[2]“一次学习多个权重:推广梯度下降”,安德鲁·W·特拉斯克著,曼宁出版社,2019年,第267页。

[3]我是Ng,Andrew。一元线性回归|梯度下降-[Andrew Ng]";YouTube,2020年6月22日。https://www.youtube.com/watch?v=F6GSRDoB-Cg&;list=PLLssT5z_DsK-h9vYZkQkYNWcItqhlRJLN&;index=8