EdX-Columbia机器学习课第1讲笔记:概论与最大似然
概率模型是概率分布\(p(x|\theta)\)的集合。我们并不知道具体参数\(\theta\)是什么,需要进行推测。例如对于给定的数据\(x\),我们想建立一个高斯分布模型\(p(x|\theta), \theta = \{\mu, \Sigma\}\)。注意这里隐含着一个重要的假设,即所有数据都是独立同分布的(iid),即
所有这些数据\(x\)的联合概率分布可以写为
求解的过程是要设计一个目标函数。这个函数含有已知的数据和未知的变量,它会隐含地告诉我们什么样的参数是好的参数。常见的求解概率模型的方法就是最大似然(即寻找可以将似然函数最大化的未知数),即对找出能使\(p\)最大的\(\theta\)。形式化地,最优解\(\hat{\theta}_{\rm ML}\)为
这个\(\theta\)是下式的解析解
即该\(\theta\)使得联合概率分布的梯度为0
由于多项式乘法求导起来比较麻烦,可以使用“log trick”做一个转化。其原理在于,使得\(f(x)\)取得最大值的\(\hat{x}\)也能使\(\log(f(x))\)取得最大值。因此
即要求解下面的方程:
求解方式有两种
- 解析形式:通过一系列等式推导
- 数值形式:迭代求解,等待收敛。如果收敛到了一个局部最优解,则只能看作是真正解的近似值
将最大似然用在求解多变量高斯分布上,有
- 求解\(\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}\),可得
浙公网安备 33010602011771号