CS231n官方笔记:反向传播

最近把CS231n关于反向传播这一节的官方笔记看了一下。这篇算是用中文把原文复述了一遍,中间一些地方加入了我自己的理解,很多地方的表述参考了 CS231n课程笔记翻译:反向传播笔记

Introduction

动机

这篇笔记介绍了一些有助于在直觉上理解反向传播(BP)的知识。反向传播是一种通过递归应用链式法则(chain rule)来计算表达式梯度的方法。理解反向传播过程及其精妙之处,对于理解、实现、设计和调试神经网络非常关键。

问题描述

这节要讨论的核心问题是:给定函数 f(x) x 是一个输入向量,我们感兴趣的问题是计算 f(x) 关于 x 的梯度,即 f(x) .

动机

回想起来,我们关注这个问题的主要原因是在神经网络中我们有损失函数(Loss function) L ,输入 x 由训练数据和神经网络权值组成。比如说,损失函数是SVM函数,输入 x 包含训练数据 (xi,yi),i=1,...N 、权重 W 和偏差 b . 注意训练数据是给定并且固定不变的,而权值是变量,是我们可以控制的(在机器学习中通常都是这样)。因此,尽管我们可以很容易的用BP来计算输入输入样本 xi 上的梯度,但实际上我们通常只计算参数(如 W,b )的梯度。然而,在之后的课程中我们会见到 xi 的梯度有时仍然是有用的,比如说在可视化神经网络、解释神经网络可能在做些什么的时候。

如果你之前对用chain rule推导偏微分已经很熟悉了,我们仍然建议你至少浏览一下这篇笔记,因为它呈现了一个相对成熟的反向传播视角,在该视角中能看见基于实数值链路的反向传播过程,而对其细节的理解和收获将帮助读者更好地通过本课程。

Simple expressions and interpretation of the gradient(简单表达式,梯度的解释)

先从简单的开始,这样我们就能把符号和规则推广到比较复杂的表达式了。先考虑一个简单的二元乘法函数 f(x,y) 。对两个输入变量分别求偏导数还是很简单的:

f(x,y)=xy      fx=y,fy=x

解释:牢记这些导数的意义:函数的自变量在某个点周围的极小区域内变化,而导数就是自变量变化导致的函数在该方向上的变化率:

df(x)dx=limh0f(x+h)f(x)h

注意上式等号左边的分号和等号右边的分号不同,它不是代表除法。这个符号表示操作符 ddx 被作用于函数 f ,并返回一个不同的函数(导数)。对于上述公式,可以认为当 h 非常小的时候,函数可以被一条直线近似,而导数就是这条直线的斜率。换句话说,每个变量的导数指明了整个表达式的值对于该变量的值的敏感程度。

比如, x=4,y=3,f(x,y)=12 , x 的导数

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值