熵、信息熵、交叉熵以及在机器学习中的应用

今天看到了cross entropy cost function,然后找了找entropy和cross entropy的一些相关资料,现做以下总结。

【熵】

我最开始看到这个字是在学化学竞赛的大神的笔记上,后来在高中化学课上,学到了熵,用来描述一个系统的混乱程度。熵越大,系统越混乱;熵越小,系统越稳定。

【信息熵】

著名的信息论创始人、数学家香农在《通信的数学原理》一文中提到“信息是用来消除随机不确定的东西”。(顺便扯几句,这句话为“要多和别人沟通”这句俗话提供了理论依据,试想在相同条件下,你能充分利用身边的资源为你取来信息,那么消除了随机不确定性,成功的概率是不是就增大了一些呢?)。信息熵就是消除随机不确定性所需要的信息量的度量,也可以说是未知事件可能会含有的信息量。

定义事件所含有的信息量为I,事件发生的概率为p

                                                                                              I=log(\frac{1}{p})

从直观感受来看,一个事件发生的概率越低,这个事件的不确定性就越大,事件所包含的信息量也就越大。

为什么是log?假设两个随机变量是相互独立的,那么分别观测两个信息所得到的信息量和同时观测两个变量的信息量应当相同。即H(X,Y)=H(X)+H(Y),而从概率上来讲,两个独立随机变量P(X,Y)=P(X)P(Y)。所以,这种乘法到加法的变换,符合对数运算:logP(X,Y)=log(P(X)P(Y))=logP(X)+logP(Y)。(方便理解,省略了负号)

【交叉熵】

给定两个分布pq,我们用交叉熵H(p,q)来衡量两个分布之间的差异性。

                                                                            H(p,q)=-\sum_{x}p(x)logq(x)

如果两个分布是一致的,那H就为0。

【交叉熵损失函数】

如果把交叉熵用在分类问题的损失函数中,我们可以定义

                                                                            J(\Theta )=- \frac{1}{m}\sum_{i=1}^{m} \sum_{k=1}^{K}y_k^{i}log(\widehat{p_k^i})

k为类的数目,m为样本的数目。

如果对应到二分类问题上,设p({\widehat{y}}=1)=p,label为y,那么损失函数就变为了:

                                                               J(\Theta )=- \frac{1}{m}\sum_{i=1}^{m} ((1-y)log(1-p)+ylogp)

当y=0,p=0;或者y=1,p=1的时候,损失都为0,也就是说预测的完全正确。当y=0,p=1的时候,损失为无穷,也就是说,预测的十分糟糕。

以上就是我的一些理解。

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值