caffe学习笔记3.2--前向传播和反向传播
2017-03-07 22:25
501 查看
caffe学习笔记3从3.1开始主要翻译一下caffe的官方文档,写的非常好,忍不住要作一下。本篇翻译来自caffe官网的:http://caffe.berkeleyvision.org/tutorial/forward_backward.html
前向传播和反向传播是计算神经网络非常重要的部分。
![](https://img-blog.csdn.net/20160425181709805?watermark/2/text/aHR0cDovL2Jsb2cuY3Nkbi5uZXQv/font/5a6L5L2T/fontsize/400/fill/I0JBQkFCMA==/dissolve/70/gravity/Center)
考虑一个简单的逻辑回归分类问题
前向传播:通过网络的输入计算输出结果的过程,在前向传播中,caffe整合每一层的计算得到整个模型的计算函数,这个过程是个自底向上的过程,如图:
![](https://img-blog.csdn.net/20160425182408751?watermark/2/text/aHR0cDovL2Jsb2cuY3Nkbi5uZXQv/font/5a6L5L2T/fontsize/400/fill/I0JBQkFCMA==/dissolve/70/gravity/Center)
数据x通过通过内积层得到g(x),然后通过softmax得到h(g(x))和损失函数(softmax loss)fw(x).
反向传播网络:根据损失计算梯度,在反向传播过程中,Caffe通过自动求导计算逆向组合每一层的梯度得到整个模型的梯度,在反向传播中,这个过程是自顶向下的。如图:
![](https://img-blog.csdn.net/20160425183812304?watermark/2/text/aHR0cDovL2Jsb2cuY3Nkbi5uZXQv/font/5a6L5L2T/fontsize/400/fill/I0JBQkFCMA==/dissolve/70/gravity/Center)
反向过程由loss开始,根据输出计算梯度dfw/dh (fw对h求导), 模型中其余各层的梯度根据链式法则计算。每层的参数:如
参考资料:
http://caffe.berkeleyvision.org/tutorial/forward_backward.html
前向传播和反向传播是计算神经网络非常重要的部分。
考虑一个简单的逻辑回归分类问题
前向传播:通过网络的输入计算输出结果的过程,在前向传播中,caffe整合每一层的计算得到整个模型的计算函数,这个过程是个自底向上的过程,如图:
数据x通过通过内积层得到g(x),然后通过softmax得到h(g(x))和损失函数(softmax loss)fw(x).
反向传播网络:根据损失计算梯度,在反向传播过程中,Caffe通过自动求导计算逆向组合每一层的梯度得到整个模型的梯度,在反向传播中,这个过程是自顶向下的。如图:
反向过程由loss开始,根据输出计算梯度dfw/dh (fw对h求导), 模型中其余各层的梯度根据链式法则计算。每层的参数:如
INNER_PRODUCT层,在反馈过程中对参数计算梯度dfw/dWip.
你只需要定义好模型,这些计算就可以立即执行,caffe已经定义好的前向传播和反向传播的执行方法。
Net::Forward()和Net::Backward()实现整个网络的前向与后向的传播,Layer::Forward和Layer::Backward()计算每一层的前后向的传播
每一层都有backward_{cpu,gpu}和backward{cpu,gpu}方法适应不同的计算模式。但是,一个层仅能使用其中的一种模式
Solver优化一个模型,首先通过forward计算输出和损失,然后通过backward生成模型的梯度,让后根据梯度和权值更新最小话损失函数,Solver,Net和Layer间的分离保证了caffe的模块化设计和开源。
参考资料:
http://caffe.berkeleyvision.org/tutorial/forward_backward.html
相关文章推荐
- caffe学习笔记3.2--前向传播和反向传播
- 深度学习21天实战实战caffe学习笔记<11:Caffe 反向传播>
- 深度学习21天实战Caffe学习笔记--笔记5--caffe中前向传播、反向传播及最优化求解过程
- 深度学习21天实战Caffe学习笔记--笔记5--caffe中前向传播、反向传播及最优化求解过程
- 深度卷积神经网络学习笔记2:步长不为1的卷积前向传播和反向传播
- 神经网络学习笔记-03-循环神经网络-反向传播计算公式的证明
- 深度学习与计算机视觉[CS231N] 学习笔记(4.1):反向传播(Backpropagation)
- CS231n课程学习笔记(四)——反向传播
- 深度学习入门课程学习笔记06 反向传播
- UFLDL深度学习笔记 (一)反向传播与稀疏自编码
- 反向误差传播算法学习笔记
- 语音学习笔记13------谈谈斯坦福大学卷积神经网络之反向传播
- caffe 源码学习(4)_反向传播权重更新
- 深度学习入门课程学习笔记06 反向传播
- 深度学习笔记---反向传播
- 深度学习笔记三:反向传播(backpropagation)算法
- 无意义-深度学习前向反向传播笔记
- 反向传播(back propagation)算法学习笔记
- 深度学习笔记(3)——CNN中一些特殊环节的反向传播
- 深度学习21天实战实战caffe学习笔记<10:Caffe前向传播>