理解机器学习的交叉熵为何用来表示损失函数

目录

前言

一、损失函数

二、KL散度(相对熵)

三、信息论

1.信息量

2 熵   

总结



前言

最近上课学习了交叉熵:

H(p,q)=-\sum_{i=1}^{n}p(x_{i})log(q(x_{i}))

但是很不理解为什么要对概率进行-log处理,凭直观的感受1-x也能衡量误差,于是通过学习交叉熵的定义由来,进一步理解




一、损失函数

损失函数能量化所学模型的好坏,损失越少,即离真实模型越近,该模型越好。

在多分类问题中,例如其中一个标签向量为p=(1,0,0,0),一个实际输出向量为q=(0.6,0.1,0.1,0.2)两者做内积结果为0.6。从最直观的感受来说,只要用1-0.6作为损失值(该值越小即0.6越逼近1,越能得到正确的分类)不就已经可以量化一个模型的好坏吗。抱着这个问题,我去学习了KL散度公式的建立(毕竟交叉熵是由KL散度公式所推得)




二、KL散度(相对熵)

在信息论中,KL散度即D(P||Q) 表示用概率分布Q来拟合真实分布P时,产生的信息损耗,其中P表示真实分布,Q表示P的拟合分布,既然是信息损耗,那就应该是用概率分布Q拟合真实分布P的信息量 减去 概率分布p的信息量,对应公式如下:

D(p||q)=-\sum_{i=1}^{n}p(x_{i})log(q(x_{i}))-(-\sum_{i=1}^{n}p(x_{i})log(p(x_{i})))

D(p||q)=\sum_{i=1}^{n}p(x_{i})\frac{log(p(x_{i}))}{log(q(x_{i}))}

变形可得:

D(p||q)=-H(p(x_{i}))-\sum_{i=1}^{n}p(x_{i})log(q(x_{i}))

由于-H(p(x_{i})) 在但多分类问题中为0,交叉熵等价于KL散度,而KL散度的实际含义:用来描述两个概率分布P和Q的差异的一种方法,与损失函数含义相符,损失函数选择交叉熵肯定没问题。可是还是没解决当初的问题为什么不直接1-p(x_{i})q(x_{i}),接下来还是从概念出发,追溯本质为什么一个概率分布的信息量要用log定义。

三、信息论

交叉熵是信息论中的一个概念,要想了解交叉熵的本质,需要先从最基本的概念讲起

1.信息量

                                     

对于三个问题的证明等价于证明f(xy)=f(x)+f(y),x∈(0,1],f(1)=0的情况下f(x)=-log(x),具体证明参考下文。

(6条消息) 信息量为什么要表示成对数的形式_Netfilter,iptables/OpenVPN/TCP guard:-(-CSDN博客_信息量为什么取对数https://blog.csdn.net/dog250/article/details/79081043?utm_medium=distribute.pc_relevant.none-task-blog-2~default~BlogCommendFromBaidu~default-18.no_search_link&depth_1-utm_source=distribute.pc_relevant.none-task-blog-2~default~BlogCommendFromBaidu~default-18.no_search_link

2 熵   

我们现在有了信息量的定义,而熵用来表示所有信息量的期望,即:

                     

 那么为什么当初相对熵(KL散度)的定义不是这样呢:

\large D(p||q)=-\sum_{i=1}^{n}q(x_{i})log(q(x_{i}))-(-\sum_{i=1}^{n}p(x_{i})log(p(x_{i})))

这个很好理解,我们在机器学习实验中每次改变的就是输出数据即q(xi),我们要探究的就是期望概率密度函数不变的情况,改变随机变量取值对于概率分布(信息量)的影响。



总结

算是对于交叉熵的由来有了更深层次的理解,对于损失函数为什么不用1-p(x_{i})q(x_{i})我的总结是,不符合实际含义,不像交叉熵那么具有可解释性,同时log函数在实际情况定量表示信息量的表现也十分不错。对于信息量为什么用log的推导也十分有意思,不禁感叹数学的强大!

  • 1
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
### 回答1: 交叉熵损失函数(Cross Entropy Loss Function)是一种常见的机器学习损失函数,它可以用来度量预测值与实际值之间的差异。它也被称为对数损失函数,因为它使用了对数运算。交叉熵损失函数是计算机科学中一个重要的概念,它可以用来衡量预测模型的准确度。它主要用于分类任务,在分类任务中,它是用来衡量预测模型的准确度的理想指标。交叉熵损失函数的计算公式为:L=-Σp(x)log q(x),其中p(x)是目标值的概率分布,q(x)是模型预测值的概率分布。它使用了对数运算,意味着它需要在计算过程中将概率值转换为对数值。交叉熵损失函数是一个非常强大的损失函数,它可以用来衡量预测值与实际值之间的差异。交叉熵损失函数是一个很有用的损失函数,它可以用来衡量预测模型的准确度,并帮助我们调节模型的参数,以最大程度地提高模型的性能。值得一提的是,交叉熵损失函数也可以用来计算多分类问题的损失函数,因此它可以用来衡量多分类模型的准确度。 ### 回答2: 交叉熵损失函数是深度学习中常用的一种损失函数,广泛应用于分类问题中。在深度学习中,我们通常需要训练一个神经网络模型去分类输入的数据。而交叉熵损失函数可以帮助我们评估模型预测结果与实际标签之间的差异,并以此来优化模型的参数。 首先,我们来看一下交叉熵损失函数的定义。设模型的预测结果为y,实际标签为t,那么交叉熵损失函数可以定义为: H(y, t) = - ∑(t * log(y)) 其中,∑表示对所有类别进行求和,t和y分别表示实际标签和模型的预测结果。log为自然对数函数。交叉熵损失函数的目标是使得模型的预测结果与实际标签尽可能接近,因此我们希望交叉熵损失函数的值越小越好。 接下来,我们来解释一下交叉熵损失函数的原理。交叉熵损失函数的核心思想是用来衡量两个概率分布之间的相似度。在分类问题中,模型的预测结果可以看作是一个概率分布,而实际标签也可以看作是一个概率分布。交叉熵损失函数通过计算这两个概率分布的差异来度量模型的预测结果与实际标签之间的距离。 在交叉熵损失函数中,实际标签通常采用one-hot编码方式表示。即如果样本属于第i类,则实际标签的第i维为1,其余维度为0。这样,交叉熵损失函数可以看作是对所有类别进行加权求和的负对数似然函数。 交叉熵损失函数的优点是能够更好地刻画预测概率分布与实际标签之间的差异,从而更准确地指导模型参数的优化。此外,交叉熵损失函数还具有良好的数学性质和可解释性,便于模型的训练和理解。 总结起来,交叉熵损失函数是深度学习中常用的一种损失函数,用于衡量模型预测结果与实际标签之间的差异。通过最小化交叉熵损失函数,可以有效地优化模型的参数,提高分类任务的准确性。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值