全部版块 我的主页
论坛 数据科学与人工智能 人工智能 机器学习
1063 0
2020-10-06
CDA人工智能学院致力于以优质的人工智能在线教育资源助力学员的DT职业梦想!课程内容涵盖数据分析机器学习深度学习人工智能tensorFlowPyTorch知识图谱等众多核心技术及行业案例,让每一个学员都可以在线灵活学习,快速掌握AI时代的前沿技术。PS:私信我即可获取《银牌会员》1个月免费试听机会

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

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

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

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

log损失函数的标准形式:

<span]log损失函数的标准形式:

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

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

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

20180813073641_88935.png

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

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

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

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

简单,计算方便;

<span]简单,计算方便;

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

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

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

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

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


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

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

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

<span]三、指数损失函数(Adaboost)

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

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

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

20180813073613_56781.png

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

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

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

20180813073559_25895.png

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

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

<span]四、Hinge损失函数(SVM)

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

20180813073549_64321.png


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

20180813073542_17071.png


于是,原式就变成了:

20180813073537_19470.png


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

20180813073530_42136.png


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

20180813073521_45177.png


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


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


于是,原式就变成了:


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


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


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

Hinge]Hinge]更多内容,参考Hinge-loss。

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

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

<span]0-线性核;

1-多项式核;

<span]1-多项式核;

<span]2-RBF核;

3-sigmoid核。

<span]3-sigmoid核。

<span]五、其它损失函数

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

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

<span]0-1损失函数

20180813073513_55694.png


绝对值损失函数

20180813073506_53869.png


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

20180813073500_71416.png


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

0D04CBB8996CB009643B8D6FD844F0C0.jpg


关注“CDA人工智能学院”,回复“录播”获取更多人工智能精选直播视频!




附件列表
20180813073606_84245.png

原图尺寸 2.97 KB

20180813073606_84245.png

20180813073619_24150.png

原图尺寸 3.2 KB

20180813073619_24150.png

20180813073625_50430.png

原图尺寸 4.02 KB

20180813073625_50430.png

20180813073649_31196.png

原图尺寸 5.59 KB

20180813073649_31196.png

二维码

扫码加我 拉你入群

请注明:姓名-公司-职位

以便审核进群资格,未注明则拒绝

相关推荐
栏目导航
热门文章
推荐文章

说点什么

分享

扫码加好友,拉您进群
各岗位、行业、专业交流群