Press "Enter" to skip to content

信息论和交叉熵损失函数

同步csdn地址:

 

blog.csdn.net/soullines/a…

 

在机器学习和深度学习中,很多时候需要进行分类,这时会涉及到决策边界,比如sigmod激活函数; 但是当面对多分类的时候(比如经典的MNIST),我们需要预测每一个种类output的概率,比如softmax,这时候我们需要对: 信息论和交叉熵有 一个清晰的认识 那幺我们的文章将会对 信息论和交叉熵损失函数 进行一个讲解;

 

 

1.信息论

 

1.1 信息论是从物理学中借鉴过来的,我们只讲其数学意义:

 

其实信息论是一种用来描述 概率分布或者蒋概率分布之间的相似性 的一种思想 信息论的核心思想就是用来表示 意外程度 ,即小概率事件发生的信息量大

1.必然事件的信息量为0
2.事件发生的概率越小,其提供的信息量就越大
3.信息是具有增量的特征的,即同一事件,发生一次的信息量是 ,则重复投递两次的信息量是 那幺为了实现我们的目的 将概率事件的信息量进行量化

 

2.自信息

 

就是单个事件的信息量的量化值

 

我们构建这样一个公式:

这里 就是随机事件 时候事件发生的概率
对数函数式增函数,那幺 函数就是减函数,这样构建出来的函数就实现了我们的某种目的,随着概率的减小,信息量就越大 但是自信息仅能预测一个事件的信息量
的单位是奈特 ,就是说1 代表以 概率的一个事件的自信息量

 

3.香农熵

 

往往在我们的实际应用中我们需要使用 香农熵 来对整个事件概率分布中的不确定性总量进行量化

 

在这里我们可以借鉴 随机变量X的数学期望的求值公式

 

这里的香农熵其实可以看做是: 信息量 的数学期望的求值公式

这里k是类别,n代表总类别

下面我们举例说明:

 

数组1:111111

 

数组2:111222

 

数组3:112233

 

我们来算数组1 ,2 和 3的香农熵

 

 

 

 

这样来看数组1的香农熵为0,则为必然事件,数组2居中,数组3最大,则其概率分布的概率最小

 

 

4.交叉熵

 

前面我们有讲到 自信息 和 香农熵 那幺如何用到机器学习和深度学习中呢,不着急慢慢往下看 我们记得之前在多类别分类的模型中我们有用到 进行每个类别概率估计,然后取最大概率做为预测值 而当我们反向更新 为激活函数的模型或者神经网络时候,是将交叉熵做为 函数进行梯度调节的

 

那幺让我们聚焦 交叉熵 在这之前我们需要看下 散列,这是基于香农熵用来衡量对于同一个随机变量X的两个单独分布 和 的差异的途径:

 

但是在深度学习中我们使用 散列的变形,也就是交叉熵来作为某些场景的 函数,即:

 

根据 散列我们队上述公式进行变形:

 

经过变形就得到:

 

接着,我们变化成易于理解的 函数

 

到这里我们看到了我们熟悉的成本函数, 回归分类器的成本函数

 

接着我们探讨为什幺使用这个成本函数

 

主要是softmax等多分类器,在评估真实值( )和预测值( )距离时,更多的是在评估概率之间的距离,这样使用传统的均方根误差做为 函数毫无意义

 

我们来举个例子(以MNIST为例: 识别0~9的数字图片): 假设输出层是 为激活函数:

 

那幺我们假设用两组标签相同的实例 和 来进行分析 首先我们的 都是0,所以真实值得向量组合是(1,0,0,0,0,0,0,0,0,0)

A的预测值向量组合(0.9,0.2,0.1,0,0,0,0,0,0,0)
B的预测值向量组合(0.8,0,0.1,0,0.5,0,0,0,0,0)

接着算A和B的交叉熵(也就是 函数) :

P代表真实值
Q代表预测值 因为 ,所以明显第一组要由于第二组

补充一点:交叉熵 不是对称的,所以 所以要注意P和Q的顺序,一版情况下,P代表真实值,Q代表预测值

 

最近很热,大家谨防中暑,但是学习不能断 ^^

Be First to Comment

发表回复

您的电子邮箱地址不会被公开。 必填项已用*标注