1. Hypothesis 函数
1.二元分类:
以如下神经网络为例:
⎡⎣⎢⎢⎢x0x1x2x3⎤⎦⎥⎥⎥→⎡⎣⎢⎢⎢a(2)1a(2)2a(2)3⎤⎦⎥⎥⎥→hθ(x)
其Hypothesis函数为:
a(2)1=g(Θ(1)10x0+Θ(1)11x1+Θ(1)12x2+Θ(1)13x3)a(2)2=g(Θ(1)20x0+Θ(1)21x1+Θ(1)22x2+Θ(1)23x3)a(2)3=g(Θ(1)30x0+Θ(1)31x1+Θ(1)32x2+Θ(1)33x3)hΘ(x)=a(3)1=g(Θ(2)10a(2)0+Θ(2)11a(2)1+Θ(2)12a(2)2+Θ(2)13a(2)3)
2.多元分类:
对如下神经网络:
⎡⎣⎢⎢⎢⎢⎢⎢⎢x0x1x2⋮xn⎤⎦⎥⎥⎥⎥⎥⎥⎥→⎡⎣⎢⎢⎢⎢⎢⎢a(2)0a(2)1a(2)2⋮⎤⎦⎥⎥⎥⎥⎥⎥→⎡⎣⎢⎢⎢⎢⎢⎢a(3)0a(3)1a(3)2⋮⎤⎦⎥⎥⎥⎥⎥⎥→⋯→⎡⎣⎢⎢⎢⎢hΘ(x)1hΘ(x)2hΘ(x)3hΘ(x)4⎤⎦⎥⎥⎥⎥
有:
h(i)Θ(x)=⎡⎣⎢⎢⎢⎢⎢⎢h(i)Θ(x)1h(i)Θ(x)2h(i)Θ(x)3h(i)Θ(x)4⎤⎦⎥⎥⎥⎥⎥⎥,y(i)∈{⎡⎣⎢⎢⎢1000⎤⎦⎥⎥⎥,⎡⎣⎢⎢⎢0100⎤⎦⎥⎥⎥,⎡⎣⎢⎢⎢0010⎤⎦⎥⎥⎥,⎡⎣⎢⎢⎢0001⎤⎦⎥⎥⎥}
其中
h(i)Θ(x)
计算方法与二元分类类似。
这一计算过程称为前向传播(forward propagation)。
2. Cost 函数
1. 定义
对多元分类神经网络,定义:
L
= 网络层数
则其Cost函数为(加入了正则项):
J(Θ)=−1m∑i=1m∑k=1K[y(i)klog((hΘ(x(i)))k)+(1−y(i)k)log(1−(hΘ(x(i)))k)]+λ2m∑l=1L−1∑i=1sl∑j=1sl+1(Θ(l)j,i)2
要获得使Cost函数值最小的
Θ
值,需求得
∂∂Θ(l)i,jJ(Θ)
。
这一过程可通过反向传播(backpropagation)算法实现:
2. 反向传播算法
给定训练样本
{(x(1),y(1))⋯(x(m),y(m))}
,
对所有
(l,i,j)
,使
Δ(l)i,j:=0
作为初始值。
针对每个训练样本,做如下循环(
t=1:m
):
1. 使
a(1):=x(t)
2. 通过前向传播,计算出
l=2,3,…,L
时
a(l)
的值
3. 借助
y(t)
,计算出
δ(L)=a(L)−y(t)
4. 使用公式
δ(l)=((Θ(l))Tδ(l+1)) .∗ a(l) .∗ (1−a(l))
,得到
δ(L−1),δ(L−2),…,δ(2)
的值
5.
Δ(l)i,j:=Δ(l)i,j+a(l)jδ(l+1)i
循环结束。
根据循环结果,可求得:
D(l)i,j:=1m(Δ(l)i,j+λΘ(l)i,j), if j≠0
D(l)i,j:=1mΔ(l)i,j, if j=0
最后,有:
∂∂Θ(l)ijJ(Θ)=D(l)ij