最大似然学习 Maximum Likelihood Learning

learning的目标

假设我们已知数据集\(\mathcal{D}\)\(m\)个从\(P_{\mathrm{data}}\)中获得的采样构成的集合,同时还已知一些模型\(P_\theta\)构成的集合\(\mathcal{M}\)

那么learning的目标就是利用\(\mathcal D\)中的元素,在\(\mathcal M\)中找到与\(P_{\mathrm{data}}\)最为相似的\(P_\theta\)

”最相似“

我们需要一些指标来表征\(P_{\mathrm{data}}\)\(P_\theta\)的相似程度

一旦明确了该指标,求得该指标取极值时的\(P_\theta\)即可

相对熵 Kullback-Leibler divergence

\[ D(p||q)=\sum_\mathbf x p(\mathbf x)\log\frac{p(\mathbf x)}{q(\mathbf x)} \]

相对熵的含义是,\(q\)这种方案相对于\(p\)需要的额外的数据的平均值

相对熵始终非负,当且仅当\(p=q\)时相对熵为\(0\),因为: \[ D(p||q)=\mathbf E_{\mathbf x\sim p}\left[-\log\frac{q(\mathbf x)}{p(\mathbf x)}\right] \geq-\log\mathbf E_{\mathbf x\sim p}\left[\frac{q(\mathbf x)}{p(\mathbf x)}\right] =-\log\left(\sum_\mathbf x p(\mathbf x)\frac{q(\mathbf x)}{p(\mathbf x)}\right)=0 \] 我们可以选择用相对熵来表示\(P_{\mathrm{data}}\)\(P_\theta\)的相似程度: \[ D(P_{\mathrm{data}}||P_\theta)=\mathbf E_{\mathbf x\sim P_{\mathrm{data}}}\left[\log\frac{P_{\mathrm{data}}}{P_\theta(\mathbf x)}\right] =\sum_\mathbf x P_{\mathrm{data}}(\mathbf x)\log\frac{P_{\mathrm{data}}(\mathbf x)}{P_\theta(\mathbf x)} \] 当且仅当\(P_{\mathrm{data}}\)\(P_\theta\)完全相同时,相对熵为0

最大似然 Maximum likelihood

我们的目标是得到当相对熵取最小值时的\(P_\theta\),但是问题是我们并不知道\(P_{\mathrm{data}}\)

我们可以将相对熵的表达式简单变形: \[ \begin{align} D(P_{\mathrm{data}}||P_\theta)&=\mathbf E_{\mathbf x\sim P_{\mathrm{data}}}\left[\log\frac{P_{\mathrm{data}}}{P_\theta(\mathbf x)}\right]\\ &=\mathbf E_{\mathbf x\sim P_{\mathrm{data}}}[\log P_{\mathrm{data}}(\mathbf x)]-\mathbf E_{\mathbf x\sim P_{\mathrm{data}}}[\log P_{\theta}(\mathbf x)] \end{align} \] 显然\(E_{\mathbf x\sim P_{\mathrm{data}}}[\log P_{\mathrm{data}}]\)是个常数,那么相对熵的大小只取决于后面一项,即: \[ \arg\min_{P_\theta}D(P_{\mathrm{data}}||P_\theta) = \arg \min_{P_\theta}-\mathbf E_{\mathbf x\sim P_{\mathrm{data}}}[\log P_{\theta}(\mathbf x)]=\arg \max_{P_\theta}\mathbf E_{\mathbf x\sim P_{\mathrm{data}}}[\log P_{\theta}(\mathbf x)] \] 此时用empirical log-likelihood作近似: \[ \mathbf E_{\mathcal D}[\log P_\theta(\mathbf x)] = \frac1{|\mathcal D|}\sum_{\mathbf x\in \mathcal D}\log P_\theta(\mathbf x) \] 所以,求最大似然时得到的\(P_\theta\)与求最小相对熵得到的\(P_\theta\)是相同的,因此我们可以使用似然来表征\(P_{\mathrm{data}}\)\(P_\theta\)的相似程度

最大似然学习就是指: \[ \max_{P_\theta}\frac1{|\mathcal D|}\sum_{\mathbf x\in \mathcal D}\log P_\theta(\mathbf x) \]

例子:自回归模型

已知一个有\(n\)个变量的自回归模型: \[ P_\theta(\mathbf x) = \prod_{i=1}^np_{\mathrm{neural}}(x_i|\mathbf x_{<i};\mathbf\theta_i) \] 其中\(\mathbf\theta=(\theta_1,...,\theta_n)\)为所有条件下的参数,训练数据集为\(\mathcal D=\{\mathbf x^{(1)},...,\mathbf x^{(m)}\}\)

此时,它的似然函数就是: \[ L(\theta,\mathcal D) = \prod_{j=1}^mP_\theta(\mathbf x^{(j)}) = \prod_{j=1}^m\prod_{i=1}^np_{\mathrm{neural}}(x_i^{(j)}|\mathbf x^{(j)}_{<i};\mathbf\theta_i) \] 我们的目的就是求出\(\arg \max_\theta L(\theta, \mathcal D)=\arg \max_\theta \log L(\theta, \mathcal D)\)

为方便计算,一般使用对数似然: \[ \ell(\theta,\mathcal D) = \log L(\theta, \mathcal D)= \sum_{j=1}^m\sum_{i=1}^n\log p_{\mathrm{neural}}(x_i^{(j)}|\mathbf x^{(j)}_{<i};\mathbf\theta_i) \] 然后使用梯度下降等优化方法即可


最大似然学习 Maximum Likelihood Learning
http://hmnkapa.github.io/2024/11/22/最大似然学习/
作者
呼姆奴库
发布于
2024年11月22日
许可协议