目前大部分机器学习算法都是基于统计学, 统计学习方法的三要素:模型策略和算法。
基本步骤:
1 得到有限的训练数据集合
2 确定包含所有可能的模型假设空间,即学习模型的集合
3 确定模型选择的准则,其学习策略
4 实现求解最优模型的算法,即学习的算法
5 通过学习方法 选择最优模型,(刚开始随机初始化模型)
6 利用学习的最优模型对新数据进行预测或分析
统计学习方法 主要用有监督方法, 包括 分类标注和回归等问题。
策略是三大要素之一,
有了模型的假设空间,统计学习接着需要考虑的是按照什么样的准则学习或选择最优的模型,统计学习的目标在于从假设空间中选取最优的模型。
所有就有了损失函数
caffe中实现了 七种常见的损失函数
损失函数可以看做 误差部分(loss term) + 正则化部分(regularization term)
1.1 Loss Term
loss 是估计值和真实值之映射到某一空间的误差,而loss function就是这种误差的描述形式,loss function反映出了对于问题的定义。在caffe中,包含了常用的loss function,主要有以下几种:
CONTRASTIVE_LOSS
MULTINOMIAL_LOGISTIC_LOSS
SIGMOID_CROSS_ENTROPY_LOSS
SOFTMAX_LOSS
EUCLIDEAN_LOSS
HINGE_LOSS
INFOGAIN_LOSS
在有监督的机器学习中,需要有标签数据,与此同时,也需要有对应的损失函数(Loss Function)。
在Caffe中,目前已经实现了一些损失函数,包括最常见的L2损失函数,对比损失函数,信息增益损失函数等等。在这里做一个笔记,归纳总结Caffe中用到的不同的损失函数,以及分析它们各自适合的使用场景。
这个loss的具体含义就是所有样本估计值和预测值的欧式距离平方的均值,也就是均方根误差(MSE)。
假设模型结果与测量值 误差满足,均值为0的高斯分布,即正态分布。这个假设是靠谱的,符合一般客观统计规律。
数据x与y的条件概率:
若使 模型与测量数据最接近,那么其概率积就最大。概率积,就是概率密度函数的连续积,这样,就形成了一个最大似然函数估计。对最大似然函数估计进行推导,就得出了求导后结果: 平方和最小公式
MSE误差的优点是执行简单,较容易理解,缺点就是强制预测和标注要exactly的匹配,也就是一个非0即1的概念,本节点和其他节点是独立的,这样带来的问题是会导致最后的train出来的model有可能并不是那么准确。
输入:
输出:
适合场景:
回归,特别是其回归的值是实数值得时候。
输入:
输出:
形状:
其中 .
适合场景:
可以用来训练Siamese网络
For an intended output t = ±1 and a classifier score y, the hinge loss of the prediction y is defined as
Note that y should be the "raw" output of the classifier's decision function, not the predicted class label. E.g., in linear SVMs,
It can be seen that when t and y have the same sign (meaning y predicts the right class) and
, the hinge loss
, but when they have opposite sign,
increases linearly with y (one-sided error).
来自 <http://en.wikipedia.org/wiki/Hinge_loss>
Plot of hinge loss (blue) vs. zero-one loss (misclassification, green:y < 0) for t = 1 and variable y. Note that the hinge loss penalizes predictions y < 1, corresponding to the notion of a margin in a support vector machine.
来自 <http://en.wikipedia.org/wiki/Hinge_loss>
在Pegasos: Primal Estimated sub-GrAdient SOlver for SVM论文中
这里把第一部分看成正规化部分,第二部分看成误差部分,注意对比ng关于svm的课件
不考虑规则化
考虑规则化
输入:
形状: 预测值 代表着预测 个类中的得分(注:CHW表示着在网络设计中,不一定要把预测值进行向量化,只有其拉直后元素的个数相同即可。) . 在SVM中, 是 D 维特征 , 和学习到的超平面参数 内积的结果
所以,一个网络如果仅仅只有全连接层 + 铰链损失函数,而没有其它的可学习的参数,那么它就等价于SVM
标签值:
标签 , 是一个整数类型的数 其代表在 个类中的正确的标签。
输出:
形状:
损失函数计算: , 范数 (默认是 , 是 L1 范数; L2 范数,正如在 L2-SVM中一样,也有实现),
应用场景:
在一对多的分类中应用,类似于SVM.
输入:
输出:
形状:
如果一个事件发生的概率为:
输入:
形状: 预测值 范围中, 表示这预测的每一类的概率,共 个类. 每一个预测概率 的和为1: .
形状: 标签 , 是一个整数值,其范围是 表示着在 个类中的索引。
输出:
应用场景:
在一对多的分类任务中使用,直接把预测的概率分布作为输入.
输入:
输出:
应用场景:
预测目标概率分布
输入:
输出:
应用场景:
在一对多分类中应用。
版权声明:本文为博主原创文章,未经博主允许不得转载。