标签:机器 函数 交叉 信息量 散度 KL 概率分布 log
目录
前言
最近上课学习了交叉熵:
但是很不理解为什么要对概率进行-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的信息量,对应公式如下:
变形可得:
由于 在但多分类问题中为0,交叉熵等价于KL散度,而KL散度的实际含义:用来描述两个概率分布P和Q的差异的一种方法,与损失函数含义相符,损失函数选择交叉熵肯定没问题。可是还是没解决当初的问题为什么不直接,接下来还是从概念出发,追溯本质为什么一个概率分布的信息量要用log定义。
三、信息论
交叉熵是信息论中的一个概念,要想了解交叉熵的本质,需要先从最基本的概念讲起
1.信息量
对于三个问题的证明等价于证明f(xy)=f(x)+f(y),x∈(0,1],f(1)=0的情况下f(x)=-log(x),具体证明参考下文。
2 熵
我们现在有了信息量的定义,而熵用来表示所有信息量的期望,即:
那么为什么当初相对熵(KL散度)的定义不是这样呢:
这个很好理解,我们在机器学习实验中每次改变的就是输出数据即q(xi),我们要探究的就是期望概率密度函数不变的情况,改变随机变量取值对于概率分布(信息量)的影响。
总结
算是对于交叉熵的由来有了更深层次的理解,对于损失函数为什么不用我的总结是,不符合实际含义,不像交叉熵那么具有可解释性,同时log函数在实际情况定量表示信息量的表现也十分不错。对于信息量为什么用log的推导也十分有意思,不禁感叹数学的强大!
标签:机器,函数,交叉,信息量,散度,KL,概率分布,log 来源: https://blog.csdn.net/qq_45130467/article/details/120222206
本站声明: 1. iCode9 技术分享网(下文简称本站)提供的所有内容,仅供技术学习、探讨和分享; 2. 关于本站的所有留言、评论、转载及引用,纯属内容发起人的个人观点,与本站观点和立场无关; 3. 关于本站的所有言论和文字,纯属内容发起人的个人观点,与本站观点和立场无关; 4. 本站文章均是网友提供,不完全保证技术分享内容的完整性、准确性、时效性、风险性和版权归属;如您发现该文章侵犯了您的权益,可联系我们第一时间进行删除; 5. 本站为非盈利性的个人网站,所有内容不会用来进行牟利,也不会利用任何形式的广告来间接获益,纯粹是为了广大技术爱好者提供技术内容和技术思想的分享性交流网站。