CS231n课程笔记4.1:反向传播BP
2016-12-19 21:03
375 查看
CS231n简介
详见 CS231n课程笔记1:Introduction。注:斜体字用于注明作者自己的思考,正确性未经过验证,欢迎指教。
课程作业
关于BP实现的实例请参考 CS231n作业笔记1.3:SVM的误差函数以及反向传播(非向量及向量算法)。1. 计算图 VS 微积分
如果可以直接使用微积分得到gradient,使用BP则会显得效率低下。但是通常情况下我们需要计算多层的神经网络,其中设计很多不可求导的计算,这就使得直接求导工程巨大,甚至难以实现。同时BP算法容易实现,易于拓展,容易纠错。2. BP计算方法
前向计算的时候同时计算local gradient,反向计算的时候把传播回来的global gradient与local gradient相乘即可得到需要向前一层节点传播的global gradient。一个例子如下:
具体的,
最后一层节点(一般为Loss)所接受到的global gradient为1。
加法运算符是把输出的gradient传播到所有的输入链接中。
max运算符是传播到较大的输入链接中。
乘法运算符是乘以其他输入乘积和到输入链接中。
如果节点有多个输出连接,那么他的输出global gradient是所有输出连接之和。
可以把多个运算符合并为一个运算符,以简化计算,提高效率。
3. 向量化算法
大多数情况,输入输出都是向量,则local gradient为两者的Jacobian矩阵,然后仍然是global gradient与local gradient相乘。对于max等运算节点,因为相应的Jacobian矩阵非常稀疏,可以直接采用向量元素相乘的形式。
一般深度学习网络的API中,为如何进行前向后向传播都留出了很大的余地,供使用者自由发挥。
相关文章推荐
- 深度学习与计算机视觉[CS231N] 学习笔记(4.1):反向传播(Backpropagation)
- CS231n课程笔记翻译:反向传播笔记
- CS231n课程笔记翻译:反向传播笔记
- CS231n 课程笔记翻译:反向传播笔记
- CS231n课程笔记翻译5:反向传播笔记
- CS231n课程笔记翻译(九):反向传播笔记
- CS231n课程学习笔记(四)——反向传播
- CS231n官方笔记:反向传播
- CS231n(12):反向传播笔记
- CS231N笔记——从KNN到反向传播
- CS231n课程:反向传播学习记录
- 深度学习入门课程学习笔记06 反向传播
- 【李宏毅ML笔记】 11 BP反向传播
- 深度学习入门课程学习笔记06 反向传播
- CS231n作业笔记1.3:SVM的误差函数以及反向传播(非向量及向量算法)
- CS231n课程笔记翻译:图像分类笔记(上)
- cs231n-(4)反向传播
- 深度学习21天实战Caffe学习笔记--笔记5--caffe中前向传播、反向传播及最优化求解过程
- 深度学习框架可使用组件化的思考&BP反向传播的思考
- cs231n(三) 误差反向传播