《神经网络与深度学习》学习笔记(四)

原文地址

第二章 反向传播算法是如何工作的

作者: Michael Nielsen

简介

在上一章的内容中并没有介绍代价函数的梯度是如何计算的,本章就将介绍反向传播算法,因此本章将更加偏向数学。

基于矩阵来计算神经网络的输出

首先介绍基本的标识符,如图

这里写图片描述
尽管现在看起来这样的定义方式有些怪异,稍微会解释合理性。
对于网络的weight和bias,同样给出标识符,如图

这里写图片描述

b 3 2
表示神经网络中第2层,第3个神经元的bias,
a 1 3
表示神经网络中第3层,第2个神经元的激活函数,有了这样的定义,函数式就可以写成
(23) a j l = σ ( k w j k l a k l 1 + b j l ) ,

还有一种更加简洁的写法,可以写成矩阵乘法的方式,这也就是为什么weight要被定义成如此奇怪形式的原因
(25) a l = σ ( w l a l 1 + b l ) .

定义
z j l = k w j k l a k l 1 + b j l

那么我们就有
a l = σ ( z l )

这也是本章内容的基础。

代价函数

(26) C = 1 2 n x y ( x ) a L ( x ) 2 ,

随后引入哈达马积,例如:
(28) [ 1 2 ] [ 3 4 ] = [ 1 3 2 4 ] = [ 3 8 ] .

即矩阵对应位置相乘。

四个基本等式

这里写图片描述
于是我们就有了算法流程:
这里写图片描述

反向传播算法的重点

为了解释这个算法的行为,假设我们对网络中的权值进行了修改
这里写图片描述

这样的修改会对最后的输出造成影响
这里写图片描述
由于权重的变化造成了损失函数的变化,很自然地我们想要去求它的偏导数。

由于信息是一层一层向下传播的,改变的权重在神经网络中有多条路径通向最后的输出

(52) Δ C m n p q C a m L a m L a n L 1 a n L 1 a p L 2 a q l + 1 a j l a j l w j k l Δ w j k l ,

移项之后得到
(53) C w j k l = m n p q C a m L a m L a n L 1 a n L 1 a p L 2 a q l + 1 a j l a j l w j k l .

猜你喜欢

转载自blog.csdn.net/xj949967574/article/details/79547002