归一化(softmax)、信息熵、交叉熵

机器学习中经常遇到这几个概念,用大白话解释一下:

一、归一化

把几个数量级不同的数据,放在一起比较(或者画在一个数轴上),比如:一条河的长度几千甚至上万km,与一个人的高度1.7m,放在一起,人的高度几乎可以被忽略,所以为了方便比较,缩小他们的差距,但又能看出二者的大小关系,可以找一个方法进行转换。

另外,在多分类预测时,比如:一张图,要预测它是猫,或是狗,或是人,或是其它什么,每个分类都有一个预测的概率,比如是猫的概率是0.7,狗的概率是0.1,人的概率是0.2... , 概率通常是0到1之间的数字,如果我们算出的结果,不在这个范围,比如:700,10,2 ,甚至负数,这样就需要找个方法,将其转换成0-1之间的概率小数,而且通常为了满足统计分布,这些概率的和,应该是1。

最常用的处理方法,就是softmax,原理如上图(网上淘来的)。

类似的softmax(1)=0.12,softmax(-3)=0,这个方法在数学上没毛病,但是在实际运用中,如果目标值x很大,比如10000,那e的10000次方,很可能超出编程语言的表示范围,所以通常做softmax前,要对数据做一下预处理(比如:对于分类预测,最简单的办法,所有训练集整体按比例缩小) 

 

二、信息熵

热力学中的热熵是表示分子状态混乱程度的物理量,而且还有一个所谓『熵增原理』,即:宇宙中的熵总是增加的,换句话说,分子状态总是从有序变成无序,热量总是从高温部分向低温部分传递。 香农借用了这个概念,用信息熵来描述信源的不确定度。

简单点说,一个信息源越不确定,里面蕴含的信息量越大。举个例子:吴京《战狼2》大获成功后,说要续拍《战狼3》,但是没说谁当女主角,于是就有各种猜测,各种可能性,即:信息量很大。但是没过多久,吴京宣布女主角确定后,大家就不用再猜测女主角了,信息量相比就没这么大了。

这个例子中,每种猜测的可能性其实就是概率,而信息量如何衡量,可以用下面的公式来量化计算,算出来的值即信息熵:

 

这里p为概率,最后算出来的结果通常以bit为单位。

举例:拿计算机领域最常现的编码问题来说,如果有A、B、C、D这四个字符组成的内容,每个字符出现的概率都是1/4,即概率分布为{1/4,1/4,1/4,1/4},设计一个最短的编码方案来表示一组数据,套用刚才的公式:

即:2个bit,其实不用算也能想明白,如果第1位0表示A,1表示B;第2位0表示C,1表示D,2位编码搞定。

如果概率变了,比如A、B、C、D出现的概率是{1,1,1/2,1/2},即:每次A、B必然出现,C、D出现机会各占一半,这样只要1位就可以了。1表示C,0表示D,因为AB必然出现,不用表示都知道肯定要附加上AB,套用公式算出来的结果也是如此。

 

三、交叉熵 

 

这是公式定义,x、y都是表示概率分布(注:也有很多文章喜欢用p、q来表示),这个东西能干嘛呢?

假设x是正确的概率分布,而y是我们预测出来的概率分布,这个公式算出来的结果,表示y与正确答案x之间的错误程度(即:y错得有多离谱),结果值越小,表示y越准确,与x越接近。

比如:

x的概率分布为:{1/4 ,1/4,1/4,1/4},现在我们通常机器学习,预测出来二组值:

y1的概率分布为  {1/4 ,  1/2 , 1/8 , 1/8}

y2的概率分布为  {1/4 ,  1/4 , 1/8 , 3/8}

从直觉上看,y2分布中,前2项都100%预测对了,而y1只有第1项100%对,所以y2感觉更准确,看看公式算下来,是不是符合直觉:

 

 

 

对比结果,H(x,y1)算出来的值为9/4,而H(x,y2)的值略小于9/4,根据刚才的解释,交叉熵越小,表示这二个分布越接近,所以机器学习中,经常拿交叉熵来做为损失函数(loss function)。 

 

参考文章:

https://www.zhihu.com/question/23765351
https://www.zhihu.com/question/41252833/answer/108777563
https://www.zhihu.com/question/22178202

时间: 2024-09-01 23:57:57

归一化(softmax)、信息熵、交叉熵的相关文章

神经网络的交叉熵损失函数

常见损失函数 0-1损失函数 L(Y,f(X))={1,0Y != f(X)Y = f(X) 平方损失函数 L(Y,f(X))=(Y−f(X))2 绝对损失函数L(Y,f(X))=|(Y−f(X))| 对数损失函数L(Y,P(Y|X))=−logP(Y|X) 常见的损失函数包含以上几个. 平方损失函数 在神经网络中样本的平方损失函数一般会定义为: Ed=12∑i(zi−yi)2,方便求导后约掉系数. 使用误差逆传播训练神经网络时会使用梯度下降法来更新每个神经网络中的权重, 根据链式求导法可以得到

交叉熵代价函数定义及其求导推导(读书笔记)

目的:为了解决学习缓慢的问题 神经元的输出就是 a = σ(z),其中z=∑wjij+b是输⼊的带权和. C=−1n∑[ylna+(1−y)ln(1−a)] 其中 n 是训练数据的总数,求和是在所有的训练输⼊ x 上进⾏的, y 是对应的⽬标输出. 表达式是否解决学习缓慢的问题并不明显.实际上,甚⾄将这个定义看做是代价函数也不是显⽽易⻅的!在解决学习缓慢前,我们来看看交叉熵为何能够解释成⼀个代价函数. 将交叉熵看做是代价函数有两点原因. 第⼀,它是⾮负的, C > 0.可以看出:式子中的求和中的

[译] RNN 循环神经网络系列 1:基本 RNN 与 CHAR-RNN

本文讲的是[译] RNN 循环神经网络系列 1:基本 RNN 与 CHAR-RNN, 原文地址:RECURRENT NEURAL NETWORKS (RNN) – PART 1: BASIC RNN / CHAR-RNN 原文作者:GokuMohandas 译文出自:掘金翻译计划 本文永久链接:github.com/xitu/gold-m- 译者:Changkun Ou 校对者:CACppuccino, TobiasLee 本系列文章汇总 RNN 循环神经网络系列 1:基本 RNN 与 CHAR

Tensorflow 相关概念

一.概述 人工智能:artificial intelligence 权重: weights 偏差:biases  图中包含输入( input).塑形( reshape). Relu 层( Relulayer). Logit 层( Logit layer). Softmax.交叉熵( cross entropy).梯度( gradient). SGD 训练( SGD Trainer)等部分,是一个简单的回归模型. 计算过程是,首先从输入开始,经过塑形后,一层一层进行前向传播运算. Relu 层(隐

CVPR2017精彩论文解读:结合序列学习和交叉形态卷积的3D生物医学图像分割

雷锋网(公众号:雷锋网) AI科技评论按:虽然CVPR 2017已经落下帷幕,但对精彩论文的解读还在继续.下文是宜远智能的首席科学家刘凯对此次大会收录的<结合序列学习和交叉形态卷积的3D生物医学图像分割>(Joint Sequence Learning and Cross-Modality Convolution for 3D Biomedical Segmentation)一文进行的解读. 3D医学图像的切割的背景 3D医学图像的切割是医学图像处理里一个非常重要的工作,比如脑部MRI数据.肺

Yann LeCun的“层级损失函数”:牧羊犬和摩天大楼,哪个更像哈巴狗?

近期Yann LeCun的新作<Hierarchical loss for classification>已经放在了arXiv上,联合作者为Facebook人工智能研究院的Cinna Wu和 Mark Tygert. 在这篇文章中,作者认为在分类任务中,一般的神经网络模型(例如LeCun, Bengio 和 Hinton等人2015年中的模型,其他研究的模型也大多基于此展开的)很少会考虑到类型之间的亲疏关系,例如这些模型的分类学习过程中并没有考虑牧羊犬事实上比摩天大楼更像哈巴狗.在文章中,作者

AI人工智能专业词汇集

作为最早关注人工智能技术的媒体,机器之心在编译国外技术博客.论文.专家观点等内容上已经积累了超过两年多的经验.期间,从无到有,机器之心的编译团队一直在积累专业词汇.虽然有很多的文章因为专业性我们没能尽善尽美的编译为中文呈现给大家,但我们一直在进步.一直在积累.一直在提高自己的专业性. 两年来,机器之心编译团队整理过翻译词汇对照表「红宝书」,编辑个人也整理过类似的词典.而我们也从机器之心读者留言中发现,有些人工智能专业词汇没有统一的翻译标准,这可能是因地区.跨专业等等原因造成的.举个例子,Deep

INTERSPEECH 2017系列 | 语音识别之语言模型技术

随着iPHONE 4S中siri的出现,越来越多的民用语音识别出现在大家眼前.现在市面上各种语音输入法.语音机器人层出不穷.下图是去年阿里云栖大会,基于iDST语音技术的ET机器人.现在市面上漫山遍野的智能音箱大战,其中也包含语音识别技术. 语音识别技术,通俗讲叫语音转文字,speech-to-text,是将观测得到的语音输入信号,转化成与之对应的文本序列的过程.传统语音识别系统如下图所示,包括特征提取.声学模型.语言模型和解码器四部分,通过特征提取将原始音频信号分帧加窗,转化成有利于机器进行识

TensorFlow教程之完整教程 2.6 卷积神经网络

本文档为TensorFlow参考文档,本转载已得到TensorFlow中文社区授权. 卷积神经网络 注意: 本教程适用于对Tensorflow有丰富经验的用户,并假定用户有机器学习相关领域的专业知识和经验. 概述 对CIFAR-10 数据集的分类是机器学习中一个公开的基准测试问题,其任务是对一组32x32RGB的图像进行分类,这些图像涵盖了10个类别:飞机, 汽车, 鸟, 猫, 鹿, 狗, 青蛙, 马, 船以及卡车. 目标 本教程的目标是建立一个用于识别图像的相对较小的卷积神经网络,在这一过程中