TensorFlow:经典损失函数

本文介绍了在TensorFlow中经典损失函数的使用,包括交叉熵及其在分类问题中的应用,通常与Softmax回归结合。还提到了回归问题中常用的均方误差损失函数,并给出了相应的TensorFlow实现代码。
摘要由CSDN通过智能技术生成

 一,经典损失函数

交叉熵是一个信息论中的概念,它原本是用力啊估算平均编码长度的。在解决分类问题中,交叉熵刻画了两个概率分布之间的距离,是使用比较广的一种损失函数。给定两个概率分布p和q,通过q来表示p的交叉熵为:


注意的是,交叉熵酷话的是两个概率分布之间的距离,然而神经网络的输出却不一定是一个概率分布。概率分布刻画了不同事件发生的概率。把神经网络前向传播得到的结果变成概率分布,Softmax回归是一个常用的方法。经过Softmax回归处理后的输出为:


在TensorFlow中实现交叉熵代码如下:

cross_entropy = -tf.reduce_mean( y_*tf.log( tf.clip_by_value( y, 1e-10, 1 ) ) )
y_代表正确结果,y代表预测结果

其中

tf.clip_by_value( y, 1e-10, 1.0 )
该函数可以将一个张量中的数值限制在1e-10到1中间的范围。张量y中,低于1e-10的取值为1e-10,高于1的取值为1


tf.log(x)
该函数可以将张量中的所有数据依次取对数


tf.reduce_mean(x)
该函数直接对整个矩阵做平均


此外,交叉熵一般会和softmax回归一起使用,所以TensorFlow对这两个功能进行了统一封装,提供了一个专门的函数:

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

在只有一个正确答案的分类问题中,还可以用另一个函数加速计算

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

与分类问题不同,回归问题解决的是对具体数值的预测。解决回归问题的神经网络一般只有一个输出节点,对此常用的损失函数是均方误差:

用TenrsorFlow实现代码为:

mse = tf.reduce_mean( tf.square( y_ - y ) )




<

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值