前言机器学习比较重要的几部分:线性模型、统计学习、深度学习,线性部分包括SVM、压缩感知、稀疏编码,都是控制整个模型的稀疏性去做线性函数,偏 Discriminative 判别模型;统计学习主要通过统计方法对数据建模找到极大似然,偏 Generative 生成方法;深度学习就是 neural model,偏非线性。

机器学习中的统计多是基于对事件的不确定性度量关于,是主观的,而不是客观地基于频次。

EM算法 ( 期望最大算法,Expectation Maximum )

参考:EM-最大期望算法

隐含变量

给定训练数据 \(D={(x^{(1)},y^{(1)}),...,(x^{(N)},y^{(N)})}\),一般想学习到的情况是 \(x^{(i)}\)\(y^{(i)}\) 之间的函数关系,但是在统计学习里想学习到的是 \(P(y^{(i)}|x^{(i)})\),在二分类问题里就是 \(P(0|x^{(i)})\)\(P(1|x^{(i)})=1-P(0|x^{(i)})\)

一般假设数据服从某种分布,根据给定数据估计分布函数的参数求极大似然值\(L(\mu,\sigma)=\prod_{i=1}^N P(x^{(i)}|\mu,\sigma)=\sum_{i=1}^N logP(x^{(i)}|\mu,\sigma)\)

隐含变量和概率分布的关系

变量 \(X\) 每一个维度都相互独立

\[P(X)=P(x_1,x_2,...,x_n)=\prod_{j=1}^n P(x_j)
\]

\(X\) 和某隐含变量 \(Z\) 相关

\[P(X)=\sum_ZP(X,Z)边缘概率\\=\sum_ZP(X|Z)P(Z)
\]

  • 已知 \(Z\)\(X\) 有某种隐含关系,\(P(X|Z)\) 是可以求出来的
  • \(P(Z)\) 可假设 \(Z\) 服从某种先验分布

举例

掷硬币,\(X=\{0,1\}\),认为掷硬币的结果可能和高度相关,\(Z\) 为掷硬币的高度,抛掷高度、角度等都是假象的可能和结果有关的变量,我们假想这些因素来刻画数据的肌理,就是所谓 Generative Model。

假设三枚硬币 \(A,B,C\),掷出正面的概率分别为 \(\pi,p,q\),想象生成过程比较复杂,掷出 \(A\) ,若结果为 1 ,就掷 \(B\),若结果为 0 ,就掷 \(C\),每次先掷 \(A\),由 \(A\) 的结果决定掷 \(B\) 还是 \(C\),记下 \(B,C\) 的结果,生成 \(Y=(y^{(1)},y^{(2)},...,y^{(N)})\),如何预测 \(y^{(i)}\)

  1. 有参模型,\(\theta=(\pi,p,q)\)

  2. \(P(y|\theta)=\sum_ZP(y,Z|\theta)\),引入一个隐含变量 \(Z\),控制事件 \(y\),表示 \(A\) 硬币的结果,\(Z=1\) 表示掷的硬币 \(B\)\(Z=0\) 表示掷的硬币 \(C\)

    • \(P(y|\theta)=\sum_ZP(y|Z,\theta)P(Z|\theta)\)

    • \(P(Z|\theta)=P(Z|(\pi,p,q))=\pi\),因为 \(P(Z=1|\theta)=\pi\)\(P(Z=0|\theta)=1-\pi\)

    • \(\sum_ZP(y|Z,\theta)=P(y|Z=1,\theta)+P(y|Z=0,\theta)\)

      • \(P(y|Z=1,\theta)=p^y(1-p)^{1-y}\)

        \(P(y|Z=0,\theta)=q^y(1-q)^{1-y}\)

  3. 拆开

    \[z=1\quad P(y|\theta)=\pi p^y(1-p)^{1-y}\\z=0 \quad P(y|\theta)=(1-\pi)q^y(1-q)^{1-y}\\\Rightarrow P(y|\theta)=\pi p^y(1-p)^{1-y}+(1-\pi)q^y(1-q)^{1-y}
    \]

  4. 似然值为

    \[P(Y|\theta)=\prod_{i=1}^NP(y^{(i)}|\theta)=\\\prod_{i=1}^N\pi p^{y^{(i)}}(1-p)^{1-y^{(i)}}+(1-\pi)q^{y^{(i)}}(1-q)^{1-y^{(i)}}\\=\sum_{i=1}^N log P(y^{(i)}|\theta)
    \]

  5. \(\pi,p,q\)。只知道 \(y^{(i)}\),如何估计 \(\pi,p,q\)

    • \(P(y|\theta)=\pi p^y(1-p)^{1-y}+(1-\pi)q^y(1-q)^{1-y}\)混合模型\(p^y(1-p)^{1-y}\) 是硬币 \(B\) 掷出来的伯努利分布,\(q^y(1-q)^{1-y}\) 是硬币 \(C\) 结果的伯努利分布。\(\pi\)\(1-\pi\) 就像两个事情的权重,就是两事件的混合模型 (多模态混合,\(\alpha_1P_1,...,\alpha_nP_n\)\(\sum_i\alpha_i=1\))。

    • \(p=\frac{num (B正面)}{N}\)\(q=\frac{num (C正面)}{N}\)\(\pi=\frac{num (B)}{N}\)

    • E.step

      \[\mu=\frac{\pi p^y(1-p)^{1-y}}{\pi p^y(1-p)^{1-y}+(1-\pi)q^y(1-q)^{1-y}}
      \]

      • 给出掷出结果是硬币 \(B\) 掷出的概率
    • M.step:

      \[\pi = \frac{1}{N}\sum_{j=1}^{N} \mu_j
      \]

      • 对每一次掷出结果是硬币 \(B\) 掷出的概率求均值,得出整体来说是硬币 \(B\) 掷出的概率
      \[p=\frac{\sum_{j=1}^N \mu_j y^{(j)}}{\sum_{j=1}^N \mu_j}
      \]

      • \(y^{(j)}=1\) 正面,\(y^{(j)}=0\) 反面
      \[q=\frac{\sum_{j=1}^N (1-\mu_j) y^{(j)}}{\sum_{j=1}^N (1-\mu_j)}
      \]

      • \(\pi,p,q\) 进行最大化估计
  6. \(\theta_0=(\pi_0,p_0,q_0)\) 互相迭代至 \(\pi,p,q\) 不再变化,结果就是对 \(\pi,p,q\) 最好的估计

琴生不等式

  1. \(f\) 是凸函数,对任意变量 \(x\):

    \[E(f(x))\ge f(E(x))
    \]

  2. \(f\) 是凹函数,对任意变量 \(x\):

    \[E(f(x))\le f(E(x))
    \]

机器学习统计学习

琴生不等式在EM的应用

求极大似然值

\[L(\theta)=\sum_{i=1}^m logP(x|\theta)=\sum_{i=1}^mlog\sum_zP(x,z|\theta)
\]

  • \(z\) 隐含变量

展开

\[\sum_i logP(x^{(i)}|\theta)=\sum_ilog \sum_{z^{(i)}}P(x^{(i)},z^{(i)}|\theta)\\=\sum_ilog\sum_{z^{(i)}}Q_i(z^{(i)})\frac{P(x^{(i)},z^{(i)}|\theta)}{Q_i(z^{(i)})}\\ \ge \sum_i\sum_{z^{(i)}}Q_i(z^{(i)})log\frac{P(x^{(i)},z^{(i)}|\theta)}{Q_i(z^{(i)})}
\]

  • \(E(g(x))=\sum_x g(x)P(x)\)
  • \(Q_i(z^{(i)})\) 表示 \(z^{(i)}\) 的概率分布 \(P(z^{(i)})\)
  • \(\sum_{z^{(i)}}Q_i(z^{i})\frac{P(x^{(i)},z^{(i)}|\theta)}{Q_i(z^{i})}\) 可看成函数 \(g(z^{(i)})=\frac{P(x^{(i)},z^{(i)}|\theta)}{Q_i(z^{i})}\) 数学期望
  • \(log\) 提出来,因为 \(log\) 是凹函数,根据琴生不等式 \(log(E(x))\ge E(log(x))\)

要提高极大似然值,就优化下界使最大化。函数 \(\sum_i\sum_{z^{(i)}}Q_i(z^{(i)})log\frac{P(x^{(i)},z^{(i)}|\theta)}{Q_i(z^{(i)})}\) 记作 \(E(f(z^{(i)}))\),要使得该期望最大化,需满足 \(f(z^{(1)})=f(z^{(2)})=...=f(z^{(n)})\),即

\[\frac{P(x^{(i)},z^{(i)}|\theta)}{Q_i(z^{(i)})}=c \Leftrightarrow Q_i(z^{(i)}) \varpropto P(x^{(i)},z^{(i)}|\theta)
\]

因为 \(\sum_zQ_i(z^{(i)})=1\),则

\[Q_i(z^{(i)}) = \frac{P(x^{(i)},z^{(i)}|\theta)}{\sum_z P(x^{(i)},z^{(i)}|\theta)}=\frac{P(x^{(i)},z^{(i)}|\theta)}{P(x^{(i)}|\theta)}=P(z^{(i)}|x^{(i)},\theta)
\]

EM 算法公式表述

**迭代至收敛 **{

(E-step) ,for each \(i\),set

\(Q_i(z^{(i)}):=P(z^{(i)}|x^{(i)},\theta)\)

(M-step) ,set

$ \theta:= arg \ max_{\theta}\sum_i\sum_{z{(i)}}Q_i(z{(i)})log\frac{p(x{(i)},z{(i)}|\theta)}{Q_i(z^{(i)})}$
}

  • EM 算法常用于估计参数隐变量
  • EM 算法通过引入隐含变量,使用 MLE (极大似然估计) 进行迭代求解参数。
  • E-step 通过已有数据和现有模型估计隐含参数
  • M-step 假设隐含参数已知的情况下,最大化似然函数从而获取新的参数值

高斯混合模型 ( Gaussian Mixed Model, GMM)

高斯分布 ( 正态分布 ) 函数:\(X \sim N(\mu,\sigma^2)\)

高斯混合模型就是多个高斯分布函数的线性组合,通常用于处理同一集合数据分布类型不同的情况。

高斯混合模型能够平滑地近似任意形状的密度分布。

二维混合模型

假设第一个高斯分布参数为 \(\mu_1,\sigma_1\),第二个高斯分布参数为 \(\mu_2,\sigma_2\),混合两个高斯分布的模型满足

\[P(x|\theta)P(x|\mu_1,\mu_2,\delta_1,\delta_2,\pi)\\=\pi N(\mu_1,\delta_1)+(1-\pi)N(\mu_2,\delta_2)
\]

给定数据为 \(D=\{x^{(1)},x^{(2)},...,x^{(N)}\}\)

参数的极大似然值

\[L(\theta)=arg \ maxP(D|\theta)\\=arg \ max \prod_{i=0}^N P(x^{(i)}|\theta)\\=arg \ max \sum_{i=1}^N log P(x^{(i)}|\theta)
\]

如何求 \(P(x^{(i)}|\theta)\)

\[P(x|\theta)=\sum_zP(x,z|\theta)\\=\sum_z P(x|z,\theta)P(z|\theta)\ (由联合概率变为条件概率和其先验分布)\\ =\sum P(x|z=0,\theta)P(z=0|\theta)+P(x|z=1,\theta)P(z=1|\theta)\\=\pi N(\mu_1,\delta_1)+(1-\pi)N(\mu_2,\delta_2)
\]

对观察数据 \(x^{(j)}\) 推测属于哪个高斯分布函数,概率为

\[w^{(j)}=\frac{\pi \cdot P(x^{(j)}|\mu_1,\delta_1)}{\pi \cdot P(x^{(j)}|\mu_1,\delta_1)+(1-\pi) \cdot P(x^{(j)}|\mu_2,\delta_2)}
\]

  • 这步是 \(E-step\),估计参数
\[\pi=\frac{\sum_{j=1}^N w^{(j)}}{N}\\\mu_1=\frac{\sum_{j=1}^N w^{(j)}x^{(j)}}{\sum_{j=1}^Nw^{(j)}}\\\mu_2=\frac{\sum_{j=1}^N (1-w^{(j)})x^{(j)}}{\sum_{j=1}^N(1-w^{(j)})}\\\delta_1^2=\frac{w^{(j)}(x^{(j)}-\mu_1)^2}{\sum_{j=1}^Nw^{(j)}}\\\delta_2^2=\frac{(1-w^{(j)})(x^{(j)}-\mu_2)^2}{\sum_{j=1}^N(1-w^{(j)})}
\]

  • 这是 \(M-step\),代入参数估计值

多维混合模型

\[p(x)=\sum_{k=1}^K\pi_kN(x|\mu_k,\delta_k)
\]

  • \(N(x|\mu_k,\delta_k)\) 称为混合模型中第 \(k\) 个分量
  • \(\pi_k\) 是混合系数,是每个分量的权重,是每个分量被选中的概率
  • \(\sum_{k=1}^K\pi_k=1\ (0 \le \pi_k \le 1)\)

隐马尔可夫模型

马尔可夫链 ( Markov chain ),又称离散时间马尔可夫链,因俄国数学家安德烈. 马尔可夫得名,为状态空间中从一个状态到另一个状态转换的 "无记忆" 随机过程,下一状态的概率分布只能由当前状态决定。

隐马尔可夫模型 ( Hidden Markov Model ),有隐含变量控制的马尔科夫链,状态并不是直接可见的,但受状态影响的某些变量则是可见的。每一个状态在可能输出的符号上都有一概率分布。因此输出符号的序列能够透露出状态序列的一些信息。

机器学习统计学习

举例

假设你有一个住得很远的朋友,他每天跟你打电话告诉你他那天做了什么。你的朋友仅仅对三种活动感兴趣:公园散步,购物以及清理房间。他选择做什么事情只凭天气。你对于他所住的地方的天气情况并不了解,但是你知道总的趋势。在他告诉你每天所做的事情基础上,你想要猜测他所在地的天气情况。

你认为天气的运行就像一个马尔可夫链。其有两个状态“雨”和“晴”,但是你无法直接观察它们,也就是说,它们对于你是隐藏的。每天,你的朋友有一定的概率进行下列活动:“散步(W)”、“购物(S)”、“清理(C)”。因为你朋友告诉你他的活动,所以这些活动就是你的观察数据。这整个系统就是一个隐马尔可夫模型(HMM)。

假设朋友告诉你一连串活动 CSSSCWWSCW 问下一次朋友做什么活动的概率最大。

对于复杂系统需要学习合适参数使得参数能最大拟合给定数据,这就是一个如何训练隐马尔可夫链的问题。

记状态转移矩阵 A ,描述的是天气运行的状态转移概率

\[A=\left[\begin{matrix}0.8&0.4\\0.2&0.6\end{matrix}\right]=a_{q_t,q_{t+1}}\quad q_t \in\{Sunny,Rainy\}
\]

  • 描述的是当前状态为 "雨" 或 "晴" 时,下一状态为 "雨" 或 "晴"的概率
  • \(q_t\) 是隐含变量,无法观测到

记生成矩阵 B,描述的是天气状态与活动之间的生成概率

\[B=\left[\begin{matrix}0.1&0.5\\0.2&0.3\\0.7&0.2\end{matrix}\right]=b_{q_t,y_t}\quad q_t \in\{Sunny,Rainy\},y_t\in\{Clean,Walk,Shop\}
\]

  • \(y_t\) 是实际观察到的数据,根据 \(q_t\) 生成

记初始状态,即初始天气状态的概率

\[P(Sunny)=\pi\quad P(Rainy)=1-\pi
\]

则给定的条件用公式描述为

\[P(y|\theta)=P(y|A,B,\pi)
\]

则计算某一时刻的状态,即联合概率 \(P(q^{(i)},y^{(i)})=P(y^{(i)}|q^{(i)})P(q^{(i)})\)

\[P(Q,Y)=P(q^{(0)})\prod_{t=0}^{T} P(q^{(t+1)}|q^{(t)})\prod_{t=0}^{T}P(y^{(t)}|q^{(t)})\\=\pi \prod_{t=0}^{T}a_{q^{(t)},q^{(t+1)}}\prod_{t=0}^{T}b_{q^{(t)},y^{(t)}}
\]

\[P(y)=\sum_QP(Q,Y)=\sum_{q^{(0)}}\sum_{q^{(1)}}...\sum_{q^{(T)}}\pi \prod_{t=0}^{T}a_{q^{(t)},q^{(t+1)}}\prod_{t=0}^{T}b_{q^{(t)},y^{(t)}}
\]

前向后向算法

把隐马尔可夫链分为两个部分,前边部分为 \(q^{(t)}\) 前包括 \(q^{(t)}\) ,后边部分为 \(q^{(t+1)}\)\(q^{(T)}\)

对隐含状态的估计 \(P(q^{(t)}|y)=\frac{P(y|q^{(t)})P(q^{(t)})}{P(y)}=\frac{P(y^{(0)},y^{(1)},...,y^{(t)}|q^{(t)})P(q^{(t)})P(y^{(t+1)}...y^{(T)}|q^{(t)})}{P(y)}\)

构造 \(\alpha, \beta\) 函数

\[\alpha(q^{(t)})=P(y^{(0)},y^{(1)},...,y^{(t)},q^{(t)})
\]

\[\beta(q^{(t)})=P(y^{(t+1)}...y^{(T)}|q^{(t)})
\]

\[P(q^{(t)}|y)=\frac{\alpha(q^{(t)})\beta(q^{(t)})}{P(y)}
\]

因为

\[\alpha(q^{(t+1)})=P(y^{(0)},y^{(1)},...,y^{(t)},y^{(t+1)},q^{(t+1)})\\=P(y^{(0)},y^{(1)},...,y^{(t+1)}|q^{(t+1)})P(q^{(t+1)})\\=P(y^{(0)},y^{(1)},...,y^{(t)}|q^{(t+1)})P(y^{(t+1)}|q^{(t+1)})P(q^{(t+1)})\\=\sum_{q^{t}}P(y^{(0)},y^{(1)},...,y^{(t)},q^{(t)}|q^{(t+1)})P(y^{(t+1)}|q^{(t+1)})P(q^{(t+1)})\\发现P(q^{(t+1)})可写成联合概率形式\\=\sum_{q^{t}}P(y^{(0)},y^{(1)},...,y^{(t)},q^{(t)},q^{(t+1)})P(y^{(t+1)}|q^{(t+1)})\\P(y^{(t+1)}|q^{(t+1)})就是b_{q+1,y+1}\\=\sum_{q^{t}}P(y^{(0)},y^{(1)},...,y^{(t)},q^{(t+1)}|q^{(t)})P(q^{(t)})b_{q+1,y+1}\\=\sum_{q^{t}}P(y^{(0)},y^{(1)},...,y^{(t)}|q^{(t)})P(q^{(t+1)}|q^{(t)})P(y^{(t+1)}|q^{(t+1)})\\=\sum_{q^{t}}P(y^{(0)},y^{(1)},...,y^{(t)},q^{(t)})P(q^{(t+1)}|q^{(t)})b_{q+1,y+1}\\=\sum_{q^{t}}\alpha(q^{(t)})a_{q^t,q^{t+1}}b_{q+1,y+1}
\]

每一时刻的 \(\alpha\) 值都是前一时刻 \(\alpha\) 值的累加乘所有可能的状态转移概率与生成概率。

其他两个问题参考

机器学习算法之隐马尔可夫模型

主题模型

Dirichlet 分布