EdX Columbia ML 1. 概论与最大似然

概率模型是概率分布\(p(x|\theta)\)的集合。我们并不知道具体参数\(\theta\)是什么,需要进行推测。例如对于给定的数据\(x\),我们想建立一个高斯分布模型\(p(x|\theta), \theta = \{\mu, \Sigma\}\)。注意这里隐含着一个重要的假设,即所有数据都是独立同分布的(iid),即 \[ x_i \mathop{\sim}^{iid} p(x|\theta),\ i = 1, \ldots, n \] 所有这些数据\(x\)的联合概率分布可以写为 \[ p(x_1,\ldots,x_n|\theta) = \prod_{i=1}^n p(x_i|\theta) \]

求解的过程是要设计一个目标函数。这个函数含有已知的数据和未知的变量,它会隐含地告诉我们什么样的参数是好的参数。常见的求解概率模型的方法就是最大似然(即寻找可以将似然函数最大化的未知数),即对找出能使\(p\)最大的\(\theta\)。形式化地,最优解\(\hat{\theta}_{\rm ML}\)\[ \hat{\theta}_{\rm ML} = \mathop{\rm arg}\max_\theta p(x_1, \ldots, x_n|\theta) \] 这个\(\theta\)是下式的解析解 \[ \nabla_\theta \prod_{i=1}^n p(x_i|\theta) = 0 \] 即该\(\theta\)使得联合概率分布的梯度为0

由于多项式乘法求导起来比较麻烦,可以使用“log trick”做一个转化。其原理在于,使得\(f(x)\)取得最大值的\(\hat{x}\)也能使\(\log(f(x))\)取得最大值。因此 \[ \hat{\theta}_{\rm ML} = \mathop{\rm arg}\max_\theta \prod_{i=1}^n p(x_i|\theta) = \mathop{\rm arg}\max_\theta \ln\left(\prod_{i=1}^n p(x_i|\theta)\right) = \mathop{\rm arg}\max_\theta \sum_{i=1}^n \ln p(x_i|\theta) \] 即要求解下面的方程: \[ \nabla_\theta \sum_{i=1}^n \ln p(x_i|\theta) = \sum_{i=1}^n \nabla_\theta \ln p(x_i | \theta) = 0 \]

求解方式有两种

  • 解析形式:通过一系列等式推导
  • 数值形式:迭代求解,等待收敛。如果收敛到了一个局部最优解,则只能看作是真正解的近似值

将最大似然用在求解多变量高斯分布上,有

  1. 求解\(\mu\)

\[\begin{align*} 0 &= \nabla_\mu \sum_{i=1}^n \ln \frac{1}{\sqrt{(2\pi)^d|\Sigma|}}\exp\left(-\frac{1}{2}(x_i - \mu)^T\Sigma^{-1}(x_i - \mu)\right) \\ &= \nabla_\mu \sum_{i=1}^n -\ln \sqrt{(2\pi)^d|\Sigma|} + \ln \exp\left(-\frac{1}{2}(x_i - \mu)^T\Sigma^{-1}(x_i - \mu)\right) \\ &= \nabla_\mu \sum_{i=1}^n -\frac{1}{2} \ln(2\pi)^d |\Sigma| - \frac{1}{2}(x_i - \mu)^T \Sigma^{-1} (x_i - \mu)\end{align*}\]

第一项不带\(\mu\),对\(\mu\)求导为0,所以只需要考虑第二项,即

\[\begin{align*} 0 &= \frac{1}{2} \sum_{i=1}^n \nabla_\mu \left((x_i - \mu)^T \Sigma^{-1}(x_i - \mu)\right) \\ &= \frac{1}{2} \sum_{i=1}^n \nabla_\mu \left(x_i^T\Sigma^{-1}x_i - x_i^T\Sigma^{-1}\mu -\mu^T\Sigma^{-1}x_i + \mu^T\Sigma^{-1}\mu \right) \end{align*}\]

根据以下两条列向量求导法则 \[ \frac{\partial {\mathbf a}^T{\mathbf x}}{\partial {\mathbf x}} = \frac{\partial {\mathbf x}^T{\mathbf a}}{\partial {\mathbf x}} = {\mathbf a} \\ \frac{\partial {\mathbf x}^T{\mathbf A}{\mathbf x}}{\partial{\mathbf x}} = 2{\mathbf A}{\mathbf x}\ \ ({\mathbf A}不是{\mathbf x}的函数且为对称矩阵) \] 上式可化简为 \[ 0 = \frac{1}{2}\sum_{i=1}^n -2\Sigma^{-1}x_i + 2\Sigma^{-1}\mu \] 由于\(\Sigma\)是正定矩阵,因此 \[ \sum_{i=1}^n (x_i - \mu) = 0 \Rightarrow \hat{\mu}_{\rm ML} = \frac{1}{n}\sum_{i=1}^n x_i \] 2. 求解\(\Sigma\)

\[\begin{align*} 0 &= \nabla_\Sigma \sum_{i=1}^n - \frac{1}{2} \ln(2\pi)^d |\Sigma| - \frac{1}{2}(x_i - \mu)^T\Sigma^{-1}(x_i - \mu) \\ &= -\frac{n}{2}\nabla_\Sigma \ln|\Sigma| - \frac{1}{2}\nabla_\Sigma {\rm trace}\left(\Sigma^{-1}\sum_{i=1}^n (x_i - \mu)(x_i - \mu)^T\right) \\ &= -\frac{n}{2}\Sigma^{-1} + \frac{1}{2}\Sigma^{-2}\sum_{i=1}^n (x_i - \mu)(x_i - \mu)^T \end{align*}\]

代入\(\mu = \hat{\mu}_{\rm ML}\),可得 \[ \hat{\Sigma}_{\rm ML} = \frac{1}{n}\sum_{i=1}^n (x_i - \hat{\mu}_{\rm ML})(x_i - \hat{\mu}_{\rm ML})^T \]

坚持原创技术分享,您的支持将鼓励我继续创作!