Machine Learning - Coursera week5 cost function and backpropagation 2

1. 回归cost function

cost function for a neural network is:
J ( Θ ) = 1 m t = 1 m k = 1 K [ y k ( t )   log ( h Θ ( x ( t ) ) ) k + ( 1 y k ( t ) )   log ( 1 h Θ ( x ( t ) ) k ) ] + λ 2 m l = 1 L 1 i = 1 s l j = 1 s l + 1 ( Θ j , i ( l ) ) 2

simple non-multiclass classification (k = 1) and disregard regularization, the cost is computed with:

c o s t ( t ) = y ( t ) l o g ( h Θ ( x ( t ) ) + ( 1 y ( t ) ) l o g ( 1 h Θ ( x ( t ) )

The δ j ( l ) is the error for a j ( l ) ,

δ j ( l ) = c o s t ( t ) z j ( l )

2. 计算 δ j ( l )

回顾一下前向传播,某一个节点的值是如何计算的。我们将把(xi,yi )输入到这个网络当中, x i 1 x i 2 将是我们对输入层的设置. 当我们进入第一个隐层, 我们会计算 z 1 ( 2 ) z 2 ( 2 ) .然后我们来用冲击函数计算他们的激励值有 a 1 ( 2 ) a 2 ( 2 ) 。之后我们把这些值乘以相应的权重如 θ 10 ( 2 ) , θ 11 ( 2 ) , θ 12 ( 2 ) 并赋予给 z 1 ( 3 ) ,再使用sigmoid函数激活得到 a 1 ( 3 ) 。 类似的,我们一直得到 z 1 ( 4 ) 和最后的结果 a 1 ( 4 ) .
p8
误差反向传播与正向传播很像,我们先看他的代价函数。考虑最简单的一个输出的情况:
J ( Θ ) = 1 m t = 1 m [ y ( t )   log ( h Θ ( x ( t ) ) ) + ( 1 y ( t ) )   log ( 1 h Θ ( x ( t ) ) ) ] + λ 2 m l = 1 L 1 i = 1 s l j = 1 s l + 1 ( Θ j , i ( l ) ) 2
不考虑正则化:

J ( Θ ) = 1 m t = 1 m [ y ( t )   log ( h Θ ( x ( t ) ) ) + ( 1 y ( t ) )   log ( 1 h Θ ( x ( t ) ) ) ]

上面简化的代价函数所做的事情就和下面的函数是一样的:
c o s t ( t ) = y ( t ) l o g ( h Θ ( x ( t ) ) + ( 1 y ( t ) ) l o g ( 1 h Θ ( x ( t ) )

这个函数的作用等价于逻辑回归时使用的均方误差,描述模型的输出和真实值的接近程度。

反向传播在做什么
p9
首先,设置delta项 δ 1 ( 4 ) ,正如我们对前向传播算法对训练数据i的做法一样。 δ 1 ( 4 ) = a 1 ( 4 ) y i 就是我们预测结果和真实结果的误差。我们 δ 1 ( 4 ) 反向传播回去,得到 δ 1 ( 3 ) , δ 2 ( 3 ) . 进一步往前,得到 δ 1 ( 2 δ 2 ( 2 ) . 看起来就像是前向传播,只不过我们现在反过来做了. 看看最后我们如何得到 δ 2 ( 2 ) . 所以我们得到 δ 2 ( 2 ) 和前向传播类似,它与权重 Θ 11 ( 2 Θ 22 ( 2 ) ,以及下一层的误差结果 δ 1 ( 3 ) , δ 2 ( 3 ) 相关,把这个值乘以它权值,最后做加权求和就得到了 δ 2 ( 2 ) 。同理这里还要知道 δ 2 ( 3 ) ,这就等于 δ 1 ( 4 ) 乘以它的权重。我们一般不考虑偏置单元。

猜你喜欢

转载自blog.csdn.net/qq_23869697/article/details/81432431