本文目录一览:

机器学习中的损失函数

损失函数(loss function)又叫做代价函数(cost function),是用来评估模型的预测值与真实值不一致的程度,也是神经网络中优化的目标函数,神经网络训练或者优化的过程就是小化损失函数的过程,损失函数越小,说明模型的预测值就越接近真是值,模型的健壮性也就越好。

常用损失函数(常用的损失函数有哪三种)常用损失函数(常用的损失函数有哪三种)


常用损失函数(常用的损失函数有哪三种)


常用损失函数(常用的损失函数有哪三种)


常用损失函数(常用的损失函数有哪三种)


常用损失函数(常用的损失函数有哪三种)


常见的损失函数有以下几种:

0-1损失函数是为简单的一种损失函数,多适用于分类问题中,如果预测值与目标值不相等,说明预测错误,输出值为1;如果预测值与目标值相同,说明预测正确,输出为0,言外之意没有损失。其数学公式可表示为:

由于0-1损失函数过于理想化、严格化,且数学性质不是很好,难以优化,所以在实际问题中,我们经常会用以下的损失函数进行代替。

感知损失函数是对0-1损失函数的改进,它并不会像0-1损失函数那样严格,哪怕预测值为0.99,真实值为1,都会认为是错误的;而是给一个误区间,只要在误区间内,就认为是正确的。其数学公式可表示为:

顾名思义,平方损失函数是指预测值与真实值值的平方。损失越大,说明预测值与真实值的值越大。平方损失函数多用于线性回归任务中,其数学公式为:

接下来,我们延伸到样本个数为N的情况,此时的平方损失函数为:

Hinge损失函数通常适用于二分类的场景中,可以用来解决间隔化的问题,常应用于的SVM算法中。其数学公式为:

其中在上式中,t是目标值{-1,+1},y为预测值的输出,取值范围在(-1,1)之间。

对数损失函数也是常见的一种损失函数,常用于逻辑回归问题中,其标准形式为:

上式中,y为已知分类的类别,x为样本值,我们需要让概率p(y|x)达到值,也就是说我们要求一个参数值,使得输出的目前这组数据的概率值。因为概率P(Y|X)的取值范围为[0,1],log(x)函数在区间[0,1]的取值为负数,所以为了保证损失值为正数要在log函数前加负号。

交叉熵损失函数本质上也是一种对数损失函数,常用于多分类问题中。其数学公式为:

注意:公式中的x表示样本,y代表预测的输出,a为实际输出,n表示样本总数量。交叉熵损失函数常用于当sigmoid函数作为激活函数的情景,因为它可以完美解决平方损失函数权重更新过慢的问题。

原文参见

机器学习中的损失函数

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

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

一、log对数损失函数(逻辑回归)

有些人可能觉得逻辑回归的损失函数就是平方损失,其实并不是。平方损失函数可以通过线性回归在设样本是高斯分布的条件下推导得到,而逻辑回归得到的并不是平方损失。在逻辑回归的推导中,它设样本服从伯努利分布(0-1分布),然后求得满足该分布的似然函数,接着取对数求极值等等。而逻辑回归并没有求似然函数的极值,而是把极大化当做是一种思想,进而推导出它的经验风险函数为:小化负的似然函数(即max F(y, f(x)) —-> min -F(y, f(x)))。从损失函数的视角来看,它就成了log损失函数了。

log损失函数的标准形式:

L(Y,P(Y|X))=?logP(Y|X)L(Y,P(Y|X))=?log?P(Y|X)刚刚说到,取对数是为了方便计算极大似然估计,因为在MLE中,直接求导比较困难,所以通常都是先取对数再求导找极值点。损失函数L(Y, P(Y|X))表达的是样本X在分类Y的情况下,使概率P(Y|X)达到值(换言之,就是利用已知的样本分布,找到有可能(即概率)导致这种分布的参数值;或者说什么样的参数才能使我们观测到目前这组数据的概率)。因为log函数是单调递增的,所以logP(Y|X)也会达到值,因此在前面加上负号之后,化P(Y|X)就等价于小化L了。

逻辑回归的P(Y=y|x)表达式如下:P(Y=y|x)=11+exp(?yf(x))P(Y=y|x)=11+exp(?yf(x))

将它带入到上式,通过推导可以得到logistic的损失函数表达式,如下:

L(y,P(Y=y|x))=log(1+exp(?yf(x)))L(y,P(Y=y|x))=log?(1+exp(?yf(x)))

逻辑回归得到的目标式子如下:

如果是二分类的话,则m值等于2,如果是多分类,m就是相应的类别总个数。这里需要解释一下:之所以有人认为逻辑回归是平方损失,是因为在使用梯度下降来求解的时候,它的迭代式子与平方损失求导后的式子非常相似,从而给人一种直观上的错觉。

这里有个PDF可以参考一下:Lecture 6: logistic regression.pdf.

二、平方损失函数(小二乘法, Ordinary Least Squares )

小二乘法是线性回归的一种,OLS将问题转化成了一个凸优化问题。在线性回归中,它设样本和噪声都服从高斯分布(为什么设成高斯分布呢?其实这里隐藏了一个小知识点,就是中心极限定理,可以参考【central limit theorem】),通过极大似然估计(MLE)可以推导出小二乘式子。小二乘的基本原则是:拟合直线应该是使各点到回归直线的距离和小的直线,即平方和小。换言之,OLS是基于距离的,而这个距离就是我们用的多的欧几里得距离。为什么它会选择使用欧式距离作为误度量呢(即Mean squared error, MSE),主要有以下几个原因:

简单,计算方便;

欧氏距离是一种很好的相似性度量标准;

在不同的表示域变换后特征性质不变。

平方损失(Square loss)的标准形式如下:

(Y,f(X))=(Y?f(X))2L(Y,f(X))=(Y?f(X))2

当样本个数为n时,此时的损失函数变为:

Y-f(X)表示的是残,整个式子表示的是残的平方和,而我们的目的就是小化这个目标函数值(注:该式子未加入正则项),也就是小化残的平方和(residual sum of squares,RSS)。

而在实际应用中,通常会使用均方(MSE)作为一项衡量指标,公式如下:

MSE=1n∑i=1n(Yi~?Yi)2MSE=1n∑i=1n(Yi~?Yi)2

上面提到了线性回归,这里额外补充一句,我们通常说的线性有两种情况,一种是因变量y是自变量x的线性函数,一种是因变量y是参数的线性函数。在机器学习中,通常指的都是后一种情况。

三、指数损失函数(Adaboost)

学过Adaboost算法的人都知道,它是前向分步加法算法的特例,是一个加和模型,损失函数就是指数函数。在Adaboost中,经过m此迭代之后,可以得到:

Adaboost每次迭代时的目的是为了找到小化下列式子时的参数 和G:

而指数损失函数(exp-loss)的标准形式如下

可以看出,Adaboost的目标式子就是指数损失,在给定n个样本的情况下,Adaboost的损失函数为:

关于Adaboost的推导,可以参考Wikipedia:AdaBoost或者《统计学习方法》P145.

四、Hinge损失函数(SVM)

在机器学习算法中,hinge损失函数和SVM是息息相关的。在线性支持向量机中,化问题可以等价于下列式子:

下面来对式子做个变形,令:

于是,原式就变成了:

如若取,式子就可以表示成:

可以看出,该式子与下式非常相似:

前半部分中的就是hinge损失函数,而后面相当于L2正则项。

Hinge 损失函数的标准形式

可以看出,当|y|>=1时,L(y)=0。

更多内容,参考Hinge-loss。

补充一下:在libsvm中一共有4中核函数可以选择,对应的是-t参数分别是:

0-线性核;

1-多项式核;

2-RBF核;

3-sigmoid核。

五、其它损失函数

除了以上这几种损失函数,常用的还有:

0-1损失函数

损失函数

下面来看看几种损失函数的可视化图像,对着图看看横坐标,看看纵坐标,再看看每条线都表示什么损失函数,多看几次好好消化消化。

OK,暂时先写到这里,休息下。,需要记住的是:参数越多,模型越复杂,而越复杂的模型越容易过拟合。过拟合就是说模型在训练数据上的效果远远好于在测试集上的性能。此时可以考虑正则化,通过设置正则项前面的hyper parameter,来权衡损失函数和正则项,减小参数规模,达到模型简化的目的,从而使模型具有更好的泛化能力。

常见损失函数用法

损失函数(loss function)又叫做代价函数(cost function),是用来评估模型的预测值与真实值不一致的程度,也是神经网络中优化的目标函数,神经网络训练或者优化的过程就是小化损失函数的过程,损失函数越小,说明模型的预测值就越接近真是值,模型的健壮性也就越好。

常见的损失函数有以下几种:

0-1损失函数是为简单的一种损失函数,多适用于分类问题中,如果预测值与目标值不相等,说明预测错误,输出值为1;如果预测值与目标值相同,说明预测正确,输出为0,言外之意没有损失。其数学公式可表示为:

由于0-1损失函数过于理想化、严格化,且数学性质不是很好,难以优化,所以在实际问题中,我们经常会用以下的损失函数进行代替。

感知损失函数是对0-1损失函数的改进,它并不会像0-1损失函数那样严格,哪怕预测值为0.99,真实值为1,都会认为是错误的;而是给一个误区间,只要在误区间内,就认为是正确的。其数学公式可表示为:

顾名思义,平方损失函数是指预测值与真实值值的平方。损失越大,说明预测值与真实值的值越大。平方损失函数多用于线性回归任务中,其数学公式为:

接下来,我们延伸到样本个数为N的情况,此时的平方损失函数为:

Hinge损失函数通常适用于二分类的场景中,可以用来解决间隔化的问题,常应用于的SVM算法中。其数学公式为:

其中在上式中,t是目标值{-1,+1},y为预测值的输出,取值范围在(-1,1)之间。

对数损失函数也是常见的一种损失函数,常用于逻辑回归问题中,其标准形式为:

上式中,y为已知分类的类别,x为样本值,我们需要让概率p(y|x)达到值,也就是说我们要求一个参数值,使得输出的目前这组数据的概率值。因为概率P(Y|X)的取值范围为[0,1],log(x)函数在区间[0,1]的取值为负数,所以为了保证损失值为正数要在log函数前加负号。

交叉熵损失函数本质上也是一种对数损失函数,常用于多分类问题中。其数学公式为:

注意:公式中的x表示样本,y代表预测的输出,a为实际输出,n表示样本总数量。交叉熵损失函数常用于当sigmoid函数作为激活函数的情景,因为它可以完美解决平方损失函数权重更新过慢的问题。

原文参见

常用的损失函数有哪些?()

损失函数(loss function)又叫做代价函数(cost function),是用来评估模型的预测值与真实值不一致的程度,也是神经网络中优化的目标函数,神经网络训练或者优化的过程就是小化损失函数的过程,损失函数越小,说明模型的预测值就越接近真是值,模型的健壮性也就越好。

常见的损失函数有以下几种:

0-1损失函数是为简单的一种损失函数,多适用于分类问题中,如果预测值与目标值不相等,说明预测错误,输出值为1;如果预测值与目标值相同,说明预测正确,输出为0,言外之意没有损失。其数学公式可表示为:

由于0-1损失函数过于理想化、严格化,且数学性质不是很好,难以优化,所以在实际问题中,我们经常会用以下的损失函数进行代替。

感知损失函数是对0-1损失函数的改进,它并不会像0-1损失函数那样严格,哪怕预测值为0.99,真实值为1,都会认为是错误的;而是给一个误区间,只要在误区间内,就认为是正确的。其数学公式可表示为:

顾名思义,平方损失函数是指预测值与真实值值的平方。损失越大,说明预测值与真实值的值越大。平方损失函数多用于线性回归任务中,其数学公式为:

接下来,我们延伸到样本个数为N的情况,此时的平方损失函数为:

Hinge损失函数通常适用于二分类的场景中,可以用来解决间隔化的问题,常应用于的SVM算法中。其数学公式为:

其中在上式中,t是目标值{-1,+1},y为预测值的输出,取值范围在(-1,1)之间。

对数损失函数也是常见的一种损失函数,常用于逻辑回归问题中,其标准形式为:

上式中,y为已知分类的类别,x为样本值,我们需要让概率p(y|x)达到值,也就是说我们要求一个参数值,使得输出的目前这组数据的概率值。因为概率P(Y|X)的取值范围为[0,1],log(x)函数在区间[0,1]的取值为负数,所以为了保证损失值为正数要在log函数前加负号。

交叉熵损失函数本质上也是一种对数损失函数,常用于多分类问题中。其数学公式为:

注意:公式中的x表示样本,y代表预测的输出,a为实际输出,n表示样本总数量。交叉熵损失函数常用于当sigmoid函数作为激活函数的情景,因为它可以完美解决平方损失函数权重更新过慢的问题。

原文参见

机器学习中的损失函数

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

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

一、log对数损失函数(逻辑回归)

有些人可能觉得逻辑回归的损失函数就是平方损失,其实并不是。平方损失函数可以通过线性回归在设样本是高斯分布的条件下推导得到,而逻辑回归得到的并不是平方损失。在逻辑回归的推导中,它设样本服从伯努利分布(0-1分布),然后求得满足该分布的似然函数,接着取对数求极值等等。而逻辑回归并没有求似然函数的极值,而是把极大化当做是一种思想,进而推导出它的经验风险函数为:小化负的似然函数(即max F(y, f(x)) —-> min -F(y, f(x)))。从损失函数的视角来看,它就成了log损失函数了。

log损失函数的标准形式:

L(Y,P(Y|X))=?logP(Y|X)L(Y,P(Y|X))=?log?P(Y|X)刚刚说到,取对数是为了方便计算极大似然估计,因为在MLE中,直接求导比较困难,所以通常都是先取对数再求导找极值点。损失函数L(Y, P(Y|X))表达的是样本X在分类Y的情况下,使概率P(Y|X)达到值(换言之,就是利用已知的样本分布,找到有可能(即概率)导致这种分布的参数值;或者说什么样的参数才能使我们观测到目前这组数据的概率)。因为log函数是单调递增的,所以logP(Y|X)也会达到值,因此在前面加上负号之后,化P(Y|X)就等价于小化L了。

逻辑回归的P(Y=y|x)表达式如下:P(Y=y|x)=11+exp(?yf(x))P(Y=y|x)=11+exp(?yf(x))

将它带入到上式,通过推导可以得到logistic的损失函数表达式,如下:

L(y,P(Y=y|x))=log(1+exp(?yf(x)))L(y,P(Y=y|x))=log?(1+exp(?yf(x)))

逻辑回归得到的目标式子如下:

如果是二分类的话,则m值等于2,如果是多分类,m就是相应的类别总个数。这里需要解释一下:之所以有人认为逻辑回归是平方损失,是因为在使用梯度下降来求解的时候,它的迭代式子与平方损失求导后的式子非常相似,从而给人一种直观上的错觉。

这里有个PDF可以参考一下:Lecture 6: logistic regression.pdf.

二、平方损失函数(小二乘法, Ordinary Least Squares )

小二乘法是线性回归的一种,OLS将问题转化成了一个凸优化问题。在线性回归中,它设样本和噪声都服从高斯分布(为什么设成高斯分布呢?其实这里隐藏了一个小知识点,就是中心极限定理,可以参考【central limit theorem】),通过极大似然估计(MLE)可以推导出小二乘式子。小二乘的基本原则是:拟合直线应该是使各点到回归直线的距离和小的直线,即平方和小。换言之,OLS是基于距离的,而这个距离就是我们用的多的欧几里得距离。为什么它会选择使用欧式距离作为误度量呢(即Mean squared error, MSE),主要有以下几个原因:

简单,计算方便;

欧氏距离是一种很好的相似性度量标准;

在不同的表示域变换后特征性质不变。

平方损失(Square loss)的标准形式如下:

(Y,f(X))=(Y?f(X))2L(Y,f(X))=(Y?f(X))2

当样本个数为n时,此时的损失函数变为:

Y-f(X)表示的是残,整个式子表示的是残的平方和,而我们的目的就是小化这个目标函数值(注:该式子未加入正则项),也就是小化残的平方和(residual sum of squares,RSS)。

而在实际应用中,通常会使用均方(MSE)作为一项衡量指标,公式如下:

MSE=1n∑i=1n(Yi~?Yi)2MSE=1n∑i=1n(Yi~?Yi)2

上面提到了线性回归,这里额外补充一句,我们通常说的线性有两种情况,一种是因变量y是自变量x的线性函数,一种是因变量y是参数的线性函数。在机器学习中,通常指的都是后一种情况。

三、指数损失函数(Adaboost)

学过Adaboost算法的人都知道,它是前向分步加法算法的特例,是一个加和模型,损失函数就是指数函数。在Adaboost中,经过m此迭代之后,可以得到:

Adaboost每次迭代时的目的是为了找到小化下列式子时的参数 和G:

而指数损失函数(exp-loss)的标准形式如下

可以看出,Adaboost的目标式子就是指数损失,在给定n个样本的情况下,Adaboost的损失函数为:

关于Adaboost的推导,可以参考Wikipedia:AdaBoost或者《统计学习方法》P145.

四、Hinge损失函数(SVM)

在机器学习算法中,hinge损失函数和SVM是息息相关的。在线性支持向量机中,化问题可以等价于下列式子:

下面来对式子做个变形,令:

于是,原式就变成了:

如若取,式子就可以表示成:

可以看出,该式子与下式非常相似:

前半部分中的就是hinge损失函数,而后面相当于L2正则项。

Hinge 损失函数的标准形式

可以看出,当|y|>=1时,L(y)=0。

更多内容,参考Hinge-loss。

补充一下:在libsvm中一共有4中核函数可以选择,对应的是-t参数分别是:

0-线性核;

1-多项式核;

2-RBF核;

3-sigmoid核。

五、其它损失函数

除了以上这几种损失函数,常用的还有:

0-1损失函数

损失函数

下面来看看几种损失函数的可视化图像,对着图看看横坐标,看看纵坐标,再看看每条线都表示什么损失函数,多看几次好好消化消化。

OK,暂时先写到这里,休息下。,需要记住的是:参数越多,模型越复杂,而越复杂的模型越容易过拟合。过拟合就是说模型在训练数据上的效果远远好于在测试集上的性能。此时可以考虑正则化,通过设置正则项前面的hyper parameter,来权衡损失函数和正则项,减小参数规模,达到模型简化的目的,从而使模型具有更好的泛化能力。

常用的损失函数有哪些?()

A.均方

B.Sigmoid交叉熵

C.Softmax交叉熵

D.Sparse交叉熵

E.加权Sigmoid交叉熵

正确:ABCDE