第262章 第262节 (3/3)
这个可以用一个思辨小故事来进行解读。
假设你是一个团队(神经网络)的经理,团队要完成一份报告(输出结果)。你手上有一份完美的参考答案(目标值)。
所谓正向传播,就是把任务分给各个下属(神经元),他们协作完成了初稿(网络的前向计算,得到预测输出)。
而反向传播,则相当于一个复盘会。
从最后一步往前倒查。
先把总错误(总损失)归因给最后一个负责汇总的同事(神经元)。
假设这个同事说:“我的错误一部分是因为前面分析同事的数据有问题。”
于是错误的一部分被分摊给了分析同事。
分析同事说:“我的错误一部分是因为数据收集同事提供的基础数据有误。”
于是错误又被进一步分摊给了数据收集同事。
这个分摊的过程,每一步都是通过数学上的链式法则精确计算的。最终,每个员工都得到了一个明确的“责任分数”(梯度)。
根据每个人的“责任分数”告诉他们如何改正。例如:“A,下次收集数据时,应该更侧重X方面;B,分析逻辑应该调整Y参数。”
这个“告诉”的过程就是参数更新,通常使用梯度下降算法:新参数=旧参数-学习率*责任分数(梯度)。
下一次做报告时,团队就会表现得更好。反复多次,团队(神经网络)就会越来越出色。
这就是反向传播的全内容。
“反向传播?”
路明非看着上面的话语,虽然他看懂了,也知道这只不过是一个反复往前归因的过程,但是怎么看都是一个非常繁杂的神秘知识!
老唐也看傻了,哥们高中肄业,你给我整这?
“有没有一种可能,托子哥你说的这个不是中文,而是某些小众语种。”老唐呢喃自语道。
“正经中国人谁说这些啊!”老唐嘶吼。
路明非怒吼:“你也不是中国人吧!”
路明非:“……”
老唐:“……”
现场一片寂静。
而林托的意识进入到眼前的屏幕之后,效率可谓是比语音输入还要快上许多倍,他的思维所到之处,哪里就是文本的书写。
“反向传播的数学心脏是微积分中的链式法则。它解决了如何将最终输出的误差,高效地分摊给网络中成千上万个参数的问题。”
“神经网络是一个由许多复合函数嵌套组成的复杂函数。”
“损失函数衡量的是输出与目标的差异。”
“我们想知道的是:‘损失函数关于每一个权重参数的变化率是多少?’(即梯度)。”
“链式法则允许我们从输出层开始,一层一层地、递归地将误差梯度向后传递,直到最初的输入层。每一层只需要计算局部梯度,然后乘以从后面传过来的梯度即可。”