最大似然或log似然估计函数

似然函数

给定一组观察所得结果,用这些观察结果对模型的参数进行估计

举个例子,一个硬币,它有θ的概率会正面向上,有1-θ的概率反面向上。但是我们不知道θ是多少,这个θ就是模型的参数。 我们为了获得θ的值,我们抛了十次,得到一个序列x=正正反反正反正正正正,获得这个序列的概率是θ⋅θ⋅(1-θ)⋅(1-θ)⋅θ⋅(1-θ)⋅θ⋅θ⋅θ⋅θ = θ⁷ (1-θ)³,我们尝试所有θ可能的值,绘制了一个图(θ的似然函数) image.png 我们发现NLLLOSS - 图2取0.7时函数取最大值

对于抛硬币的问题,它服从伯努利二项分布:
NLLLOSS - 图3
若为多分类问题,则:
NLLLOSS - 图4

优化

假如输出p=[0.1,0.1,0.7,0.1], x=[0,0,1,0]
NLLLOSS - 图5
当p=[0,0,1,0]时NLLLOSS - 图6取得最大值1,我们需要尽可能使NLLLOSS - 图7取得最大值
但是乘积的形式不好优化,需要取对数转成累加的形式:
NLLLOSS - 图8

事实上可以发现它的形式和交叉熵损失函数非常像,但区别在于交叉熵还加了一个NLLLOSS - 图9进行归一化,NLLLOSS - 图10用于解决溢出并加快运算

Torch实现

NLLLOSS - 图11

NLLLOSS - 图12