计算机视觉——机器学习

绪论
  计算机视觉旨在从图像中提取有用的信息。受可视数据复杂性的影响,这是一个极具挑战性的任务。广义理解的计算机视觉领域已经取得显著进步,随着人们日益增长的认识,计算机视觉的未来是令人激动的。

一、概率论
  几乎所有的计算机视觉模型可以在概率范围内解释,其形式上较为复杂,但可以阐明复杂模型之间的关系。

1.1 概率论基础
  随机变量 x x x表示一个不确定的值,其可以是离散的或者连续的。离散变量的概率分布可以可视化为一个直方图,而连续变量的概率分布可以通过概率密度函数【Probability Density Function,PDF】来可视化。
  设两个随机变量 x x x y y y,若观察 x x x y y y的多个成对实例,结果中某些组合出现的较为频繁,可以用 x x x y y y联合概率分布表示,记为 P ( x , y ) P(x, y) P(x,y)。一般来说,多元变量的联合概率分布更加令人感兴趣,可以使用 P r ( x ) Pr(\bm x) Pr(x)表示多维元素 x = ( x 1 , x 2 , . . . , x k ) T \bm x = (x_1, x_2, ... ,x_k)^T x=(x1,x2,...,xk)T的联合概率。
  任意单变量的概率分布都可以在联合概率分布上求其他变量的和或积分得到,典型的,对于连续的二维随机变量 x x x y y y,有 P ( x ) = ∫ P ( x , y ) d y P(x) = \int P(x, y)dy P(x)=P(x,y)dy得到 x x x边缘分布,其可以简单的解释为忽略其他变量的值。如果从变量 x x x不能获得 y y y的任何信息,则称两个变量独立
  变量 x x x y y y取固定值 y ∗ y^* y x x x的相对概率的取值,是 y y y y ∗ y^* y x x x条件概率,记为 P ( x ∣ y = y ∗ ) P(x|y = y^*) P(xy=y),其计算数值为 P ( x ∣ y = y ∗ ) = P ( x , y = y ∗ ) P ( y = y ∗ ) P(x|y = y^*) = \frac{P(x, y=y^*)}{P(y = y^*)} P(xy=y)=P(y=y)P(x,y=y)通常情况下不会显示的定义 y y y,可以简写为 P ( x ∣ y ) = P ( x , y ) / P ( y ) P(x|y) = P(x, y)/P(y) P(xy)=P(x,y)/P(y)当有两个以上的变量时,可以不断用条件概率分布将联合概率分布分解: P ( w , x , y , z ) = P ( w ∣ x , y , z ) P ( x ∣ y , z ) P ( y ∣ z ) P ( z ) P(w, x, y, z) = P(w|x, y, z)P(x|y, z)P(y|z)P(z) P(w,x,y,z)=P(wx,y,z)P(xy,z)P(yz)P(z)结合条件概率的公式,可以得到 P ( x ∣ y ) P(x|y) P(xy) P ( y ∣ x ) P(y|x) P(yx)的关系,有 P ( y ∣ x ) P ( x ) = P ( x ∣ y ) P ( y ) = P ( x , y ) P(y|x)P(x) = P(x|y)P(y) = P(x, y) P(yx)P(x)=P(xy)P(y)=P(x,y)整理可以得到 P ( y ∣ x ) = P ( x ∣ y ) P ( y ) P ( x ) P(y|x) = \frac{P(x|y)P(y)}{P(x)} P(yx)=P(x)P(xy)P(y)称为贝叶斯公式。其中, P ( y ∣ x ) P(y|x) P(yx)称为后验概率,以代表给定 x x x y y y的概率;而 P ( y ) P(y) P(y)称为先验概率,表示不考虑 x x x y y y的概率。 P ( x ∣ y ) P(x|y) P(xy)称为似然性,而 P ( x ) P(x) P(x)证据
  其他相关概率论术语参见概率论与数理统计。

1.2 伯努利分布
  伯努利【Bernoulli】分布是二项实验的离散分布模型,其描述的情况只可能有两种结果 x ∈ { 0 , 1 } x \in \{0, 1\} x{0,1}。计算机视觉中,伯努利分布可以模拟数据,如描述一个像素所取灰度值大于或小于128的概率,这被称为二值化。其有一个参数 p ∈ [ 0 , 1 ] p \in [0, 1] p[0,1],定义成功,即 x = 1 x = 1 x=1的概率,有 P ( x = 0 ) = 1 − p P ( x = 1 ) = p \begin{aligned}&P(x = 0) = 1 - p \\ & P(x = 1) = p\end{aligned} P(x=0)=1pP(x=1)=p P ( x ; p ) = p x ( 1 − p ) 1 − x P(x;p) = p^x(1-p)^{1-x} P(x;p)=px(1p)1x以及 P ( x ; p ) = B ( x ; p ) P(x;p)= B(x; p) P(x;p)=B(x;p)
  贝塔分布是由单变量 x x x定义的连续分布, x ∈ [ 0 , 1 ] x \in [0, 1] x[0,1],其适合表示伯努利分布中参数 p p p的不确定性。贝塔分布有两个参数 α , β ∈ [ 0 , + ∞ ) \alpha, \beta \in [0, +\infty) α,β[0,+),其概率分布形式为 P ( x ; α , β ) = Γ ( α + β ) Γ ( α ) Γ ( β ) x α − 1 ( 1 − x ) β − 1 P(x;\alpha, \beta) = \frac{\Gamma(\alpha + \beta)}{\Gamma(\alpha)\Gamma(\beta)}x^{\alpha-1}(1-x)^{\beta -1} P(x;α,β)=Γ(α)Γ(β)Γ(α+β)xα1(1x)β1其中, Γ ( ⋅ ) \Gamma(·) Γ()伽马函数,定义为 Γ ( z ) = ∫ 0 + ∞ t z − 1 e − t d t \Gamma(z) = \int_0^{+\infty}t^{z-1}e^{-t}dt Γ(z)=0+tz1etdt且有性质 Γ ( z ) = ( z − 1 ) ! \Gamma(z) = (z-1)! Γ(z)=(z1)!。贝塔分布可以简写为 P ( x ; α , β ) = B e t a ( x ; α , β ) P(x;\alpha, \beta) = Beta(x;\alpha, \beta) P(x;α,β)=Beta(x;α,β)
1.3 分类分布
  分类分布是一个离散分布,观察多个可能结果的概率。在计算机视觉中,一个像素的亮度数值通常被量化为离散数值,可以用分类分布对其建模。观察 K K K种可能结果的概率可以写为参数向量 p = [ p 1 , p 2 , . . . , p k ] \bm p = [p_1, p_2, ..., p_k] p=[p1,p2,...,pk],且 p i ∈ [ 0 , 1 ] p_i \in [0, 1] pi[0,1] ∑ k = 1 K p k = 1 \sum_{k=1}^K p_k = 1 k=1Kpk=1,其有形式 P ( x = k ) = p k P(x = k) = p_k P(x=k)=pk可以简记为 P ( x ; p ) = C a t ( x ; p ) P(x;\bm p) = Cat(x;\bm p) P(x;p)=Cat(x;p)
  迪利克雷【Dirichlet】分布定义在 K K K个连续值 x 1 , . . . , x k x_1, ..., x_k x1,...,xk上,其中 x k ∈ [ 0 , 1 ] x_k \in [0, 1] xk[0,1] ∑ x k = 1 \sum x_k = 1 xk=1。其适合定义分类分布中参数 p p p的分布。
  在 K K K维空间中,迪利克雷分布有 K K K个参数 a 1 , . . . , a k a_1, ..., a_k a1,...,ak,每个参数取正值,参数的相对值决定了参数的期望 E x Ex Ex,参数的绝对值决定了期望两侧的集中程度,其有形式 P ( x ; a ) = Γ ( ∑ a k ) ∏ Γ ( a k ) ∏ x k a k − 1 P(\bm x;\bm a) = \frac{\Gamma(\sum a_k)}{\prod \Gamma(a_k)}\prod x_k^{a_k-1} P(x;a)=Γ(ak)Γ(ak)xkak1可以简记为 P ( x ; a ) = D i r ( x ; a ) P(\bm x;\bm a) = Dir(\bm x;\bm a) P(x;a)=Dir(x;a)贝塔分布是一个二维的特殊迪利克雷分布,因为伯努利分布是二维的分类分布。

1.4 高斯分布
  高斯【Gauss】分布或称为正态分布由一个连续值 x ∈ R x \in R xR定义。在视觉领域中,通常可以忽略像素的灰度值是量化的这个事实,并使用高斯分布对其建模。高斯分布有两个参数:均值 μ \mu μ与方差 σ 2 \sigma^2 σ2 μ \mu μ决定了峰值的位置,而 σ 2 \sigma^2 σ2决定了分布的宽度,其定义为 P ( x ; μ , σ 2 ) = 1 2 π σ 2 e x p [ − ( x − μ ) 2 2 σ 2 ] P(x;\mu, \sigma^2) = \frac{1}{\sqrt{2\pi\sigma^2}}exp[-\frac{(x-\mu)^2}{2\sigma^2}] P(x;μ,σ2)=2πσ2 1exp[2σ2(xμ)2]或简写为 P ( x ; μ , σ 2 ) = N ( x ; μ , σ 2 ) P(x;\mu, \sigma^2) = N(x;\mu, \sigma^2) P(x;μ,σ2)=N(x;μ,σ2)当高斯分布由 D D D维变量 x \bm x x决定时,就形成了多元高斯分布,其参数为均值 μ \bm \mu μ与协方差 Σ \bm\Sigma Σ,其中 μ D × 1 \bm\mu_{D\times1} μD×1描述了分布的均值,而 Σ D × D \bm\Sigma_{D\times D} ΣD×D是正定矩阵,其形式为 P ( x ; μ , Σ ) = 1 ( 2 π ) D / 2 ∣ Σ ∣ 1 / 2 e x p [ − ( x − μ ) T Σ − 1 ( x − μ ) / 2 ] P(\bm x;\bm \mu, \bm\Sigma) = \frac{1}{(2\pi)^{D/2}|\bm\Sigma|^{1/2}}exp[-(\bm x-\bm\mu)^T\bm\Sigma^{-1}(\bm x - \bm\mu)/2] P(x;μ,Σ)=(2π)D/2Σ1/21exp[(xμ)TΣ1(xμ)/2]或简写为 P ( x ; μ , Σ ) = N ( x ; μ , Σ ) P(\bm x;\bm \mu, \bm\Sigma) = N(\bm x;\bm\mu, \bm\Sigma) P(x;μ,Σ)=N(x;μ,Σ)
  正态逆伽马分布由均值 μ \mu μ与方差 σ \sigma σ定义,用于定义高斯分布的参数的分布,具有四个参数 α , β , γ , δ \alpha, \beta, \gamma, \delta α,β,γ,δ,其表达式为 P ( μ , σ 2 ; α , β , γ , δ ) = γ σ 2 π β α Γ ( α ) ( 1 σ 2 ) α + 1 e x p [ − 2 β + γ ( δ − μ ) 2 2 σ 2 ] P(\mu, \sigma^2; \alpha, \beta, \gamma, \delta) = \frac{\sqrt\gamma}{\sigma\sqrt{2\pi}}\frac{\beta^\alpha}{\Gamma(\alpha)}(\frac{1}{\sigma^2})^{\alpha+1}exp[-\frac{2\beta + \gamma(\delta-\mu)^2}{2\sigma^2}] P(μ,σ2;α,β,γ,δ)=σ2π γ Γ(α)βα(σ21)α+1exp[2σ22β+γ(δμ)2]或简写为 P ( μ , σ 2 ; α , β , γ , δ ) = N I G ( μ , σ ; α , β , γ , δ ) P(\mu, \sigma^2; \alpha, \beta, \gamma, \delta) = NIG(\mu, \sigma; \alpha, \beta, \gamma, \delta) P(μ,σ2;α,β,γ,δ)=NIG(μ,σ;α,β,γ,δ)相似的,正态逆维希特分布用于描述多元高斯分布的参数分布。

1.5 共轭性
  贝塔分布可以表征伯努利分布中参数的概率,相似的,迪利克雷分布表征分类分布中参数的概率,同样的类比关系还有正太逆伽马分布与高斯分布、正态逆维希特分布与多元高斯分布之间。这种关系称前一个分布是后一个的共轭,当一个分布与其共轭分布取积时,会正比于一个新的分布,且与该分布的共轭分布形式相同,例如 B ( x ; p ) B e t a ( p ; α , β ) = k ( x , α , β ) B e t a ( p ; α ∗ , β ∗ ) B(x;p)Beta(p;\alpha, \beta) = k(x, \alpha, \beta)Beta(p;\alpha^*, \beta^*) B(x;p)Beta(p;α,β)=k(x,α,β)Beta(p;α,β)这是易于证明的: B ( x ; p ) B e t a ( p ; α , β ) = p x ( 1 − p ) 1 − x Γ ( α + β ) Γ ( α ) Γ ( β ) p α − 1 ( 1 − p ) β − 1 = Γ ( α + β ) Γ ( α ) Γ ( β ) p x + α − 1 ( 1 − p ) 1 − x + β − 1 = Γ ( α + β ) Γ ( α ) Γ ( β ) Γ ( x + α ) Γ ( 1 − x + β ) Γ ( x + α + 1 − x + β ) B e t a ( x + α , 1 − x + β ) = k ( x , α , β ) B e t a ( α ∗ , β ∗ ) \begin{aligned}B(x;p)Beta(p;\alpha, \beta)& = p^x(1-p)^{1-x}\frac{\Gamma(\alpha + \beta)}{\Gamma(\alpha)\Gamma(\beta)}p^{\alpha-1}(1-p)^{\beta -1} \\ &= \frac{\Gamma(\alpha + \beta)}{\Gamma(\alpha)\Gamma(\beta)}p^{x+\alpha-1}(1-p)^{1-x+\beta-1}\\ &=\frac{\Gamma(\alpha + \beta)}{\Gamma(\alpha)\Gamma(\beta)}\frac{\Gamma(x + \alpha)\Gamma(1-x+\beta)}{\Gamma(x+\alpha+1-x+\beta)}Beta(x + \alpha, 1-x+\beta) \\ &=k(x, \alpha, \beta)Beta(\alpha^*, \beta^*) \end{aligned} B(x;p)Beta(p;α,β)=px(1p)1xΓ(α)Γ(β)Γ(α+β)pα1(1p)β1=Γ(α)Γ(β)Γ(α+β)px+α1(1p)1x+β1=Γ(α)Γ(β)Γ(α+β)Γ(x+α+1x+β)Γ(x+α)Γ(1x+β)Beta(x+α,1x+β)=k(x,α,β)Beta(α,β)其中 k = Γ ( α + β ) Γ ( α ) Γ ( β ) Γ ( x + α ) Γ ( 1 − x + β ) Γ ( x + α + 1 − x + β ) k = \frac{\Gamma(\alpha + \beta)}{\Gamma(\alpha)\Gamma(\beta)}\frac{\Gamma(x + \alpha)\Gamma(1-x+\beta)}{\Gamma(x+\alpha+1-x+\beta)} k=Γ(α)Γ(β)Γ(α+β)Γ(x+α+1x+β)Γ(x+α)Γ(1x+β)在拟合分布和评估模型时常用到分布的积,而共轭关系提供了积的封闭性。


二、拟合概率模型
  对于数据的拟合概率模型,由于拟合时需要学习模型的参数,因此这一过程称为学习,而讨论新数据在模型下的概率分布,称为评估预测分布

2.1 最大似然法
  最大似然法用来求数据 { x } = { x 1 , . . . , x I } \{\bm x\} = \{\bm x_1, ..., \bm x_I\} {x}={x1,...,xI}最有可能的参数集合 θ ^ \hat\bm\theta θ^。对于数据点 x i \bm x_i xi,其似然函数 P ( x i ∣ θ ) P(\bm x_i|\bm\theta) P(xiθ)只需要估算 x i \bm x_i xi的概率密度函数;而对于数据的似然函数 P ( x ∣ θ ) P(\bm x|\bm\theta) P(xθ),通常假设数据点是从分布中独立抽样,那么数据的似然函数是数据点的独立似然的积。那么参数的最大似然估计是 θ ^ = a r g m a x θ   P ( x ∣ θ ) = a r g m a x θ   ∏ P ( x i ∣ θ ) \begin{aligned} \hat\bm\theta & = argmax_{\bm\theta}\ P(\bm x|\bm \theta) \\ &= argmax_{\bm\theta}\ \prod P(\bm x_i|\theta) \end{aligned} θ^=argmaxθ P(xθ)=argmaxθ P(xiθ)为了估算新数据点 x ∗ \bm x^* x的概率分布,简单估算 P ( x ∗ ∣ θ ^ ) P(\bm x^*|\hat\bm\theta) P(xθ^)即可。

  考虑一个高斯分布 N ( 1 , 1 ) N(1, 1) N(1,1)产生的 I I I个拟合标量数据 { x } = { x 1 , . . . , x I } \{x\} = \{x_1, ..., x_I\} {x}={x1,...,xI}重新拟合参数的例子,其似然函数通过高斯概率密度函数的积得到: P ( x ∣ μ , σ 2 ) = ∏ P ( x i ∣ μ , σ 2 ) = ∏ N ( x i ; μ , σ 2 ) = 1 ( 2 π σ 2 ) I e x p [ − ∑ ( x i − μ ) 2 2 σ 2 ] \begin{aligned}P(x|\mu, \sigma^2) & = \prod P(x_i|\mu, \sigma^2) \\&= \prod N(x_i; \mu, \sigma^2) \\&= \frac{1}{(\sqrt{2\pi\sigma^2})^I}exp[-\sum \frac{(x_i-\mu)^2}{2\sigma^2}]\end{aligned} P(xμ,σ2)=P(xiμ,σ2)=N(xi;μ,σ2)=(2πσ2 )I1exp[2σ2(xiμ)2]原则上可以对上式求导赋零使其最大化,但实际上作为结果的等式会很杂乱,但引入单调的似然对数 L L L可以使得函数最值位置不变的情况下解耦各数据点的贡献。那么有 μ ^ = a r g m a x μ   ∑ l o g N ( x i ; μ , σ 2 ) = a r g m a x μ   − 1 2 [ l o g ( 2 π ) + I l o g ( σ 2 ) + ∑ ( x i − μ ) 2 σ 2 ] \begin{aligned}\hat\mu & = argmax_{\mu}\ \sum log N(x_i;\mu, \sigma^2) \\&= argmax_\mu\ -\frac{1}{2}[log(2\pi)+Ilog(\sigma^2)+\sum \frac{(x_i - \mu)^2}{\sigma^2}] \end{aligned} μ^=argmaxμ logN(xi;μ,σ2)=argmaxμ 21[log(2π)+Ilog(σ2)+σ2(xiμ)2]取最值只需令 ∂ L / ∂ μ = ∑ x i − μ σ 2 = 0 ∂L/∂\mu = \sum \frac{x_i - \mu}{\sigma^2} = 0 L/μ=σ2xiμ=0整理可以得到均值的表达式 μ ^ = ∑ x i / I \hat\mu = \sum x_i/I μ^=xi/I类似的,方差可以表示为 σ ^ 2 = ∑ ( x i − μ ^ ) 2 / I \hat\sigma^2 = \sum (x_i - \hat\mu)^2/I σ^2=(xiμ^)2/I此外,很多文献通过最小二乘法讨论拟合高斯分布的均值,事实上,高斯分布的均值的最大似然估计可以写成 μ ^ = a r g m a x μ   − 1 2 [ l o g ( 2 π ) + I l o g ( σ 2 ) + ∑ ( x i − μ ) 2 σ 2 ] = a r g m a x μ   − 1 2 ∑ ( x i − μ ) 2 = a r g m i n μ ∑ ( x i − μ ) 2 \begin{aligned}\hat\mu &= argmax_\mu\ -\frac{1}{2}[log(2\pi)+Ilog(\sigma^2)+\sum \frac{(x_i - \mu)^2}{\sigma^2}] \\&= argmax_\mu\ -\frac{1}{2}\sum(x_i - \mu)^2 \\&= argmin_\mu \sum(x_i - \mu)^2 \end{aligned} μ^=argmaxμ 21[log(2π)+Ilog(σ2)+σ2(xiμ)2]=argmaxμ 21(xiμ)2=argminμ(xiμ)2即最小二乘拟合和最大似然拟合一个高斯分布是等价的。

2.2 最大后验法
  最大后验法引入参数 θ \bm\theta θ先验信息,即先验也许会对可能的参数值提供一些信息,例如在时间序列中,前一时刻的参数值可能会提供后一时刻的参数可能值的信息,而这个信息可以从先验分布中得到。
  最大后验估计是最大化参数的后验概率 P ( θ ∣ x ) P(\bm\theta|\bm x) P(θx) θ ^ = a r g m a x θ   P ( θ ∣ x ) = a r g m a x θ   P ( x ∣ θ ) P ( θ ) P ( x ) = a r g m a x θ   [ ∏ P ( x i ∣ θ ) ] P ( θ ) P ( x ) \begin{aligned}\hat\bm\theta & = argmax_{\bm\theta}\ P(\bm\theta|\bm x) \\ &= argmax_{\bm\theta}\ \frac{P(\bm x|\bm\theta)P(\bm\theta)}{P(\bm x)} \\ &= argmax_{\bm\theta}\ \frac{[\prod P(\bm x_i|\bm\theta)]P(\bm\theta)}{P(\bm x)} \end{aligned} θ^=argmaxθ P(θx)=argmaxθ P(x)P(xθ)P(θ)=argmaxθ P(x)[P(xiθ)]P(θ)实际上,可以忽略对于参数而言是常数的 P ( x ) P(\bm x) P(x),因为其不会影响最大值的位置,得到 θ ^ = a r g m a x θ   [ ∏ P ( x i ∣ θ ) ] P ( θ ) \hat\bm\theta = argmax_{\bm\theta}\ [\prod P(\bm x_i|\bm\theta)]P(\bm\theta) θ^=argmaxθ [P(xiθ)]P(θ)其与最大似然估计相比,会发现除了先验部分外都相同,这是因为最大似然估计是最大后验估计在先验信息位置情况下的一个特例。
  为了估算新数据点 x ∗ \bm x^* x的概率分布,简单估算 P ( x ∗ ∣ θ ^ ) P(\bm x^*|\hat\bm\theta) P(xθ^)即可。

  依然考虑高斯分布 N ( 1 , 1 ) N(1, 1) N(1,1)产生的 I I I个拟合标量数据 { x } = { x 1 , . . . , x I } \{x\} = \{x_1, ..., x_I\} {x}={x1,...,xI}重新拟合参数的例子,代价函数为 μ ^ , σ ^ 2 = a r g m a x μ , σ 2   [ ∏ P ( x i ∣ μ , σ 2 ) ] P ( μ , σ 2 ) = a r g m a x μ , σ 2   [ ∏ N ( x i ; μ , σ ) ] N I G ( μ , σ 2 ; α , β , γ , δ ) \begin{aligned}\hat\mu, \hat\sigma^2 &= argmax_{\mu, \sigma^2}\ [\prod P(x_i|\mu, \sigma^2)]P(\mu, \sigma^2) \\&= argmax_{\mu, \sigma^2}\ [\prod N(x_i;\mu, \sigma)]NIG(\mu, \sigma^2; \alpha, \beta, \gamma, \delta) \end{aligned} μ^,σ^2=argmaxμ,σ2 [P(xiμ,σ2)]P(μ,σ2)=argmaxμ,σ2 [N(xi;μ,σ)]NIG(μ,σ2;α,β,γ,δ)其与高斯分布共轭,且与最大似然估计一样,很容易最大化上述式的对数: μ ^ , σ ^ 2 = a r g m a x μ , σ 2 [ ∑ l o g N ( x i ; μ , σ 2 ) + l o g N I G ( μ , σ 2 ; α , β , γ , δ ) ] \hat\mu, \hat\sigma^2 = argmax_{\mu, \sigma^2}[\sum logN(x_i;\mu, \sigma^2)+logNIG(\mu, \sigma^2; \alpha, \beta, \gamma, \delta)] μ^,σ^2=argmaxμ,σ2[logN(xi;μ,σ2)+logNIG(μ,σ2;α,β,γ,δ)]偏微分赋零,可以得到 ∂ L / ∂ μ = ∑ ( x i − μ ) + γ ( δ − μ ) σ 2 ∂L/∂\mu = \frac{\sum (x_i - \mu) + \gamma(\delta - \mu)}{\sigma^2} L/μ=σ2(xiμ)+γ(δμ)可得 μ ^ = ∑ x i + γ δ I + γ \hat\mu = \frac{\sum x_i + \gamma\delta}{I + \gamma} μ^=I+γxi+γδ类似的,方差可以表示为 σ ^ 2 = ∑ ( x i − μ ^ ) 2 + 2 β + γ ( δ − μ ^ ) 2 I + 3 + 2 α \hat\sigma^2 = \frac{\sum(x_i - \hat\mu)^2 + 2\beta + \gamma(\delta - \hat\mu)^2}{I + 3 + 2\alpha} σ^2=I+3+2α(xiμ^)2+2β+γ(δμ^)2上述式给出了一些关于最大后验估计结果的思考,对于均值的估计,如果有大量的数据,那么 ∑ x i \sum x_i xi起主要作用, μ ^ \hat\mu μ^与数据的均值更加接近;而相反的,如果根本没有数据,那么就完全根据先验值决定;而数据适中时, μ ^ \hat\mu μ^由数据预测与先验预测加权决定。

2.3 贝叶斯方法
  贝叶斯方法不试图估计参数 θ \bm\theta θ的确定值,而是在数据上估计参数 θ \bm\theta θ的概率分布 P ( θ ) = [ ∏ P ( x i ∣ θ ) ] P ( θ ) P ( x ) P(\bm\theta) = \frac{[\prod P(\bm x_i|\bm\theta)]P(\bm\theta)}{P(\bm x)} P(θ)=P(x)[P(xiθ)]P(θ)因为没有估算出参数的确定值,因此对于新数据点 x ∗ \bm x^* x的概率分布估算更加困难,需要计算 P ( x ∗ ∣ x ) = ∫ P ( x ∗ ∣ θ ) P ( θ ∣ x ) d θ P(\bm x^*|\bm x) = \int P(\bm x^*|\bm\theta)P(\bm\theta|\bm x)d\bm\theta P(xx)=P(xθ)P(θx)dθ其中 P ( x ∗ ∣ θ ) P(\bm x^*|\bm\theta) P(xθ)是给定值 θ \bm\theta θ的预测,而积分是 θ \bm\theta θ的不同参数值在其概率下的加权和。
  如果某个分布的最大似然估计和最大后验估计的参数均为 θ ^ \hat\bm\theta θ^,那么可以将贝叶斯方法与其统一起来,形成中心在 θ ^ \hat\bm\theta θ^的贝塔函数,令 δ ( z ) \delta(z) δ(z)是冲激函数,那么有 P ( x ∗ ∣ x ) = ∫ P ( x ∗ ∣ θ ) δ ( θ ^ ) d θ = P ( x ∗ ∣ θ ^ ) \begin{aligned}P(\bm x^*|\bm x) &= \int P(\bm x^*|\bm\theta)\delta(\hat\bm\theta)d\bm\theta \\&= P(\bm x^*|\hat\bm\theta)\end{aligned} P(xx)=P(xθ)δ(θ^)dθ=P(xθ^)这使得估算数据在估计参数模型下的概率有了统一的形式。

  依然考虑高斯分布 N ( 1 , 1 ) N(1, 1) N(1,1)产生的 I I I个拟合标量数据 { x } = { x 1 , . . . , x I } \{x\} = \{x_1, ..., x_I\} {x}={x1,...,xI}重新拟合参数的例子,根据贝叶斯公式,有 P ( μ , σ 2 ∣ x ) = [ ∏ P ( x i ∣ μ , σ 2 ) ] P ( μ , σ 2 ) P ( x ) = [ ∏ N ( x i ; μ , σ 2 ) N I G ( μ , σ 2 ; α , β , γ , δ ) ] P ( x ) = k N I V ( μ , σ 2 ; α ∗ , β ∗ , γ ∗ , δ ∗ ) P ( x ) \begin{aligned}P(\mu, \sigma^2|x)& = \frac{[\prod P(x_i|\mu, \sigma^2)]P(\mu, \sigma^2)}{P(x)} \\&= \frac{[\prod N(x_i;\mu, \sigma^2)NIG(\mu, \sigma^2;\alpha, \beta, \gamma, \delta)]}{P(x)} \\&= \frac{kNIV(\mu, \sigma^2;\alpha^*, \beta^*, \gamma^*, \delta^*)}{P(x)}\end{aligned} P(μ,σ2x)=P(x)[P(xiμ,σ2)]P(μ,σ2)=P(x)[N(xi;μ,σ2)NIG(μ,σ2;α,β,γ,δ)]=P(x)kNIV(μ,σ2;α,β,γ,δ)其与高斯分布共轭, k k k是一个相关的常数,要注意到的是, P ( μ , σ 2 ∣ x ) P(\mu, \sigma^2|x) P(μ,σ2x)是关于 μ , σ 2 \mu, \sigma^2 μ,σ2的函数且积分为1,而 N I V ( μ , σ 2 ; α ∗ , β ∗ , γ ∗ , δ ∗ ) NIV(\mu, \sigma^2;\alpha^*, \beta^*, \gamma^*, \delta^*) NIV(μ,σ2;α,β,γ,δ)也是关于 μ , σ 2 \mu, \sigma^2 μ,σ2的函数且积分也为1,那么常量 k k k P ( x ) P(x) P(x)必然有 k / P ( x ) = 1 k/P(x) = 1 k/P(x)=1,即 P ( μ , σ 2 ∣ x ) = N I V ( μ , σ 2 ; α ∗ , β ∗ , γ ∗ , δ ∗ ) P(\mu, \sigma^2|x) = NIV(\mu, \sigma^2;\alpha^*, \beta^*, \gamma^*, \delta^*) P(μ,σ2x)=NIV(μ,σ2;α,β,γ,δ)这也是共轭先验的优势:保证关于参数的后验分布是一个封闭的表达式。
  再来看对于新数据 x ∗ x^* x的密度估计,有 P ( x ∗ ∣ x ) = ∬ P ( x ∗ ∣ μ , σ 2 ) P ( μ , σ 2 ∣ x ) d μ d σ = ∬ N ( x ∗ ; μ , σ 2 ) N I V ( μ , σ 2 ; α ∗ , β ∗ , γ ∗ , δ ∗ ) d μ d σ = ∬ k ( x ∗ , α ∗ , β ∗ , γ ∗ , δ ∗ ) N I V ( μ , σ 2 ; α ∗ , β ∗ , γ ∗ , δ ∗ ) d μ d σ = k ( x ∗ , α ∗ , β ∗ , γ ∗ , δ ∗ ) ∬ N I V ( μ , σ 2 ; α ∗ , β ∗ , γ ∗ , δ ∗ ) d μ d σ = k ( x ∗ , α ∗ , β ∗ , γ ∗ , δ ∗ ) \begin{aligned}P(x^*|x)& = \iint P(x^*|\mu, \sigma^2)P(\mu, \sigma^2|x)d\mu d\sigma \\&= \iint N(x^*;\mu, \sigma^2)NIV(\mu, \sigma^2;\alpha^*, \beta^*, \gamma^*, \delta^*)d\mu d\sigma \\&= \iint k(x^*, \alpha^*, \beta^*, \gamma^*, \delta^*)NIV(\mu, \sigma^2;\alpha^*, \beta^*, \gamma^*, \delta^*)d\mu d\sigma \\&= k(x^*, \alpha^*, \beta^*, \gamma^*, \delta^*)\iint NIV(\mu, \sigma^2;\alpha^*, \beta^*, \gamma^*, \delta^*)d\mu d\sigma \\&= k(x^*, \alpha^*, \beta^*, \gamma^*, \delta^*) \end{aligned} P(xx)=P(xμ,σ2)P(μ,σ2x)dμdσ=N(x;μ,σ2)NIV(μ,σ2;α,β,γ,δ)dμdσ=k(x,α,β,γ,δ)NIV(μ,σ2;α,β,γ,δ)dμdσ=k(x,α,β,γ,δ)NIV(μ,σ2;α,β,γ,δ)dμdσ=k(x,α,β,γ,δ)这又体现了共轭的优势:积分可计算,且保持密度预测的封闭表达式。


三、视觉学习
  在视觉问题中,视觉数据 x \bm x x用于推测全局状态 y \bm y y,而 y \bm y y可能是连续的,例如身体模型的三维姿态,其推理过程称为回归;或者离散的,例如物体的存在与否,其推理过程称为分类
  遗憾的是, x \bm x x可能兼容多个全局状态 y \bm y y,一方面,视觉的测量过程受噪声影响;另一方面,视觉数据本身具有多义性:例如一块煤在强光下和一张白纸在弱光下产生的亮度可能是一样的。
  为了解决视觉问题,需要三个要素:
  -模型,指定 x \bm x x y \bm y y之间可能的关系,并通过模型的参数 θ \bm\theta θ来确定这一关系;
  -学习,利用成对的训练样本 ( x , y ) (\bm x, \bm y) (x,y)来拟合参数 θ \bm\theta θ,在这些样本中,需要同时知道测量值与基本状态;
  -推理,根据新的观测值 x \bm x x,可以利用模型返回全局状态的后验概率 P ( y ∣ x , θ ) P(\bm y|\bm x, \bm\theta) P(yx,θ)

3.1 模型
  视觉问题的首要要素是模型。对于涉及数据 x \bm x x和全局状态 y \bm y y的模型都属于以下两种之一:
  -建立在数据上的全局状态可能性模型 P ( y ∣ x ) P(\bm y|\bm x) P(yx),称为判别模型
  -建立在全局状态上的数据可能性模型 P ( x ∣ y ) P(\bm x|\bm y) P(xy),称为生成模型

3.1.1 判别模型
  在判别模型中,为了建立模型 P ( y ∣ x ) P(\bm y|\bm x) P(yx),需要选择在 y \bm y y上分布的合适形式 P ( y ) P(\bm y) P(y),并将分布的参数 θ \bm\theta θ作为数据 x \bm x x的参数。例如在连续的全局状态中,可以建立服从于高斯分布 N N N的全局状态 P ( y ) P(\bm y) P(y),并将均值 μ \bm\mu μ作为数据 x \bm x x的函数。
  学习的目标是利用成对的训练数据 ( x , y ) (\bm x, \bm y) (x,y)拟合参数 θ \bm\theta θ,这可以通过最大似然估计、最大后验估计或贝叶斯估计得到。
  推理的目标是对新的观测量 x \bm x x求出可能的全局状态 y \bm y y的一个分布,一个简单的方法就是使用已经为 P ( y ∣ x ) P(\bm y|\bm x) P(yx)构造的表达式进行估算。

3.1.2 生成模型
  在生成模型中,需要选择数据分布 P ( x ) P(\bm x) P(x)的形式,并将分布参数设为全局状态 y \bm y y的一个函数,例如在离散的多值数据中,利用分类分布可以将参数向量 p \bm p p设为全局状态 y \bm y y的一个函数。
  学习的目标是利用成对的训练数据 ( x , y ) (\bm x, \bm y) (x,y)拟合参数 θ \bm\theta θ
  推理的目标是计算后验分布 P ( y ∣ x ) P(\bm y|\bm x) P(yx),为此,指定一个关于全局状态的先验 P ( y ) P(\bm y) P(y)并利用贝叶斯公式来获得 P ( y ∣ x ) P(\bm y|\bm x) P(yx) P ( y ∣ x ) = P ( x ∣ y ) P ( y ) ∫ P ( x ∣ y ) P ( y ) d y P(\bm y|\bm x) = \frac{P(\bm x|\bm y)P(\bm y)}{\int P(\bm x|\bm y)P(\bm y)d\bm y} P(yx)=P(xy)P(y)dyP(xy)P(y)

3.2 回归问题
  考虑一个简单的情形:构造一个一元连续测量值 x x x并利用它来预测一元连续状态 y y y,例如根据路上汽车的轨迹所包含像素的数目预测汽车的尺寸。

3.3.1 回归问题的判别模型
  在判别模型中,定义全局状态 y y y的概率分布,并且设其参数与数据 x x x有关,可以选择高斯分布,设置方差 σ 2 \sigma^2 σ2并设均值 μ = w 0 + w 1 x \mu = w_0 + w_1x μ=w0+w1x,其中 θ = ( w 0 , w 1 , σ 2 ) \bm\theta = (w_0, w_1, \sigma^2) θ=(w0,w1,σ2),那么有 P ( y ∣ x , θ ) = N ( y ; w 0 + w 1 x , σ 2 ) P(y|x, \bm\theta) = N(y;w_0 + w_1x, \sigma^2) P(yx,θ)=N(y;w0+w1x,σ2)由于均值与数据呈线性关系,该模型也称为线性回归
  学习算法从成对的训练数据 ( x , y ) (x, y) (x,y)中估计模型参数 θ \bm\theta θ,例如在最大后验估计中,有 θ ^ = a r g m a x θ   [ ∏ P ( y ∣ x , θ ) ] P ( θ ) \hat\bm\theta = argmax_{\bm\theta}\ [\prod P(y|x, \bm\theta)]P(\bm\theta) θ^=argmaxθ [P(yx,θ)]P(θ)其中,假设 I I I个训练数据互相独立,且有合适的先验 P ( θ ) P(\bm\theta) P(θ)
  推理算法根据视觉数据 x x x返回后验分布 P ( y ∣ x , θ ) P(y|x, \bm\theta) P(yx,θ),只需要将数据 x x x带入到学习到参数 θ ^ = ( w ^ 0 , w ^ 1 , σ ^ 2 ) \hat\bm\theta = (\hat w_0, \hat w_1, \hat \sigma^2) θ^=(w^0,w^1,σ^2)计算式中,即可得到后验分布 P ( y ∣ x , θ ) = N ( y ; w ^ 0 + w ^ 1 x , σ ^ 2 ) P(y|x, \bm\theta)=N(y;\hat w_0+\hat w_1x, \hat \sigma^2) P(yx,θ)=N(y;w^0+w^1x,σ^2)
3.2.2 回归问题的生成模型
  在生成模型中,需要选择关于数据 x x x的概率分布并使其参数视全局状态 y y y而定。将数据建模为方差为 σ 2 \sigma^2 σ2,均值为 μ = w 0 + w 1 y \mu = w_0 + w_1y μ=w0+w1y的高斯分布,那么有 P ( x ∣ y , θ ) = N ( x ; w 0 + w 1 y , σ 2 ) P(x|y, \bm\theta) = N(x; w_0 + w_1y, \sigma^2) P(xy,θ)=N(x;w0+w1y,σ2)以及关于全局状态的先验 P ( y ) P(y) P(y),其也可能是高斯分布,即 P ( y ) = N ( y ; μ y , σ y 2 ) P(y) = N(y; \mu_y, \sigma^2_y) P(y)=N(y;μy,σy2)  学习算法利用成对的训练数据 ( x , y ) (x, y) (x,y)拟合参数 θ \bm\theta θ,并用全局状态 y y y拟合参数 θ y = ( μ y , σ y 2 ) \bm\theta_y = (\mu_y, \sigma^2_y) θy=(μy,σy2)
  推理算法根据视觉数据 x x x利用贝叶斯公式返回后验分布 P ( y ∣ x ) = P ( x ∣ y ) P ( y ) P ( x ) = P ( x , y ) P ( x ) P(y|x) = \frac{P(x|y)P(y)}{P(x)} = \frac{P(x, y)}{P(x)} P(yx)=P(x)P(xy)P(y)=P(x)P(x,y)

3.3 分类问题
  考虑一个简单的分类问题:考虑观测值 x x x是一元连续的,但全局状态 y y y是二值离散的,例如根据观测图像的红色通道来判定一个像素是属于皮肤区域还是非皮肤区域。

3.3.1 分类问题的判别模型
  在判别模型中。需要定义全局状态 y ∈ { 0 , 1 } y \in \{0, 1\} y{0,1}的一个概率分布,可以使用伯努利分布,并且参数 p p p依数据 x x x而定。由于要保证约束 p ∈ [ 0 , 1 ] p \in [0, 1] p[0,1],如果建立线性函数 p = w 0 + w 1 x p = w_0 + w_1x p=w0+w1x,该函数的返回值值域为 ( − ∞ , + ∞ ) (-\infty, +\infty) (,+),需要定义一个函数将返回值的值域映射到 ( 0 , 1 ) (0, 1) (0,1),定义 P ( y ∣ x ) = B ( y ; s i g m o i d ( p ) ) = B ( y ; 1 1 + e x p [ − w 0 − w 1 x ] ) P(y|x) = B(y;sigmoid(p)) = B(y;\frac{1}{1+exp[-w_0-w_1x]}) P(yx)=B(y;sigmoid(p))=B(y;1+exp[w0w1x]1)其中, s i g m o i d ( ⋅ ) sigmoid(·) sigmoid()函数称为逻辑S型函数【Sigmoid】,该模型也称为逻辑回归
  在学习中,使用成对训练数据 ( x , y ) (x, y) (x,y)拟合参数 θ = ( w 0 , w 1 ) \bm\theta = (w_0, w_1) θ=(w0,w1),而在推理中,只需将观测数据值 x x x代入 s i g m o i d ( p ^ ( x ) ) sigmoid(\hat p(x)) sigmoid(p^(x))来获取状态的后验分布 P ( y ∣ x ) P(y|x) P(yx)

3.3.2 分类问题的生成模型
  在生成模型中,选择数据 x x x的一个概率分布,使其参数依全局状态 y y y而定。可以选择高斯分布,使得 P ( x ∣ y , θ ) = N ( x ; μ ( y ) , σ ( y ) ) P(x|y, \bm\theta) = N(x;\mu(y), \sigma(y)) P(xy,θ)=N(x;μ(y),σ(y))在实际情况下, y ∈ { 0 , 1 } y \in \{0, 1\} y{0,1},因此 P ( x ∣ y = 0 ) = N ( x ; μ 0 , σ 0 2 ) P ( x ∣ y = 1 ) = N ( x ; μ 1 , σ 1 2 ) P(x|y = 0) = N(x;\mu_0, \sigma^2_0) \\ P(x|y = 1) = N(x;\mu_1, \sigma^2_1) P(xy=0)=N(x;μ0,σ02)P(xy=1)=N(x;μ1,σ12)为每种类别数据的密度进行了建模,也称为类条件密度函数。同时,也需要定义全局状态的先验分布 P ( y ) = B ( y ; p ) P(y) = B(y;p) P(y)=B(y;p)其中 p p p是全局状态 y = 1 y = 1 y=1时的先验概率。
  在学习时,使用训练数据对 ( x , y ) (x, y) (x,y)拟合参数 θ = ( μ 0 , μ 1 , σ 0 2 , σ 1 2 ) \bm\theta = (\mu_0, \mu_1, \sigma^2_0, \sigma^2_1) θ=(μ0,μ1,σ02,σ12),通过训练全局状态 y y y学习先验参数 p p p;而推理算法利用数据 x x x在贝叶斯公式下返回全局状态 y y y的后验分布 P ( y ∣ x ) = P ( x ∣ y ) P ( y ) P ( x ∣ y = 0 ) P ( y = 0 ) + P ( x ∣ y = 1 ) P ( y = 1 ) P(y|x) = \frac{P(x|y)P(y)}{P(x|y=0)P(y=0)+P(x|y=1)P(y=1)} P(yx)=P(xy=0)P(y=0)+P(xy=1)P(y=1)P(xy)P(y)

3.4 应用:背景差分
  背景差分技术是很多视觉系统中常见的第一步,因为它可以快速的确定图像中感兴趣的区域。
  背景差分的目标是推理图像中某个元素是否是背景 y = 0 y=0 y=0或者前景目标有遮挡 y = 1 y=1 y=1,其依据是像素数据 x \bm x x的RGB值。考虑使用生成分类模型解决该问题。
  训练数据 x \bm x x通常包含大量的所有像素都属于背景的空场景,然而前景目标外观多变的训练样本并不典型。一般将背景的类条件分布建模为高斯分布 P ( x ∣ w = 0 ) = N ( x ; μ 0 , Σ 0 ) P(\bm x|w = 0) = N(\bm x;\bm\mu_0, \bm\Sigma_0) P(xw=0)=N(x;μ0,Σ0)而将前景类别建模为均匀分布 P ( x ∣ w = 1 ) = { 1 / 25 5 3 , 0 < x R , x G , x B < 255 0 , o t h e r s P(\bm x|w=1) = \left\{\begin{aligned}&1/255^3 &&, 0P(xw=1)={1/25530,0<xR,xG,xB<255,others并将先验建模为伯努利变量 P ( y ) = B ( y ; p ) P(y) = B(y;p) P(y)=B(y;p)并进行学习与推理。
  典型的,该方法经常存在一个问题:阴影经常误分类为前景,一个简单的补救方法是仅依靠色相和饱和度而忽略亮度来分类像素。
  在一些情况下,可能需要更复杂的分布来描述背景。例如对于室外场景,树随风摇摆,一部分叶子间歇地在其他叶子前面飘动,可能造成像素的双峰分布,而单峰的高斯分布无法很好的描述该数据,造成背景差分的效果很差。


四、复杂数据密度建模
  实际上,假设所有复杂的视觉数据都可以用高斯分布来表示是不太现实的,需要根据基础概率密度函数利用隐变量来构造复杂函数。

4.1 高斯分布模型
  考虑分类问题的生成模型,对数据 x \bm x x的概率进行建模,并利用全局状态 y y y进行参数化,利用多元高斯分布描述数据 P ( x ∣ y ) = N ( x ; μ y , Σ y ) P(\bm x|y) = N(\bm x;\bm\mu_y, \bm\Sigma_y) P(xy)=N(x;μy,Σy)其描述了以全局状态 y y y为条件的数据 x \bm x x的密度。
  学习是从训练数据对 ( x , y ) (\bm x, y) (x,y)中估计参数 θ \bm\theta θ,例如利用最大似然方法 θ ^ = a r g m a x θ   ∏ P ( x ∣ θ ) \hat\bm\theta = argmax_{\bm\theta}\ \prod P(x|\bm\theta) θ^=argmaxθ P(xθ)  推理是利用新的数据 x \bm x x为之分配一个类 y y y,为了实现这个目的,定义一个全局状态 P ( y ) = B ( y ; p ) P(y) = B(y;p) P(y)=B(y;p)的一个先验并应用贝叶斯公式 P ( y ∣ x ) = P ( x ∣ y ) P ( y ) P ( x ) P(y|\bm x) = \frac{P(\bm x|y)P(y)}{P(\bm x)} P(yx)=P(x)P(xy)P(y)  然而,这种分类器的成功取决于利用高斯分布拟合数据,但是由于以下诸多原因,拟合的效果可能是较差的:
  -高斯分布是单峰的,而复杂的视觉数据无法利用单峰概率密度函数很好的表示;
  -高斯分布不是健壮的,单个异常样本会显著影响均值和方差的估计;
  -高斯分布的参数过多,对于高维的数据,整个协方差矩阵包含过多的参数,而训练数据过少的情况下,这些参数甚至无法唯一的确定。
为了解决上述问题,分别引入高斯混合模型、学生氏分布与子空间模型,并引入每个每个观测数据点 x i \bm x_i xi所对应的隐变量 h i \bm h_i hi,使最终的概率密度函数特性更加复杂。

4.2 隐变量
  为了对关于变量 x \bm x x的复杂概率密度函数建模,将引入隐变量 h \bm h h,其可能是离散的或连续的。
  为了充分利用隐变量,将最终密度 P ( x ) P(\bm x) P(x)描述为 x \bm x x h \bm h h的联合概率密度 P ( w , h ) P(\bm w, \bm h) P(w,h)的边缘分布 P ( x ) = ∫ P ( x , h ) d h P(\bm x) = \int P(\bm x, \bm h)d\bm h P(x)=P(x,h)dh对于联合概率密度 P ( x , h ) P(\bm x, \bm h) P(x,h),可以选择对 h \bm h h积分时相对简单,而且能够生成一系列表达性非独立的分布 P ( x ) P(\bm x) P(x)的模型。
  无论选取何种联合分布,都应该有一些参数 θ \bm\theta θ,故可以表达成 P ( x ∣ θ ) = ∫ P ( x , h ∣ θ ) d h P(\bm x|\bm\theta) = \int P(\bm x, \bm h|\bm\theta)d\bm h P(xθ)=P(x,hθ)dh当使用最大似然估计拟合模型时,不会涉及隐变量,也可以使用暴力搜索非线性优化技术,在此不展开详述。还有一种方法:最大期望算法,其可以直接优化含隐变量的参数,形如 θ ^ = a r g m a x θ   ∑ l o g [ ∫ P ( x i , h i ∣ θ ) d h i ] \hat\bm\theta = argmax_{\bm\theta}\ \sum log[\int P(\bm x_i, \bm h_i|\bm\theta)d\bm h_i] θ^=argmaxθ log[P(xi,hiθ)dhi]
4.3 期望最大化
  期望最大化【Expectation Maximization,EM】算法也称为最大期望算法,其目标是提供足够的信息,来利用该技术拟合模型。

4.3.1 似然函数的下界
  EM算法用来求模型参数 θ \bm\theta θ的最大似然或最大后验估计,其中数据 x \bm x x的似然可以表示成 P ( x ∣ θ ) = ∑ k P ( x , h = k ∣ θ ) P(\bm x|\bm\theta) = \sum_{\bm k} P(\bm x,\bm h = \bm k|\bm\theta) P(xθ)=kP(x,h=kθ) P ( x ∣ θ ) = ∫ P ( x , h ∣ θ ) d h P(\bm x|\bm\theta) = \int P(\bm x, \bm h|\bm\theta)d\bm h P(xθ)=P(x,hθ)dh即似然函数是数据和隐变量的联合概率分布的边缘概率。以连续隐变量为例,取对数似然,形如 l n L ( x ∣ θ ) = ∑ i = 1 I l o g ∫ P ( x i , h i ∣ θ ) d h i lnL(\bm x|\bm\theta) = \sum_{i = 1}^I log \int P(\bm x_i, \bm h_i|\bm\theta)d\bm h_i lnL(xθ)=i=1IlogP(xi,hiθ)dhiEM算法依赖于对数似然函数的下界函数 B ( θ ) = i n f   l n L ( x ∣ θ ) B(\bm\theta) =inf\ lnL(\bm x|\bm \theta) B(θ)=inf lnL(xθ),取 B ( q i ( h i ) , θ ) = ∑ i = 1 I ∫ q i ( h i ) l o g P ( x i , h i ∣ θ ) q i ( h i ) d h i B(q_i(\bm h_i), \bm\theta) = \sum_{i=1}^I \int q_i(\bm h_i)log\frac{P(\bm x_i, \bm h_i|\bm\theta)}{q_i(\bm h_i)}d\bm h_i B(qi(hi),θ)=i=1Iqi(hi)logqi(hi)P(xi,hiθ)dhi根据琴生【Jensen】不等式,对于凹的对数函数,有 E [ l o g ( y ) ] ≤ l o g ( E [ y ] ) E[log(y)] \le log(E[y]) E[log(y)]log(E[y])那么有 B ( q i ( h i ) , θ ) = ∑ i = 1 I ∫ q i ( h i ) l o g P ( x i , h i ∣ θ ) q i ( h i ) d h i ≤ ∑ i = 1 I l o g ∫ q i ( h i ) P ( x i , h i ∣ θ ) q i ( h i ) d h i = ∑ i = 1 I l o g ∫ P ( x i , h i ∣ θ ) d h i = l n L ( x ∣ θ ) \begin{aligned}B(q_i(\bm h_i), \bm\theta)& = \sum_{i=1}^I \int q_i(\bm h_i)log\frac{P(\bm x_i, \bm h_i|\bm\theta)}{q_i(\bm h_i)}d\bm h_i \\ &\le \sum_{i=1}^I log \int q_i(\bm h_i)\frac{P(\bm x_i, \bm h_i|\bm\theta)}{q_i(\bm h_i)}d\bm h_i \\&= \sum_{i = 1}^I log \int P(\bm x_i, \bm h_i|\bm\theta)d\bm h_i \\&= lnL(\bm x|\bm\theta) \end{aligned} B(qi(hi),θ)=i=1Iqi(hi)logqi(hi)P(xi,hiθ)dhii=1Ilogqi(hi)qi(hi)P(xi,hiθ)dhi=i=1IlogP(xi,hiθ)dhi=lnL(xθ)可以看出,除了参数 θ \bm\theta θ以外,下界 B ( q i ( h i ) , θ ) B(q_i(\bm h_i), \bm\theta) B(qi(hi),θ)还与一组关于隐变量 h \bm h h的概率分布 q ( h ) q(\bm h) q(h)有关。当改变这些概率分布时, B B B的值也会改变,但始终不大于对数似然函数。
  EM算法同时改变参数 θ \bm\theta θ与分布 q ( h ) q(\bm h) q(h)来提高下界 B B B,其交替进行一下两种操作:
  -更新隐变量的概率分布 q ( h ) q(\bm h) q(h)来提高下界 B B B,称为期望步
  -更新参数 θ \bm\theta θ来提高下界 B B B,称为最大化步

4.3.2 E步
  在E步,更新关于分布 q i ( h i ) q_i(\bm h_i) qi(hi)的界 B ( q i ( h i ) , θ ) B(q_i(\bm h_i), \bm\theta) B(qi(hi),θ),其表达式可以写成 B ( q i ( h i ) , θ ) = ∑ i = 1 I ∫ q i ( h i ) l o g P ( x i , h i ∣ θ ) q i ( h i ) d h i = ∑ i = 1 I ∫ q i ( h i ) l o g P ( h i ∣ x i , θ ) P ( x i ∣ θ ) q i ( h i ) d h i = ∑ i = 1 I ∫ q i ( h i ) [ l o g P ( x i ∣ θ ) − l o g q i ( h i ) P ( h i ∣ x i , θ ) ] d h i = ∑ i = 1 I ∫ q i ( h i ) l o g P ( x i ∣ θ ) d h i − ∑ i = 1 I ∫ q i ( h i ) l o g q i ( h i ) P ( h i ∣ x i , θ ) d h i = ∑ i = 1 I l o g P ( x i ∣ θ ) ∫ q i ( h i ) d h i − ∑ i = 1 I ∫ q i ( h i ) l o g q i ( h i ) P ( h i ∣ x i , θ ) d h i = ∑ i = 1 I l o g P ( x i ∣ θ ) − ∑ i = 1 I ∫ q i ( h i ) l o g q i ( h i ) P ( h i ∣ x i , θ ) d h i \begin{aligned}B(q_i(\bm h_i), \bm\theta)& = \sum_{i=1}^I \int q_i(\bm h_i)log \frac{P(\bm x_i, \bm h_i|\bm\theta)}{q_i(\bm h_i)}d\bm h_i \\&= \sum_{i=1}^I \int q_i(\bm h_i)log \frac{P(\bm h_i|\bm x_i, \bm\theta)P(\bm x_i|\bm\theta)}{q_i(\bm h_i)}d\bm h_i \\&= \sum_{i=1}^I \int q_i(\bm h_i)[log P(\bm x_i|\bm\theta) - log\frac{q_i(\bm h_i)}{P(\bm h_i|\bm x_i, \bm\theta)}]d\bm h_i \\&= \sum_{i=1}^I \int q_i(\bm h_i)log P(\bm x_i|\bm\theta)d\bm h_i - \sum_{i=1}^I \int q_i(\bm h_i)log\frac{q_i(\bm h_i)}{P(\bm h_i|\bm x_i, \bm\theta)}d\bm h_i \\&= \sum_{i=1}^I log P(\bm x_i|\bm\theta)\int q_i(\bm h_i)d\bm h_i - \sum_{i=1}^I \int q_i(\bm h_i)log\frac{q_i(\bm h_i)}{P(\bm h_i|\bm x_i, \bm\theta)}d\bm h_i \\&= \sum_{i=1}^I log P(\bm x_i|\bm\theta)- \sum_{i=1}^I \int q_i(\bm h_i)log\frac{q_i(\bm h_i)}{P(\bm h_i|\bm x_i, \bm\theta)}d\bm h_i \end{aligned} B(qi(hi),θ)=i=1Iqi(hi)logqi(hi)P(xi,hiθ)dhi=i=1Iqi(hi)logqi(hi)P(hixi,θ)P(xiθ)dhi=i=1Iqi(hi)[logP(xiθ)logP(hixi,θ)qi(hi)]dhi=i=1Iqi(hi)logP(xiθ)dhii=1Iqi(hi)logP(hixi,θ)qi(hi)dhi=i=1IlogP(xiθ)qi(hi)dhii=1Iqi(hi)logP(hixi,θ)qi(hi)dhi=i=1IlogP(xiθ)i=1Iqi(hi)logP(hixi,θ)qi(hi)dhi其表达式的第一项是关于分布 q i ( h i ) q_i(\bm h_i) qi(hi)的定值,而为了对 q i ( h i ) q_i(\bm h_i) qi(hi)优化界,只需求 q ^ ( h i ) = a r g m a x q i ( h i ) [ − ∑ i = 1 I ∫ q i ( h i ) l o g q i ( h i ) P ( h i ∣ x i , θ ) d h i ] = a r g m i n q i ( h i ) [ − ∑ i = 1 I ∫ q i ( h i ) l o g P ( h i ∣ x i , θ ) q i ( h i ) d h i ] \begin{aligned}\hat q(\bm h_i)& = argmax_{q_i(\bm h_i)}[- \sum_{i=1}^I \int q_i(\bm h_i)log\frac{q_i(\bm h_i)}{P(\bm h_i|\bm x_i, \bm\theta)}d\bm h_i] \\&= argmin_{q_i(\bm h_i)}[- \sum_{i=1}^I \int q_i(\bm h_i)log\frac{P(\bm h_i|\bm x_i, \bm\theta)}{q_i(\bm h_i)}d\bm h_i]\end{aligned} q^(hi)=argmaxqi(hi)[i=1Iqi(hi)logP(hixi,θ)qi(hi)dhi]=argminqi(hi)[i=1Iqi(hi)logqi(hi)P(hixi,θ)dhi]该式称为分布 q i ( h i ) q_i(\bm h_i) qi(hi) P ( h i ∣ x i , θ ) P(\bm h_i|\bm x_i, \bm\theta) P(hixi,θ)之间的KL【Kullback-Leibler】散度,是概率分布之间的距离的度量。根据 l o g ( x ) ≤ x − 1 log(x) \le x - 1 log(x)x1可以证明,总是有 ∫ q i ( h i ) l o g P ( h i ∣ x i , θ ) q i ( h i ) d h i ≤ ∫ q i ( h i ) ( P ( h i ∣ x i , θ ) q i ( h i ) − 1 ) d h i = ∫ P ( h i ∣ x i , θ ) d h i − ∫ q i ( h i ) d h i = 0 \begin{aligned} \int q_i(\bm h_i)log\frac{P(\bm h_i|\bm x_i, \bm\theta)}{q_i(\bm h_i)}d\bm h_i &\le \int q_i(\bm h_i)(\frac{P(\bm h_i|\bm x_i, \bm\theta)}{q_i(\bm h_i)}-1)d\bm h_i \\&= \int P(\bm h_i|\bm x_i, \bm\theta)d\bm h_i - \int q_i(\bm h_i)d\bm h_i \\&= 0 \end{aligned} qi(hi)logqi(hi)P(hixi,θ)dhiqi(hi)(qi(hi)P(hixi,θ)1)dhi=P(hixi,θ)dhiqi(hi)dhi=0这表明当KL散度为0时, B B B取得最大值,有 q i ( h i ) = P ( h i ∣ x i , θ ) = P ( x i ∣ h i , θ ) P ( h i ) P ( x i ) q_i(\bm h_i) = P(\bm h_i|\bm x_i, \bm\theta) = \frac{P(\bm x_i|\bm h_i, \bm\theta)P(\bm h_i)}{P(\bm x_i)} qi(hi)=P(hixi,θ)=P(xi)P(xihi,θ)P(hi)即期望步是利用贝叶斯公式来计算每个隐变量的后验分布。

4.3.3 M步
  在M步,对关于参数 θ \bm\theta θ的边界进行最大化,使得 θ = a r g m a x θ   B ( q i ( h i ) , θ ) = a r g m a x θ   ∑ i = 1 I ∫ q i ( h i ) l o g P ( x i , h i ∣ θ ) q i ( h i ) d h i = a r g m a x θ   ∑ i = 1 I ∫ q i ( h i ) l o g P ( x i , h i ∣ θ ) − q i ( h i ) l o g q i ( h i ) d h i = a r g m a x θ   ∑ i = 1 I ∫ q i ( h i ) l o g P ( x i , h i ∣ θ ) d h i \begin{aligned} \bm\theta &= argmax_{\bm\theta}\ B(q_i(\bm h_i), \bm\theta) \\&= argmax_{\bm\theta}\ \sum_{i=1}^I \int q_i(\bm h_i)log\frac{P(\bm x_i, \bm h_i|\bm\theta)}{q_i(\bm h_i)}d\bm h_i \\&= argmax_{\bm\theta}\ \sum_{i=1}^I \int q_i(\bm h_i)logP(\bm x_i, \bm h_i|\bm\theta)-q_i(\bm h_i)logq_i(\bm h_i)d\bm h_i \\&= argmax_{\bm\theta}\ \sum_{i=1}^I \int q_i(\bm h_i)logP(\bm x_i, \bm h_i|\bm\theta)d\bm h_i \end{aligned} θ=argmaxθ B(qi(hi),θ)=argmaxθ i=1Iqi(hi)logqi(hi)P(xi,hiθ)dhi=argmaxθ i=1Iqi(hi)logP(xi,hiθ)qi(hi)logqi(hi)dhi=argmaxθ i=1Iqi(hi)logP(xi,hiθ)dhi其中,省略的第二项与参数无关,不影响最大化的结果。

4.4 高斯混合模型
  高斯混合模型【Gaussian Mixture Model,GMM】是适合EM算法学习的一个原型。数据描述为 K K K个高斯分布的加权和 P ( x ∣ θ ) = ∑ k = 1 K λ k N ( x ; μ k , Σ k ) P(\bm x|\bm\theta) = \sum_{k=1}^K \lambda_kN(\bm x;\bm\mu_k, \bm\Sigma_k) P(xθ)=k=1KλkN(x;μk,Σk)其中 λ \lambda λ是正数权重,且 ∑ k = 1 K λ = 1 \sum_{k=1}^K \lambda = 1 k=1Kλ=1。高斯混合模型将简单成分分布联合起来描述多峰概率密度。
  为了能从训练数据 x \bm x x中学习参数 θ = ( μ , Σ , λ ) \bm\theta = (\bm\mu, \bm\Sigma, \lambda) θ=(μ,Σ,λ),可以利用最简单的最大似然方法,但会无法得到简单闭式解;或非线性优化方法,但由于需要保证参数的约束,这也十分复杂。更简单的,可以将观测数据的密度函数作为边缘概率,并使用EM算法学习其参数。
  GMM可以看作观测到的数据 x \bm x x和一个取值为 h ∈ { 1 , . . . , K } h \in \{1, ..., K\} h{1,...,K}的隐变量 h \bm h h之间的联合分布的边缘概率,定义 P ( x ∣ h , θ ) = N ( x ; μ h , Σ h ) P ( h ∣ θ ) = C a t ( h ; λ ) \begin{aligned} P(\bm x|h, \bm\theta) &= N(x;\bm\mu_h, \bm\Sigma_h) \\ P(h|\bm\theta) &= Cat(h;\bm\lambda)\end{aligned} P(xh,θ)P(hθ)=N(x;μh,Σh)=Cat(h;λ)其中, λ \bm\lambda λ是分类分布的参数,那么数据的原始密度为 P ( x ∣ θ ) = ∑ k = 1 K P ( x , h = k ∣ θ ) = ∑ k = 1 K P ( x ∣ h = k , θ ) P ( h = k ∣ θ ) = ∑ k = 1 K λ k N ( x ; μ k , Σ k ) \begin{aligned} P(\bm x|\bm\theta)&= \sum_{k=1}^K P(\bm x, h = k|\bm\theta) \\&= \sum_{k=1}^K P(\bm x|h = k, \bm\theta)P(h = k|\bm\theta) \\&= \sum_{k=1}^K \lambda_kN(\bm x; \bm\mu_k, \bm\Sigma_k) \end{aligned} P(xθ)=k=1KP(x,h=kθ)=k=1KP(xh=k,θ)P(h=kθ)=k=1KλkN(x;μk,Σk)其可以解释为从混合分布 P ( x , h ) P(\bm x, h) P(x,h)中采样并丢弃了隐变量 h h h,只留下数据样本 x \bm x x。其中,隐变量 h h h有一个清晰的解释,其决定了哪个正态分布对应于观测数据点 x \bm x x
  为了从训练数据 { x i } i = 1 I \{\bm x_i\}_{i=1}^I {xi}i=1I中学习GMM参数 θ = { λ k , μ k , Σ k } k = 1 K \bm\theta = \{\lambda_k, \bm\mu_k, \bm\Sigma_k\}_{k=1}^K θ={λk,μk,Σk}k=1K,可以使用EM算法。

4.5 学生氏分布
  使用高斯分布描述视觉数据有一个严重问题是不健壮:位于偏离期望的样本的概率密度下降的非常快,导致奇异点会严重影响估计的参数,因为由于奇异点的存在,要使得高斯分布的峰值向奇异点偏移,使得奇异点位置有恰当的概率密度。学生氏【Student’s t】分布,简称t分布提供了更加健壮的分布,其属于一种统计分布,数学定义是不太直观的: P ( x ) = S t u d ( x ; μ , σ 2 , ν ) = Γ ( ( ν + 1 ) / 2 ) ν π σ 2 Γ ( ν / 2 ) ( 1 + ( x − μ ) 2 ν σ 2 ) − ν + 1 2 \begin{aligned} P(x) &= Stud(x;\mu, \sigma^2, \nu) \\&= \frac{\Gamma((\nu + 1)/2)}{\sqrt{\nu\pi\sigma^2}\Gamma(\nu / 2)}(1+\frac{(x-\mu)^2}{\nu\sigma^2})^{-\frac{\nu + 1}{2}} \end{aligned} P(x)=Stud(x;μ,σ2,ν)=νπσ2 Γ(ν/2)Γ((ν+1)/2)(1+νσ2(xμ)2)2ν+1其中, μ \mu μ为均值, σ 2 \sigma^2 σ2为缩放参数, ν \nu ν为离散程度。当 ν → + ∞ \nu \rightarrow +\infty ν+时,该分布趋近于高斯分布;当 ν → 0 \nu \rightarrow 0 ν0时,偏离期望的样本的概率密度远远高于高斯分布。对于 D D D维空间的t分布,其概率密度函数更加复杂: P ( x ) = S t u d ( x ; μ , Σ , ν ) = Γ ( ( ν + D ) / 2 ) ( ν π ) ∣ D / 2 ∣ ∣ Σ ∣ 1 / 2 Γ ( ν / 2 ) ( 1 + ( x − μ ) T Σ − 1 ( x − μ ) ν ) − ν + D 2 \begin{aligned} P(\bm x) &= Stud(\bm x;\bm\mu, \bm\Sigma, \nu) \\&= \frac{\Gamma((\nu + D)/2)}{(\nu\pi)^{|D/2|}|\bm\Sigma|^{1/2}\Gamma(\nu / 2)}(1+\frac{(\bm x-\bm\mu)^T\bm\Sigma^{-1}(\bm x - \bm\mu)}{\nu})^{-\frac{\nu + D}{2}} \end{aligned} P(x)=Stud(x;μ,Σ,ν)=(νπ)D/2Σ1/2Γ(ν/2)Γ((ν+D)/2)(1+ν(xμ)TΣ1(xμ))2ν+D  首先介绍伽马分布,其定义在正实轴上,有参数 α , β \alpha, \beta α,β,其概率密度函数为 G a m ( x ; α , β ) = β α γ ( α ) e x p [ − β x ] x α − 1 Gam(x; \alpha, \beta) = \frac{\beta^\alpha}{\gamma(\alpha)}exp[-\beta x]x^{\alpha - 1} Gam(x;α,β)=γ(α)βαexp[βx]xα1再令 P ( x ∣ h ) = N ( x ; μ , Σ / h ) P ( h ) = G a m ( h ; ν / 2 , ν / 2 ) \begin{aligned}P(\bm x|h) &= N(\bm x;\bm\mu, \bm\Sigma/h) \\ P(h) &= Gam(h;\nu/2, \nu/2) \end{aligned} P(xh)P(h)=N(x;μ,Σ/h)=Gam(h;ν/2,ν/2)那么有 P ( x ) = ∫ P ( x , h ) d h = ∫ P ( x ∣ h ) P ( h ) d h = N ( x ; μ , Σ / h ) G a m ( h ; ν / 2 , ν / 2 ) d h = S t u d ( x ; μ , Σ , ν ) \begin{aligned} P(\bm x) &= \int P(\bm x, h)dh \\&= \int P(\bm x|h)P(h)dh \\&= N(\bm x;\bm\mu, \bm\Sigma/h)Gam(h;\nu/2, \nu/2)dh \\&= Stud(\bm x; \bm\mu, \bm\Sigma, \nu) \end{aligned} P(x)=P(x,h)dh=P(xh)P(h)dh=N(x;μ,Σ/h)Gam(h;ν/2,ν/2)dh=Stud(x;μ,Σ,ν)其提供了从t分布中生成数据的方法:从伽马分布中生成 h h h,并从相关联的高斯分布 P ( x ∣ h ) P(\bm x|h) P(xh)中生成 x \bm x x,而隐变量 h h h给出了高斯分布族中与数据点有关的分布。
  概率密度函数 P ( x ) P(\bm x) P(x)是包含隐变量的联合分布的边缘化形式,可以使用EM算法从训练数据集 { x i } i = 1 I \{\bm x_i\}_{i=1}^I {xi}i=1I中学习参数 θ = { μ , Σ , ν } \bm\theta = \{\bm\mu, \bm\Sigma, \bm\nu\} θ={μ,Σ,ν}

4.6 因子分析
  视觉数据的维度通常很高,例如对于60x60的RBG图像,需要10800维度的向量来表示,当使用多元正态分布进行建模时,需要维度为10800x10800的协方差矩阵。一方面,需要大量的数据很好的估计这些参数;另一方面,需要大量的内存空间,以及对大型矩阵求逆的问题。
  当然,可以使用协方差矩阵的对角形式,但这假设了每个维度的数据是独立的,这显然是不正确的:非边缘区域的相邻像素的RGB值变化很小。一个好的模型应该捕获这些信息。
  因子分析提供了一种折中的方式,其利用全协方差模型定义一个线性子空间。因子分析的概率密度函数为 P ( x ) = N ( x ; μ , Φ Φ T + Σ ) P(\bm x) = N(\bm x;\bm\mu, \bm\Phi\bm\Phi^T + \bm\Sigma) P(x)=N(x;μ,ΦΦT+Σ)其中, Φ Φ T \bm\Phi\bm\Phi^T ΦΦT描述了子空间上的全协方差模型, Σ \bm\Sigma Σ解释剩下变化的对角矩阵。 Φ \bm\Phi Φ K × D K \times D K×D的矩阵,而

你可能感兴趣的:(机器学习,机器学习,计算机视觉)