ToB企服应用市场:ToB评测及商务社交产业平台

标题: 吴恩达2022呆板学习专项课程C2W2:2.23 选修_反向传播算法的工作原理(什么 [打印本页]

作者: 小小小幸运    时间: 2024-6-11 08:45
标题: 吴恩达2022呆板学习专项课程C2W2:2.23 选修_反向传播算法的工作原理(什么
引言

在 TensorFlow 中,您可以指定神经网络架构和成本函数,TensorFlow 会自动利用反向传播计算导数,并利用梯度下降或 Adam 等算法训练网络参数。反向传播是神经网络学习中的核心算法,接下来的内容将相识反向传播如何计算导数,也就是反向传播的工作原理。
对于一些简单的呆板学习模型,如线性回归或逻辑回归,梯度公式可以手动推导并计算。这些模型的参数较少,导数计算相对简单。而神经网络通常有许多层和大量参数,手动推导和计算每个参数的梯度非常复杂和耗时。反向传播算法通过自动求导和链式法则,更高效地计算每个参数的梯度。
一.导数的计算

1.epsilon与导数的关系

1.1 利用简化的成本函数 J(w) = w^2为例来描述关系,w不变,epsilon变化






1.2 设置不同的w


1.3 利用呆板学习库自动计算导数












我们验证这些表达式是否精确:对于 J(w) = w^3,当 w 增加 0.001,J(w) 从 8 增加到约 8.012,增加了 12 倍的 ε,导数是 12。对于 J(w) = w,当 w 增加 0.001,J(w) 增加 0.001,正是 ε 的值,导数是 1。对于 J(w) = 1/w,当 w 增加 0.001,J(w) 变为约 0.49975,减少了 0.00025,即 -0.25 倍的 ε,导数是 -1/4。


2.别的导数符号情势

通常利用偏导数记号更为简洁和现实。比方,J 关于 w_i 的导数常简写为 ∂J/∂w_i。


3.导数小结

导数:当w增加一个小值的Epsilon,J(w)会因此改变多少。具体来说,当 w 增加 ε 时,J(w) 按常数 k 倍的 ε 变化,这个常数 k 就是导数,取决于 J(w) 的函数情势和 w 的值。注意,并不范围于jw和w,这里只是举例,这个规则可以实用于任何函数和变量。
二.小型神经网络的计算图

1.什么是计算图(前向传播过程)

计算图是深度学习中的关键概念,通过分解计算步调来自动计算神经网络的导数。下图是由节点和边或箭头毗连组成的计算图。展示如何利用计算图从输入 x 和参数 w、b 计算输出 a,并进一步计算成本函数 j。通过将计算过程分解成多个小步调,终极得出成本函数的值。这种方法帮助我们理解前向传播和成本计算的过程。具体过程如下:

2.反向传播计算过程

通过计算图,我们理解了前向传播的过程,现在我们想要计算 j 相对于 w 的导数以及j相对于 b 的导数。前向传播从左到右计算输出和成本函数,反向传播则从右到左计算导数,这就是为什么它被称为反向传播。通过逐步改变各个节点的值,观察成本函数的变化,我们得出了各个参数的导数。具体过程如下

总结一下,前向传播从左到右进行计算,反向传播从右到左计算导数,依次计算 j 相对于各个变量的导数。


3.验证反向传播的计算效果

在 w、b、x 和 y 值为图中设置的情况下,- j 即是 1/2 乘以 (2 * -2 + 8 - 2) 的平方,效果为 2。假如 w 增加 0.001,j 变为 1/2 乘以 (2.001 * -2 + 8 - 2) 的平方,效果约为 1.996002。因此,j 从 2 降至 1.996,减少了 0.004,即 4 倍的 ε。
这表明,假如 w 增加 ε,j 下降 4 倍的 ε,等价于 j 上升负 4 倍的 ε,因此 j 对 w 的导数是 -4。而 j 对 b 的导数是 2,即假如 b 增加 ε,j 上升 2 倍的 ε。


4.为什么用反向传播计算导数?

反向传播算法通过从右到左计算的方式高效地求出成本函数对各参数的导数。由于这种方法可以一步步计算中心量(如 c、a、d)和参数(如 w、b)的导数,所以只需要 n + p 步,而不是传统方法的 n 乘以 p 步,从而大大减少了计算量。
比方,对于一个有 1 万个节点和 10 万个参数的神经网络,这种方法需要 11 万步,而不是 10 亿步。因此,反向传播在大规模神经网络中应用非常高效,是深度学习算法中的一个关键概念。


三.扩大神经网络的计算图

1.计算反向传播

在更大的神经网络示例中,计算图展示了如何逐步计算神经网络的输出和成本函数,并利用反向传播计算各参数的导数。前向传播从输入计算到输出和成本函数,而反向传播则从成本函数反向计算各节点和参数的导数。
通过计算 J 对各个节点和参数的导数,逐步更新参数。首先计算 J 对 a2 的导数,然后逐步计算 J 对 z2、b2、t2 等等的导数。反向传播的目标是计算出 J 对全部参数 w1, b1, w2, b2 的导数。

2.验证反向传播

具体例子验证:
假如 W1 从 2 增加到 2.001,计算得到的 a1 从 2 增加到 2.001。计算 a2 得到 7.003,终极成本函数 j 从 2 增加到 2.006005。因此,验证了 j 对 W1 的导数确实即是 6。

四.总结

反向传播提供了一种高效的方法来计算全部导数,可以用于梯度下降或 Adam 优化算法,以训练神经网络的参数。反向传播计算导数的过程是从右到左进行的,而不是每次只改变一个参数并观察其对 j 的影响。
前向传播:输入数据通过网络层层传播,计算出猜测效果。计算丧失:比较猜测效果与真实标签,计算出丧失值。反向传播:从输出层开始,逐层向前计算丧失函数相对于每个参数的梯度。这些梯度反映了每个参数对丧失的影响。参数更新:利用梯度下降算法,根据计算出的梯度调整参数,使丧失减少。常用的优化算法有梯度下降、Adam等。通过循环实现反复进行这个过程,神经网络的参数逐步优化,模型的性能逐步提高。

免责声明:如果侵犯了您的权益,请联系站长,我们会及时删除侵权内容,谢谢合作!更多信息从访问主页:qidao123.com:ToB企服之家,中国第一个企服评测及商务社交产业平台。




欢迎光临 ToB企服应用市场:ToB评测及商务社交产业平台 (https://dis.qidao123.com/) Powered by Discuz! X3.4