zoukankan      html  css  js  c++  java
  • 认识交叉熵

    交叉熵(cross entropy)是深度学习中常用的一个概念,一般用来求目标与预测值之间的差距。

    1. 什么是熵(Entropy)

    1.1. 信息量

    首先是信息量。假设我们听到了两件事,分别如下:

    • 事件A:巴西队进入了2018世界杯决赛圈。
    • 事件B:中国队进入了2018世界杯决赛圈。

    仅凭直觉来说,显而易见事件B的信息量比事件A的信息量要大。究其原因,是因为事件A发生的概率很大,事件B发生的概率很小。所以当越不可能的事件发生了,我们获取到的信息量就越大。越可能发生的事件发生了,我们获取到的信息量就越小。那么信息量应该和事件发生的概率有关。

    1.2. 熵

    熵用来表示所有信息量的期望。

    1.3. 相对熵(KL散度)

    相对熵又称KL散度,如果我们对于同一个随机变量 x 有两个单独的概率分布 P(x) 和 Q(x),我们可以使用 KL 散度(Kullback-Leibler divergence)来衡量这两个分布的差异。

    1.4. 交叉熵

    2. 总结

    一个简单的交叉熵修正不仅可以用来估计稀有事件的概率,还可以用来解决困难的组合优化问题(COP)。这是通过将“确定性”优化问题转化为相关的“随机”优化问题来完成的。Reuven Y.Rubinstein 还通过几个应用证明了CE方法的强大功能,作为解决NP难问题的通用实用工具。

    交叉熵方法已成功应用于动态模型中稀有事件概率的估计,特别是涉及轻,重尾(light/heavy-tailed)输入分布的排队模型。目前,交叉熵方法能应用范围包括但不限于:缓冲区分配、静态模拟模型、电信系统的排队模型、神经计算、控制和导航、DNA序列比对、调度、车辆路线、强化学习、项目管理、重尾分布、网络可靠性分析、可修复系统。

    传统交叉熵方法可以高效地处理大部分的简单优化问题,并且具有极快的收敛速度。但是当目标函数较复杂或约束函数数目较多时,由于交叉熵方法的收敛速度过快,所以比较容易陷入局部最优,计算性能不足;且如果初期的优化方向错误,则方法可能无法收敛。不过目前有一些研究专注于改进传统交叉熵方法。

  • 相关阅读:
    并发下常见的加锁及锁的PHP具体实现代码(转)
    Yii2.0高级框架数据库增删改查的一些操作(转)
    MySQL主从数据库同步延迟问题解决(转)
    Redis安装及主从配置(转)
    Sphinx 之 Coreseek、Sphinx-for-chinaese、Sphinx+Scws 评测
    Sphinx中文分词安装配置及API调用
    php实现二分查找法
    PHP设计模式_适配器模式
    PHP设计模式_注册树模式
    PHP设计模式_工厂模式
  • 原文地址:https://www.cnblogs.com/brt2/p/13743440.html
Copyright © 2011-2022 走看看