一文读懂交叉熵和最大似然的关系及在人脸识别中的应用
目录
一、信息论
1、信息量
2、信息熵
3、 相对熵(KL散度)
4、交叉熵
二、最大似然
1、概念
2、最大似然的求解
三、交叉熵和最大似然在人脸识别中的应用
四、insightface中的loss计算代码
一、信息论
1、信息量
机器学习的本质是信息论。在信息论中,首先我们引入了信息熵的概念。认为一切信息都是一个概率分布。所谓信息熵,就是这段信息的不确定性,即是信息量。如果一段信息,我无论怎么解读都正确,就没有信息量。如果一个信息,我正确解读的概率极低,就包含了极大信息量。
假设X是一个离散型随机变量,其取值集合为χ,概率分布函数为:
则定义事件X=x0的信息量为,I(x0):
由于是概率所以p(x0)的取值范围是[0,1],绘制为图形如下:
p (xo)值越小信息量越大,即确定的事件没有信息,随机事件包含最多的信息。
2、信息熵
事件的概率分布和每个事件的信息量构成了一个随机变量,这个随机变量的均值(即期望)就是这个分布产生的信息量的平均值(即熵)。
举一个例子,假设你拿出了你的手机,按下开关,会有三种可能性,下表列出了每一种可能的概率及其对应的信息量 (对数均取自然对数)
序号 | 事件 | 概率p | 信息量I |
---|---|---|---|
A | 手机正常开机 | 0.7 | -log(p(A))=0.36 |
B | 手机无法开机 | 0.2 | -log(p(B))=1.61 |
C | 手机爆炸了 | 0.1 | -log(p(C))=2.30 |
我们现在有了信息量的值,而熵用来表示所有信息量的期望,即:
其中n代表所有的n种可能性,所以上面的问题结果就是:
对于二项分布的问题,熵的计算方法可以简化为如下算式:
3、 相对熵(KL散度)
相对熵又称KL散度,如果我们对于同一个随机变量 x 有两个单独的概率分布 P(x) 和 Q(x),我们可以使用 KL 散度(Kullback-Leibler (KL) divergence)来衡量这两个分布的差异。
在机器学习中,P往往用来表示样本的真实分布,比如[1,0,0]表示当前样本属于第一类。Q用来表示模型所预测的分布,比如[0.7,0.2,0.1]
直观的理解就是如果用P来描述样本,那么就非常完美。而用Q来描述样本,虽然可以大致描述,但是不是那么的完美,信息量不足,需要额外的一些“信息增量”才能达到和P一样完美的描述。如果我们的Q通过反复训练,也能完美的描述样本,那么就不再需要额外的“信息增量”,Q等价于P。即如果用P来描述目标问题,而不是用Q来描述目标问题,得到的信息增量(相对熵)。
KL散度的计算公式:
n为事件的所有可能性。DKL的值越小,表示q分布和p分布越接近
4、交叉熵
对上式变形可以得到:
等式的前一部分恰巧就是p的熵,等式的后一部分,就是交叉熵:
P往往用来表示样本的真实分布,H(p(x))是个定值,所以衡量两个分布是否接近,我们就使用交叉熵就可以了。
二、最大似然
1、概念
极大似然估计,通俗理解来说,就是利用已知的样本结果信息,反推最具有可能(最大概率)导致这些样本结果出现的模型参数值。换句话说,极大似然估计提供了一种给定观察数据来评估模型参数的方法,即:“模型已定,参数未知”。可能有小伙伴就要说了,还是有点抽象呀。我们这样想,一当模型满足某个分布,它的参数值我通过极大似然估计法求出来的话。比如正态分布中公式如下:
如果我通过极大似然估计,得到模型中参数u和的值,那么这个模型的均值和方差以及其它所有的信息我们是不是就知道了呢。确实是这样的。极大似然估计中采样需满足一个重要的假设,就是所有的采样都是独立同分布的。
2、最大似然的求解
现考虑一个分布P(X),我们从中随机取一些样本 ,
,计算一个似然 Q(x,) ,则似然函数为: 。最大化似然函数即:
可以看到最小化交叉熵和最大似然函数的结果是一样的。
三、交叉熵和最大似然在人脸识别中的应用
人脸识别属于单分类问题。这里的单类别是指,每一张图像样本只能有一个类别,比如只能是某个明星或只能是某个普通人。交叉熵在单分类问题上基本是标配的方法。
上式为一张样本的loss计算方法。式中n代表着n种类别。举例说明,比如有如下样本
对应的标签和预测值
* | 小明 | 小花 | 小刚 |
---|---|---|---|
Label | 0 | 1 | 0 |
Pred | 0.3 | 0.6 | 0.1 |
从式中可以发现,如果小花的Pred值很少就会产生较大的loss。
对应一个batch的loss就是:
m为当前batch的样本数。
四、insightface中的loss计算代码
body = mx.symbol.SoftmaxActivation(data=fc7)body = mx.symbol.log(body)_label = mx.sym.one_hot(gt_label, depth = config.num_classes, on_value = -1.0, off_value = 0.0)
//标签为1的取值-1,标签为0的取0值body = body*_labelce_loss = mx.symbol.sum(body)/args.per_batch_size
可以发现insightface中的loss计算代码和交叉熵的公式是一致的。
一文读懂交叉熵和最大似然的关系及在人脸识别中的应用相关推荐
- 一文读懂交叉熵(Cross-Entropy)和相对熵(Relative-Entropy)
提到机器学习,就不得不提损失函数,提到损失函数,就不得不提交叉熵. 本文章将对这个概念进行详细的分析. 1.信息量 信息量是对事件发生概率的度量,一个事件发生的概率越低,则这个事件包含的信息量 ...
- 一文读懂交叉熵损失函数
进行二分类或多分类问题时,在众多损失函数中交叉熵损失函数较为常用. 下面的内容将以这三个问题来展开 什么是交叉熵损失 以图片分类问题为例,理解交叉熵损失函数 从0开始实现交叉熵损失函数 1,什么是交叉 ...
- 一文搞懂交叉熵在机器学习中的使用,透彻理解交叉熵背后的直觉
关于交叉熵在loss函数中使用的理解 交叉熵(cross entropy)是深度学习中常用的一个概念,一般用来求目标与预测值之间的差距.以前做一些分类问题的时候,没有过多的注意,直接调用现成的库,用起 ...
- dice系数 交叉熵_一文搞懂交叉熵损失
本文从信息论和最大似然估计得角度推导交叉熵作为分类损失函数的依据. 从熵来看交叉熵损失 信息量 信息量来衡量一个事件的不确定性,一个事件发生的概率越大,不确定性越小,则其携带的信息量就越小. 设\(X ...
- 一文读懂spring boot 和微服务的关系
欢迎访问网易云社区,了解更多网易技术产品运营经验. Spring Boot 和微服务没关系, Java 微服务治理框架普遍用的是 Spring Cloud. Spring Boot 产生的背景,是开发 ...
- 一文读懂区块链与大数据的关系
导读 随着数字经济的发展,区块链的价值逐渐凸显,区块链和大数据确保了数据的安全性,还可以防止数据泄露,一旦信息存储在链上,就需要有多个权限来访问数据.通过可伸缩性,区块链允许以更平静的方式共享数据. ...
- 【深度学习】一文读懂机器学习常用损失函数(Loss Function)
[深度学习]一文读懂机器学习常用损失函数(Loss Function) 最近太忙已经好久没有写博客了,今天整理分享一篇关于损失函数的文章吧,以前对损失函数的理解不够深入,没有真正理解每个损失函数的特点 ...
- 一文读懂BERT(原理篇)
一文读懂BERT(原理篇) 2018年的10月11日,Google发布的论文<Pre-training of Deep Bidirectional Transformers for Langua ...
- 一文读懂EfficientDet
一文读懂EfficientDet. 今年年初Google Brain团队在 CVPR 2020 上发布了 EfficientDet目标检测模型, EfficientDet是一系列可扩展的高效的目标检测 ...
最新文章
- Fiddler可以支持Websocket抓包了
- 在C语言里_大学生:我学了这么久的C语言,为什么感觉它啥都做不了?网友:恰恰相反!...
- Django项目功能执行逻辑流程图之用户页面信息展示和添加
- 运行中的mysql状态查看
- Eclipse 编译项目
- Linux系统下公式编辑器KLatexFormula
- SQLyog入门教程:安装与使用
- matlab管道泄漏定位,在Matlab中分析基于小波变换的管道泄漏定位方法
- LeetCode每日一题(22年1月27日-2月5日)
- 一周9本上榜新书推荐:软件调试、机器学习成为本周最亮的星
- python tkinter小动画
- 7.Python3标准库--文件系统
- 请问下这个hive beeline命令是啥意思。
- ArduPilot之开源代码Sensor Drivers设计
- uni-app 拍照或从相册上传图片
- 从零开始安装Intellij Idea14
- 北大操作系统陈向群第六章知识点
- Linux下如何查看 CPU 信息, 包括位数和多核信息
- linux下使用百度网盘不限速下载文件超简超好用
- QQ隐身查看器 ,查好友是否隐身的好工具
热门文章
- TensorFlow 直接可用的 30 个最大的机器学习数据集
- nmp i报错git --no-replace-objects ls-remote
- iTunes无法与iPhone正常连接的解决办法
- 心脏滴血漏洞(CVE-2014-0160)分析与防护
- 国家标准官方下载查看地址
- 德国精品软件 小红伞杀毒软件 AntiVir
- oracle sy imp,oracle逻辑备份imp/exp 示例用法【转】
- linux rhel unix centos FreeBSD 查看CPU核数使用率 系统 位 内存大小 硬盘 HBA光纤卡号 常用命令
- 技术期刊 · 路尘终见泰山平 | 微前端及插件化架构在 Wix 的实践;编辑器架构的第二路径;业务中的前端组件化体系……
- 华为云弹性公网IP服务,为企业敲开互联网大门