损失函数
2017-07-08 15:19
162 查看
1 概述
在统计学中,损失函数是一种衡量损失和错误(这种损失和“错误的”估计有关)程度的函数。本篇只分析神经网络中的损失函数:神经网络是经过“训练”后能够识别声音、识别图片的算法模型。“训练”的过程就是通过梯度下降或者其它优化算法最小化损失函数的过程。所以损失函数又叫目标函数。
同时我们期望,损失函数的值比较大时,它对应的梯度也要比较大;损失函数的值比较小时,它对应的梯度也比较小。这样更新参数就可以更新的快一点。
损失函数遵循的准则就是最小化平方误差,如下式:
minC(Y,G(X))=||G(X)−Y||2
所以说损失函数是用来估量模型的预测值f(x)与真实值Y的不一致程度。它是一个非负函数。
2 常见的损失函数
MSE: Mean Squared Error,均方误差CEE: Cross Entropy Error, 交叉熵误差
0-1损失函数
指数损失函数
Hinge损失函数
2.1 均方误差损失函数
公式:L(Y,f(X))=(Y−f(X))2
图像:
当样本个数为n时,此时的损失函数变为:
L(Y,f(X))=∑i=1N(y−f(x))2
平方损失函数是基于最小二乘法的或者是基于正太分布下的极大似然估计的。
最小二乘法:最优拟合直线应该是使各点到回归直线的距离之和最小的直线,即平方和最小。
最大似然估计:就是利用已知的样本结果,反推最有可能(最大概率)导致这样结果的参数值。
为什么要基于最小二乘法呢?因为最小二乘法和正太分布下的极大似然估计的结果是一致的。
数学推导:
在实际训练过程中,数据都是海量的,根据中心极限定理,我们假设误差满足平均值u为0的正太分布。
那么x,y的条件满足:
p(y(i)|x(i);θ)=12π‾‾‾√exp(−(y(i)−θTx(i))22σ)
上式相当于估计了一条样本的结果概率,根据极大似然估计,我们希望在给定的训练数据中,这些数据出现的概率最大,也就是概率积最大。
累积乘积形式如下:
L(u,σ2)=∏i=1n12π‾‾‾√σ∗e(−(ξi−u)22σ2)
然后对其取对数:
logL(u,σ2)=−n2lnσ2−n22π−∑ni=1(ξi−u)22σ2
当数据趋于无穷大的时候,均方差都可以看成定值。如果想要使logL(u,σ2)最大,只需要将12∑mi=1(hθ(x(i)−y(i)))2最小化即可。
这就是平方损失函数的由来。
2.2 交叉熵损失函数
标准形式:L(Y,P(Y|X))=−logP(Y|X)
损失函数L(Y, P(Y|X))表达的是样本X在分类Y的情况下,使概率P(Y|X)达到最大值(换言之,就是利用已知的样本分布,找到最有可能(即最大概率)导致这种分布的参数值;或者说什么样的参数才能使我们观测到目前这组数据的概率最大)。因为log函数是单调递增的,所以logP(Y|X)也会达到最大值,因此在前面加上负号之后,最大化P(Y|X)就等价于最小化L了。
公式:
J(θ)=−1m∑i=1m[y(i)lnhθ(x(i))+(1−y(i))ln(1−hθ(x(i)))]
图像:
推导过程:
逻辑回归模型中,假设概率服从伯努利分布,根据伯努利定义,概率质量函数为:
P(X=n)={1−ppn=0n=0
所以对数似然损失函数为:
cost(hθ(x),y)={−ln(hθ(x))−ln(1−hθ(x))y=1n=0
对上面式子的解释:对单个样本,当y = 1, hθ(x)=1,则此时cost为0,表示这个样本的预测值正确。反之同样可以推导出不正确的预测,在此不再赘述。
两个式子结合:
J(θ)=−1m∑i=1m[y(i)lnhθ(x(i))+(1−y(i))ln(1−hθ(x(i)))]
说明:逻辑回归中,平方损失函数是非凸函数,很容易产生局部最优解,所以使用对数损失函数。
2.3 0-1损失函数
是一种较为简单的损失函数,如果预测值与目标值不相等,为1,否则为0。公式:
l(yi,f(xi))={10yi≠f(xi)yi=f(xi)
图像:
0-1损失函数通常作为一个基础,真正使用的是0-1损失函数的变种。因为0-1损失函数的定义太严格,比如真实值为1,预测值为0.99,那么预测应该判断为正确,但是这样的定义会判定为错误。
其中一个变种就是引入一个阈值t。当目标值和预测值之间的误差小于t时,我们也判定它预测正确;如果目标值和预测值之间的误差大于t时,我们就判定它预测的不正确。
l(yi,f(xi))={10|yi−f(xi)|>t|yi−f(xi)|≤t
2.4 指数损失函数
公式:L(f(xi),yi)=e−f(xiyi)
图像:
指数损失函数是0-1损失函数的变种;典型应用是AdaBoost分类器算法。
指数损失同样满足三个特性:连续、凸、平滑。
2.5 Hinge损失函数
公式:l(yi,yi^)={1−yi^∗yi0|yi−yi^|>1|yi−yi^|≤1
图像:
Hinge Loss是在0-1损失函数的基础上做了两点改动:
1、对于正例(y[i] = 1),f(x[i])必须大于等于1;而对于负例(y[i] = -1),f(x[i])必须小于等于-1(相比之前f(x[i])与0对比,加强条件,提高稳定性)
2、没有达到要求的情况,视为错误。f(x[i])权值偏离越大,错误越严重。
Hinge Loss主要用在SVM中
3 总结
图像对比相关文章推荐
- caffe 中的损失函数分析
- 深度学习与计算机视觉系列(7)_神经网络数据预处理,正则化与损失函数
- 损失函数(Loss Function) -1
- 损失函数、正则化、交叉验证
- 损失函数
- tensorflow学习笔记(三):损失函数
- 损失函数是机器学习里最基础|:损失函数的作用
- 线形回归与损失函数
- 机器学习中常见的损失函数
- 79、tensorflow计算一个五层神经网络的正则化损失系数、防止网络过拟合、正则化的思想就是在损失函数中加入刻画模型复杂程度的指标
- 损失函数介绍
- yolo v2 损失函数源码解读
- sklearn中的损失函数
- 深度神经网络(DNN)损失函数和激活函数的选择
- CS231n Lecture 3:损失函数和优化
- tensorflow: 损失函数(Losses Functions) 探究
- 机器学习(4)-理解SVM的损失函数和梯度表达式的实现+编程总结
- 最优化基础:损失函数可视化、折页损失函数 & 梯度计算
- 机器学习中损失函数常用log的用意
- 激活函数和损失函数