根据公式(25),(26),(27)将 4 层含激活函数的 BP 原理可以形象地表示为图 6,跟 section 4 中的 4 层无激活函数 BP 原理示意图的差异在于后向传播的误差信息需要多乘一个对角矩阵 。 ▲ 图6:4层含激活函数的BP原理图 L 层含激活函数的神经网络
▲ 图7:L层含激活函数的前向传播过程 图 7 表示的是 L 层含激活函数神经网络的前向传播过程,其中损失函数如下所示:
令 ,根据 section 3 预备知识的推导形式 2 的公式(7),(8)可求得:
其中, 为对称矩阵。,则 ,,;,,,。综上所述可知梯度的通项公式为:
根据公式(32)将 L 层含激活函数的 BP 原理可以形象地表示为图8所示:▲ 图8:L层含激活函数的BP原理图
验证BP矩阵推导
本节主要是对吴恩达机器学习讲义中(ML-AndrewNg-Notes: Coursera)关于 BP 原理结论部分的验证,所以本文的主要目的是验证吴中的关于 BP 结论与本文的 section 4 之间的结论是否一致。由于符号和表示形式的差异,将吴中关于 BP 原理部分的描述用蓝色字体表示(该部分在),将验证过程用红色字体表示。
一个 4 层的神经网络,具体示意图如下所示:
▲ 图9:吴恩达机器学习讲义中的网络结构
从最后一层的误差开始计算,误差是激活单元的预测 与实际值 之间的误差。用 来表示误差,则:
利用误差值 来计算前一层的误差:
其中 是 导数, 是经权重 而导致的误差。第二层的误差为:
因为第一层是输入变量,不存在误差,有了所有的误差表达式之后,便可以计算各个层权重的偏导数为:
代表目前所计算的第几层, 代表目前计算层中的激活单元的下标,也是下一层的第 个输入变量的下标。 代表下一层中误差单元的下标,是受到权重矩阵中的第 行影响的下一层中的误差单元的下标。验证:吴恩达的这个讲义中关于 BP 推导中只展示出矩阵推导出的结果,略出了中间证明的部分,其中的证明过程可以类比本文中的 section 6 中证明过程,为了能够让验证 BP 推导过程更清楚,我将吴恩达机器学习讲义中的推导符号与本文 section 6 中 4 层含激活函数的神经网络的符号进行类比如下表所示: