吴恩达机器学习——反向传播算法

吴恩达机器学习——反向传播算法

    • 1.误差 $\delta^{(3)}$, $\delta^{(2)}$的推导
    • 2.反向传播算法的计算过程

前言:反向传播算法是用来求偏导数的,即 σ J ( θ ) σ θ i j ( 2 ) \frac{\sigma{J(\theta)}}{\sigma{\theta^{(2)}_{ij}}} σθij(2)σJ(θ),有了这个偏导数,就可以使用梯度下降算法或其他高级算法得出 θ \theta θ

1.误差 δ ( 3 ) \delta^{(3)} δ(3), δ ( 2 ) \delta^{(2)} δ(2)的推导

反向传播算法中误差的计算过程:
吴恩达机器学习——反向传播算法_第1张图片
首先,这里没有使用线性回归中的平方差来计算,而是直接定义了 δ ( 4 ) = a ( 4 ) − y , 即预测值减去实际值 \delta^{(4)}=a^{(4)}-y,\text{即预测值减去实际值} δ(4)=a(4)y,即预测值减去实际值

接下来我们看一下 δ ( 3 ) \delta^{(3)} δ(3)的推导过程:
吴恩达机器学习——反向传播算法_第2张图片
1.代价函数(这里我们考虑最简单的情况,k=1,并且只考虑一个训练样本( x ( i ) x^{(i)} x(i), y ( i ) y^{(i)} y(i))):
c o s t ( i ) = − y ( i ) ∗ l o g ( h ( x ( i ) ) ) − ( 1 − y ( i ) ) l o g ( 1 − h ( x ( i ) ) ) cost(i)=-y^{(i)}*log(h(x^{(i)}))-(1-y^{(i)})log(1-h(x^{(i)})) cost(i)=y(i)log(h(x(i)))(1y(i))log(1h(x(i)))
2.误差计算公式: δ j ( l ) = σ c o s t ( i ) σ z j ( l ) \delta^{(l)}_{j}=\frac{\sigma{cost(i)}}{\sigma{z^{(l)}_j}} δj(l)=σzj(l)σcost(i).
这里的误差计算公式为什么和 δ ( 4 ) \delta^{(4)} δ(4)不一样呢?我们先看一下等式右边的偏导数等于多少。
吴恩达机器学习——反向传播算法_第3张图片
【说明:上图中的 y ( i ) y^{(i)} y(i)是实数而不是向量,因为我们这里暂时只考虑了k=1的情况。】
可以看到和 δ ( 4 ) \delta^{(4)} δ(4)的定义是一样的。网上也看到其他说法:?是代价函数关于所计算出的中间项 z 的偏导数,它所衡量的是:为了影响这些中间值,我们所需要改变神经网络中的权重的程度

3. δ ( 3 ) , δ ( 2 ) \delta^{(3)},\delta^{(2)} δ(3)δ(2)的推导
吴恩达机器学习——反向传播算法_第4张图片

2.反向传播算法的计算过程

吴恩达机器学习——反向传播算法_第5张图片
Δ i j ( l ) \Delta^{(l)}_{ij} Δij(l)的推导过程:
吴恩达机器学习——反向传播算法_第6张图片

你可能感兴趣的:(机器学习入门,吴恩达,机器学习,反向传播算法)