反向传播算法-机器学习(machine learning)笔记(Andrew Ng)

反向传播算法(back propagation algorithm)

基本概念

BP算法(即反向传播算法)是在有导师指导下,适合于多层神经元网络的一种学习算法,它建立在梯度下降法的基础上。
旨在得到最优的全局参数矩阵,进而将多层神经网络应用到分类或者回归任务中去。

δ(l)j="error"ofnodejinlayerl. δ j ( l ) =" e r r o r " o f n o d e j i n l a y e r l .

δ δ 代表的是假设 h(x) h ( x ) 的输出和训练集 y y 值之间的差,即
δj(l)=aj(l)yj

如果把 δ,a,y δ , a , y 都看做向量,则可以用向量化表达式来表示:
δ(l)=aly δ ( l ) = a l − y

接下来计算前面几层(隐含层直到输出层)的误差:

δ(l1)=(Θ(l1))Tδ(l).g(z(l1)) δ ( l − 1 ) = ( Θ ( l − 1 ) ) T δ ( l ) . ∗ g ′ ( z ( l − 1 ) )

... . . .

δ(2)=(Θ(2))Tδ(3).g(z(2)) δ ( 2 ) = ( Θ ( 2 ) ) T δ ( 3 ) . ∗ g ′ ( z ( 2 ) )

. . ∗ 是两个向量间元素对应相乘,没有 δ(1) δ ( 1 ) ,因为那是我们在训练集所观察到的,不会有误差。
在算法的开始,我们令

Δ(l)ij=0 Δ i j ( l ) = 0

然后计算出所有的 δ δ 之后,对其在 Δ Δ 上进行累加:
Δ(l)ij:=Δ(l)ij+a(l)jδ(l+1)i Δ i j ( l ) := Δ i j ( l ) + a j ( l ) δ i ( l + 1 )

将其写成向量形式, ij i j 对应矩阵下标,可以得到:
Δ(l):=Δ(l)+δ(l+1)(a(l))T Δ ( l ) := Δ ( l ) + δ ( l + 1 ) ( a ( l ) ) T

接下来,我们分情况计算:
D(l)ij:=1mΔ(l)ij+λΘ(l)ij,ifj0 D i j ( l ) := 1 m Δ i j ( l ) + λ Θ i j ( l ) , i f j ≠ 0

D(l)ij:=1mΔ(l)ij,ifj=0 D i j ( l ) := 1 m Δ i j ( l ) , i f j = 0

通过证明可以发现:
Θ(l)ijJ(Θ)=D(l)ij ∂ ∂ Θ i j ( l ) J ( Θ ) = D i j ( l )

未完…

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值