Caffe学习:Loss
来源:互联网 发布:excel查重软件 编辑:程序博客网 时间:2024/05/17 04:43
原文
Loss(损失)
与绝大多数的机器学习引擎一样,Caffe是由一个loss function(损失函数)驱动的。loss function也称为 error function,cost function或者objective function。loss function利用模型中的参数(比如模型中网络的weights-权重参数)运算得出一个(标量)结果,这个结果表明参数设置的badness,通过最小化loss function得出的badness,来优化算法,达到学习的目标。
Caffe中的loss是由Net的Forward pass计算得出的。每一个Layer根据输入的Blobs计算得到输出的Blobs。某些Layer的输出会被用于loss function计算badness。对于one-versus-all classification task(多分类问题),一个经典的loss function是SoftmaxWithLoss function(广义线性回归分析损失函数)。如下定义:
- 1
- 2
- 3
- 4
- 5
- 6
- 7
- 在SoftmaxWithLoss function中,输出是一个标量,计算的是预测值(pred)与实际值(label)之间的平均误差(loss)。
Loss weights(损失权重)
对于有多个Layer组成的Net而言(例如一个由SoftmaxWithLoss layer和EuclideanLoss layer组成的Net),loss weights(权重)用来表征不同Layer产生的loss的重要性。
Caffe里面的约定,Layer名称中以Loss结尾表示这是一个会产生loss的Layer,除此之外,其他的Layer只是单纯的用于中间计算。然而,任何一个Layer都可以被用于产生loss,如果为Layer产生的每一个output Blob添加一个属性:
loss_weight: <float>
的话。每一个Loss Layer都有一个隐含的loss weight,对于第一个top/output,loss weight是1,对于其他的top/output,loss weight是0;其他类型Layer隐含的loss weight都是0。所以上述的SoftmaxWithLoss layer也可以写成:
- 1
- 2
- 3
- 4
- 5
- 6
- 7
- 8
然而,反向迭代时,一个Layer可以赋予一个非零的loss weight,用于调整中间Layer产生的一些数据、参数。对于不止一个输出(top)的Layer(对应的有非零的loss weight),输出的loss是summing over all entries of the blob(对所有输出-blob的loss的和)。
Caffe最后输出的loss,是由Net中所有的loss加权得到的,如下所示(伪代码):
- Caffe学习:Loss
- Caffe学习:Loss
- Caffe学习:Loss
- caffe学习笔记3.3--Loss
- 深度学习之caffe Loss
- caffe loss
- caffe loss
- caffe loss
- Caffe loss
- 【caffe学习笔记】loss layer 损失层
- 学习Caffe(四)Loss Layer解析
- caffe学习 绘制loss和accuracy
- caffe中loss函数代码分析--caffe学习(16)
- Caffe学习:使用pycaffe绘制loss、accuracy曲线
- Caffe学习系列(19): 绘制loss和accuracy曲线
- Caffe学习系列(19): 绘制loss和accuracy曲线
- Caffe学习系列: 绘制loss和accuracy曲线
- DL学习笔记【11】caffe参数调节-loss层
- BZOJ1117: [POI2009]救火站Gas
- 线性回归学习总结(未完待续)
- 光荣之路:产品测试规范(二)
- Linux进程管理工具Supervisor doc 翻译----安装(二)
- MYSQL IF 和 IFNULL
- Caffe学习:Loss
- python实现名片管理系统
- AVL tree
- 前端面试题(变量提升)
- MySql+Mybatis+Druid 优化之MyBatis批量删除、更新
- Excel中range和cells的详解
- LIUNX安装jdk
- 类型的C++除了整数
- 2018年迎春杯复赛入围名单(三年级)