从GCN中学习的信息熵
之前在GCN中碰到的交叉熵损失函数是分类问题中经常使用的一种损失函数,对于其内部原理感觉没有完全懂,今天来深入理解一下。
交叉熵简介
交叉熵 :信息论中的一个重要概念,主要用于度量两个概率分布间的差异性
信息是用来消除随机不确定性的东西”,衡量信息量的大小就是看这个信息消除不确定性的程度。
“太阳东升西落”,这条信息并没有减少不确定性,因为太阳肯定是从东边升起西边落下,这是一句人人都知道的话,信息量为0。
”2018年中国队成功进入世界杯“,从直觉上来看,这句话具有很大的信息量。因为中国队进入世界杯的不确定性因素很大,而这句话消除了进入世界杯的不确定性,所以按照定义,这句话的信息量很大。
根据上述总结:信息量的大小与信息发生的概率成反比。概率越大,信息量越小。
设某一事件发生的概率为P(x),其信息量表示为:
其中 I(x)表示信息量,这里 log 表示以e为底的自然对数。
信息熵
信息熵也被称为熵,用来表示所有信息量的期望。
期望是试验中每次可能结果的概率乘以其结果的总和。
所以信息量的熵可表示为:(这里的 X是一个离散型随机变量)
对0-1分布的问题,其结果只用两种情况,是或不是,设某一件事情发生的概率为 P ( x ) ,则另一件事情发生的概率为 1 − P ( x ) ,所以对于0-1分布的问题,计算熵的公式可以简化如下:
相对熵(KL散度)
如果对于同一个随机变量 X X有两个单独的概率分布 P ( x ) 和 Q ( x ) ,则我们可以使用KL散度来衡量这两个概率分布之间的差异。
机器学习中,常常使用 P ( x ) P\left(x\right) P(x)来表示样本的真实分布, Q ( x ) Q \left(x\right) Q(x)来表示模型所预测的分布,比如在一个三分类任务中(例如,猫狗马分类器), x 1 , x 2 , x 3 分别代表猫,狗,马,例如一张猫的图片真实分布 P ( X ) = [ 1 , 0 , 0 ]预测分布
Q ( X ) = [ 0.7 , 0.2 , 0.1 ]计算KL散度:
KL散度越小,表示 P ( x ) 与 Q(x)的分布更加接近,可以通过反复训练 Q ( x ) 来使 Q ( x ) 的分布逼近 P ( x )
交叉熵
首先将KL散度公式拆开:
前者 H ( p ( x ) )表示信息熵,后者即为交叉熵,KL散度 = 交叉熵 - 信息熵
交叉熵公式表示为:
在机器学习训练网络时,输入数据与标签常常已经确定,说明真实概率分布 P ( x )已经确定,即信息熵是一个常量。由于KL散度的值表示真实概率分布 P ( x ) 与预测概率分布 Q ( x ) 之间的差异,其值越小说明预测结果越好。因此需要最小化KL散度,而交叉熵等于KL散度加上一个常量(信息熵),且公式相比KL散度更加容易计算,所以在机器学习中常常使用交叉熵损失函数来计算loss。
总结:
交叉熵能够衡量同一个随机变量中的两个不同概率分布的差异程度,在机器学习中就表示为真实概率分布与预测概率分布之间的差异。交叉熵的值越小,模型预测效果就越好。
交叉熵在分类问题中常常与softmax是标配,softmax将输出的结果进行处理,使其多个分类的预测值和为1,再通过交叉熵来计算损失。
如GCN中预测:
从GCN中学习的信息熵相关推荐
- 浙大吴飞教授:尽管AlphaGo Zero已强大到从经验中学习模型,我也绝不赞同马斯克和霍金的威胁论,人才是智能的最终主宰
记者 | 鸽子 在整个采访过程中,吴飞教授在回答中给人的最大感受是温和.儒雅.他没有激烈的言辞,也没有犀利的观点,不会一开始直接抛出自己的判断,而是将所有的提问,看作是一次学术上的严谨探讨,从问题本身 ...
- 《从缺陷中学习C/C++》——6.15 试图产生的指针很可能不存在
本节书摘来自异步社区出版社<从缺陷中学习C/C++>一书中的第6章,第6.15节,作者: 刘新浙 , 刘玲 , 王超 , 李敬娜 , ,更多章节内容可以访问云栖社区"异步社区&q ...
- rust墙壁升级点什么_分享:如何在阅读Rust项目源码中学习
今天做了一个Substrate相关的小分享,公开出来. 因为我平时也比较忙,昨天才选定了本次分享的主题,准备比较仓促,细节可能不是很充足,但分享的目的也是给大家提供一个学习的思路,更多的细节大家可以在 ...
- 极客新闻——05、如何在工作中学习和成长?
本文笔记全部来自<极客新闻>--新鲜的技术资讯.权威的趋势剖析.别样的技术洞察 关于如何进行自我学习的话题? 不同的人可能有不同的回答,总结起来就是阅读博客.参加技术大会.读书.利用闲暇时 ...
- 3D U-Net:从稀疏注释中学习密集的体积分割
作者:Tom Hardy Date:2020-01-10 来源:3D U-Net:从稀疏注释中学习密集的体积分割
- 程序员失业第一步?斯坦福研究员用AI从编译器反馈中学习改Bug
来源:AI科技评论 本文约2700字,建议阅读10分钟 本文介绍了来自斯坦福大学的两位研究员研究了如何使用AI来自动修复程序,以期未来程序修复自动化可以大大提高编程和学习编程的效率. 众所周知,程序员 ...
- 《从缺陷中学习C/C++》——6.18 小结
本节书摘来自异步社区出版社<从缺陷中学习C/C++>一书中的第6章,第6.18节,作者: 刘新浙 , 刘玲 , 王超 , 李敬娜 , ,更多章节内容可以访问云栖社区"异步社区&q ...
- MVVM架构~knockoutjs系列之从Knockout.Validation.js源码中学习它的用法
说在前 有时,我们在使用一个插件时,在网上即找不到它的相关API,这时,我们会很抓狂的,与其抓狂,还不如踏下心来,分析一下它的源码,事实上,对于JS这种开发语言来说,它开发的插件的使用方法都在它的源码 ...
- 「从源码中学习」面试官都不知道的Vue题目答案
前言 当回答面试官问及的Vue问题,我们除了照本宣科的回答外,其实还可以根据少量的源码来秀一把,来体现出你对Vue的深度了解. 本文会陆续更新,此次涉及以下问题: "new Vue()做了什 ...
最新文章
- 关于Linux的inode和dentry的一组文章
- MySQL——单表查询练习:彩票数据核对
- (C#)链接本地数据SDF。
- 你是个失败者,有什么资格说话?
- session的钝化和活化
- mysql 5.6.31 配置_MySQL5.6.31 winx64.zip 安装配置教程详解
- 面试前,不要这么准备了,简直愚蠢到极点
- 可视化概念思维导图软件 MindMapper 17 Arena 完美汉化开心版
- white-space 空白处理、强制内容不换行,word-wrap 文本自动换行,text-overflow 文本溢出
- Chrome 76.0.3809.100(正式版本) (64 位) 版本 77.0.3865.90不显示网址中的www怎么解决...
- 尚硅谷大数据开发Day01
- 监狱智能化管理系统综合安防解决方案
- 学计算机基础的重要性,浅谈学习计算机基础知识的重要性.pdf
- linux 6重启网卡,centos 网卡重启方法
- 浅层砂过滤器的原理是什么,滤料是什么,需要不需要定期?
- trim函数去除空格(所有空格,前后,前,后)以及字母大小写切换
- linux网络服务器笔记
- 生日礼物(winter camp F)
- Web前端面试指导(二):编写简历,吃透简历内容
- 《30天自制操作系统》读书笔记(2)hello, world
热门文章
- tf.nn.sigmoid_cross_entropy_with_logits 分类
- Bzoj 4371: [IOI2015]sorting排序 二分
- django QuerySet
- transform,translate,transition 的区别
- Apache ActiveMQ教程
- 学习拾遗--用RadioButtonList 或者DropDownList 进行动态赋值问题
- JDK5新特性之一----静态导入
- HibernateTemplate使用方法
- 用MyEclipse测试发送email时报java.lang.NoClassDefFoundError: com/sun/mail/util/LineInputStream
- PHP5.5+Nginx1.9