二次代价函数、交叉熵代价函数、对数似然代价函数的应用场景

二次代价函数的局限性

首先来说一下二次代价函数的局限性,看下面这张图:
在这里插入图片描述
假设现在使用的激活函数是sigmoid,并且代价函数是二次代价函数,我们收敛得目标是1,那么A点的梯度比较大,B点由于离目标比较近梯度小,所以是合理的;但是如果我们的收敛目标是0,那么A点离目标比较近,所以梯度应该要小于B点,但是图中明明是A点的梯度大于B点,这是不合理的。

交叉熵

正式由于二次大家函数的这个局限性,我们需要引入交叉熵。看下面这张图:
在这里插入图片描述

上面这张图中, C = − 1 2 ∑ [ y l n a + ( 1 − y ) l n ( 1 − a ) ] C=-\frac{1}{2}\sum[ylna+(1-y)ln(1-a)] C=21[ylna+(1y)ln(1a)]代表的是交叉熵代价函数,对w和b进行求导后得到下面的式子:
在这里插入图片描述
现在我们发现w和b的调整已经跟 激活函数的导数(注意是导数哦) 无关了,而是跟输出值和真实值的误差有关,他们的误差越大,梯度也就越大,w和b的收敛速度越快。

总结

虽然二次代价函数有自身的局限性,但是我们也不能因此而丢弃它不用,因为在线性回归问题中它依然用后很大的价值,因此要根据实际需要选择代价函数。底下是一个小结,大家可以在实际中根据需要进行选择:

  • 二次代价函数:输出神经元是线性的就选用该代价函数
  • 交叉熵代价函数:输出神经元是S型的就选用该代价函数,例如sigmoid激活函数中(tf.nn.sigmoid_cross_entropy_with_logits())
  • 对数似然代价函数:输出神经元是softmax的时候选用(tf.nn.softmax_cross_entropy_with_logits())

结束线/

欢迎大家加入Q群讨论:463255841

结束线/

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值