吴恩达机器学习与CS231n对于Backpropagation的解释

在学习斯坦福-吴恩达-机器学习和计算机视觉过程中,我发现两门课程对Backpropagation的解释并不一样,因此进行了一下探究

下面先简单介绍一下每个课程对于Backpropagation的讲解

吴恩达

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

这里吴恩达引入误差这个中间结果进行梯度的计算,将每层上层的误差乘上此层的神经元输出,经过平均和正规化得出梯度

CS231n

在这里插入图片描述

这里使用偏导数传递的方法进行方向传播,概括的说就是使用从下一个神经元传播来的Upstream gradient与本地神经元的Local gradients相乘得到Downstream gradients传播至上一层

总结

二者本质上是相同的,由于CS231n的解释非常接近反向传播的原理,因此这里以其为基础,试图将吴恩达的方法向其转化进行解释。

吴恩达的方法中,每个变量其实都与CS231n中计算Downstream gradients时的各运算成员是对应的:

  1. 误差可以理解为Upstream gradient,δ(L)代表L关于a(L)的偏导数,最后一层的误差是a-y,即代价函数L关于最后一层输出(a(L)即h)的偏导数
  2. ∆可以理解为Downstream gradients * m,即未根据数据量进行求平均的梯度,在吴恩达的公式中,每层的∆是通过对误差和本层神经元输出作积得到的(图中一种是遍历对应元素单独乘,后面红字的矩阵运算写法),这就是对应Upstream gradient与本地神经元的Local gradients相乘的运算
  3. ∆计算公式中出现a(L),这是本地梯度,因为Upstream δ(L+1)是L关于上一层神经元输出a(L+1)的偏导数,如果我们要求L关于本层权重参数的偏导数,那么就需要再乘上上一层神经元输出a(L+1)关于本层神经元输出a(L),这利用了偏导数的传递关系,及CS231n中Downstream gradients的计算公式所示

这样,两门课程对于Backpropagation的计算就联系起来了,CS231n偏向于原理,吴恩达偏向于具体运算过程。

了,CS231n偏向于原理,吴恩达偏向于具体运算过程。

个人认为,可能因为吴恩达的课程基本是一个机器学习的入门,因此对于很多数学原理并不会过多地解释(视频中很多地方都会说不会具体解释其数学原理,某些章节还是optional的),而CS231n是有很多前驱课程的,因此会假设观看者有一定的数学基础,因此会将其原理解释清楚。

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值