[deeplearning-003] 一般形式的反向传导算法BP最简推导-1

来源:互联网 发布:2016淘宝刷单 编辑:程序博客网 时间:2024/06/08 00:59

1.神经网络结构
设神经网络的层数是pp3
神经网络有三种层:一个输入层,若干个隐层,一个输出层,分别简称L1L2,…,Lp
设每层神经元数量分别是d1d2,…,dp。每个神经元的应激函数是f(x)

2.分析第一层和第二层并推导全局变量
设一个样本是xRd1×1,它从L1层输入。

L1L2之间的连接权重矩阵是W1,那么:

W1Rd2×d1

W1的第一行就是:

W1[1:]=[W11,1,W11,2,...,W11,d2]

其中,W11,i,就是L1层的第i个神经元和第L2层的第1个神经元的权重系数。

那么,L2的第一个神经元的激活值,就是:

a21=f(W1[1:]x+b11)

z21=W1[1:]x+b11,上式又可以写为:

a21=f(z21)

更进一步地,L2的每个神经元激活值可以写为:

a2i=f(W1[i:])x+b1i),i=1,...,d2

更进一步地,Lj+1层的每个神经元激活值可以写为:
aj+1i=f(Wj[i:])x+bji),i=1,...,dj+1

为简便起见,令

zj+1i=Wj[i:])x+bji

则:
aj+1i=f(zj+1i),i=1,...,dj

对于输出层L1j=1a1i可以视为样本x的第i分量。

3.反向传播

3.1 代价函数
设训练集是{(x1,y1),(x2,y2),...,(xm,ym)},其中,ykRdp×1,这显而易见,输出层的神经元是dp个。

研究一个样本(xk,yk),对它而言,代价函数是:

J(W1,W2,b1,b2;xk,yk)=12hW1,W2,b1,b2(xk)yk2=12q=1dp(ykqf(zp,kq))2

其中,ykq表示,第yk的第q个分量。

为简便起见,也可以写成

J(W,b;xk,yk)=12q=1dp(ykqf(zpq))2

考虑整个训练集,代价函数是:

J(W,b)=k=1mJ(W,b;xk,yk)

考虑到对W1W2进行正则化,以避免过拟合,代价函数是:

J(W,b)=k=1mJ(W,b;xk,yk)+λ2l=1p1i=1dlj=1dl+1(Wlj,i)2

原创粉丝点击