小知识,大挑战!本文正在参与“程序员必备小知识”创作活动。
我们今天从两个方式来推导出交叉熵损失函数的公式,而且在推导过程中解释为什么交叉熵可以用于分类问题的损失函数。
最大似然估计
在统计学中,最大似然估计(英语:Maximum Likelihood Estimation,简作MLE),也称极大似然估计,是用来估计一个概率模型的参数的一种方法。
KL 散度
之前介绍过 KL 散度用于衡量 2 概率分布之间差距。
DKL(P∣∣Q)=i∑P(i)logQ(i)P(i)
用于衡量 Q(i) 与 P(i) 之间的距离。那么对于多分布概率,
DKL(P∗(yi∣xi)∣∣P(y^i∣xi;θ))
- P(y^i∣xi;θ) 表示神经网络对应模型预测数据分布其中 θ 为分布参数,其中xi 表示第 i 个样本,可以一张图片,也可以样本,θ 是神经网络的参数,y^ 是神经网络给出推测结果
- P∗(yi∣xi) 表示数据的真实分布
DKL(P∗(yi∣xi)∣∣P(y^i∣xi;θ))=i∑P∗(yi∣xi)logP(y^i∣xi;θP∗(yi∣xi))
进行进一步化简得到
DKL(P∗∣∣P)=i∑(P∗(yi∣xi)[logP∗(yi∣xi)−logP(y^i∣xi;θ)]
DKL(P∗∣∣P)=i∑(P∗(yi∣xi)logP∗(yi∣xi)−i∑(P∗(yi∣xi)logP(y^i∣xi;θ)
∑i(P∗(yi∣xi)logP∗(yi∣xi) 这一项和 θ 无关,所以可以忽略这。所以最终化简为
θargminDKL(P∗∣∣P)=−i∑(P∗(yi∣xi)logP(y^i∣xi;θ)
这是通过 KL 散度来推导出
极大似然
就是通过观察结果来推测数据概率分布,假设有密封 box,我们只知道其中装有一定数量的球,其中有 red 球和 blue 球,不过 red 球和 blue 球比例我们并不知道,我们可以从 box 中取球,不过每一次只能取一个球观察后需要放回 box,我们可以从 box 取一定次数,然后通过观察取出球 red 球和 blue 球的比例来推测 box 中 red 球和 blue 球的比例,这就是似然。
假设观察结果为 C1,C2⋯C3 如果硬币试验就是正面还是反面朝上结果,如果 red 或者 blue 球,我们观察到结果联合概率,然后我们是要找到一个概率分布参数让这种观察结果出现概率最大。
P(C1,C2,⋯Cn∣θ)=i=1∏nP(Ci∣θ)
我们可以将神经网络来模拟概率分布,这里参数 W,b 决定模型预测概率分布,假设这是一个二分类问题,可以认为是 Dog and Cat 预测结果。
P(y1,y2,⋯,yn∣W,b)=i=1∏n(P(yi∣W,b)
yi^=NN(W,b)P(y1,y2,⋯,yn∣W,b)=i=1∏n(P(yi∣y^i)
我们可以通过神经网络模型预测结果 yi^ 替换掉参数 W,b,因为是 0 1 的伯努利分布,所以可以写成如下形式,加下来就可以由似然推出交叉熵公式。
i=1∏ny^yi(1−y^)1−yi
θargmaxi=1∑nlogy^yi(1−y^)1−yi
θargmaxi=1∑nyilogy^+(1−yi)log(1−y^)
−θargmini=1∑nyilogy^+(1−yi)log(1−y^)