机器学习之损失函数

神经网络常用损失函数

Mean Square Loss

均方误差 公式为

                                            

y代表真实标签值,t表示预测值,在线性回归问题中用的较多,神经网络中用的较少

tensorflow中接口为  mse=tf.reduce_mean(tf.square(y_-y))

Categorical Crossentropy

交叉熵损失函数 公式为

                                                                

交叉熵表现了实际输出(概率)与期望输出(概率)的距离,也就是交叉熵的值越小,两个概率分布就越接近。假设概率分布p为期望输出,概率分布q为实际输出

假设真实标签是(1,0,0)实际输出q1=(0.2,0.3,0.5)q2=(0.8,0.1,01)

H(p,q1)=-(1*log0.2+0*log0.3+0*log0.5)=0.70

H(p,q2)=-(1*log(0.8)+0*log0.1+0*log0.1)=0.097

直观上看出来q2的输出结果要好点。

tensorflow 接口为  cross_entropy = -tf.reduce_mean(y_ * tf.log(tf.clip_by_value(y, 1e-10, 1.0)))

tf.clip_by_value函数是为了限制输出的大小,为了避免log0为负无穷的情况,将输出的值限定在(1e-10, 1.0)之间,1.0是值概率的最大值。

神经网络中 Softmax将神经网络的输出变成了一个概率分布,这个新的输出可以理解为经过神经网络的推导,一个样例为不同类别的概率分别是多大。这样就把神经网络的输出也变成了一个概率分布,从而可以通过交叉熵来计算预测的概率分布和真实答案的概率分布之间的距离了

tensorflow中softmax和交叉熵一起使用时,也提供了接口

cross_entropy = tf.nn.softmax_cross_entropy_with_logits(y_ ,y)

神经网络中常用于分类问题

logarithmic loss function

对数损失函数

如果只有两类 (0和1) 则对数损失函数的公式简化为

loss= 

 对数似然也常用于分类:输出层只用softmax后的值当正确类的输出值pij接近于1时,yij=1,L接近于0。

 

机器学习中常用的损失函数

Hinge loss

合页函数

一般分类算法中的损失函数,其定义为:

                                   L(w,b)=max{0,1−yf(x)}

其中 y=+1或y=−1 ,f(x)=wx+b ,svm中常用

Hinge函数的标准形式:

                   L(y)=max(0,1−ty)

0-1 loss function

0-1损失函数

                         L(y,f(x))={1,0,y≠f(x)y=f(x)
当预测错误时,损失函数为1,当预测正确时,损失函数值为0。

该损失函数不考虑预测值和真实值的误差程度。只要错误,就是1。

absolute loss function

绝对值损失函数,定义为

                       L(y,f(x))=|y−f(x)|

包括上述用于神经网络的对数损失函数,交叉熵损失函数,均方误差损失函数

你可能感兴趣的:(机器学习之损失函数)