CS231n学习记录Lec5 Backpropagation and Neural Networks反向传播与神经网络

Lec5 Backpropagation and Neural Networks反向传播与神经网络


1. 反向传播Backpropagation

  • 解析梯度与数值梯度

    用计算图表示函数,注意节点。有时候表达式过于复杂以致于不想用微积分计算出表达式型的梯度,将复杂的表达式分解成一些节点计算,这样就可以使用一些很简单的值计算出梯度。

  • 反向传播
    使用链式法则,将上游梯度和本地梯度相乘,计算节点的梯度。 接收从上游传回来的梯度值乘以本地的梯度值,再往直接相连的下游节点传递,不考虑直接相连节点之外的东西。问题在于求解这个本地梯度。
    同样也可以将一些小节点聚合起来组成一个相对大一点的复杂节点,只要你能够写出这个复杂节点的本地梯度。
    加法门将upstream梯度平均回传;max们将upstream梯度回传为一个变量为1另一个变量为0;而乘法门( xy x ∗ y )基本上是一个梯度交换作用, x x 的梯度值是y,反之,也可以理解成一个尺度缩放器,对这一个分支根据另一个分支的值对其进行缩放。
    计算某个梯度有问题的时候就考虑一下计算图,然后按节点进行计算。
    反向传播梯度计算示例1

反向传播梯度计算示例2

  • 向量化计算
    Jacobian matrix(?)会是一个对角矩阵。 向量的梯度和原向量一样大小,其中每个元素的梯度代表着这个元素对最终函数影响的大小。一旦计算出梯度后要检查是不是和原向量一样大小。
    这里写图片描述

  • 前向后向模块化
    做成forward()/backward() API
    正向计算的结果需要保存下来,用于反向计算。

2.神经网络
是一个非线性函数。虽然有多个线性函数堆叠但一定有一个非线性函数,所以带来了非线性性质。
这里写图片描述
Relu函数 正区间内的线性函数

神经网络层数的叫法:
这里写图片描述
向量计算的高效性体现在在一层隐藏层里面我们通过一次矩阵乘法来得到所有神经元的值。

一个简单基本的神经网络结构示意:
这里写图片描述

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值