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

反向传播算法(back propagation algorithm)

基本概念

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

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

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

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

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

δ ( l 1 ) = ( Θ ( l 1 ) ) T δ ( l ) . g ( z ( l 1 ) )

. . .

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

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

Δ i j ( l ) = 0

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

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

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

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

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

未完…

猜你喜欢

转载自blog.csdn.net/sinat_25721683/article/details/79240190