【CS231n笔记】04 Backpropagation and Neural Networks part 1

主要内容:
1.反向传播算法
2.神经网络介绍

1.反向传播算法

第二节和第三节中已经介绍了分类器的评分函数,两种常用的损失函数,以及通过梯度下降进行优化的方法,计算梯度,然后沿着梯度相反的方向进行优化,一般用解析梯度来计算,用数值梯度进行检查。但是,对于复杂的模型来说,求取每个参数的解析梯度也是非常复杂的,所以要通过另外一个角度来解决这个问题,即梯度的反向传播(Backpropagation)算法。
首先用计算图的方式来描述模型,对于线性分类器可以表示为
这里写图片描述
对于卷积神经网络(Convolutional Network),以AlexNet为例,可以表示为
这里写图片描述
另外还有更加复杂的神经图灵机(Neural Turing Machine)。
对于这种复杂的模型来说,前向(损失函数值)和反向(梯度值)的计算用表达式来描述是不现实的。
一般以计算图的方式对模型进行描述,将模型中的模块抽象成层(layer)的概念,层内实现了初始化、前向传播和反向传播,然后将不同功能的层组合,成为一个复杂的模型。这一过程即如搭积木一般
这里写图片描述
梯度在层之间从后向前计算,某参数的梯度包含两个部分,局部梯度和整体梯度,其中整体梯度即损失函数对于该参数后面所有层中相关变量的偏导数。

总结
● 神经网络模型一般都非常复杂,对每个参数写出其梯度表达式是不现实的
● 反向传播就是沿着计算图的结构递归地应用链式法则来求取输入、参数、中间件的梯度
● 用计算图结构实现模型,其中的结点/层实现了各自的前向和反向
● 前向:计算一个操作的结果,保存用于计算梯度所需的中间变量
● 反向:计算损失函数相对于输入的梯度值

2. 神经网络介绍

这里写图片描述
线性分类器评分函数: f=Wx
两层神经网络评分函数: f=W2max(0,W1x)
其中 max() 是一种激活函数(Activation),后面会介绍多种常用激活函数。神经网络的计算过程可以表示如下
这里写图片描述
以CIFAR-10数据集为训练样本,输入层为

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值