机器学习入门:吴恩达机器学习(第五周)神经网络——反向传播

吴恩达机器学习(第五周)神经网络——反向传播


因为对于小白来说,看的我一头雾水,因此通过搜集资料,整理一下知识,对Ng男神的反向传播加深理解(注:这里引用了其他一些大神的资料O_O)

为什么要使用反向传播

在反向传播算法提出之前人们应该想到了使用正向传播SGD(梯度下降)学习模型,也想到了一些办法求解网络模型的偏导数,但这些算法求解效率比较低,所以提出反向传播算法来更高效的计算偏导数。(那时的网络模型还比较浅只有2-3层,参数少。估计即便不适用反向传播这种高效的算法也能很好的学习。一旦有人想使用更深的网络自然会遇到这个偏导数无法高效计算的问题,提出反向传播也就势在必行了)

在这里插入图片描述
在这里插入图片描述

为什么说正向传播效率低呢,反向传播怎么样实现高效计算偏导数的? 请先回顾一下当初我们学习微积分时是如何计算偏导数的? (链式法则,具体看下面)

e = (a+b)*(b+1)用如下计算图表达:
在这里插入图片描述
令a=2,b=1则有:
在这里插入图片描述

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
让我们再次考虑前面的例子:
在这里插入图片描述
如果用前向求导模式:关于b向前求导一次

在这里插入图片描述
如果用反向求导模式:向后求导
在这里插入图片描述
在这里插入图片描述
因此,当我们训练神经网络时,把“损失“ 看作 ”权重参数“ 的函数,需要计算”损失“关于每一个”权重参数“的偏导数(然后用梯度下降法学习)。 神经网络的权重参数可以是百万甚至过亿级别。因此 反向求导模式(反向传播算法)可以极大的加速学习。

再熟悉一下链式法则:
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
神经网络就是一个层次很多的多元函数,我们可以隐约从 链式法则 中感觉到反向传播的意味

反向传播详解

Ok,弄清楚我们为什么要使用反向传播以后,开始步入正题
大家应该很清楚正向传播,这里我就不再赘述,看下图应该就能看懂
在这里插入图片描述
这里注明一下:下面的J(θ)和J是同一个函数,他们是一样的,很抱歉交替出现,但是不影响我们理解
我们的目的就是为了求解
在这里插入图片描述

在这里插入图片描述
这个其实只是一个中间量而已,为了求解J(θ)对θ(L)ij的偏导

为什么定义一个中间量呢?为什么要这么定义呢?
在这里插入图片描述
这样我们就看出定义的δ在J(θ)求导中的作用了!!
在这里插入图片描述
在这里插入图片描述
接下来的公式中,C就是J(θ),这两个是一样的,也不影响理解QAQ,只是我实在用不惯这个公式编辑,先这么看吧~
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
上面公式的第一步其实是这么推出来的:

在这里插入图片描述
在这里插入图片描述
这个公式也就是吴恩达(Ng)所说的:
在这里插入图片描述
因此我们为了求J(θ)对θ的偏导,看到如下等式右边的求和符号,只需要将所有的 δ i ∗ a j ( L ) δ_i*a_j^{(L)} δiaj(L)求和就行:
在这里插入图片描述
注:θ和w一样,J(θ)和J和C一样,都是同一个东西,很抱歉符号不统一带来的不便

整理一下式子:
对于输出层,就是最后一层,我们的 δ j ( L ) δ_j^{(L)} δj(L)就是:
(1)
(1)
(2)
在这里插入图片描述
注:上面这个式子就是Ng所说的
在这里插入图片描述
(3)
在这里插入图片描述
在这里插入图片描述
这个D就是我们通过累加计算得出J(θ)对θ的偏导,累加就是将所有的 δ i ∗ a j ( L ) δ_i*a_j^{(L)} δiaj(L)求和,相当于梯度算法的θ=θ-α*D的D项
在这里插入图片描述
这就是梯度算法,而且是反向的哦,哈哈

  • 4
    点赞
  • 10
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值