MLE和交叉熵之间的联系在深度学习中有多有意义?


12

我了解给定了独立的观测值 的最大似然估计(或,等价地,具有平坦的MAP /均匀)之前标识所述参数\ mathbf {θ}产生该模型分布 P_ {模型} \ 与这些观测值最匹配的left(\,\ cdot \,; \ mathbf {θ} \ right)将是直径: = { Ö 1 o m }mO={o(1),...,o(m)}θpmodel(;θ)

θML(O)=pmodel(O;θ)=argmaxθi=1mpmodel(o(i);θ)

或者,更方便

θML(O)=argminθi=1mlogpmodel(o(i);θ)

并了解θML在定义多类深度神经网络的损失函数中可以发挥的作用,其中θ对应于网络的可训练参数(例如θ={W,b}),观察值是输入激活对x和相应的正确类标签y[1,k]o(i) = { x(i),y(i) },方法是

pmodel(o(i);θ)pmodel(y(i)|x(i);θ)


我不明白的是,这与(矢量化的)正确输出\ mathbf {y} ^ {(i)}的所谓“交叉熵”以及y(i)网络的相应输出激活ħ ø ; θ= - Ý Ô a(x(i);θ)

H(o(i);θ)=y(i)loga(x(i);θ)
,其在实践中的训练过程中测量错误/丢失时使用。有几个相关的问题:


激活“作为概率”

建立MLE和交叉熵之间关系的步骤之一是使用输出激活“好像”它们是概率。但目前还不清楚,我认为他们是,或者至少他们all在。

在计算训练误差时,特别是在称其为“交叉熵损失”时,假设(将激活归一化为1之后)

(1)pmodel(o(i);θ)ay(i)(x(i);θ)

要么

logpmodel(o(i);θ)=logay(i)(x(i);θ)

这样我们就可以写

(3)logpmodel(o(i);θ)=y(i)loga(x(i);θ)

因此

θML(O)=argminθi=1mH(o(i);θ)

但是,尽管这确实使成为概率(在某种程度上是)对其他激活没有任何限制。ay(i)(x(i);θML)

可以在真的可以说是在这种情况下,保偏光纤?是否有什么使实际上不是概率(而仅仅是“喜欢”它们) )?一个Ý X ; θ中号大号ay(i)(x(i);θML)ay(i)(x(i);θML)


分类的局限性

在使MLE与交叉熵相等方面,上述关键步骤完全取决于的“单一”结构,该结构表征了(单标签)多类学习问题。任何其他结构都将使从到变得不可能。y i (1)(3)y(i)y(i)(1)(3)

MLE和交叉熵最小化的方程式是否仅限于是“一个热点”的情况? y(i)


不同的训练和预测概率

在预测期间,几乎总是这样

(2)pmodel(y(i)|x(i);θ)P(argmaxj[1,k]aj(x(i);θ)=y(i))

除非确实是这样,否则得出的正确预测概率与在训练中学习的概率不同

ay(i)(x(i);θML)=P(argmaxj[1,k]aj(x(i);θML)=y(i))

这是可靠的情况吗?可能至少近似正确吗?还是有其他一些论据可以证明学习激活在该位置出现的概率来证明此激活方程在标签位置的是否合理?


熵与信息论

即使假设以上问题已得到解决,并且激活是有效的PMF(或可以有意义地视为此类激活),因此交叉熵在计算 所扮演的角色也不成问题,目前尚不清楚我为什么讨论的熵是有用或有意义的,因为Shanon熵适用于特定的一种编码,不是用于训练网络的一种编码一个 X ; θ中号大号θMLa(x(i);θML)

信息理论熵在解释成本函数中起什么作用,而不是简单地提供一种工具(以交叉熵的形式)来计算一个(对应于MLE)?

Answers:


5

神经网络不一定将概率作为输出,但是可以将其设计为做到这一点。要被解释为概率,一组值必须是非负的并且总和为一个。设计网络以输出概率通常等于选择施加这些约束的输出层。例如,在具有类的分类问题中,常见的选择是具有单位的softmax输出层。softmax函数强制输出为非负且求和为1。第个输出单元给出类别为的概率。对于二进制分类问题,另一个流行的选择是使用带有逻辑的单个输出单元ķ Ĵ Ĵkkjj激活功能。逻辑函数的输出在零和一之间,并给出该类别为1的概率。该类别为0的概率隐式为一减去该值。如果网络不包含任何隐藏层,则这两个示例分别等效于多项式逻辑回归逻辑回归

交叉熵 测量两个概率分布和之间的差。当使用交叉熵作为判别式分类器的损失函数时,在给定输入(即特定数据点)的情况下,和是类别标签上的分布。是“真实”分布,是模型预测的分布。在典型的分类问题中,数据集中的每个输入都与代表真实类的整数标签相关联。在这种情况下,我们将经验分布用于p q p q p q p qH(p,q)pqpqpqp。这仅将概率1分配给数据点的真实类别,将概率0分配给所有其他类别。是网络预测的类别概率的分布(例如,如上所述)。q

假设数据为iid,为经验分布,为预测分布(对于第个数据点)。然后,最小化交叉熵损失(即在数据点上平均的)等效于最大化数据的可能性。证明相对简单。基本思想是证明交叉熵损失与数据点的对数预测概率之和成正比。由于经验分布的形式,这很好地解决了。q ħ p q piqiiH(pi,qi)

交叉熵损失也可以更普遍地应用。例如,在“软分类”问题中,我们获得了基于类标签而不是硬类标签的分布(因此,我们不使用经验分布)。我在这里描述在这种情况下如何使用交叉熵损失。

要解决您的问题中的其他一些细节:

不同的训练和预测概率

看起来您正在找到激活程度最大的输出单元,并将其与类标签进行比较。对于使用交叉熵损失进行的训练而言,这并不是完成的。相反,将模型输出的概率与“真实”概率(通常视为经验分布)进行比较。

Shanon熵适用于一种特定的编码,而不是用于训练网络的一种编码。

如果对分布使用最佳代码,则交叉熵可以解释为编码从真实分布提取的事件所需的(平均)每条消息的位数。交叉熵需要的最小值(香农熵的)当。和之间的匹配越好p q H p p q = p q pH(p,q)pqH(p)pq=pqp,消息长度越短。训练模型以最小化交叉熵可以看作是训练模型以更好地逼近真实分布。在我们一直在讨论的有监督学习问题中,给定输入,该模型给出了可能输出的概率分布。明确寻找最佳分发代码不是该过程的一部分。


“对于使用交叉熵损失进行的训练而言,这并非如此。” 这正是TensorFlow之类的API softmax_cross_entropy_with_logits所做的事情:它们计算 ,因此定义了“设计为”产生概率的网络(至少在标签位置)。没有? θ中号大号 öargminθi=1mH(o(i);θ)θML(O)
orome

是的,交叉熵最小,可能性最大(至少局部)。在那句话中,我指的是“不同的训练和预测概率”部分中的方程式。再看一遍,我不清楚您对这些方程式的确切含义,所以我只想说一下:如果您使用的输出层中每个单位给出一个类概率(例如softmax)。在训练和预测期间,模型概率相同。pmodel(y(i)=jx(i);θ)=aj(x(i);θ)
user20160

我的理解是相同的值被使用 -那就是,学习在预测中使用-但他们以不同的方式使用。模型为学习的概率确实为,但是将由训练模型预测的概率响应相同的输入,为。除非(2)为真,否则它们并不相同。p 直径:d ë Ý | X ; θ中号大号一个Ý X ; θ中号大号ý X P ARG 最大Ĵ [ 1 k ]apmodel(y(i)|x(i);θML)ay(i)(x(i);θML)y(i)x(i)P(argmaxj[1,k]aj(x(i);θML)=y(i))
orome

并且(第一个问题)我理解这是因为在eq中定义的角色。(1),由发挥,以最大化,值概率(不是因为softmax,仅确保它们将加1)。但这对其他没有任何约束;(除了它们的总和为)。因此,我看不到作为孔如何被视为PMF。p 直径:d ë ö ; θ一个Ý X ; θ中号大号一个Ĵ Ĵ ý 1 - 一个y i ax i ;ay(i)(x(i);θ)pmodel(O;θ)ay(i)(x(i);θML)ajjy(i)1ay(i)a(x(i);θML)
orome

提出第一个问题的另一种方法是,只有曾经参与过ML过程,因此只有它们可以被视为概率。并且,尽管合适的激活函数(例如softmax)可确保其余激活的总和为概率,但它们之间的关系都没有意义。ay(i)
orome

3

我将从一个更笼统的角度回答,涉及如何,何时以及为什么我们可以将NN输出视为概率分布的性质。

从softmax强制输出总和为1且为非负的意义上来说,网络的输出类别上的离散概率分布,或者至少可以这样解释。因此,谈论交叉熵和最大似然是完全合理的。

但是,我认为您看到的(是正确的)是输出“概率”可能与正确性的实际概率无关。这是机器学习中的一个众所周知的问题,称为校准。例如,如果您的分类器的狗和猫说,那么您会期望如果您使用一组示例具有,那么大约30%的输入将被错误分类(因为只有70%的置信度)。 d Ç ˚F θX C ^ = P X = C ^ | θ = 0.7 小号= { X Ĵ } P X Ĵ = C ^ | θ = 0.7fθDCfθ(xi,C)=P(xi=C|θ)=0.7S={xj} P(xj=C|θ)=0.7

但是,事实证明,现代的培训方法根本无法实施!参见Guo等人的《关于现代神经网络的校准》中的一些讨论。

换句话说,softmax输出的“概率”可能与实际模型置信度无关。这不足为奇:我们只想最大程度地提高准确性,并且每个输入示例都有1的概率成为其目标类。几乎没有激励模型来实现这一目标。如果不需要估计不确定性,那为什么要这么做呢?交叉熵不能解决这个问题;确实,您是在告诉它每次都要执行增量功能!

关于贝叶斯神经网络的许多最新工作都在努力纠正这一问题。在给定数据,此类模型采用参数分布,可以对其进行积分以获得实际概率分布。这有助于确保有用的不确定性测量和更好的校准。但是,在计算上存在更多问题。P Ý | X X = P ÿ | θ X P θ | X P(θ|X)=P(X|θ)P(θ)/P(X)P(yi|xi,X)=P(yi|θ,xi)P(θ|X)dθ

希望我不会误会你的问题!


一个很好的相关工作:arxiv.org/abs/1711.01297
user3658307 '19

0

经过适当训练,前馈神经网络可以逼近真实的班级机率。

1991年,Richard&Lippmann证明了使用{0,1}类指示符目标模式训练时,前馈神经网络可处理后类概率[ Richard MD,&Lippmann RP(1991)。神经网络分类器估计贝叶斯后验概率。神经计算,3,461– 483. ]。在他们的证明中,他们使用了一层隐藏的前馈神经网络。

在Duda&Hart的数学注释[ Duda RO&Hart PE(1973)模式分类和场景分析,Wiley ]中,将作为输入向量提供给前馈神经网络的特征分布定义为,例如,对于具有4个特征变量的分类任务,数据向量等于。索引指示可能的类,。P(xωi)x=(0.2,10.2,0,2)ini{1,,n}

前馈神经网络分类器通过梯度下降训练后,学习后验概率。所期望的输出模式需要例如是,对于二类别分类问题。前馈神经网络每类具有一个输出节点。向量表示观察到的特征向量属于第二类。P^(ωix)o=(0,1)(0,1)


那不是问题。
orome '18

0

在您的问题中,对数似然不直接与熵相关。相似性是肤浅的:两者都具有似然量的对数之和。

对数似然(MLE)的对数纯粹是出于数值计算的原因。概率的乘积可能很小,尤其是在您的样本很大的情况下。然后,可能性范围从1到产品的消失的很小的值。当您获得日志时,乘积将成为一个总和,并且log函数会将值的范围压缩到更小,更易于管理的域中。对数是一个单调函数,因此对数似然的最大值(min)将产生与可能性本身相同的答案。因此,从数学意义上来说,MLE表达式中log的存在并不重要,而仅仅是为了方便。

熵中对数函数的存在更为实质,其根源于统计力学(物理学的一个分支)。它与气体理论中使用的玻耳兹曼分布有关。例如,您可以使用它来推导气压随高度的变化。


您能否突出说明此问题的哪一部分?
orome

正如我在OP中所说的,很显然,在第二种表达MLE的方式中使用日志仅仅是为了方便(您的前两段)。您的最后一段似乎只是说,在熵的表达式中,对数的存在是有意义的- 在熵的上下文中(尤其是物理学)。但是,所缺少的(这就是问题)是将这两个截然不同(真实的)观察结果联系起来的理由。除了(3)之后的方程式是表示MLE的第二方程式的一种有用方法之外,我没有看到任何其他方程式。也许那是你的意思?
orome

@orome,您当然可以使NN来计算熵,但是在大多数情况下,交叉熵函数实际上并不是这样使用的。您可以将其视为另一种成本函数,仅此而已。它似乎具有所需的属性,并且很好地对称。
阿克萨卡尔州

是的,因此称其为熵或暗示是有意义的分布(“熵”提供了任何见解)具有误导性ay(i)(x(i);θML)
orome

@orome,我不会迷恋这个名字。就像“铰链丢失”功能与铰链无关。他们称其为“熵损失”,因为其功能形式完全类似于信息熵方程。
阿克萨卡(Aksakal)'18
By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.