常见机器学习损失函数(LossFunction)

阅读: 评论:0

常见机器学习损失函数(LossFunction)
  损失函数(loss function)是⽤来估量模型的预测值f(x)与真实值Y的不⼀致程度,它是⼀个⾮负实值函数,通常使⽤L(Y, f(x))来表⽰,损失函数越⼩,模型的鲁棒性就越好。损失函数是经验风险函数的核⼼部分,也是结构风险函数重要组成部分。模型的结构风险函数包括了经验风险项和正则项,通常可以表⽰成如下式⼦:
  其中,前⾯的均值函数表⽰的是经验风险函数,L代表的是损失函数,后⾯的
⼀、LogLoss对数损失函数(逻辑回归,交叉熵损失)
  有些⼈可能觉得逻辑回归的损失函数就是平⽅损失,其实并不是。平⽅损失函数可以通过线性回归在假设样本是⾼斯分布的条件下推导得到,⽽逻辑回归得到的并不是平⽅损失。在逻辑回归的推导中,它假设样本服从伯努利分布(0-1分布),然后求得满⾜该分布的似然函数,接着取对数求极值等等。⽽逻辑回归并没有求似然函数的极值,⽽是把极⼤化当做是⼀种思想,进⽽推导出它的经验风险函数为:最⼩化负的似然函数(即max F(y, f(x)) —> min -F(y, f(x)))。从损失函数的视⾓来看,它就成了log损失函数了。
无人机与客机碰撞
log损失函数的标准形式:
  刚刚说到,取对数是为了⽅便计算极⼤似然估计,因为在MLE(最⼤似然估计)中,直接求导⽐较困难,所以通常都是先取对数再求导极值点。损失函数L(Y, P(Y|X))表达的是样本X在分类Y的情况下,使概率P(Y|X)达到最⼤值(换⾔之,就是利⽤已知的样本分布,到最有可能(即最⼤概率)导致这种分布的参数值;或者说什么样的参数才能使我们观测到⽬前这组数据的概率最⼤)。因为log函数是单调递增的,所以logP(Y|X)也会达到最⼤值,因此在前⾯加上负号之后,最⼤化P(Y|X)就等价于最⼩化L了。
  逻辑回归的P(Y=y|x)表达式如下(为了将类别标签y统⼀为1和0,下⾯将表达式分开表⽰):
  将它带⼊到上式,通过推导可以得到logistic的损失函数表达式,如下:
  逻辑回归最后得到的⽬标式⼦如下:
  上⾯是针对⼆分类⽽⾔的。这⾥需要解释⼀下:之所以有⼈认为逻辑回归是平⽅损失,是因为在使⽤梯度下降来求最优解的时候,它的迭代式⼦与平⽅损失求导后的式⼦⾮常相似,从⽽给⼈⼀种直观上的错觉。
这⾥有个PDF可以参考⼀下:.
  注意:softmax使⽤的即为交叉熵损失函数,binary_cossentropy为⼆分类交叉熵损失,categorical_crossentropy为多分类交叉熵损失,当使⽤多分类交叉熵损失函数时,标签应该为多分类模式,即使⽤one-hot编码的向量。
⼆、平⽅损失函数(最⼩⼆乘法, Ordinary Least Squares )
  最⼩⼆乘法是线性回归的⼀种,最⼩⼆乘法(OLS)将问题转化成了⼀个凸优化问题。在线性回归中,它假设样本和噪声都服从⾼斯分布(为什么假设成⾼斯分布呢?其实这⾥隐藏了⼀个⼩知识点,
就是中⼼极限定理,可以参考),最后通过极⼤似然估计(MLE)可以推导出最⼩⼆乘式⼦。最⼩⼆乘的基本原则是:最优拟合直线应该是使各点到回归直线的距离和最⼩的直线,即平⽅和最⼩。换⾔之,OLS是基于距离的,⽽这个距离就是我们⽤的最多的欧⼏⾥得距离。为什么它会选择使⽤欧式距离作为误差度量呢(即Mean squared error,MSE),主要有以下⼏个原因:
简单,计算⽅便;
欧⽒距离是⼀种很好的相似性度量标准;
在不同的表⽰域变换后特征性质不变。
平⽅损失(Square loss)的标准形式如下:
当样本个数为n时,此时的损失函数变为:火药爆炸
Y-f(X)表⽰的是残差,整个式⼦表⽰的是残差的平⽅和,⽽我们的⽬的就是最⼩化这个⽬标函数值(注:该式⼦未加⼊正则项),也就是最⼩化残差的平⽅和(residual sum of squares,RSS)。
⽽在实际应⽤中,通常会使⽤均⽅差(MSE)作为⼀项衡量指标,公式如下:
上⾯提到了线性回归,这⾥额外补充⼀句,我们通常说的线性有两种情况,⼀种是因变量y是⾃变量x的线性函数,⼀种是因变量y是参数三、指数损失函数(Adaboost)
学过Adaboost算法的⼈都知道,它是前向分步加法算法的特例,是⼀个加和模型,损失函数就是指数函数。在Adaboost中,经过m此迭代之后,可以得到
Adaboost每次迭代时的⽬的是为了到最⼩化下列式⼦时的参数
血清肌酸激酶
⽽指数损失函数(exp-loss)的标准形式如下
可以看出,Adaboost的⽬标式⼦就是指数损失,在给定n个样本的情况下,Adaboost的损失函数为:
关于Adaboost的推导,可以参考Wikipedia:或者《统计学习⽅法》P145.
四、Hinge损失函数(SVM)
在机器学习算法中,hinge损失函数和SVM是息息相关的。在线性⽀持向量机中,最优化问题可以等价于下列式⼦:
下⾯来对式⼦做个变形,令:
于是,原式就变成了:
如若取
前半部分中的
Hinge 损失函数的标准形式
更多内容,参考。
补充⼀下:在libsvm中⼀共有4中核函数可以选择,对应的是-t参数分别是:王磊晓芬小说免费阅读
横断面
0-线性核;
1-多项式核;
2-RBF核;
3-sigmoid核。
五、其它损失函数
除了以上这⼏种损失函数,常⽤的还有:
0-1损失函数
绝对值损失函数
下⾯来看看⼏种损失函数的可视化图像,对着图看看横坐标,看看纵坐标,再看看每条线都表⽰什么损失函数,多看⼏次好好消化消化。
六、Keras / TensorFlow 中常⽤ Cost Function 总结
mean_squared_error或mse
mean_absolute_error或mae
poco图客
mean_absolute_percentage_error或mape
mean_squared_logarithmic_error或msle
squared_hinge
hinge
categorical_hinge
binary_crossentropy(亦称作对数损失,logloss)
logcosh
categorical_crossentropy:亦称作多类的对数损失,注意使⽤该⽬标函数时,需要将标签转化为形如(nb_samples, nb_classes)的⼆值序列
sparse_categorical_crossentrop:如上,但接受稀疏标签。注意,使⽤该函数时仍然需要你的标签与输出值的维度相同,你可能需要在标签数据上增加⼀个维度:np.expand_dims(y,-1)
kullback_leibler_divergence:从预测值概率分布Q到真值概率分布P的信息增益,⽤以度量两个分布的差异.
poisson:即(predictions - targets * log(predictions))的均值
cosine_proximity:即预测值与真实标签的余弦距离平均值的相反数
  需要记住的是:参数越多,模型越复杂,⽽越复杂的模型越容易过拟合。过拟合就是说模型在训练数据上的效果远远好于在测试集上的性能。此时可以考虑正则化,通过设置正则项前⾯的hyper parameter,来权衡损失函数和正则项,减⼩参数规模,达到模型简化的⽬的,从⽽使模型具有更好的泛化能⼒。
原⽂链接

本文发布于:2023-08-13 17:54:14,感谢您对本站的认可!

本文链接:https://patent.en369.cn/xueshu/354391.html

版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系,我们将在24小时内删除。

标签:函数   损失   回归   标签   逻辑   分布   模型
留言与评论(共有 0 条评论)
   
验证码:
Copyright ©2019-2022 Comsenz Inc.Powered by © 369专利查询检索平台 豫ICP备2021025688号-20 网站地图