gpt4 book ai didi

neural-network - 节点梯度在神经网络中代表什么?

转载 作者:行者123 更新时间:2023-12-04 13:39:06 28 4
gpt4 key购买 nike

I am following along(这个代码很烂,我只是在弄乱)与Introduction to the math of neural networks一起使用了这个简单的3层神经网络:

我的计算结果与本书大致相同(归因于四舍五入):

o1 delta: 0.04518482993361776
h1 delta: -0.0023181625149143255
h2 delta: 0.005031782661407674
h1 -> o1: 0.01674174257328656
h2 -> o1: 0.033471787838638474
b2 -> o1: 0.04518482993361776
// didn't calculate layer 1 gradients but would use the same approach

但是渐变到底是什么?它们是单个节点对o1误差的贡献吗?

最佳答案

让我们首先解释梯度下降。 GRADIENT DESCENT是用于最小化成本函数的优化算法。

考虑以下示例:

在f(t)是我们要最小化的函数的情况下,t具有一些初始值t1,但我们想找到一个使f(t)达到其最小值的函数。

这是梯度下降算法的公式:

t = t - α  d/dt f(t),

其中α**是学习率,d/dt f(t)是函数的导数。导数只是 与函数相切的直线的斜率。

我们将继续应用此公式,直到达到最小值为止。

如上图所示,梯度下降将以以下方式更新t:斜率(导数)为正,α为正,因此t值现在将减小,从而使f(t)最小。重复此过程,直到得到d/dt f(t)== 0(任何连续函数的最小值(和最大值)的斜率均为零)。

现在,我们可以在反向传播算法中应用梯度下降的想法,以便适本地调整我们的权重。

给定一个训练示例e,我们将误差函数定义为
E_e (w ⃗ )=  1/2 ∑_(k ∈Outputs) (d_k- o_k )^2 , 

其中k是神经网络中输出的数量,d是期望的输出,o是观察到的输出。

观察值:如果此函数E等于0,则意味着对于所有k,d_k == o_k,这意味着神经网络的输出与所需的相同,并且没有任何工作要做,例如我们的神经网络非常聪明。当然,最初,权重是随机分配的,从来没有这样,但是我们希望实现这一目标(或希望如此)。

由于我们现在有一个要最小化的误差函数,因此单击它可以应用什么吗?梯度下降是的! ^^这个想法是根据误差函数的梯度的负值来修改 权重,以在此示例中快速减少误差(含义e),因此我们根据梯度信息将权重修改为
∆w_ji= α (-∂E(wij)/∂wij  )

如果与上面的示例进行比较,则结果完全相同,唯一的区别是,在后一种情况下,误差函数是多元函数,即对于给定的重量,我们找到了该特定重量的偏导数。)

一次又一次地将这种错误校正(梯度下降)应用于权重,我们将获得一个将误差函数最小化并且对我们的NN进行良好训练的杠杆。

*请注意:此问题涉及很多问题,例如,如果学习率太大,则梯度下降甚至可能会超出最小值,但为避免混淆,请不要过分在意。 :)

关于neural-network - 节点梯度在神经网络中代表什么?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/24764321/

28 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com