前言:代价函数也叫做损失函数,loss function。机器学习中训练模型的过程就是优化代价函数的过程,代价函数对每个参数的偏导数就是梯度下降中的梯度。
1、代价函数的定义
假设有训练样本(x,y),模型为f,参数为w,f(w)=
wTx
,我们需要度量预测值f(w)与真实值y之间的差异,我们将这种差异函数叫做代价函数,如果多个样本,则可以将所有代价函数的取值求平均,计作J(w)。因此我们可以知道代价函数的一些性质:
1、对于每一种算法,代价函数不是唯一的 ;
2、代价函数是参数w的函数;
3、代价函数J(w)衡量着模型的好坏,值越小表示模型和参数越符合样本;
4、J(w)是一个标量;
当确定h后,我们需要知道参数w,那么什么样的w是我们想要的呢,也就是模型训练什么时候才结束?我们的做法就是最小化J(w),通过不断改变w获得最小的J(w),即:
minwJ(w)
优化参数过程中,常用的方法是梯度下降法,需要对J(w)求偏导,那么需要代价函数对w可微。
2、 常用的代价函数
2.1 均方误差
在线性回归中,最常用的是均方误差(Mean squared error),具体形式如下:
J(w0,w1)=12n∑i=1n(y¯(i)−y(i))2=12n∑i=1n(fw(x(i))−y(i))2
2.2 交叉熵
在逻辑回归中,最常用的代价函数是交叉熵(cross entropy)。《神经网络与深度学习》中的一种解释:
交叉熵是对「出乎意料」(译者注:原文使用suprise)的度量。神经元的目标是去计算函数y, 且y=y(x)。但是我们让它取而代之计算函数a, 且a=a(x)。假设我们把a当作y等于1的概率,1−a是y等于0的概率。那么,交叉熵衡量的是我们在知道y的真实值时的平均「出乎意料」程度。当输出是我们期望的值,我们的「出乎意料」程度比较低;当输出不是我们期望的,我们的「出乎意料」程度就比较高。
香农信息量用来度量不确定的大小:一个时间的香农信息量为0,表示该事件的发生不会给我们提供任何新的信息,例如确定性事件的发生,发生的概率为1,发生了也不会引起任何惊讶;当不可能的事情发生时,香农信息量无穷大,表示给我们提供了无穷多的新信息,并且使人无限的惊讶。公式如下:
J(w)=−1n[∑i=1n(y(i)logfw(x(i))+(1−y(i))log(1−fw(x(i)))]
2.3 神经网络中的代价函数
类似交叉熵函数。。。待续,对数损失函数,指数损失函数,一般损失函数。。。