人民币兑换日元,零根底深度学习入门:由浅入深了解反向传达算法,硬盘检测工具

频道:新闻世界 日期: 浏览:205

点击上方重视,All in AI我国

作者——Anas Al-Masri

自从机器学习被引进到递归的非线性函数中(例如人工神经网络)以来,对相关内容的运用得到了足够的开展。在这种情况下,练习正确的神经网络是树立可情欲片靠模型最重要的方面。这种练习一般与"反向传达"一词联络在一起,这个术语对大多数新手来说对错常含糊的。这也是本文所存在的含义。

(图源:https://www.youtube.com/wa宰杀肉畜tch?v=Ilg3gGewQ5U)

反向传达是神经网络练习的实质。它实践上是依据在前一历元(即迭代)中取得的差错率(即丢失)对神经网络的权重进行微调的实践。恰当的调整权重可保证较低的过错率,添加模型的适用性使模型更牢靠。

那么这个进程怎么运作的呢?让咱们经过比如学习!

为了使这个比如尽或许便于咱们了解,我ox163们只触及相关概念(例如丢失函数、优化函数等)而不解说它们,由于这些主题值得咱们另起一篇文章进行细说。

首要,让咱们设置模型组件

幻想一下,咱们需求练习一个深层神经网络。练习的意图是构建一个模型,该模型运用两个输入和三个躲藏单元履行XOR(异或)函数通话帮手彩铃版是什么,这样练习集看起来如下所示:

此外,咱们需求一个激活函数来确认神经网络中每个节点的激活值。为简略起见,让咱们挑选一个激活函数:

咱们还需求一个假定函数来确认激活函数的输入是什么。这个函数是:

让咱们挑选丢失函数作为逻辑回归的一般本钱函数,看起来有点杂乱,但实践上适当简略:

此外,咱们将运用批处理梯度人民币兑换日元,零基础深度学习入门:由浅入深了解反向传达算法,硬盘检测工具下降优化函数,用于确认咱们应该人民币兑换日元,零基础深度学习入门:由浅入深了解反向传达算法,硬盘检测工具调整权重的怎没牛人娶了中岛美雪方向,以取得比咱们现有的更低的丢失。终究,学习率为0.1,全部权重将初始化为1。

咱们的神经网络

让咱们终究画一张咱们期待已久的神经网络图。它应该看起来像这样:

最左面的层是输入层,它人民币兑换日元,零基础深度学习入门:由浅入深了解反向传达算法,硬盘检测工具将X0作为值1的偏置项,将X1和X2作为输入特征。中心的层是第一个躲藏层,它的偏置项Z0也取值为1。终究,输出层只需一个输出单元D0,其激活值是模型的实践输出(即h(x)) 。

现在咱们向前传达

现在是将信息从一个层前馈到另一个层的时分了。这需求经过两个进程,经过网络中的每个节点/单元:

1. 运用咱们之前界说的h(x)函数获取特定单位输入的加权和。

2.将咱们从进程1得到的值刺进咱们的激活函数(本例中为f(a)= a)并运用咱们得到的激活值(即激活函数的输出)作为衔接输入特征的下一层中的节点。

请留意,单位X0,X1隐秘倒数,X2和Z0没有任何衔接到它们并任供给输入的单位。因而,上述进程不会出现在这些节点中。可是,关于其他的节点/单元,练习会集第一个输入样本的整个神经网络都是这样的:

其他人民币兑换日元,零基础深度学习入门:由浅入深了解反向传达算法,硬盘检测工具单位也是如此:

如前所述,终究单位(D0)的激活值(z)是整个模型的激活值(z)。因而,咱们的模型猜测输入集{0,0}的输出为1。核算当时迭代的丢失/本钱如下:

actual_y值来自练习集,而predic种女乡长地的男人们t_y值是咱们模型发作的值。所以这次迭代的本钱是-4。

那么反向传达在哪里呢?

依据咱们的比如,咱们现在有一个模型没有给出精确的常永芬猜测(它给咱们的值是4而不是1),这归因于它的权重没有调整(它们都等于1)。咱们也有丢失,即-4。反向传达便是以这样一种办法向后传递这种丢失,咱们能够依据这种办法微调权重。优化函数(在咱们的比如中为梯度下降)将协助咱们找到我上了权重。那就让咱们开端吧!

运用以下功用进行前馈:

然后经过这些函数的偏导数发作反向反应。不需求经过经过推导这些函数的进程。咱们需求知道的是,上面的函数将遵从:

其间Z是咱们早年馈进程中的激活函数核算中取得的z值,而delta是图层中单位的丢失。

我知道有许多信息一次性就能吸收,但我主张你花点时刻,真实了解每一步发作了什么,然后再继续前进。

核算增量

现在咱们需求找到神经网络中每个单元/节点的损耗。这是为什么呢?咱们这样想,深度学习模型抵达的每一次丢失实践上是由全部节点累积到一个数字引起的。因而,咱们需求找出哪个节点对每层中的大部分丢失担任,这样咱们就能够经过赋予它更小的权重值来赏罚它,然后人民币兑换日元,零基础深度学习入门:由浅入深了解反向传达算法,硬盘检测工具削减模型的总丢失。

核算每个单元的增量或许会有问题。可是,感谢吴恩达先生,他给了我耶律原们整个作业的捷径公式:

其间delta_0,w和f'(z)的值是相同单位的值,而delta_1是加权链接另一侧的单位丢失。例如:

你能够这样想,为了取得节点的丢失(例如Z0),咱们将其对应的f'(z)的值乘以它在下一层(delta_1)衔接的节点的丢失,再乘以衔接两个节点的链路的权重。

这正是反向传达的作业原理。咱们在每个单元进行delta核算进程,将丢失反向传达到神经网络中,并找出每个节点/单元的丢失。

让咱们核算小洞洞一下这些增量!

这里有一些留意事项:

  • 终究单位的人民币兑换日元,零基础深度学习入门:由浅入深了解反向传达算法,硬盘检测工具丢失(即D0)等于整个模型的丢失。这是由于它是输出单位,它的丢失是全部单位的累计丢失,就像咱们之前说的那样。
  • 不管输入(即z)等于什么,函数f'(z)总是给出值1。这是由于如前所述,偏导数如下:f'(a)= 1
  • 输入节点/单位(X0,X1和X2)没有delta值,由于这些节点在神经网络中无法控制。它们仅作为数据集和神经网络之间的一个链接。

更新权重

现在剩余的便是更新咱们在神经网络中的全部权重。这遵从批量梯度下降公式:

其间W是手头的权重,alpha是学习率(在咱们嘉年华思晴大王相片的比如动动爆中是0.1),J'(W人民币兑换日元,零基础深度学习入门:由浅入深了解反向传达算法,硬盘检测工具)是本钱函数J(W)相关于W的偏导数。再次着重,518vps咱们不需求进行数学运算。因而,让咱们运用吴恩达先生的函数的偏导数:

其间Z是经过前向传达取得的Z值,delta是加权链接另一端的单位丢失:

现在用咱们在每一步取得的偏导数值许宝初,和批量梯度下降权重更新全部权重。值得着重的是,输入节点(X0,X1和X2)的Z值别离等于1,0,0。1是偏置单元的值,而0实践上是来自数据集的特征输入值。终究要留意的是,没有特定的次序来更新权重。你能够依照你想半空儿要的任何次序更新它们,只需你不会在同一次迭代中过错地更新任何权重两次。

为了核算新的权重,让咱们给出神经网络称号中的链接:

新的权重核算办法如下:

需求留意的是,模型还没有正确练习,由于咱们只经过练习集恩施剿匪记中的一个样本进行反向传达。咱们为样本做了全部咱们云之声云银河被开除能做的全部,这能够发作一个具有更高精度的模型,企图挨近每一步的最小丢失/本钱。

假如没有正确的办法,机器学习背面的理论真的很难把握。其间一个比如便是反向传达,其效果在大多数实际国际的深度学习运用程序中都是能够预见的。反向传达仅仅将总损耗传回神经网络的一种办法,以便利人们了解每个节点的丢失量,并随后经过为节点供给更高夜蒲1差错,从而运用丢失最小化的办法来更新权重,反之亦然。

编译出品

原文链接:https://towardsdatascience.com/how-does-back-propagation-in-artificial-neural-networks-work-c7cad873ea7