损失函数--KL散度与交叉熵
损失函数
在逻辑回归建立过程中,我们需要一个关于模型参数的可导函数,并且它能够以某种方式衡量模型的效果。这种函数称为损失函数(loss function)。
损失函数越小,则模型的预测效果越优。所以我们可以把训练模型问题转化为最小化损失函数的问题。
损失函数有多种,此次介绍分类问题最常用的交叉熵(cross entropy)损失,并从信息论和贝叶斯两种视角阐释交叉熵损失的内涵。
## 公式请查看:https://blog.csdn.net/Ambrosedream/article/details/103379183
K-L散度与交叉熵
-
随机变量X有k种不同的取值:,,。 记X的取值 的概率为p(X=) ,简写为P() .
-
克劳德· 香农定义了信息的信息量:
注:其中对数可以以任意合理数为底,如 2、e。使用不同的底数所得到的信息量之间相差一个常系数。
若以2为底,信息量的单位是bit ,I(X= )是X = 这条信息的自信息量(self-information) .
-
自信息量I随着概率P()的图像变化如下:
自信息量背后的含义:信息中事件发生的概率越小,则信息量越大。
举例:假如有人告诉你即将开奖的彩票中奖号码是777777777,这条信息的价值很高,类似事情发生概率极小。假如有人告诉你明天太阳会升起,这件事对你来说价值很低,但是他发生的概率却很高。所以我们会觉得彩票的开奖号信息量很大,太阳升起的信息量较小。
-
我们令信息源X 取不同的值 的概率分布分别为 .
-
定义信息源 X的熵(entropy)为:
H(p) =
-
信息源由概率分布p描述,s所以熵是p的函数,熵的概念来自热力学。H(p)又称平均信息。
-
根据公式我们可以看出,H(p)是将X所有取值的自信息量以概率为权重取平均。
-
对于两个概率分布p和q, 定义p和q的K-L散度(kullback-leibler divergence)是:
-
K-L散度是 在分布p上的期望。(注:KLD(p||q) KLD(q||p))
-
根据上述公式我们可以发现,当和 相等时, 所以KLD散度等于0。所以说两个同分布的KLD散度为0,所以我们一般使用KLD描述两个概率分布之间的相似度。
-
我们定义交叉熵:
-
所以根据上述两式,有:
H(p,q) = KLD(p||q) + H(p)
-
分布p和q的交叉熵等于它们的K-L散度加上p的熵。现在假设分布p固定,则H(p,q)与KLD(p||q)之间只相差一个常数H(p),所以此时H(p,q)也可以被用来描述两个分部之间的相似程度。即:H(p,q)越小,p,q越相似。
-
对于一个训练样本{ } 可以标签 给出了一个类别的概率分布:
-
,,
-
我们将逻辑回归模型的输出看做一个分布Q:
-
,
-
所以我们希望回归模型的准确率尽可能地高,即是希望分布Q与训练集P的分布尽可能地相似,由此我们可以使用交叉熵来描述输出分布于标签分布的相似度,也就是我们所说的损失函数(loss)
上式是模型在一个样本的交叉熵,其值越小,预测分布于标签给出分布越相似。