反向传播算法(back propagation algorithm)
基本概念
BP算法(即反向传播算法)是在有导师指导下,适合于多层神经元网络的一种学习算法,它建立在梯度下降法的基础上。
旨在得到最优的全局参数矩阵,进而将多层神经网络应用到分类或者回归任务中去。
δ(l)j="error"ofnodejinlayerl.
δ
代表的是假设
h(x)
的输出和训练集
y
值之间的差,即
δ(l)j=a(l)j−yj
如果把
δ,a,y
都看做向量,则可以用向量化表达式来表示:
δ(l)=al−y
接下来计算前面几层(隐含层直到输出层)的误差:
δ(l−1)=(Θ(l−1))Tδ(l).∗g′(z(l−1))
...
δ(2)=(Θ(2))Tδ(3).∗g′(z(2))
.∗
是两个向量间元素对应相乘,没有
δ(1)
,因为那是我们在训练集所观察到的,不会有误差。
在算法的开始,我们令
Δ(l)ij=0
然后计算出所有的
δ
之后,对其在
Δ
上进行累加:
Δ(l)ij:=Δ(l)ij+a(l)jδ(l+1)i
将其写成向量形式,
ij
对应矩阵下标,可以得到:
Δ(l):=Δ(l)+δ(l+1)(a(l))T
接下来,我们分情况计算:
D(l)ij:=1mΔ(l)ij+λΘ(l)ij,ifj≠0
D(l)ij:=1mΔ(l)ij,ifj=0
通过证明可以发现:
∂∂Θ(l)ijJ(Θ)=D(l)ij
未完…