最大似然估计

最大似然估计

一个带三的蒟蒻在学习ddpm,但是他发现自己已经看不懂公式了,数理统计的知识已经完全还给老师了。于是这个蒟蒻打算重新写一个博客来梳理一下

基础概念:什么是似然

我觉着似然这个名字取的非常妙,似然似然,好似+这样,好似这样。众所周知,我们在做实验时,得到的都是实验数据,而不是真实数据。而似然估计,是指根据实验得出概率估计真实概率/参数分布的过程。

比如,现在市面上有一款沙卵二游,他声称自己非常良心,每次十连都有1/2的概率获得最高稀有度的角色(碧X档案的三星,fXo的5星,明X方舟的6星)。虽然舍友已经极力劝阻你不要玩这个以制作人辣鸡闻名的游戏,但是你这个冤大头还是义无反顾的往里面冲了100个648.

然后你在池子里投了100次10连,你就出了2个6星试试就逝世

你在暴怒之余,也在思考:真实被设置的出货概率是多少?这个时候,最大似然估计就派上用场了。

根据小学的知识内容,想求什么,就把什么设为未知数。因此,我们把真实的出货概率设为$\theta$。我们可以得到,你100次10连就出货两次的概率为

$$ P(出货两次) = C_{100}^2*\theta^2*(1-\theta)^{98} $$

又或者,我们可以把这个公式写成似然的标准形式

$$ L(\theta) = f(x=x_1|\theta), x为出货次数,x_1 = 2 $$

其中$L(\theta)$就是我们的似然函数,而右侧的$f(x=x_1|\theta)$就是“假设事件发生的概率为$\theta$,那么得到这个实验结果的概率是多大”

可以很明显的从这个函数的定义看出,当这个函数取最大值的时候,$\theta$的值有最大的可能是真实值。在上述例子中,这个值是0.02(100次里出货两次,那不就是最可能2%的概率)。

多次实验的似然

显然100次这个样本量并不够大,为了获得足够的样本容量,你又义无反顾的向沙卵二游中投入了900个648,进行了新的9组实验,每次抽100次10连,加上最初的100次,得到的结果分别是出货{2,2,0,2,2,1,2,3,2,0}次,那么现在吗,你的似然函数长什么样呢?

类似单次实验的结果,我们首先写出针对这个问题的公式。由于每次实验之间互不影响,我们可以简单的把每次实验的概率乘起来

$$ P = \prod_{i = 1}^{10}(C_{100}^{x_i}*\theta^{x_i}*(1-\theta)^{100-x_i}), \\ 其中x = \{2,2,0,2,2,1,2,3,2,0\} $$

接着我们把这个公式写的更加抽象化一些

$$ L(\theta) = \prod_i f(x_i|\theta) $$

右侧式子的意义就是“当真实参数值为$\theta$时,出现每个实验结果的概率乘积”。这就是多次实验的似然函数了,但现在的$x_i$是离散的,那么回想一下其他情况由离散改连续时,我们时如何操作的呢?——没错,积分!

$$ L(\theta) = \int f(x|\theta)dx $$

最大似然估计

有了似然函数,我们就想要算出其最大值取值点,而对应的$\theta$就是我们想要求出的最大似然值了。 一般来说,原函数的各种参数通常飞翔在一坨指数中,直接求原函数的极值点难度过大。考虑到概率基本是大于0的,而log函数是一个单调函数,我们可以对其取log从而让那坨混在一起的参数分离开来,同时还不改变极值点取值位置。

$$ \hat\theta = argmax\ log(L(\theta)) $$

DDPM论文中相关的部分

理解了上述部分,那么恭喜你已经理解了DDPM优化目标部分……的1%不到了

实际上,这一部分对于你去构筑的DDPM的代码没有任何关系,那么我就不写了

由于作者贫瘠的数学知识,我也只能简单谈一下自己的理解

这一部分我个人的理解是,作者并不是灵机一动想出了“哦,我们要预测噪声”,而是由最大似然估计推导过来

DDPM中的$\theta$即是待优化的网络参数,而x即使在不同时刻t下加噪后的图像。我们的终极问题是,如何根据$x_0$的值去优化网络参数。作者先根据$x_0$的后验公式将其写成了有关$x_{t = 1-T}$的形式,将其转化为变分下界问题,然后运用高超的数学技巧证明了我们只需要预测噪声即可。

实际上不理解这一部分也并不会对你使用DDPM造成什么困扰。正如蒟蒻作者完全看不懂公式推导但还是可以把从实验室同学那里偷来的代码跑起来一样。

Licensed under CC BY-NC-SA 4.0
comments powered by Disqus
Built with Hugo
主题 StackJimmy 设计