机器学习统计学习

统计学习

前言:机器学习比较重要的几部分:线性模型、统计学习、深度学习,线性部分包括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. 有参模型,( heta=(pi,p,q))

  2. (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})

  3. 拆开

    [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} ]

  4. 似然值为

    [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) ]

  5. (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) 进行最大化估计
  6. ( heta_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)) ]

8.png

琴生不等式在EM的应用

求极大似然值

[L( heta)=sum_{i=1}^m logP(x| heta)=sum_{i=1}^mlogsum_zP(x,z| heta) ]

  • (z) 隐含变量

展开

[sum_i logP(x^{(i)}| heta)=sum_ilog sum_{z^{(i)}}P(x^{(i)},z^{(i)}| heta)\=sum_ilogsum_{z^{(i)}}Q_i(z^{(i)})frac{P(x^{(i)},z^{(i)}| heta)}{Q_i(z^{(i)})}\ ge sum_isum_{z^{(i)}}Q_i(z^{(i)})logfrac{P(x^{(i)},z^{(i)}| heta)}{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)}| 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)})),即

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

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

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

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),混合两个高斯分布的模型满足

[P(x| heta)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( heta)=arg maxP(D| heta)\=arg max prod_{i=0}^N P(x^{(i)}| heta)\=arg max sum_{i=1}^N log P(x^{(i)}| heta) ]

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

[P(x| heta)=sum_zP(x,z| heta)\=sum_z P(x|z, heta)P(z| heta) (由联合概率变为条件概率和其先验分布)\ =sum P(x|z=0, heta)P(z=0| heta)+P(x|z=1, heta)P(z=1| heta)\=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}^Kpi_kN(x|mu_k,delta_k) ]

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

9.png

举例

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

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

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

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

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

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

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

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

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

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

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

[P(Sunny)=piquad P(Rainy)=1-pi ]

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

[P(y| heta)=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, eta) 函数

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

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

[P(q^{(t)}|y)=frac{alpha(q^{(t)})eta(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 分布

原文地址:https://www.cnblogs.com/ColleenHe/p/11657115.html