机器学习常见损失函数,二元交叉熵,类别交叉熵,MSE,稀疏类别交叉熵

一 损失函数介绍

损失函数用于描述模型预测值与真实值的差距大小。一般有有两种常见的算法——均值平方差(MSE)和交叉熵。下面来分别介绍每个算法的具体内容。

1 均值平方差

均值平方差(Mean Squared Error,MSE),也称“均方误差”,在神经网络中主要是表达预测值和真实值之间的差异,在数理统计中,均方误差是指参数估计值与参数真值之差平方的预期值,主要用于回归问题。

公式如下:主要是对每一个真实值与预期值相减的平方取平均值

均方误差的值越小,表明模型越好,拟合程度也越好,泛化性能也较好。

类似的损失算法还有均方根误差RMSE(将MSE开平方):

平均绝对值误差MAD(对一个真实值与预测值相减的绝对值取平均值)

2 交叉熵

交叉熵(crossentropy)也是loss算法的一种,一般用在分类问题上,表达意思为预测输入样本属于哪一类的概率。其表达式如下,其中y代表真实值分类(0或1)需要进行ont-hot表示,a代表预测值。

二分类情况下的公式:

交叉熵也是值越小,代表预测结果越准。多类别交叉熵和二分类类似,只是计算的公式变化了而已,稀疏类别交叉熵也和以上类似,只不过稀疏类别交叉熵不需要把标签y进行ont-hot表示,但是需要进行顺序表示,eg: y 取值为0 1 2 3 4   要从0开始进行标号。

3 损失算法的选取

损失函数的选取取决于输入标签数据的类型:

如果输入的实数、无界的值,损失函数使用平方差。

如果输入标签是位矢量(分类标志),使用交叉熵会更适合。

二 损失函数举例

下面是3个训练样本经过使用softmax作为激活函数的神经网络的输出(computed)、真实结果(targets)以及是否预测正确的对比表格。

下面是另外一个网络的训练结果

1 交叉熵计算(三分类交叉熵)

第一个样本的交叉熵为:

−(0∗ln0.3+0∗ln0.3+1∗ln0.4)=−ln0.4

对于神经网络来说,交叉熵的计算有点古怪,因为只有一项会被保留下来。因此三个样本的平均交叉熵为:

−(ln0.4+ln0.4+ln0.1)/3=1.38

第二个网络的平均交叉熵为:

−(ln0.7+ln0.7+ln0.3)/3=0.64

2 均方误差(Root Mean Square Error, RMSE)

第一个网络:0.81

第二个网络:0.34

 

 

 

 

 

 

  • 6
    点赞
  • 13
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值