前言:机器学习比较重要的几部分:线性模型、统计学习、深度学习,线性部分包括SVM、压缩感知、稀疏编码,都是控制整个模型的稀疏性去做线性函数,偏 Discriminative 判别模型;统计学习主要通过统计方法对数据建模找到极大似然,偏 Generative 生成方法;深度学习就是 neural model,偏非线性。
机器学习中的统计多是基于对事件的不确定性度量关于,是主观的,而不是客观地基于频次。
EM算法 ( 期望最大算法,Expectation Maximum )
隐含变量
给定训练数据 \(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\) 每一个维度都相互独立
\]
若 \(X\) 和某隐含变量 \(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)}\)。
-
有参模型,\(\theta=(\pi,p,q)\)
-
求 \(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}\)
-
-
-
拆开
\[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}
\] -
似然值为
\[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)
\] -
求 \(\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\) 进行最大化估计
-
-
由 \(\theta_0=(\pi_0,p_0,q_0)\) 互相迭代至 \(\pi,p,q\) 不再变化,结果就是对 \(\pi,p,q\) 最好的估计
琴生不等式
-
\(f\) 是凸函数,对任意变量 \(x\):
\[E(f(x))\ge f(E(x))
\] -
\(f\) 是凹函数,对任意变量 \(x\):
\[E(f(x))\le f(E(x))
\]
琴生不等式在EM的应用
求极大似然值
\]
- \(z\) 隐含变量
展开
\]
- \(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)})\),即
\]
因为 \(\sum_zQ_i(z^{(i)})=1\),则
\]
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\),混合两个高斯分布的模型满足
\]
给定数据为 \(D=\{x^{(1)},x^{(2)},...,x^{(N)}\}\)
参数的极大似然值
\]
如何求 \(P(x^{(i)}|\theta)\)
\]
对观察数据 \(x^{(j)}\) 推测属于哪个高斯分布函数,概率为
\]
- 这步是 \(E-step\),估计参数
\]
- 这是 \(M-step\),代入参数估计值
多维混合模型
\]
- \(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 ,描述的是天气运行的状态转移概率
\]
- 描述的是当前状态为 "雨" 或 "晴" 时,下一状态为 "雨" 或 "晴"的概率
- \(q_t\) 是隐含变量,无法观测到
记生成矩阵 B,描述的是天气状态与活动之间的生成概率
\]
- \(y_t\) 是实际观察到的数据,根据 \(q_t\) 生成
记初始状态,即初始天气状态的概率
\]
则给定的条件用公式描述为
\]
则计算某一时刻的状态,即联合概率 \(P(q^{(i)},y^{(i)})=P(y^{(i)}|q^{(i)})P(q^{(i)})\)
\]
\]
前向后向算法
把隐马尔可夫链分为两个部分,前边部分为 \(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\) 值都是前一时刻 \(\alpha\) 值的累加乘所有可能的状态转移概率与生成概率。
其他两个问题参考
主题模型
Dirichlet 分布
本站文章如无特殊说明,均为本站原创,如若转载,请注明出处:机器学习统计学习 - Python技术站