从信息熵的角度来理解机器学习要优化的目标
博客专区 > saintqdd 的博客 > 博客详情
从信息熵的角度来理解机器学习要优化的目标
saintqdd 发表于6个月前
从信息熵的角度来理解机器学习要优化的目标
  • 发表于 6个月前
  • 阅读 397
  • 收藏 13
  • 点赞 3
  • 评论 0

标题:腾讯云 新注册用户域名抢购1元起>>>   

 

摘要:机器学习任务中最核心的工作是对构造合适的损失函数,并对其进行优化,得到最终的模型。那么如何来构造损失函数,常用的构造函数背后有哪些理论的支撑,本篇文章从熵的角度来解析,希望对对读者起到抛装引玉的作用。

一、 基础概念

信息量

对于离散概率,定义p_i的信息量为

wpsD01C.tmp

可以理解为需要查找多少次可以找到对应的离散值,比如概率0.125,对应的信息量是3,也就是说需要至少折半查找3次才能找到对应的离散取值。

信息熵(Information entropy

衡量信息的不确定性(对于人来说),熵越小,信息就越确定。通俗的说,可以从几个方面来描述,比如人判断一件事情时有把握的程度、信息压缩编码时最小需要的位数。简单的说,熵反应了信息量。定义如下wpsD01D.tmp

交叉熵(Cross Information entropy)

如果一件事情的不确定性为0,那么信息熵也为0,所以信息熵可以理解为消除事件不确定性所要付出的代价,而实际当中很难采用最真实的概率分布来对事件进行判断,而是采用一种接近真实的概率分布,比如q来拟合真实的场景,将q带入信息熵的公式就可以得出交叉熵的定义

wpsD01E.tmp

交叉熵所代表的含义是,采用非真实概率分布q下,要消除事件的不确定性所付出的代价,通常情况下,交叉熵要比信息熵大,证明的方法可参考Gibbs inequality

相对熵(relative Information entropy

交叉熵减去信息熵即是相对熵的定义

wpsD01F.tmp

实际上相对熵和交叉熵只相差了一个常量,代表了采用非真实概率分布q下,消除事件不确定性所付出的代价比采用真实概率分布下所付出的代价的差距,也可以看做是两个概率分布的差异性,和KL散度是等价的。

接下来举个例子来真切的感受下不同熵指标的变化。

举个例子A: 箱子里有4个球,2个白色,2个黑色,现在从中随即拿出来一个,猜测下颜色,猜对有奖。那么我们需要猜测几次才能中奖呢?很明显,白色和黑色的概率相同,那么最优的策略是随即选个颜色了,白色吧,如果不对,那就肯定是黑色了,所以最多只需要猜一次就可以完成。此时信息熵为

wpsD020.tmp

举个例子B:箱子里有4个球,1个白色,3个黑色,现在从中随机拿出来一个,猜测下颜色。很显然,黑色概率更高,此时肯定不会向例子A那样随即选择颜色了,更好的策略是先选择黑色,如果错了,在选择白色了。显然此时,能够猜对的概率要比A例子高很多,也就是意味着这个时间的不确定性相比A下降了。此时信息熵为

wpsD030.tmp

举个例子C: 箱子里有四个球,全是黑色,现在从中随即选择一个,猜测下颜色。太明显了,不用猜了。时间完全是确定性的,熵为0

wpsD031.tmp

举个例子D: 箱子里有四个球,1白3黑,但是不告诉真实的概率分布,现在从中选择一个,猜测下颜色。此时对时间完全一无所知,只能随机的来猜,默认黑白各半,试想这个肯定是不够优秀的策略,此时的交叉熵为

wpsD032.tmp

和例子B相比,使用随机猜测,事件的熵上升,说明基于的概率分布猜测不好,如果能够知道真实的概率分布,那么信息熵将为最低,H4-H2的差(相对熵)0.19,就是我们做模型、做特征工程、做优化的奋斗目标啊。

二、 损失函数

相对熵是要优化的目标,而相对熵和交叉熵相差一个常量,一般使用交叉熵来推导模型。因为本篇使用概率输出,所以选择二元分类逻辑回归模型和多元分类逻辑回归模型来描述基于熵的模型优化。

拿点击率预估来阐述,来了一条样本,要预估它的点击概率P(click),当然P(click)+P(nonclick)=1。显然对点击还是不点击这件事情来说,真实的概率分布就是(P(click)=100%,P(nonclick)=0%)或者(P(click)=0%,P(nonclick)=100%)。

那么我们已经知道了真实的概率分布,但是无法确切的知道具体的概率公式或者具体形式,所以只能通过构造一个概率公式比如

wpsD033.tmp

来近似真实的概率分布,那么我们就可以计算交叉熵了,形式如下

wpsD034.tmp

其中参数含义为

wpsD035.tmp

代入具体的构造概率公式,可以得到

wpsD036.tmp

其中y_hat是真实的label(1,0),这个形式和基于最大似然推导出来的损失函数形式上是一样了。

对于多类逻辑回归,最常见的场景为文本分类,此时有多个输出目标,也就是说有多个输出概率值,此时构造的概率公式为

wpsD037.tmp

针对每个输出,都一组对应的参数来进行拟合。此时的交叉熵形式如下

wpsD038.tmp

wpsD039.tmp

如果将k设置为2,就和二元分类一样了,但是形式看上仍然多了一组参数,而二元逻辑回归只有一组参数,实际上这一组参数是W0和W1的差值,为了节省空间,自然就没有多增加一组参数了。

有了交叉熵,也即要求的损失函数,剩下的事情就是通过梯度下降法来找到最优解了,在附录中,会把梯度推导的过程也粘贴过来,以备查阅。

三、 总结思考

本文从熵的角度来思考模型的优化问题,对于以概率输出的模型,都可以通过交叉熵的方式来定义优化目标,通过定义不同的概率公式,可以形成不同的模型。

交叉熵并不是概率输出模型的唯一优化方式,这是频率学派的常规思路,还可以通过贝叶斯的方式优化以概率输出为目标的模型,下一篇文章将对此阐述。

附录:

多元逻辑回归的梯度计算

对于输出label为i的样本进行交叉熵损失函数的梯度计算,求导的参数有W_0~W_k(k为分类数)

wpsD03A.tmp

先对W_i进行求导

wpsD03B.tmp

令:wpsD03C.tmp wpsD03D.tmp,则有

wpsD03E.tmp

wpsD03F.tmp

然后在对其余W_j请求求导

wpsD040.tmp

综合一下,可以得到多元分类逻辑回归模型损失函数的梯度计算公式为

wpsD051.tmp

实际应用中,损失函数使用自然对数而非以2为底对数,这样可以去掉ln(2)这个常数,同时并不改变模型本身的性质。

二元逻辑回归的梯度计算

此时参数只有一组,直接对W进行求偏导数,也分成两种情况下来计算,先看下Label=0的情况下的梯度

wpsD052.tmp

在看下Label=1的情况下的梯度

wpsD053.tmp

综合一下,可以得到二元分类逻辑回归模型的梯度计算公式

wpsD054.tmp

和多元回归一样,损失函数一般采用自然对数,可以消除常数ln(2)

共有 人打赏支持
粉丝 1
博文 2
码字总数 1977
×
saintqdd
如果觉得我的文章对您有用,请随意打赏。您的支持将鼓励我继续创作!
* 金额(元)
¥1 ¥5 ¥10 ¥20 其他金额
打赏人
留言
* 支付类型
微信扫码支付
打赏金额:
已支付成功
打赏金额: