Skip to content

Stanford机器学习笔记——Neural Network

1. Neural Network ​

  • ai(j):第 j 层的第 i 个单元
  • Θ(j):第 j 层到第 j+1 层映射的权重矩阵
a1(2)=g(Θ10(1)x0+Θ11(1)x1+Θ12(1)x2+Θ13(1)x3)a2(2)=g(Θ20(1)x0+Θ21(1)x1+Θ22(1)x2+Θ23(1)x3)a3(2)=g(Θ30(1)x0+Θ31(1)x1+Θ32(1)x2+Θ33(1)x3)hΘ(x)=a1(3)=g(Θ10(2)a0(2)+Θ11(2)a1(2)+Θ12(2)a2(2)+Θ13(2)a3(2))

假设第 j 层单元数为 sj(不包括偏置单元),第 j+1 层单元数为 sj+1,则 Θj∈sj+1×(sj+1)。

2. Cost Function ​

  • L:总层数
  • sl:第 l 层的单元数(不包括偏置单元)
  • m:样本个数
  • K:输出单元数
J(Θ)=−1m∑i=1m∑k=1K[yk(i)log(hΘ(x(i)))k+(1−yk(i))log(1−(hΘ(x(i)))k)]+λ2m∑l=1L−1∑i=1sl∑j=1sl+1(Θji(l))2

3. Backpropagation ​

假设只有一个样本 (x,y) 的情况,神经网络如下:

在 forward propagation 阶段:

a(1)=xz(2)=Θ(1)a(1)a(2)=g(z(2))    (add a0(2))z(3)=Θ(2)a(2)a(3)=g(z(3))    (add a0(3))z(4)=Θ(3)a(3)a(4)=hΘ(x)=g(z(4))

在 backpropagation 阶段,令 δj(l) 表示第 l 层第 j 个节点的误差,则:

δ(4)=a(4)−yδ(3)=(Θ(3))Tδ(4).∗g′(z(3))δ(2)=(Θ(2))Tδ(3).∗g′(z(2))No δ(1)

其中 g′(z(l))=a(l)(1−a(l)) (sigmoid函数求导)。

推导过程

对于隐藏层:

δi(l)=∂J∂zi(l)=∂J∂ai(l)∂ai(l)∂zi(l)

其中:

∂J∂ai(l)=∂J∂z1(l+1)∂z1(l+1)∂ai(l)+∂J∂z2(l+1)∂z2(l+1)∂ai(l)+...+∂J∂zsl+1(l+1)∂zsl+1(l+1)∂ai(l)=∑j=1sl+1∂J∂zj(l+1)∂zj(l+1)∂ai(l)=∑j=1sl+1∂J∂zj(l+1)Θji(l)=∑j=1sl+1δj(l+1)Θji(l)∂ai(l)∂zi(l)=ai(l)(1−ai(l))

因此:

δi(l)=(∑j=1sl+1δj(l+1)Θji(l))ai(l)(1−ai(l))

所以:

δ(l)=(Θ(l))Tδ(l+1).∗a(l).∗(1−a(l))

有了上面的推导之后,可以得到:

∂∂Θij(l)J(Θ)=∂J(Θ)∂zi(l+1)∂zi(l+1)∂Θij(l)=δi(l+1)aj(l)

4. 直观理解 ​

在 forward propagation 阶段:

a1(3)=g(Θ11(2)a1(2)+Θ12(2)a2(2))

在 backpropagation 阶段:

δ1(2)=Θ11(2)δ1(3)+Θ21(2)δ2(3)

TIP

这里只是一个直观的解释,因此并未考虑偏置单元 a0(2) 以及 ∂a1(2)∂z1(2)。