zoukankan      html  css  js  c++  java
  • 交叉熵cross entropy和相对熵(kl散度)

    交叉熵可在神经网络(机器学习)中作为损失函数,p表示真实标记的分布,q则为训练后的模型的预测标记分布,交叉熵损失函数可以衡量真实分布p与当前训练得到的概率分布q有多么大的差异。

    相对熵(relative entropy)就是KL散度(Kullback–Leibler divergence),用于衡量两个概率分布之间的差异。

    对于两个概率分布p(x)q(x) ,其相对熵的计算公式为:

    	t KLit(pparallel q)=-int p(x)ln q(x) dx -(-int p(x)ln p(x) dx)

    注意:由于p(x)q(x) 在公式中的地位不是相等的,所以	t KL it(pparallel q)
otequiv 	t KL it (qparallel p)

    相对熵的特点,是只有p(x)=q(x) 时,其值为0。若p(x)q(x) 略有差异,其值就会大于0。

    相对熵公式的前半部分-int p(x)ln q(x)dx 就是交叉熵(cross entropy)。

    p(x) 是数据的真实概率分布,q(x) 是由数据计算得到的概率分布。机器学习的目的就是希望q(x)尽可能地逼近甚至等于p(x) ,从而使得相对熵接近最小值0。由于真实的概率分布是固定的,相对熵公式的后半部分(-int p(x)ln p(x) dx) 就成了一个常数。相对熵的值大于等于0(https://zhuanlan.zhihu.com/p/28249050,这里给了证明),那么相对熵达到最小值的时候,也意味着交叉熵达到了最小值。对q(x) 的优化就等效于求交叉熵的最小值。另外,对交叉熵求最小值,也等效于求最大似然估计(maximum likelihood estimation)。

    注意:交叉熵是衡量分布p与分布q的相似性,以前认为交叉熵的相似性越大,交叉熵的值就应该越大。但通过上面的推到可以看出,交叉熵得到两个分布的相似性是根据相对熵来的,所以相似性越大,交叉熵的值应该越小。
  • 相关阅读:
    python spark 求解最大 最小 平均
    python spark 求解最大 最小 平均 中位数
    我的spark python 决策树实例
    python spark 随机森林入门demo
    python spark 决策树 入门demo
    php 使用curl发起https请求
    awk调用shell命令的两种方法:system与print
    js 中 setTimeout()的用法
    Linux里AWK中split函数的用法
    awk substr()函数
  • 原文地址:https://www.cnblogs.com/ymjyqsx/p/7085931.html
Copyright © 2011-2022 走看看