损失函数
机器学习中,几种损失函数的介绍:(本文依照邱锡鹏老师的《神经网络和深度学习》为框架,介绍了自己在学习中的体会和一些个人理解,记录一些自己的学习历程,也希望帮助大家更好的学习。邱老师链接
0-1损失函数
其中I(·)是指示函数:定义在某集合X上的函数,表示其中有哪些元素属于某一子集A;在本式中即指在预测的集合中错误集(与实际结果不同)中的元素。
最直观的表示出在训练集上的错误率,如果预测结果和实际结果相等,则为0,不等则为1;通过1个个数占比即可计算出错误率。
平方损失函数
其中y-f(x;θ)指预测值和实际值之间的偏差。
背后假设:首先了解极大似然估计(利用已知的样本结果,反推最有可能(最大概率)导致
这样结果的参数值。)原理链接
平方损失函数由来是假设模型预测和真实值之间误差服从标准高斯分布,即(μ=0,σ=1),则给定输入
x
i
x_i
xi,则输出的值
y
i
y_i
yi的概率为:
则给定所有x输出所有真实值y的概率即似然,为所有概率累乘。
为了方便计算,通常取对数即:
前一项为常数字,所以可以看到平方损失函数的形式。在模型输出与真实值的误差服从高斯分布的假设下,最小化均方差损失函数与极大似然估计本质上是一致的,因此在这个假设能被满足的场景中(比如线性回归),均方差损失是一个很好的损失函数选择。
但是通常平方损失函数不适用于分类问题:因为在分类问题中预测函数通常是非线性的函数,而这会导致损失函数曲线非常复杂,在吴恩达机器学习中称这类损失函数曲线为non-convex,即非凸函数,会有许多局部最优值。这类损失函数在训练过程中经常会导致结果在局部最优解中,无法寻找到全局最优解。
交叉熵损失函数
信息量:
信息学奠基人香农(Shannon)认为“信息是用来消除随机不确定性的东西”的。例如:“太阳从东边升起”,这条信息没有减少不确定性,所以信息量为0;“2018年中国进入成功进入世界杯”,因为中国进入世界杯的不确定性因素很大,这句话消除了不确定性,所以信息量很大。
综上,信息量的大小与信息发生概率成反比。
设某一事件发生概率为P(x),其信息量表示为:
其中 I(x)表示信息量,这里 log 表示以 e 为底的自然对数。
信息熵:
信息熵也被称为熵,用来表示所有信息量的期望。期望是试验中每次可能结果的概率乘以其结果的总和。所以信息量的熵可表示为:
相对散度(KL散度):
如果对于同一个随机变量X有两个单独的概率分布P(x)和Q(x),则我们可以使用KL散度来衡量这两个概率分布之间的差异。
机器学习中用P(x)来表示真实分布,Q(x)表示预测分布,所以D_KL越小,表明P(x)和Q(x)分布更加接近。
交叉熵:
对相对熵公式进行变形:
所以KL散度=信息熵-交叉熵,即交叉熵公式为:
在机器学习训练网络时,输入数据与标签常常已经确定,那么真实概率分布P(x)也就确定下来了,所以信息熵在这里就是一个常量。由于KL散度的值表示真实概率分布P(x)与预测概率分布Q(x)之间的差异,值越小表示预测的结果越好,所以需要最小化KL散度。所以最小化交叉熵即完成了目标即最小化KL散度。所以在机器学习中常常用交叉熵损失函数来计算loss。
并且有时P(x)分布表示为一个one-hot向量,所以H(p,q)也可以写成-log〖f_y (x;θ)〗;其中f_y (x;θ)可以看作类别y的似然函数。因此,交叉熵损失函数也就成了负对数似然函数。
本部分参考链接并对其中有些内容做了修改。
Hinge损失函数
对于二分类问题,其中
y
n
y_n
yn∈{+1,-1},Hinge函数定义为:
其中 [𝑥] = max (0,𝑥);因为在二分类问题中𝑦𝑓(𝑥;𝜃)恒大于 0,而𝑓(𝑥;𝜃)在[0,1]之间,
1 − 𝑦𝑓(𝑥;𝜃)则可以衡量预测值距真实值的概率偏差大概为多少。
以上即为目前一些常用损失函数的小结,欢迎大家交流指正。