700字范文,内容丰富有趣,生活中的好帮手!
700字范文 > [机器学习] 深入理解 目标函数 损失函数和代价函数

[机器学习] 深入理解 目标函数 损失函数和代价函数

时间:2019-08-11 09:01:44

相关推荐

[机器学习] 深入理解 目标函数 损失函数和代价函数

目标函数,损失函数和代价函数

基本概念:

损失函数:计算的是一个样本的误差

代价函数:是整个训练集上所有样本误差的平均

目标函数:代价函数 + 正则化项

通常机器学习每一个算法中都会有一个目标函数,算法的求解过程是通过对这个目标函数优化的过程。在分类或者回归问题中,通常使用损失函数(代价函数)作为其目标函数。损失函数用来评价模型的预测值和真实值不一样的程度,损失函数越好,通常模型的性能越好。不同的算法使用的损失函数不一样。

实际应用:

损失函数和代价函数是同一个东西,目标函数是一个与他们相关但更广的概念,举例说明:

我们给定x,这三个函数都会输出一个f(X),这个输出的f(X)与真实值Y可能是相同的,也可能是不同的,为了表示我们拟合的好坏,我们就用一个函数来度量拟合的程度。这个函数就称为损失函数(loss function),或者叫代价函数(cost function)。

损失函数越小,就代表模型拟合的越好。那是不是我们的目标就只是让loss function越小越好呢?还不是。这个时候还有一个概念叫风险函数(risk function)。风险函数是损失函数的期望,这是由于我们输入输出的(X,Y)遵循一个联合分布,但是这个联合分布是未知的,所以无法计算。但是我们是有历史数据的,就是我们的训练集,f(X)关于训练集的平均损失称作经验风险(empirical risk),所以我们的目标就是最小化经验风险。

其中,前面的均值函数表示的是经验风险函数,L代表的是损失函数,后面的ΦΦ是正则化项(regularizer)或者叫惩罚项(penalty term),它可以是L1,也可以是L2,或者其他的正则函数。整个式子表示的意思是找到使目标函数最小时的θθ值。下面主要列出几种常见的损失函数。

过拟合(over-fitting)。为什么会造成这种结果?大白话说就是它的函数太复杂了,都有四次方了,这就引出了下面的概念,我们不仅要让经验风险最小化,还要让结构风险最小化。

这个时候就定义了一个函数J(f),这个函数专门用来度量模型的复杂度,在机器学习中也叫正则化(regularization)。常用的有L1, L2范数。到这一步我们就可以说我们最终的优化函数是:

损失函数(loss function)是用来估量你模型的预测值f(x)与真实值Y的不一致程度,它是一个非负实值函数,通常使用L(Y, f(x))来表示,损失函数越小,模型的鲁棒性就越好。损失函数是经验风险函数的核心部分,也是结构风险函数重要组成部分。模型的结构风险函数包括了经验风险项和正则项,通常可以表示成如下式子:

即最优化经验风险和结构风险,而这个函数就被称为目标函数

常用损失函数

常见的损失误差有五种:

1.铰链损失(Hinge Loss):主要用于支持向量机(SVM) 中;

2.交叉熵损失 (Cross Entropy Loss,Softmax Loss ):用于Logistic 回归与Softmax 分类中;

3.平方损失(Square Loss):主要是最小二乘法(OLS)中;

4.指数损失(Exponential Loss):主要用于Adaboost 集成学习算法中;

5.其他损失(如0-1损失,绝对值损失)

1 平方误差损失函数

最小二乘法是线性回归的一种方法,它将回归的问题转化为了凸优化的问题。最小二乘法的基本原则是:最优拟合曲线应该使得所有点到回归直线的距离和最小。通常用欧几里得距离进行距离的度量。平方损失的损失函数为:

损失函数:

分类实例:

优点:容易优化(一阶导数连续)

缺点:对outlier点很敏感(因为惩罚是指数增长的,左图的两个outlier将分类面强行拉到左边,得不到最优的分类面)

2 Logit损失函数(Logistic 回归)

逻辑斯特回归的损失函数就是对数损失函数,在逻辑斯特回归的推导中,它假设样本服从伯努利分布(0-1)分布,然后求得满足该分布的似然函数,接着用对数求极值。逻辑斯特回归并没有求对数似然函数的最大值,而是把极大化当做一个思想,进而推导它的风险函数为最小化的负的似然函数。从损失函数的角度上,它就成为了log损失函数。

损失函数:

优点:稳定的分类面,严格凸,且二阶导数连续

3 Hinge损失函数(SVM)

minJ(w)=1n∑i=1nH(yif(xi,w)),whereH(t)={−t+10t<1t≥0

优点:稳定的分类面,凸函数。对分对的但又不是很对的样本也进行惩罚(0-1之间),可以极大化分类间隔。

【问题】为什么不能用回归的损失函数来处理分类的问题

例子:

上例中,红圈中的样本是被正确分类了,但是回归损失函数还是会惩罚它们,而按照分类的观点是不应该惩罚的。

分类 != 回归

特例:1998年LeCun LeNet5 和 的YOLO用回归解决分类问题,是因为它们的特征特别强。

4. 指数损失函数

AdaBoost就是一指数损失函数为损失函数的。

指数损失函数的标准形式:

5 感知机损失函数(L1 margin cost)

损失函数:

minJ(w)=1n∑i=1nH(yif(xi,w)),whereH(t)={−t0t<0t≥0

在t=0处不连续,所以不可导,但是可以求次梯度(导数)。

优点:稳定的分类面,次梯度可导

缺点:二阶不可导,有时候不存在唯一解

5 两种正则化方法

L1正则化假设了模型的先验概率分布服从拉普拉斯分布;L2正则化假设了模型的先验概率分布服从高斯分布。

【问题】什么样的损失函数是好的损失函数?

有明确的极大似然/后验概率解释,如果不满足,则满足以下几条:

minJ(w)=1n∑i=1nH(yif(xi,w))+Ω(w)

H(t)梯度需要有界,鲁棒性保障(反例:AdaBoost)将L1作为H(t)的渐近线,稳定的分类边界(L1满足最小误分样本数)大分类间隔,保障泛化性能选择正确的正则化方式(一般默认L2)

Reference

1 次导数 次梯度 小结

/bitcarmanlee/article/details/51896348

2 集智公开课https://jizhi.im/course/dl_theory/6

本内容不代表本网观点和政治立场,如有侵犯你的权益请联系我们处理。
网友评论
网友评论仅供其表达个人看法,并不表明网站立场。