统计学习
前言:机器学习比较重要的几部分:线性模型、统计学习、深度学习,线性部分包括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)})。
-
有参模型,( heta=(pi,p,q))
-
求 (P(y| heta)=sum_ZP(y,Z| heta)),引入一个隐含变量 (Z),控制事件 (y),表示 (A) 硬币的结果,(Z=1) 表示掷的硬币 (B),(Z=0) 表示掷的硬币 (C)。
-
(P(y| heta)=sum_ZP(y|Z, heta)P(Z| heta))
-
(P(Z| heta)=P(Z|(pi,p,q))=pi),因为 (P(Z=1| heta)=pi),(P(Z=0| heta)=1-pi)
-
(sum_ZP(y|Z, heta)=P(y|Z=1, heta)+P(y|Z=0, heta))
-
(P(y|Z=1, heta)=p^y(1-p)^{1-y})
(P(y|Z=0, heta)=q^y(1-q)^{1-y})
-
-
-
拆开
[z=1quad P(y| heta)=pi p^y(1-p)^{1-y}\z=0 quad P(y| heta)=(1-pi)q^y(1-q)^{1-y}\Rightarrow P(y| heta)=pi p^y(1-p)^{1-y}+(1-pi)q^y(1-q)^{1-y} ] -
似然值为
[P(Y| heta)=prod_{i=1}^NP(y^{(i)}| heta)=\prod_{i=1}^Npi 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)}| heta) ] -
求 (pi,p,q)。只知道 (y^{(i)}),如何估计 (pi,p,q)。
-
(P(y| heta)=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_ialpha_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) 进行最大化估计
-
-
由 ( heta_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)}| heta)}{Q_i(z^{i})}) 可看成函数 (g(z^{(i)})=frac{P(x^{(i)},z^{(i)}| heta)}{Q_i(z^{i})}) 数学期望
- 将 (log) 提出来,因为 (log) 是凹函数,根据琴生不等式 (log(E(x))ge E(log(x)))
要提高极大似然值,就优化下界使最大化。函数 (sum_isum_{z^{(i)}}Q_i(z^{(i)})logfrac{P(x^{(i)},z^{(i)}| heta)}{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)}, heta))
(M-step) ,set
$ heta:= arg max_{ heta}sum_isum_{z{(i)}}Q_i(z{(i)})logfrac{p(x{(i)},z{(i)}| heta)}{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)}| heta))
对观察数据 (x^{(j)}) 推测属于哪个高斯分布函数,概率为
- 这步是 (E-step),估计参数
- 这是 (M-step),代入参数估计值
多维混合模型
- (N(x|mu_k,delta_k)) 称为混合模型中第 (k) 个分量
- (pi_k) 是混合系数,是每个分量的权重,是每个分量被选中的概率
- (sum_{k=1}^Kpi_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, eta) 函数
则
因为
每一时刻的 (alpha) 值都是前一时刻 (alpha) 值的累加乘所有可能的状态转移概率与生成概率。
其他两个问题参考