机器学习:负对数似然与交叉熵

机器算法验证 机器学习 可能性 交叉熵
2022-03-29 13:20:02

我正在开发一些机器学习代码,并且我在输出层中使用了 softmax 函数。
我的损失函数试图最小化网络输出的负对数似然(NLL)。

但是我试图理解为什么 NLL 是这样的,但我似乎错过了一块拼图。

从我用谷歌搜索的内容来看,NNL 相当于交叉熵,唯一的区别在于人们如何解释两者。
前者来自最大化某些似然的需要(最大似然估计 - MLE),后者来自信息论

但是,当我在Cross-Entropy 页面上访问维基百科时,我发现:

维基百科 - 交叉熵和 NLL 之间的关系

问题 1:为什么他们将估计结果提高到(N * 训练结果)的幂

问题 2:为什么他们将整个公式除以N是否只是为了方便,例如将日志添加到可能性中?

这是我到目前为止所得到的:

Softmax 函数


计算

感谢您抽出宝贵时间,如果这个问题太简单了,请原谅,但我就是想不通。
数学不是我的强项,但我正在努力:)

1个回答

维基百科页面遗漏了几个步骤。当他们说“训练集的可能性”时,他们只是指“给定一些参数值的训练集的概率”:

L(θ|x1,...,xn)=p(x1,...,xn|θ)

数据xk在训练集中假设条件独立,因此

p(X1,...,Xn|θ)=ķ=1np(Xķ|θ)

如果训练集是[2,2,1]那么可能性是p(2|θ)p(2|θ)p(1|θ)=p(2|θ)2p(1|θ). 这表明了一种简化:

ķ=1np(Xķ|θ)=一世p(一世|θ)n一世

在哪里n一世是次数一世发生在训练数据中。维基百科页面定义q一世=p(一世|θ)p一世=n一世/ñ,所以可能性是

k=1nqxk=iqini=iqiNpi

At the end, they divide the logarithm by N to get the cross-entropy.