1.神经网络结构
设神经网络的层数是
p
,
p≥3
。
神经网络有三种层:一个输入层,若干个隐层,一个输出层,分别简称
L1
,
L2
,…,
Lp
。
设每层神经元数量分别是
d1
,
d2
,…,
dp
。每个神经元的应激函数是
f(x)
。
2.分析第一层和第二层并推导全局变量
设一个样本是
x∈Rd1×1
,它从
L1
层输入。
设
L1
和
L2
之间的连接权重矩阵是
W1
,那么:
W1∈Rd2×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
对于输出层
L1
,
j=1
,
a1i
可以视为样本
x
的第
i
分量。
3.反向传播
3.1 代价函数
设训练集是
{(x1,y1),(x2,y2),...,(xm,ym)}
,其中,
yk∈Rdp×1
,这显而易见,输出层的神经元是
dp
个。
研究一个样本
(xk,yk)
,对它而言,代价函数是:
J(W1,W2,b1,b2;xk,yk)=12∥hW1,W2,b1,b2(xk)?yk∥2=12∑q=1dp(ykq?f(zp,kq))2
其中,
ykq
表示,第
yk
的第
q
个分量。
为简便起见,也可以写成
J(W,b;xk,yk)=12∑q=1dp(ykq?f(zpq))2
考虑整个训练集,代价函数是:
J(W,b)=∑k=1mJ(W,b;xk,yk)
考虑到对
W1
和
W2
进行正则化,以避免过拟合,代价函数是:
J(W,b)=∑k=1mJ(W,b;xk,yk)+λ2∑l=1p?1∑i=1dl∑j=1dl+1(Wlj,i)2