最近把CS231n关于反向传播这一节的官方笔记看了一下。这篇算是用中文把原文复述了一遍,中间一些地方加入了我自己的理解,很多地方的表述参考了 CS231n课程笔记翻译:反向传播笔记
Introduction
动机
这篇笔记介绍了一些有助于在直觉上理解反向传播(BP)的知识。反向传播是一种通过递归应用链式法则(chain rule)来计算表达式梯度的方法。理解反向传播过程及其精妙之处,对于理解、实现、设计和调试神经网络非常关键。
问题描述
这节要讨论的核心问题是:给定函数 f(x) , x 是一个输入向量,我们感兴趣的问题是计算
动机
回想起来,我们关注这个问题的主要原因是在神经网络中我们有损失函数(Loss function) L ,输入
如果你之前对用chain rule推导偏微分已经很熟悉了,我们仍然建议你至少浏览一下这篇笔记,因为它呈现了一个相对成熟的反向传播视角,在该视角中能看见基于实数值链路的反向传播过程,而对其细节的理解和收获将帮助读者更好地通过本课程。
Simple expressions and interpretation of the gradient(简单表达式,梯度的解释)
先从简单的开始,这样我们就能把符号和规则推广到比较复杂的表达式了。先考虑一个简单的二元乘法函数 f(x,y) 。对两个输入变量分别求偏导数还是很简单的:
解释:牢记这些导数的意义:函数的自变量在某个点周围的极小区域内变化,而导数就是自变量变化导致的函数在该方向上的变化率:
注意上式等号左边的分号和等号右边的分号不同,它不是代表除法。这个符号表示操作符 ddx 被作用于函数 f ,并返回一个不同的函数(导数)。对于上述公式,可以认为当
比如, x=4,y=−3,f(x,y)=−12 , x 的导数