本系列为《模式识别与机器学习》的读书笔记。
一,对偶表示
有这样⼀类模式识别的技术:训练数据点或者它的⼀个⼦集在预测阶段仍然保留并且被使⽤。许多线性参数模型可以被转化为⼀个等价的“对偶表⽰ ”。对偶表⽰中,预测的基础也是在训练数据点处计算的核函数 (kernel function)的线性组合。对于基于固定⾮线性特征空间(feature space)映射 ϕ ( x ) \boldsymbol{\phi}(\boldsymbol{x}) ϕ ( x ) 的模型来说,核函数由下⾯的关系给出。k ( x , x ′ ) = ϕ ( x ) T ϕ ( x ′ ) (6.1)
k(\boldsymbol{x},\boldsymbol{x}^{\prime})=\boldsymbol{\phi}(\boldsymbol{x})^{T}\boldsymbol{\phi}(\boldsymbol{x^{\prime}})\tag{6.1}
k ( x , x ′ ) = ϕ ( x ) T ϕ ( x ′ ) ( 6 . 1 )
通过考虑公式(6.1)中特征空间的恒等映射 ϕ ( x ) = x \boldsymbol{\phi}(\boldsymbol{x})=\boldsymbol{x} ϕ ( x ) = x ,就得到了核函数的⼀个最简单的例⼦,此时 k ( x , x ′ ) = x T x ′ k\boldsymbol{(x}, \boldsymbol{x}^{\prime}) =\boldsymbol{x}^{T}\boldsymbol{x}^{\prime} k ( x , x ′ ) = x T x ′ ,把这个称为线性核 。
许多核函数只是参数的差值的函数,即 k ( x , x ′ ) = k ( x − x ′ ) k(\boldsymbol{x},\boldsymbol{x}^{\prime})=k(\boldsymbol{x}−\boldsymbol{x}^{\prime}) k ( x , x ′ ) = k ( x − x ′ ) ,这被称为静⽌核 (stationary kernel),因为核函数对于输⼊空间的平移具有不变性。另⼀种核函数是同质核 (homogeneous kernel),也被称为径向基函数 (radial basis function),它只依赖于参数之间的距离(通常是欧⼏⾥得距离)的⼤⼩,即 k ( x , x ′ ) = k ( ∥ x − x ′ ∥ ) k(\boldsymbol{x},\boldsymbol{x}^{\prime})=k(\|\boldsymbol{x}−\boldsymbol{x}^{\prime}\|) k ( x , x ′ ) = k ( ∥ x − x ′ ∥ ) 。
考虑⼀个线性模型,它的参数通过最⼩化正则化的平⽅和误差函数来确定,正则化的平⽅和误差函数为J ( w ) = 1 2 ∑ n = 1 N { w T ϕ ( x n ) − t n } 2 + λ 2 w T w (6.2)
J(\boldsymbol{w})=\frac{1}{2}\sum_{n=1}^{N}\{\boldsymbol{w}^{T}\boldsymbol{\phi}(\boldsymbol{x}_n)-t_n\}^{2}+\frac{\lambda}{2}\boldsymbol{w}^{T}\boldsymbol{w}\tag{6.2}
J ( w ) = 2 1 n = 1 ∑ N { w T ϕ ( x n ) − t n } 2 + 2 λ w T w ( 6 . 2 )
其中 λ ≥ 0 \lambda\ge0 λ ≥ 0 。如果令 J ( w ) J(\boldsymbol{w}) J ( w ) 关于 w \boldsymbol{w} w 的梯度等于零,那么看到 w \boldsymbol{w} w 的解是向量 ϕ ( x n ) \boldsymbol{\phi}(\boldsymbol{x}_n) ϕ ( x n ) 的线性组合的形式,系数是 w \boldsymbol{w} w 的函数,形式为w = − 1 λ ∑ n = 1 N { w T ϕ ( x n ) − t n } ϕ ( x n ) = ∑ n = 1 N a n ϕ ( x n ) = Φ T a (6.3)
\begin{aligned}\boldsymbol{w}&=-\frac{1}{\lambda}\sum_{n=1}^{N}\{\boldsymbol{w}^{T}\boldsymbol{\phi}(\boldsymbol{x}_n)-t_n\}\boldsymbol{\phi}(\boldsymbol{x}_n)\\&=\sum_{n=1}^{N}a_n\boldsymbol{\phi}(\boldsymbol{x}_n)=\boldsymbol{\Phi}^{T}\boldsymbol{a}\end{aligned}\tag{6.3}
w = − λ 1 n = 1 ∑ N { w T ϕ ( x n ) − t n } ϕ ( x n ) = n = 1 ∑ N a n ϕ ( x n ) = Φ T a ( 6 . 3 )
其中 Φ \boldsymbol{\Phi} Φ 是设计矩阵,第 n n n ⾏为 ϕ ( x n ) T \boldsymbol{\phi}(\boldsymbol{x}_n)^{T} ϕ ( x n ) T ,向量 a = ( a 1 , … , a N ) T \boldsymbol{a}=(a_1,\dots,a_N)^{T} a = ( a 1 , … , a N ) T ,并且a n = − 1 λ { w T ϕ ( x ) − t n }
a_n=-\frac{1}{\lambda}\{\boldsymbol{w}^{T}\boldsymbol{\phi}(\boldsymbol{x})-t_n\}
a n = − λ 1 { w T ϕ ( x ) − t n }
现在不直接对参数向量 w \boldsymbol{w} w 进⾏操作,⽽是使⽤参数向量 a \boldsymbol{a} a 重新整理最⼩平⽅算法,得到⼀个对偶表⽰ (dual representation)。如果将 w = Φ T a \boldsymbol{w}=\boldsymbol{\Phi}^{T}\boldsymbol{a} w = Φ T a 代⼊ J ( w ) J(\boldsymbol{w}) J ( w ) ,那么可以得到J ( a ) = 1 2 a T Φ Φ T Φ Φ T a − a T Φ Φ T t + 1 2 t T t + λ 2 a T Φ Φ T a (6.4)
J(\boldsymbol{a})=\frac{1}{2}\boldsymbol{a}^{T}\boldsymbol{\Phi}\boldsymbol{\Phi}^{T}\boldsymbol{\Phi}\boldsymbol{\Phi}^{T}\boldsymbol{a}-\boldsymbol{a}^{T}\boldsymbol{\Phi}\boldsymbol{\Phi}^{T}\mathbf{t}+\frac{1}{2}\mathbf{t}^{T}\mathbf{t}+\frac{\lambda}{2}\boldsymbol{a}^{T}\boldsymbol{\Phi}\boldsymbol{\Phi}^{T}\boldsymbol{a}\tag{6.4}
J ( a ) = 2 1 a T Φ Φ T Φ Φ T a − a T Φ Φ T t + 2 1 t T t + 2 λ a T Φ Φ T a ( 6 . 4 )
其中 t = ( t 1 , … , t N ) T \mathbf{t}=(t_1,\dots, t_N)^{T} t = ( t 1 , … , t N ) T 。现在定义 Gram矩阵 K = Φ Φ T \boldsymbol{K}=\boldsymbol{\Phi}\boldsymbol{\Phi}^{T} K = Φ Φ T ,它是⼀个 N × N N \times N N × N 的对称矩阵,元素为K n m = ϕ ( x n ) T ϕ ( x m ) = k ( x n , x m )
K_{nm}=\boldsymbol{\phi}(\boldsymbol{x}_n)^{T}\boldsymbol{\phi}(\boldsymbol{x}_m)=k(\boldsymbol{x}_n,\boldsymbol{x}_m)
K n m = ϕ ( x n ) T ϕ ( x m ) = k ( x n , x m )
使⽤Gram矩阵, 平⽅和误差函数可以写成J ( a ) = 1 2 a T K K a − a T K t + 1 2 t T t + λ 2 a T K a (6.5)
J(\boldsymbol{a})=\frac{1}{2}\boldsymbol{a}^{T}\boldsymbol{K}\boldsymbol{K}\boldsymbol{a}-\boldsymbol{a}^{T}\boldsymbol{K}\mathbf{t}+\frac{1}{2}\mathbf{t}^{T}\mathbf{t}+\frac{\lambda}{2}\boldsymbol{a}^{T}\boldsymbol{K}\boldsymbol{a}\tag{6.5}
J ( a ) = 2 1 a T K K a − a T K t + 2 1 t T t + 2 λ a T K a ( 6 . 5 )
有,a = ( K + λ I N ) − 1 t (6.6)
\boldsymbol{a}=(\boldsymbol{K}+\lambda\boldsymbol{I}_{N})^{-1}\mathbf{t}\tag{6.6}
a = ( K + λ I N ) − 1 t ( 6 . 6 )
如果将这个代⼊线性回归模型中,对于新的输⼊ x \boldsymbol{x} x ,得到了下⾯预测y ( x ) = w T ϕ ( x ) = a T Φ ϕ ( x ) = k ( x ) T ( K + λ I N ) − 1 t (6.7)
y(\boldsymbol{x})=\boldsymbol{w}^{T}\boldsymbol{\phi}(\boldsymbol{x})=\boldsymbol{a}^{T}\boldsymbol{\Phi}\boldsymbol{\phi}(\boldsymbol{x})=\boldsymbol{k}(\boldsymbol{x})^{T}(\boldsymbol{K}+\lambda\boldsymbol{I}_N)^{-1}\mathbf{t}\tag{6.7}
y ( x ) = w T ϕ ( x ) = a T Φ ϕ ( x ) = k ( x ) T ( K + λ I N ) − 1 t ( 6 . 7 )
其中定义了向量 k ( x ) \boldsymbol{k}(\boldsymbol{x}) k ( x ) ,它的元素为 k n ( x ) = k ( x n , x ) k_n(\boldsymbol{x})=k(\boldsymbol{x}_n,\boldsymbol{x}) k n ( x ) = k ( x n , x ) 。因此看到对偶公式使得最⼩平⽅ 问题的解完全通过核函数 k ( x , x ′ ) k(\boldsymbol{x},\boldsymbol{x}^{\prime}) k ( x , x ′ ) 表⽰。这被称为对偶公式 ,因为 a \boldsymbol{a} a 的解可以被表⽰为 ϕ ( x ) \boldsymbol{\phi}(\boldsymbol{x}) ϕ ( x ) 的线性组合,从⽽可以使⽤参数向量 w \boldsymbol{w} w 恢复出原始的公式。
在对偶公式中,通过对⼀个 N × N N \times N N × N 的矩阵求逆来确定参数向量 a \boldsymbol{a} a ,⽽在原始参数空间公式中, 我们要对⼀个 M × M M \times M M × M 的矩阵求逆来确定 w \boldsymbol{w} w 。对偶公式的优点 是,它可以完全通过核函数 k ( x , x ′ ) k(\boldsymbol{x},\boldsymbol{x}^{\prime}) k ( x , x ′ ) 来表⽰。于是可以直接针对核函数进⾏计算,避免了显式地引⼊特征向量 ϕ ( x ) \boldsymbol{\phi}(\boldsymbol{x}) ϕ ( x ) ,这使得可以隐式地使⽤⾼维特征空间,甚⾄⽆限维特征空间。
二,构造核
为了利⽤核替换,需要能够构造合法的核函数。⼀种⽅法是选择⼀个特征空间映射 ϕ ( x ) \boldsymbol{\phi}(\boldsymbol{x}) ϕ ( x ) ,然后使⽤这个映射寻找对应的核。⼀维空间的核函数被定义为k ( x , x ′ ) = ϕ ( x ) T ϕ ( x ′ = ∑ i = 1 M ϕ i ( x ) ϕ i ( x ′ ) (6.8)
k(x,x^{\prime})=\boldsymbol{\phi}(x)^{T}\boldsymbol{\phi}(x^{\prime}=\sum_{i=1}^{M}\phi_{i}(x)\phi_i(x^{\prime})\tag{6.8}
k ( x , x ′ ) = ϕ ( x ) T ϕ ( x ′ = i = 1 ∑ M ϕ i ( x ) ϕ i ( x ′ ) ( 6 . 8 )
其中 ϕ i ( x ) \phi_i(x) ϕ i ( x ) 是基函数。
如图6.1~6.3,从对应的基函数集合构建核函数的例⼦。在每⼀图中,下部分给出了由公式(6.8)定义的核函数 k ( x , x ′ ) k(x,x^{\prime}) k ( x , x ′ ) ,它是 x x x 的函数,x ′ x^{\prime} x ′ 的值⽤红⾊叉号表⽰,⽽上部分给出了对应的基函数,分别是多项式基函数(图6.1)、⾼斯基函数(图6.2)、logistic sigmoid基函数(图6.3)。
另⼀种⽅法是直接构造核函数。在这种情况下,必须确保核函数是合法的,即它对应于某个(可能是⽆穷维)特征空间的标量积。考虑下⾯的核函数
k ( x , z ) = ( x T z ) 2 (6.9)
k(\boldsymbol{x},\boldsymbol{z})=(\boldsymbol{x}^{T}\boldsymbol{z})^{2}\tag{6.9}
k ( x , z ) = ( x T z ) 2 ( 6 . 9 )
如果取⼆维输⼊空间 x = ( x 1 , x 2 ) \boldsymbol{x}=(x_1,x_2) x = ( x 1 , x 2 ) 的特殊情况,那么展开这⼀项,于是得到对应的⾮线性特征映射
k ( x , z ) = ( x T z ) 2 = ( x 1 z 1 + x 2 z 2 ) 2 = x 1 2 z 1 2 + 2 x 1 z 1 x 2 z 2 + x 2 2 z 2 2 = ( x 1 2 , 2 x 1 x 2 , x 2 2 ) ( z 1 2 , 2 z 1 z 2 , z 2 2 ) T = ϕ ( x ) T ϕ ( z )
\begin{aligned}k(\boldsymbol{x},\boldsymbol{z})&=(\boldsymbol{x}^{T}\boldsymbol{z})^{2}\\&=(x_1z_1+x_2z_2)^{2}\\&=x_1^2z_1^2+2x_1z_1x_2z_2+x_2^2z_2^2\\&=(x_1^2,\sqrt{2}x_1x_2,x_2^2)(z_1^2,\sqrt{2}z_1z_2,z_2^2)^{T}\\&=\boldsymbol{\phi}(\boldsymbol{x})^{T}\boldsymbol{\phi}(\boldsymbol{z})\end{aligned}
k ( x , z ) = ( x T z ) 2 = ( x 1 z 1 + x 2 z 2 ) 2 = x 1 2 z 1 2 + 2 x 1 z 1 x 2 z 2 + x 2 2 z 2 2 = ( x 1 2 , 2 x 1 x 2 , x 2 2 ) ( z 1 2 , 2 z 1 z 2 , z 2 2 ) T = ϕ ( x ) T ϕ ( z )
更⼀般地, 需要找到⼀种更简单的⽅法检验⼀个函数是否是⼀个合法的核函数,⽽不需要显⽰地构造函数 ϕ ( x ) \boldsymbol{\phi}(\boldsymbol{x}) ϕ ( x ) 。 核函数 k ( x , x ′ ) k(\boldsymbol{x},\boldsymbol{x}^{\prime}) k ( x , x ′ ) 是⼀个合法的核函数的充分必要条件 是Gram矩阵(元素由 k ( x n , x m ) k(\boldsymbol{x}_n,\boldsymbol{x}_m) k ( x n , x m ) 给出)在所有的集合 x n {\boldsymbol{x}_n} x n 的选择下都是半正定的 (Shawe-Taylor and Cristianini, 2004)。
构造新的核函数的⼀个强⼤的⽅法是使⽤简单的核函数作为基本的模块来构造。给定合法的核 k 1 ( x , x ′ ) k_1(\boldsymbol{x},\boldsymbol{x}^{\prime}) k 1 ( x , x ′ ) 和 k 2 ( x , x ′ ) k_2(\boldsymbol{x},\boldsymbol{x}^{\prime}) k 2 ( x , x ′ ) ,下⾯的新核也是合法的k ( x , x ′ ) = c k 1 ( x , x ′ ) k ( x , x ′ ) = f ( x ) k 1 ( x , x ′ ) f ( x ′ ) k ( x , x ′ ) = q ( k 1 ( x , x ′ ) ) k ( x , x ′ ) = exp ( k 1 ( x , x ′ ) ) k ( x , x ′ ) = k 1 ( x , x ′ ) + k 2 ( x , x ′ ) k ( x , x ′ ) = k 1 ( x , x ′ ) k 2 ( x , x ′ ) k ( x , x ′ ) = k 3 ( ϕ ( x ) , ϕ ( x ′ ) ) k ( x , x ′ ) = x T A x ′ k ( x , x ′ ) = k a ( x a , x a ′ ) + k b ( x b , x b ′ ) k ( x , x ′ ) = k a ( x a , x a ′ ) k n ( x n , x n ′ ) (*)
k(\boldsymbol{x},\boldsymbol{x}^{\prime})=ck_1(\boldsymbol{x},\boldsymbol{x}^{\prime})\\
k(\boldsymbol{x},\boldsymbol{x}^{\prime})=f(\boldsymbol{x})k_1(\boldsymbol{x},\boldsymbol{x}^{\prime})f(\boldsymbol{x}^{\prime})\\
k(\boldsymbol{x},\boldsymbol{x}^{\prime})=q(k_1(\boldsymbol{x},\boldsymbol{x}^{\prime}))\\
k(\boldsymbol{x},\boldsymbol{x}^{\prime})=\exp(k_1(\boldsymbol{x},\boldsymbol{x}^{\prime}))\\
k(\boldsymbol{x},\boldsymbol{x}^{\prime})=k_1(\boldsymbol{x},\boldsymbol{x}^{\prime})+k_2(\boldsymbol{x},\boldsymbol{x}^{\prime})\\
k(\boldsymbol{x},\boldsymbol{x}^{\prime})=k_1(\boldsymbol{x},\boldsymbol{x}^{\prime})k_2(\boldsymbol{x},\boldsymbol{x}^{\prime})\\
k(\boldsymbol{x},\boldsymbol{x}^{\prime})=k_3(\boldsymbol{\phi}(\boldsymbol{x}),\boldsymbol{\phi}(\boldsymbol{x}^{\prime}))\\
k(\boldsymbol{x},\boldsymbol{x}^{\prime})=\boldsymbol{x}^{T}\boldsymbol{A}\boldsymbol{x}^{\prime}\\
k(\boldsymbol{x},\boldsymbol{x}^{\prime})=k_a(\boldsymbol{x}_a,\boldsymbol{x}_a^{\prime})+k_b(\boldsymbol{x}_b,\boldsymbol{x}_b^{\prime})\\
k(\boldsymbol{x},\boldsymbol{x}^{\prime})=k_a(\boldsymbol{x}_a,\boldsymbol{x}_a^{\prime})k_n(\boldsymbol{x}_n,\boldsymbol{x}_n^{\prime})\tag{*}\\
k ( x , x ′ ) = c k 1 ( x , x ′ ) k ( x , x ′ ) = f ( x ) k 1 ( x , x ′ ) f ( x ′ ) k ( x , x ′ ) = q ( k 1 ( x , x ′ ) ) k ( x , x ′ ) = exp ( k 1 ( x , x ′ ) ) k ( x , x ′ ) = k 1 ( x , x ′ ) + k 2 ( x , x ′ ) k ( x , x ′ ) = k 1 ( x , x ′ ) k 2 ( x , x ′ ) k ( x , x ′ ) = k 3 ( ϕ ( x ) , ϕ ( x ′ ) ) k ( x , x ′ ) = x T A x ′ k ( x , x ′ ) = k a ( x a , x a ′ ) + k b ( x b , x b ′ ) k ( x , x ′ ) = k a ( x a , x a ′ ) k n ( x n , x n ′ ) ( * )
其中 c > 0 c>0 c > 0 是⼀个常数,f ( ⋅ ) f(·) f ( ⋅ ) 是任意函数,q ( ⋅ ) q(·) q ( ⋅ ) 是⼀个系数⾮负的多项式,ϕ ( x ) \boldsymbol{\phi}(\boldsymbol{x}) ϕ ( x ) 是⼀个从 x \boldsymbol{x} x 到 R M \mathbb{R}^{M} R M 的函数,k 3 ( ⋅ , ⋅ ) k_3(·, ·) k 3 ( ⋅ , ⋅ ) 是 R M \mathbb{R}^{M} R M 中的⼀个合法的核, A \boldsymbol{A} A 是⼀个对称半正定矩阵, x a \boldsymbol{x}_a x a 和 x b \boldsymbol{x}_b x b 是变量(未必互斥),且 x = ( x a , x b ) \boldsymbol{x}=(\boldsymbol{x}_a, \boldsymbol{x}_b) x = ( x a , x b ) 。k a k_a k a 和 k b k_b k b 是各⾃空间的合法的核函数。
另⼀个经常使⽤的核函数的形式为k ( x , x ′ ) = exp ( − ∥ x − x ′ ∥ 2 2 σ 2 ) (6.10)
k(\boldsymbol{x},\boldsymbol{x}^{\prime})=\exp\left(-\frac{\|\boldsymbol{x}-\boldsymbol{x}^{\prime}\|^{2}}{2\sigma^{2}}\right)\tag{6.10}
k ( x , x ′ ) = exp ( − 2 σ 2 ∥ x − x ′ ∥ 2 ) ( 6 . 1 0 )
这个被称为⾼斯核 。这是⼀个合法的核,把平⽅项展开
∥ x − x ′ ∥ 2 = x T x + ( x ′ ) T x ′ − 2 x T x ′
\|\boldsymbol{x}-\boldsymbol{x}^{\prime}\|^{2}=\boldsymbol{x}^{T}\boldsymbol{x}+(\boldsymbol{x}^{\prime})^{T}\boldsymbol{x}^{\prime}-2\boldsymbol{x}^{T}\boldsymbol{x}^{\prime}
∥ x − x ′ ∥ 2 = x T x + ( x ′ ) T x ′ − 2 x T x ′
从而,
k ( x , x ′ ) = exp ( − x T x 2 σ 2 ) exp ( x T x ′ σ 2 ) exp ( − ( x ′ ) T x ′ 2 σ 2 ) (6.11)
k(\boldsymbol{x},\boldsymbol{x}^{\prime})=\exp\left(-\frac{\boldsymbol{x}^{T}\boldsymbol{x}}{2\sigma^{2}}\right)\exp\left(\frac{\boldsymbol{x}^{T}\boldsymbol{x}^{\prime}}{\sigma^{2}}\right)\exp\left(-\frac{(\boldsymbol{x}^{\prime})^{T}\boldsymbol{x}^{\prime}}{2\sigma^{2}}\right)\tag{6.11}
k ( x , x ′ ) = exp ( − 2 σ 2 x T x ) exp ( σ 2 x T x ′ ) exp ( − 2 σ 2 ( x ′ ) T x ′ ) ( 6 . 1 1 )
⾼斯核并不局限于使⽤欧⼏⾥得距离。如果使⽤公式(6.10)的平方项展开式中的核替换,将 x T x ′ \boldsymbol{x}^{T}\boldsymbol{x}^{\prime} x T x ′ 替换为⼀个⾮线性核 κ ( x , x ′ ) \kappa(\boldsymbol{x},\boldsymbol{x}^{\prime}) κ ( x , x ′ ) ,有
k ( x , x ′ ) = exp { − 1 2 σ 2 ( κ ( x , x ) + κ ( x ′ , x ′ ) − 2 κ ( x , x ′ ) ) } (6.12)
k(\boldsymbol{x},\boldsymbol{x}^{\prime})=\exp\left\{-\frac{1}{2\sigma^{2}}(\kappa(\boldsymbol{x},\boldsymbol{x})+\kappa(\boldsymbol{x}^{\prime},\boldsymbol{x}^{\prime})-2\kappa(\boldsymbol{x},\boldsymbol{x}^{\prime}))\right\}\tag{6.12}
k ( x , x ′ ) = exp { − 2 σ 2 1 ( κ ( x , x ) + κ ( x ′ , x ′ ) − 2 κ ( x , x ′ ) ) } ( 6 . 1 2 )
核观点 的⼀个重要的贡献 是可以扩展到符号化的输⼊,⽽不是简单的实数向量。
考虑⼀个固定的集合,定义⼀个⾮向量空间,这个空间由这个集合的所有可能的⼦集构成。 如果 A 1 A_1 A 1 和 A 2 A_2 A 2 是两个这样的⼦集,那么核的⼀个简单的选择可以是k ( A 1 , A 2 ) = 2 ∣ A 1 ∩ A 2 ∣ (6.13)
k(A_1,A_2)=2^{|A_1\cap{A_2}|}\tag{6.13}
k ( A 1 , A 2 ) = 2 ∣ A 1 ∩ A 2 ∣ ( 6 . 1 3 )
其中 A 1 ∩ A 2 A_1 \cap A_2 A 1 ∩ A 2 表⽰集合 A 1 A_1 A 1 和 A 2 A_2 A 2 的交集,∣ A ∣ |A| ∣ A ∣ 表⽰A A A 的元素的数量。
构造核的另⼀个强⼤的⽅法是从⼀个概率⽣成式模型开始构造(Haussler, 1999),这使得可以在⼀个判别式的框架中使⽤⽣成式模型。
给定⼀个⽣成式模型 p ( x ) p(\boldsymbol{x}) p ( x ) ,可以定义⼀个核k ( x , x ′ ) = p ( x ) p ( x ′ ) (6.14)
k(\boldsymbol{x},\boldsymbol{x}^{\prime})=p(\boldsymbol{x})p(\boldsymbol{x}^{\prime})\tag{6.14}
k ( x , x ′ ) = p ( x ) p ( x ′ ) ( 6 . 1 4 )
对这类核进行扩展,扩展的⽅法是考虑不同概率分布的乘积的加和,带有正的权值系数 p ( i ) p(i) p ( i ) ,形式为
k ( x , x ′ ) = ∑ i p ( x ∣ i ) p ( x ′ ∣ i ) p ( i ) (6.15)
k(\boldsymbol{x},\boldsymbol{x}^{\prime})=\sum_{i}p(\boldsymbol{x}|i)p(\boldsymbol{x}^{\prime}|i)p(i)\tag{6.15}
k ( x , x ′ ) = i ∑ p ( x ∣ i ) p ( x ′ ∣ i ) p ( i ) ( 6 . 1 5 )
如果两个输⼊ x \boldsymbol{x} x 和 x ′ \boldsymbol{x}^{\prime} x ′ 在⼀⼤类的不同分量下都有较⼤的概率,那么这两个输⼊将会使核函数输出较⼤的值,因此就表现出相似性 。在⽆限求和的极限情况下,也可以考虑下⾯形式的核函数
k ( x , x ′ ) = ∫ p ( x ∣ z ) p ( x ′ ∣ z ) p ( z ) d z (6.16)
k(\boldsymbol{x},\boldsymbol{x}^{\prime})=\int{p(\boldsymbol{x}|\boldsymbol{z})}p(\boldsymbol{x}^{\prime}|\boldsymbol{z})p(\boldsymbol{z})\mathrm{d}\boldsymbol{z}\tag{6.16}
k ( x , x ′ ) = ∫ p ( x ∣ z ) p ( x ′ ∣ z ) p ( z ) d z ( 6 . 1 6 )
其中 z \boldsymbol{z} z 是⼀个连续潜在变量。
现在假设数据由长度为 L L L 的有序序列组成,即⼀个观测为 X = { x 1 , … , x L } \boldsymbol{X}=\{x_1,\dots,x_L\} X = { x 1 , … , x L } 。对于这种序列, ⼀个流⾏的⽣成式模型是隐马尔科夫模型,它把概率 p ( X ) p(\boldsymbol{X}) p ( X ) 表⽰为对应的隐含状态序列 Z = { z 1 , … , z L } \boldsymbol{Z}=\{z_1,\dots,z_L\} Z = { z 1 , … , z L } 上的积分或求和。可以使⽤这种⽅法定义⼀个核函数来度量两个序列 X \boldsymbol{X} X 和 X ′ \boldsymbol{X}^{\prime} X ′ 的相似度。定义核函数的⽅法是扩展混合表⽰,得到k ( X , X ′ ) = ∑ Z p ( X ∣ Z ) p ( X ′ ∣ Z ) p ( Z ) (6.17)
k(\boldsymbol{X},\boldsymbol{X}^{\prime})=\sum_{\boldsymbol{Z}}p(\boldsymbol{X}|\boldsymbol{Z})p(\boldsymbol{X}^{\prime}|\boldsymbol{Z})p(\boldsymbol{Z})\tag{6.17}
k ( X , X ′ ) = Z ∑ p ( X ∣ Z ) p ( X ′ ∣ Z ) p ( Z ) ( 6 . 1 7 )
从⽽两个观测序列都通过相同的隐含序列 Z \boldsymbol{Z} Z ⽣成。
另⼀个使⽤⽣成式模型定义核函数的⽅法被称为 Fisher核 (Jaakkola and Haussler, 1999)。考虑⼀个参数⽣成式模型 p ( x ∣ θ ) p(\boldsymbol{x}|\boldsymbol{\theta}) p ( x ∣ θ ) ,其中 θ \boldsymbol{\theta} θ 表⽰参数的向量,⽬标是找到⼀个核,度量这个⽣成式模型的两个输⼊变量 x \boldsymbol{x} x 和 x ′ \boldsymbol{x}^{\prime} x ′ 之间的相似性。Jaakkola and Haussler(1999)考虑关于 θ \boldsymbol{\theta} θ 的梯度,它定义了“特征”空间的⼀个向量,这个特征空间的维度与 θ \boldsymbol{\theta} θ 的维度相同。特别地,考虑Fisher得分g ( θ , x ) = ∇ θ ln p ( x ∣ θ ) (6.18)
g(\boldsymbol{\theta},\boldsymbol{x})=\nabla_{\boldsymbol{\theta}}\ln{p(\boldsymbol{x}|\boldsymbol{\theta})}\tag{6.18}
g ( θ , x ) = ∇ θ ln p ( x ∣ θ ) ( 6 . 1 8 )
根据Fisher得分,Fisher核 被定义为
k ( x , x ′ ) = g ( θ , x ) T F − 1 g ( θ , x ′ ) (6.19)
k(\boldsymbol{x},\boldsymbol{x}^{\prime})=\boldsymbol{g}(\boldsymbol{\theta},\boldsymbol{x})^{T}\boldsymbol{F}^{-1}\boldsymbol{g}(\boldsymbol{\theta},\boldsymbol{x}^{\prime})\tag{6.19}
k ( x , x ′ ) = g ( θ , x ) T F − 1 g ( θ , x ′ ) ( 6 . 1 9 )
其中, F \boldsymbol{F} F 是 Fisher信息矩阵 (Fisher information matrix),定义为
F = E x [ g ( θ , x ) g ( θ , x ) T ] (6.20)
\boldsymbol{F}=\mathbb{E}_\boldsymbol{x}[\boldsymbol{g}(\boldsymbol{\theta},\boldsymbol{x})\boldsymbol{g}(\boldsymbol{\theta},\boldsymbol{x})^{T}]\tag{6.20}
F = E x [ g ( θ , x ) g ( θ , x ) T ] ( 6 . 2 0 )
其中,期望是在概率分布 p ( x ∣ θ ) p(\boldsymbol{x}|\boldsymbol{\theta}) p ( x ∣ θ ) 下关于 x \boldsymbol{x} x 的期望。
在实际应⽤中,通常计算Fisher信息矩阵是不可⾏的。⼀种⽅法是把Fisher信息的定义中的期望替换为样本均值 ,可得F ≃ 1 N ∑ n = 1 N g ( θ , x n ) g ( θ , x n ) T (6.21)
\boldsymbol{F}\simeq\frac{1}{N}\sum_{n=1}^{N}\boldsymbol{g}(\boldsymbol{\theta},\boldsymbol{x}_n)\boldsymbol{g}(\boldsymbol{\theta},\boldsymbol{x}_n)^{T}\tag{6.21}
F ≃ N 1 n = 1 ∑ N g ( θ , x n ) g ( θ , x n ) T ( 6 . 2 1 )
这是Fisher得分的协⽅差矩阵,因此Fisher核对应于这些分数的⼀个漂⽩。更简单地,可以省略Fisher信息矩阵,使⽤⾮不变核
k ( x , x ′ ) = g ( θ , x ) T g ( θ , x ′ ) (6.22)
k(\boldsymbol{x},\boldsymbol{x}^{\prime})=\boldsymbol{g}(\boldsymbol{\theta},\boldsymbol{x})^{T}\boldsymbol{g}(\boldsymbol{\theta},\boldsymbol{x}^{\prime})\tag{6.22}
k ( x , x ′ ) = g ( θ , x ) T g ( θ , x ′ ) ( 6 . 2 2 )
核函数的最后的⼀个例⼦是sigmoid核,定义为
k ( x , x ′ ) = tanh ( a x T x ′ + b ) (6.23)
k(\boldsymbol{x},\boldsymbol{x}^{\prime})=\tanh(a\boldsymbol{x}^{T}\boldsymbol{x}^{\prime}+b)\tag{6.23}
k ( x , x ′ ) = tanh ( a x T x ′ + b ) ( 6 . 2 3 )
三,径向基函数⽹络
1,径向基函数
径向基函数中,每⼀个基函数只依赖于样本和中⼼ μ j \boldsymbol{\mu}_j μ j 之间的径向距离(通常是欧⼏⾥得距离),即 ϕ j ( x ) = h ( ∥ x − μ j ∥ ) \phi_j(\boldsymbol{x})=h(\|\boldsymbol{x}−\boldsymbol{\mu}_j\|) ϕ j ( x ) = h ( ∥ x − μ j ∥ ) 。历史上,径向基函数被⽤来进⾏精确的函数内插 (Powell, 1987)。给定⼀组输⼊向量 { x 1 , … , x N } \{\boldsymbol{x}_1,\dots,\boldsymbol{x}_N\} { x 1 , … , x N } 以及对应的⽬标值 { t 1 , … , t N } \{t_1,\dots,t_N\} { t 1 , … , t N } ,⽬标是找到⼀个光滑的函数 f ( x ) f(\boldsymbol{x}) f ( x ) , 它能够精确地拟合每个⽬标值,即对于 n = 1 , … , N n = 1,\dots, N n = 1 , … , N ,都有 f ( x n ) = t n f(\boldsymbol{x}_n)=t_n f ( x n ) = t n 。可以这样做:将 f ( x ) f(\boldsymbol{x}) f ( x ) 表⽰为径向基函数的线性组合,每个径向基函数都以数据点为中⼼,即
f ( x ) = ∑ n = 1 N w n h ( ∥ x − x n ∥ ) (6.24)
f(\boldsymbol{x})=\sum_{n=1}^{N}w_nh(\|\boldsymbol{x}-\boldsymbol{x}_n\|)\tag{6.24}
f ( x ) = n = 1 ∑ N w n h ( ∥ x − x n ∥ ) ( 6 . 2 4 )
系数 { w n } \{w_n\} { w n } 的值由最⼩平⽅⽅法求出。
对径向基函数的展开来⾃正则化理论 (Poggio and Girosi, 1990; Bishop, 1995a)。对于⼀个使⽤微分算符定义的带有正则化项的平⽅和误差函数,最优解可以通过对算符的Green函数(类似于离散矩阵的特征向量)进⾏展开,每个数据点有⼀个基函数。如果微分算符是各向同性的,那么Green函数只依赖于与对应的数据点的径向距离。由于正则化项的存在,因此解不再精确地对训练数据进⾏内插。
径向基函数的另⼀个研究动机来源于输⼊变量 (⽽不是⽬标变量)具有噪声时的内插问题(Webb, 1994; Bishop, 1995a)。如果输⼊变量 x \boldsymbol{x} x 上的噪声由⼀个服从分布 ν ( ξ ) \nu(\boldsymbol{ξ}) ν ( ξ ) 的变量 ξ \boldsymbol{ξ} ξ 描述,那么平⽅和误差函数变成E = 1 2 ∑ n = 1 N { y ( x n + ξ ) − t n } 2 ν ( ξ ) d ξ (6.25)
E=\frac{1}{2}\sum_{n=1}^{N}\{y(\boldsymbol{x}_n+\boldsymbol{\xi})-t_n\}^{2}\nu(\boldsymbol{\xi})\mathrm{d}\boldsymbol{\xi}\tag{6.25}
E = 2 1 n = 1 ∑ N { y ( x n + ξ ) − t n } 2 ν ( ξ ) d ξ ( 6 . 2 5 )
使⽤变分法,可以关于函数 y ( x ) y(\boldsymbol{x}) y ( x ) 进⾏最优化,得到
y ( x ) = ∑ n = 1 N t n h ( x − x n ) (6.26)
y(\boldsymbol{x})=\sum_{n=1}^{N}t_nh(\boldsymbol{x}-\boldsymbol{x}_n)\tag{6.26}
y ( x ) = n = 1 ∑ N t n h ( x − x n ) ( 6 . 2 6 )
其中基函数为
h ( x − x n ) = ν ( x − x n ) ∑ n = 1 N ν ( x − x n ) (6.27)
h(\boldsymbol{x}-\boldsymbol{x}_n)=\frac{\nu(\boldsymbol{x}-\boldsymbol{x}_n)}{\sum_{n=1}^{N}\nu(\boldsymbol{x}-\boldsymbol{x}_n)}\tag{6.27}
h ( x − x n ) = ∑ n = 1 N ν ( x − x n ) ν ( x − x n ) ( 6 . 2 7 )
这是⼀个以每个数据点为中⼼的基函数,这被称为 Nadaraya-Watson模型 。
如图6.4,⼀组⾼斯基函数的图像。
如图6.5,⼀组⾼斯基函数对应的归⼀化的基函数的图像。
选择基函数中⼼的⼀种最简单的⽅法是使⽤数据点的⼀个随机选择的⼦集。⼀个更加系统化的⽅法被称为正交最⼩平⽅ (Chen et al., 1991)。这是⼀个顺序选择的过程,在每⼀个步骤中,被选择作为基函数的下⼀个数据点对应于能够最⼤程度减⼩平⽅和误差的数据点。
2,Nadaraya-Watson模型
假设有⼀个训练集 { x n , t n } \{\boldsymbol{x}_n, t_n\} { x n , t n } ,我们使⽤Parzen密度估计来对联合分布 p ( x , t ) p(\boldsymbol{x},t) p ( x , t ) 进⾏建模,即p ( x , t ) = 1 N ∑ n = 1 N f ( x − x n , t − t n ) (6.28)
p(\boldsymbol{x},t)=\frac{1}{N}\sum_{n=1}^{N}f(\boldsymbol{x}-\boldsymbol{x}_n,t-t_n)\tag{6.28}
p ( x , t ) = N 1 n = 1 ∑ N f ( x − x n , t − t n ) ( 6 . 2 8 )
其中 f ( x , t ) f(\boldsymbol{x},t) f ( x , t ) 是分量密度函数,每个数据点都有⼀个以数据点为中⼼的这种分量。现在要找到回归函数 y ( x ) y(\boldsymbol{x}) y ( x ) 的表达式,对应于以输⼊变量为条件的⽬标变量的条件均值,其表达式为
y ( x ) = E [ t ∣ x ] = ∫ − ∞ ∞ t p ( t ∣ x ) d t = ∫ t p ( x ∣ t ) d t ∫ p ( x ∣ t ) d t = ∑ n ∫ t f ( x − x n , t − t n ) d t ∑ m ∫ f ( x − x m , t − t m ) d t (6.29)
\begin{aligned}y(\boldsymbol{x})&=\mathbb{E}[t|\boldsymbol{x}]\\&=\int_{-\infty}^{\infty}tp(t|\boldsymbol{x})\mathrm{d}t\\&=\frac{\int{tp(\boldsymbol{x}|t)}\mathrm{d}t}{\int{p(\boldsymbol{x}|t)}\mathrm{d}t}\\&=\frac{\sum_{n}\int{tf(\boldsymbol{x}-\boldsymbol{x}_n,t-t_n)}\mathrm{d}t}{\sum_{m}\int{f(\boldsymbol{x}-\boldsymbol{x}_m,t-t_m)}\mathrm{d}t}\end{aligned}\tag{6.29}
y ( x ) = E [ t ∣ x ] = ∫ − ∞ ∞ t p ( t ∣ x ) d t = ∫ p ( x ∣ t ) d t ∫ t p ( x ∣ t ) d t = ∑ m ∫ f ( x − x m , t − t m ) d t ∑ n ∫ t f ( x − x n , t − t n ) d t ( 6 . 2 9 )
现在假设分量的密度函数的均值为零,即
∫ − ∞ ∞ f ( x , t ) t d t = 0
\int_{-\infty}^{\infty}f(\boldsymbol{x},t)t\mathrm{d}t=0
∫ − ∞ ∞ f ( x , t ) t d t = 0
对所有的 x \boldsymbol{x} x 都成⽴。使⽤⼀个简单的变量替换,有
y ( x ) = ∑ n g ( x − x n ) t n ∑ m g ( x − x m ) = ∑ n k ( x , x n ) t n (6.30)
\begin{aligned}y(\boldsymbol{x})&=\frac{\sum_{n}g(\boldsymbol{x}-\boldsymbol{x}_n)t_n}{\sum_{m}g(\boldsymbol{x}-\boldsymbol{x}_m)}\\&=\sum_{n}k(\boldsymbol{x},\boldsymbol{x}_n)t_n\end{aligned}\tag{6.30}
y ( x ) = ∑ m g ( x − x m ) ∑ n g ( x − x n ) t n = n ∑ k ( x , x n ) t n ( 6 . 3 0 )
这被称为 Nadaraya-Watson模型 ,或者称为核回归(kernel regression) (Nadaraya, 1964; Watson, 1964)。对于⼀个局部核函数,性质 为:给距离 x \boldsymbol{x} x 较近的数据点 x n \boldsymbol{x}_n x n 较⾼的权重。其中 n , m = 1 , … , N n, m = 1,\dots, N n , m = 1 , … , N ,且核函数 k ( x , x n ) k(\boldsymbol{x},\boldsymbol{x}_n) k ( x , x n ) 为
k ( x , x n ) = g ( x − x n ) ∑ m g ( x − x m )
k(\boldsymbol{x},\boldsymbol{x}_n)=\frac{g(\boldsymbol{x}-\boldsymbol{x}_n)}{\sum_{m}g(\boldsymbol{x}-\boldsymbol{x}_m)}
k ( x , x n ) = ∑ m g ( x − x m ) g ( x − x n )
其中,
g ( x ) = ∫ − ∞ ∞ f ( x , t ) d t
g(\boldsymbol{x})=\int_{-\infty}^{\infty}f(\boldsymbol{x},t)\mathrm{d}t
g ( x ) = ∫ − ∞ ∞ f ( x , t ) d t
∑ n = 1 N k ( x , x n ) = 1
\sum_{n=1}^{N}k(\boldsymbol{x},\boldsymbol{x}_n)=1
n = 1 ∑ N k ( x , x n ) = 1
事实上,这个模型不仅定义了条件期望,还定义了整个条件概率分布
p ( t ∣ x ) = p ( t , x ) ∫ p ( t , x ) d t = ∑ n f ( x − x n , t − t n ) ∑ m ∫ f ( x − x m , t − t m ) d t (6.31)
\begin{aligned}p(t|\boldsymbol{x})&=\frac{p(t,\boldsymbol{x})}{\int{p(t,\boldsymbol{x})}\mathrm{d}t}\\&=\frac{\sum_{n}f(\boldsymbol{x}-\boldsymbol{x}_n,t-t_n)}{\sum_{m}\int{f(\boldsymbol{x}-\boldsymbol{x}_m,t-t_m)}\mathrm{d}t}\end{aligned}\tag{6.31}
p ( t ∣ x ) = ∫ p ( t , x ) d t p ( t , x ) = ∑ m ∫ f ( x − x m , t − t m ) d t ∑ n f ( x − x n , t − t n ) ( 6 . 3 1 )
如图6.6,使⽤各向同性的⾼斯核的Nadaraya-Watson核回归模型的说明。数据集为正弦数据集。原始的正弦函数由绿⾊曲线表⽰,数据点由蓝⾊的点表⽰,每个数据点是⼀个各向同性的⾼斯核的中⼼。得到的回归函数,由条件均值给出,⽤红线表⽰。同时给出的还有条件概率分布 p ( t ∣ x ) p(t|x) p ( t ∣ x ) 的两个标准差的区域,⽤红⾊阴影表⽰。在每个数据点周围的蓝⾊椭圆给出了对应的核的⼀个标准差轮廓线。由于⽔平轴和垂直轴的标度不同,这些轮廓线似乎不是圆形的。
四,⾼斯过程
1,重新考虑线性回归问题
考虑⼀个模型 M M M 由向量 ϕ ( x ) \boldsymbol{\phi}(\boldsymbol{x}) ϕ ( x ) 的元素给出的 M M M 个固定基函数的线性组合,即
y ( x ) = w T ϕ ( x ) (6.32)
y(\boldsymbol{x})=\boldsymbol{w}^{T}\boldsymbol{\phi}(\boldsymbol{x})\tag{6.32}
y ( x ) = w T ϕ ( x ) ( 6 . 3 2 )
其中 x \boldsymbol{x} x 是输⼊向量,w \boldsymbol{w} w 是 M M M 维权向量。
考虑 w \boldsymbol{w} w 上的⼀个先验概率分布,这个分布是⼀个各向同性的⾼斯分布,形式为p ( w ) = N ( w ∣ 0 , α − 1 I ) (6.33)
p(\boldsymbol{w})=\mathcal{N}(\boldsymbol{w}|\boldsymbol{0},\alpha^{-1}\boldsymbol{I})\tag{6.33}
p ( w ) = N ( w ∣ 0 , α − 1 I ) ( 6 . 3 3 )
它由⼀个超参数 α \alpha α 控制,这个超参数表⽰分布的精度(⽅差的倒数)。
如图6.7,⾼斯核的⾼斯过程的样本。
如图6.8,指数核的⾼斯过程的样本。
在实际应⽤中, 我们希望计算这个函数在某个具体的 x \boldsymbol{x} x 处的函数值,例如在训练数据点 x 1 , … , x N \boldsymbol{x}_1,\dots ,\boldsymbol{x}_N x 1 , … , x N 处的函数值,感兴趣的是函数值 y ( x 1 ) , … , y ( x N ) y(\boldsymbol{x}_1),\dots , y(\boldsymbol{x}_N) y ( x 1 ) , … , y ( x N ) 的概率分布。把函数值的集合记作向量 y \mathbf{y} y ,它的元素为 y n = y ( x n ) y_n = y(\boldsymbol{x}_n ) y n = y ( x n ) ,其中 n = 1 , … , N n = 1,\dots ,N n = 1 , … , N ,这个向量等于
y = Φ w (6.34)
\mathbf{y}=\mathbf{\Phi}\boldsymbol{w}\tag{6.34}
y = Φ w ( 6 . 3 4 )
其中 Φ \mathbf{\Phi} Φ 是设计矩阵,元素为 Φ n k = ϕ k ( x n ) \Phi_{nk}=\phi_k(\boldsymbol{x}_n) Φ n k = ϕ k ( x n ) 。
⾸先,注意到 y \mathbf{y} y 是由 w \boldsymbol{w} w 的元素给出的服从⾼斯分布的变量的线性组合,因此它本⾝是服从⾼斯分布。 于是,只需要找到它的均值和⽅差。根据公式(6.33),均值和⽅差为
E [ y ] = Φ E [ w ] = 0 cov [ y ] = E [ y y T ] = Φ E [ w w T ] Φ T = 1 α Φ Φ T = K
\mathbb{E}[\mathbf{y}]=\mathbf{\Phi}\mathbb{E}[\boldsymbol{w}]=\boldsymbol{0}\\
\text{cov}[\mathbf{y}]=\mathbb{E}[\mathbf{y}\mathbf{y}^{T}]=\mathbf{\Phi}\mathbb{E}[\boldsymbol{w}\boldsymbol{w}^{T}]\mathbf{\Phi}^{T}=\frac{1}{\alpha}\mathbf{\Phi}\mathbf{\Phi}^{T}=\boldsymbol{K}
E [ y ] = Φ E [ w ] = 0 cov [ y ] = E [ y y T ] = Φ E [ w w T ] Φ T = α 1 Φ Φ T = K
其中,K \boldsymbol{K} K 是Gram矩阵,元素为
k n m = k ( x n , x m ) = 1 α ϕ ( x n ) T ϕ ( x m )
k_{nm}=k(\boldsymbol{x}_n,\boldsymbol{x}_m)=\frac{1}{\alpha}\boldsymbol{\phi}(\boldsymbol{x}_n)^{T}\boldsymbol{\phi}(\boldsymbol{x}_m)
k n m = k ( x n , x m ) = α 1 ϕ ( x n ) T ϕ ( x m )
k ( x , x ′ ) k(\boldsymbol{x},\boldsymbol{x}^{\prime}) k ( x , x ′ ) 是核函数。
通常来说,⾼斯过程 被定义为函数 y ( x ) y(\boldsymbol{x}) y ( x ) 上的⼀个概率分布, 使得在任意点集 x 1 , … , x N \boldsymbol{x}_1,\dots,\boldsymbol{x}_N x 1 , … , x N 处计算的 y ( x ) y(\boldsymbol{x}) y ( x ) 的值的集合联合起来服从⾼斯分布。在输⼊向量 x \boldsymbol{x} x 是⼆维的情况下, 这也可以被称为⾼斯随机场 (Gaussian random field)。更⼀般地,可以⽤⼀种合理的⽅式为 y ( x 1 ) , … , y ( x N ) y(\boldsymbol{x}_1),\dots,y(\boldsymbol{x}_N) y ( x 1 ) , … , y ( x N ) 赋予⼀个联合的概率分布,来确定⼀个随机过程 (stochastic process)y ( x ) y(\boldsymbol{x}) y ( x ) 。
⾼斯随机过程的⼀个关键点 是 N N N 个变量 y 1 , … , y N y_1,\dots,y_N y 1 , … , y N 上的联合概率分布完全由⼆阶统计(即均值和协⽅差)确定。在⼤部分应⽤中,关于 y ( x ) y(\boldsymbol{x}) y ( x ) 的均值没有任何先验的知识,因此根据对称性,令其等于零。这等价于基函数的观点中,令权值 p ( w ∣ α ) p(\boldsymbol{w}|\alpha) p ( w ∣ α ) 的先验概率分布的均值等于零。之后,⾼斯过程的确定通过给定两个 x \boldsymbol{x} x 处的函数值 y ( x ) y(\boldsymbol{x}) y ( x ) 的协⽅差来完成。这个协⽅差由核函数确定E [ y ( x n ) y ( x m ) ] = k ( x n , x m ) (6.35)
\mathbb{E}[y(\boldsymbol{x}_n)y(\boldsymbol{x}_m)]=k(\boldsymbol{x}_n,\boldsymbol{x}_m)\tag{6.35}
E [ y ( x n ) y ( x m ) ] = k ( x n , x m ) ( 6 . 3 5 )
我们也可以直接定义核函数,⽽不是间接地通过选择基函数。图6.8给出了对于两个不同的核函数,由⾼斯过程产⽣的函数的样本。第⼀个核函数是⾼斯核,第⼆个核函数是指数核,定义为
k ( x , x ′ ) = exp ( − θ ∣ x − x ′ ∣ ) (6.36)
k(x,x^{\prime})=\exp(-\theta|x-x^{\prime}|)\tag{6.36}
k ( x , x ′ ) = exp ( − θ ∣ x − x ′ ∣ ) ( 6 . 3 6 )
对应于Ornstein-Uhlenbeck过程,这个随机过程最开始由Uhlenbeck and Ornstein(1993)提出,⽤来描述布朗运动 。
2,⽤于回归的⾼斯过程
为了把⾼斯过程模型应⽤于回归问题,需要考虑观测⽬标值的噪声,形式为t n = y n + ϵ n (6.37)
t_n=y_n+\epsilon_n\tag{6.37}
t n = y n + ϵ n ( 6 . 3 7 )
其中 y n = y ( x n ) y_n=y(\boldsymbol{x}_n) y n = y ( x n ) ,ϵ n \epsilon_n ϵ n 是⼀个随机噪声变量,它的值对于每个观测 n n n 是独⽴的。考虑服从⾼斯分布的噪声过程,即
p ( t n ∣ y n ) = N ( t n ∣ y n , β − 1 ) (6.38)
p(t_n|y_n)=\mathcal{N}(t_n|y_n,\beta^{-1})\tag{6.38}
p ( t n ∣ y n ) = N ( t n ∣ y n , β − 1 ) ( 6 . 3 8 )
其中 β \beta β 是⼀个超参数,表⽰噪声的精度。由于噪声对于每个数据点是独⽴的,因此以 y = ( y 1 , … , y N ) T \mathbf{y}=(y_1,\dots,y_N)^{T} y = ( y 1 , … , y N ) T 为条件, ⽬标值 t = ( t 1 , … , t N ) T \mathbf{t}=(t_1,\dots,t_N)^{T} t = ( t 1 , … , t N ) T 的联合概率分布是⼀个各向同性的⾼斯分布,形式为
p ( t ∣ y ) = N ( t ∣ y , β − 1 I N ) (6.39)
p(\mathbf{t}|\mathbf{y})=\mathcal{N}(\mathbf{t}|\mathbf{y},\beta^{-1}\boldsymbol{I}_N)\tag{6.39}
p ( t ∣ y ) = N ( t ∣ y , β − 1 I N ) ( 6 . 3 9 )
其中 I N \boldsymbol{I}_N I N 表⽰⼀个 N × N N \times N N × N 的单位矩阵。 根据⾼斯过程的定义, 边缘概率分布 p ( y ) p(\mathbf{y}) p ( y ) 是⼀个⾼斯分布,均值为零,协⽅差由Gram矩阵 K \boldsymbol{K} K 定义,即
p ( y ) = N ( y ∣ 0 , K ) (6.40)
p(\mathbf{y})=\mathcal{N}(\mathbf{y}|\mathbf{0},\boldsymbol{K})\tag{6.40}
p ( y ) = N ( y ∣ 0 , K ) ( 6 . 4 0 )
确定 K \boldsymbol{K} K 的核函数通常被选择成能够表⽰下⾯的性质:对于相似的点 x n \boldsymbol{x}_n x n 和 x m \boldsymbol{x}_m x m ,对应的值 y ( x n ) y(\boldsymbol{x}_n) y ( x n ) 和 y ( x m ) y(\boldsymbol{x}_m) y ( x m ) 的相关性要⼤于不相似的点。
为了找到以输⼊值 x 1 , … , x N \boldsymbol{x}_1,\dots,\boldsymbol{x}_N x 1 , … , x N 为条件的边缘概率分布 p ( t ) p(\mathbf{t}) p ( t ) ,需要对 y \mathbf{y} y 积分,t \mathbf{t} t 的边缘概率分布为p ( t ) = ∫ p ( t ∣ y ) p ( y ) d y = N ( t ∣ 0 , C ) (6.41)
p(\mathbf{t})=\int p(\mathbf{t}|\mathbf{y})p(\mathbf{y})\mathrm{d}\mathbf{y}=\mathcal{N}(\mathbf{t}|\mathbf{0},\boldsymbol{C})\tag{6.41}
p ( t ) = ∫ p ( t ∣ y ) p ( y ) d y = N ( t ∣ 0 , C ) ( 6 . 4 1 )
其中协⽅差矩阵 C \boldsymbol{C} C 的元素为
C ( x n , x m ) = k ( x n , x m ) + β − 1 δ n m
C(\boldsymbol{x}_n,\boldsymbol{x}_m)=k(\boldsymbol{x}_n,\boldsymbol{x}_m)+\beta^{-1}\delta_{nm}
C ( x n , x m ) = k ( x n , x m ) + β − 1 δ n m
对于⾼斯过程回归,⼀个⼴泛使⽤的核函数的形式为指数项的⼆次型加上常数和线性项,即
k ( x n , x m ) = θ 0 exp { − θ 1 2 ∥ x n − x m ∥ 2 } + θ 2 + θ 3 x n T x m (6.42)
k(\boldsymbol{x}_n,\boldsymbol{x}_m)=\theta_{0}\exp\left\{-\frac{\theta_1}{2}\|\boldsymbol{x}_n-\boldsymbol{x}_m\|^{2}\right\}+\theta_2+\theta_3\boldsymbol{x}_n^{T}\boldsymbol{x}_m\tag{6.42}
k ( x n , x m ) = θ 0 exp { − 2 θ 1 ∥ x n − x m ∥ 2 } + θ 2 + θ 3 x n T x m ( 6 . 4 2 )
如图6.9~6.14,由协⽅差函数定义的⾼斯过程先验的样本。每张图上⽅的标题表⽰ ( θ 0 , θ 1 , θ 2 , θ 3 ) (\theta_0,\theta_1,\theta_2,\theta_3) ( θ 0 , θ 1 , θ 2 , θ 3 ) 。
假设 t N = ( t 1 , … , t N ) T \mathbf{t}_N = (t_1,\dots,t_N)^{T} t N = ( t 1 , … , t N ) T ,对应于输⼊值 x 1 , … , x N \boldsymbol{x}_1,\dots,\boldsymbol{x}_N x 1 , … , x N ,组成观测训练集,并且⽬标是对于新的输⼊向量 x N + 1 \boldsymbol{x}_{N+1} x N + 1 预测⽬标变量 t N + 1 t_{N+1} t N + 1 ,要求计算预测分布 p ( t N + 1 ∣ t N ) p(t_{N+1}|\mathbf{t}_N) p ( t N + 1 ∣ t N ) 。为了找到条件分布 p ( t N + 1 ∣ t ) p(t_{N+1}|\mathbf{t}) p ( t N + 1 ∣ t ) , ⾸先写下联合概率分布 p ( t N + 1 ) p(\mathbf{t}_{N+1}) p ( t N + 1 ) , 其中 t N + 1 \mathbf{t}_{N+1} t N + 1 表⽰向量 ( t 1 , … , t N , t N + 1 ) T (t_1,\dots,t_N,t_{N+1})^{T} ( t 1 , … , t N , t N + 1 ) T ,然后求条件概率分布。
如图6.15,⾼斯过程回归的原理说明,其中只有⼀个训练点和⼀个测试点, 红⾊椭圆表⽰联合概率分布 p ( t 1 , t 2 ) p(t_1,t_2) p ( t 1 , t 2 ) 的轮廓线。t 1 t_1 t 1 是训练数据点,以 t 1 t_1 t 1 为条件(蓝⾊直线),得到了 p ( t 2 ∣ t 1 ) p(t_2|t_1) p ( t 2 ∣ t 1 ) 。绿⾊曲线表⽰它关于 t 2 t_2 t 2 的函数。
如图6.16,⾼斯过程的数据点 { t n } \{t_n\} { t n } 的取样的说明。蓝⾊曲线给出了函数上的⾼斯过程先验的⼀个样本函数,红点表⽰计算函数在⼀组输⼊值 { x n } \{x_n\} { x n } 上计算得到的函数值 y n y_n y n 。对应的 { t n } \{t_n\} { t n } 的值,⽤绿⾊表⽰,可以通过对每个 { y n } \{y_n\} { y n } 添加独⽴噪声的⽅式得到。t 1 , … , t N + 1 t_1,\dots,t_{N+1} t 1 , … , t N + 1 的联合概率分布为p ( t N + 1 ) = N ( t N + 1 ∣ 0 , C N + 1 ) (6.43)
p(\mathbf{t}_{N+1})=\mathcal{N}(\mathbf{t}_{N+1}|\mathbf{0},\boldsymbol{C}_{N+1})\tag{6.43}
p ( t N + 1 ) = N ( t N + 1 ∣ 0 , C N + 1 ) ( 6 . 4 3 )
其中 C N + 1 \boldsymbol{C}_{N+1} C N + 1 是⼀个 ( N + 1 ) × ( N + 1 ) (N+1) \times (N+1) ( N + 1 ) × ( N + 1 ) 的协⽅差矩阵。将协⽅差矩阵分块如下
C N + 1 = ( C N k k T c ) (6.44)
\boldsymbol{C}_{N+1}=\begin{pmatrix}
\boldsymbol{C}_N & \boldsymbol{k} \\
\boldsymbol{k}^{T} & c
\end{pmatrix}\tag{6.44}
C N + 1 = ( C N k T k c ) ( 6 . 4 4 )
其中 C N \boldsymbol{C}_{N} C N 是⼀个 N × N N \times N N × N 的协⽅差矩阵,元素由公式(6.41)中的相关表达式给出,其中 n , m = 1 , … , N n,m=1,\dots,N n , m = 1 , … , N ,向量 k \boldsymbol{k} k 的元素为 k ( x n , k N + 1 ) k(\boldsymbol{x}_n,\boldsymbol{k}_{N+1}) k ( x n , k N + 1 ) ,其中 n = 1 , … , N n=1,\dots,N n = 1 , … , N ,标量 c = k ( x N + 1 , k N + 1 ) + β − 1 c=k(\boldsymbol{x}_{N+1},\boldsymbol{k}_{N+1})+\beta−1 c = k ( x N + 1 , k N + 1 ) + β − 1 。条件概率分布 p ( t N + 1 ∣ t ) p(t_{N+1}|\mathbf{t}) p ( t N + 1 ∣ t ) 是⼀个⾼斯分布,均值和协⽅差为
m ( x N + 1 ) = k T C N − 1 t σ 2 ( x N + 1 ) = c − k T C N − 1 k
m(\boldsymbol{x}_{N+1})=\boldsymbol{k}^{T}\boldsymbol{C}_{N}^{-1}\mathbf{t}\\
\sigma^{2}(\boldsymbol{x}_{N+1})=c-\boldsymbol{k}^{T}\boldsymbol{C}_{N}^{-1}\boldsymbol{k}
m ( x N + 1 ) = k T C N − 1 t σ 2 ( x N + 1 ) = c − k T C N − 1 k
预测分布的均值可以写成 x N + 1 \boldsymbol{x}_{N+1} x N + 1 的函数,形式为
m ( x N + 1 ) = ∑ n = 1 N a n k ( x n , x N + 1 ) (6.45)
m(\boldsymbol{x}_{N+1})=\sum_{n=1}^{N}a_nk(\boldsymbol{x}_{n},\boldsymbol{x}_{N+1})\tag{6.45}
m ( x N + 1 ) = n = 1 ∑ N a n k ( x n , x N + 1 ) ( 6 . 4 5 )
其中 a n a_n a n 是 C N − 1 t \boldsymbol{C}_{N}^{-1}\mathbf{t} C N − 1 t 的第 n n n 个元素。
如图6.17,⾼斯过程回归应⽤于正弦数据集的说明,其中三个最右侧的点被略去。绿⾊曲线给出了正弦函数,其中数据点(蓝⾊点)通过对这个函数取样并且添加⾼斯噪声的⽅式得到。红线表⽰⾼斯过程预测分布的均值,阴影区域对应于两个标准差的位置。
3,学习超参数
学习超参数 的⽅法基于计算似然函数 p ( t ∣ θ ) p(\mathbf{t}|\boldsymbol{\theta}) p ( t ∣ θ ) ,其中 θ \boldsymbol{\theta} θ 表⽰⾼斯过程模型的超参数。最简单的⽅法是通过最⼤化似然函数的⽅法进⾏ θ \boldsymbol{\theta} θ 的点估计。由于 θ \boldsymbol{\theta} θ 表⽰回归问题的⼀组超参数,因此这可以看成类似于线性回归模型的第⼆类最⼤似然步骤。可以使⽤⾼效的基于梯度的最优化算法 (例如共轭梯度法)来最⼤化对数似然函数(Fletcher, 1987; Nocedal and Wright, 1999; Bishop and Nabney, 2008)。
对数似然函数的形式为
ln p ( t ∣ θ ) = − 1 2 ln ∣ C N ∣ − 1 2 t T C N − 1 t − N 2 ln ( 2 π ) (6.46)
\ln p(\mathbf{t}|\boldsymbol{\theta})=-\frac{1}{2}\ln|\boldsymbol{C}_{N}|-\frac{1}{2}\mathbf{t}^{T}\boldsymbol{C}_{N}^{-1}\mathbf{t}-\frac{N}{2}\ln(2\pi)\tag{6.46}
ln p ( t ∣ θ ) = − 2 1 ln ∣ C N ∣ − 2 1 t T C N − 1 t − 2 N ln ( 2 π ) ( 6 . 4 6 )
有,
∂ ∂ θ i ln p ( t ∣ θ ) = − 1 2 Tr ( C N − 1 ∂ C N ∂ θ i ) + 1 2 t T C N − 1 ∂ C N ∂ θ i C N − 1 t (6.47)
\frac{\partial}{\partial\theta_i}\ln p(\mathbf{t}|\boldsymbol{\theta})=-\frac{1}{2}\text{Tr}\left(\boldsymbol{C}_{N}^{-1}\frac{\partial\boldsymbol{C}_{N}}{\partial\theta_i}\right)+\frac{1}{2}\mathbf{t}^{T}\boldsymbol{C}_{N}^{-1}\frac{\partial\boldsymbol{C}_{N}}{\partial\theta_i}\boldsymbol{C}_{N}^{-1}\mathbf{t}\tag{6.47}
∂ θ i ∂ ln p ( t ∣ θ ) = − 2 1 Tr ( C N − 1 ∂ θ i ∂ C N ) + 2 1 t T C N − 1 ∂ θ i ∂ C N C N − 1 t ( 6 . 4 7 )
由于 ln p ( t ∣ θ ) \ln p(\mathbf{t}|\boldsymbol{\theta}) ln p ( t ∣ θ ) 通常是⼀个⾮凸函数,因此它由多个极⼤值点。
4,⾃动相关性确定
通过最⼤似然⽅法进⾏的参数最优化,能够将不同输⼊的相对重要性从数据中推断出来,这是⾼斯过程中的⾃动相关性确定 (automatic relevance detemination)或者 ARD 的实例。
考虑⼆维输⼊空间 x = ( x 1 , x 2 ) \boldsymbol{x}=(x_1,x_2) x = ( x 1 , x 2 ) ,有⼀个下⾯形式的核函数
k ( x , x ′ ) = θ 0 exp { − 1 2 ∑ i = 1 2 η i ( x i − x i ′ ) 2 } (6.48)
k(\boldsymbol{x},\boldsymbol{x}^{\prime})=\theta_0\exp\left\{-\frac{1}{2}\sum_{i=1}^{2}\eta_i(x_i-x_i^{\prime})^{2}\right\}\tag{6.48}
k ( x , x ′ ) = θ 0 exp { − 2 1 i = 1 ∑ 2 η i ( x i − x i ′ ) 2 } ( 6 . 4 8 )
如图6.18~6.19,来⾃⾼斯过程的ARD先验的样本,其中核函数由公式(6.48)给出。 图6.18对应于 η 1 = η 2 = 1 \eta_1=\eta_2=1 η 1 = η 2 = 1 ,图6.19对应于 η 1 = 1 \eta_1=1 η 1 = 1 , η 2 = 0.01 \eta_2=0.01 η 2 = 0 . 0 1 。
如图6.20,使⽤⼀个具有三个输⼊ x 1 x_1 x 1 , x 2 x_2 x 2 和 x 3 x_3 x 3 的简单⼈造数据集来说明ARD(Nabney, 2002)。⽬标变量 t t t 的⽣成⽅式为:从⼀个⾼斯分布中采样100个 x 1 x_1 x 1 ,计算函数 sin ( 2 π x 1 ) \sin(2\pi x_1) sin ( 2 π x 1 ) ,然后加上添加上⾼斯噪声。 x 2 x_2 x 2 的值通过复制对应的 x 1 x_1 x 1 然后添加噪声的⽅式获得,x 3 x_3 x 3 的值从⼀个独⽴的⾼斯分布中采样。 因此,x 1 x_1 x 1 很好地预测了 t t t ,x 2 x_2 x 2 对 t t t 的预测的噪声更⼤,x 3 x_3 x 3 与 t t t 之间只有偶然的相关性。曲线表⽰对应的超参数的值与最优化边缘似然函数时的迭代次数的关系,红⾊表⽰ η 1 \eta_1 η 1 ,绿⾊表⽰ η 2 \eta_2 η 2 ,蓝⾊表⽰ η 3 \eta_3 η 3 。ARD框架很容易整合到指数-⼆次核中,得到下⾯形式的核函数
k ( x n , x m ) = θ 0 exp { − 1 2 ∑ i = 1 D η i ( x n i − x m i ) 2 } + θ 2 + θ 3 ∑ i = 1 D x n i x m i (6.49)
k(\boldsymbol{x}_n,\boldsymbol{x}_m)=\theta_0\exp\left\{-\frac{1}{2}\sum_{i=1}^{D}\eta_i(x_{ni}-x_{mi})^{2}\right\}+\theta_2+\theta_3\sum_{i=1}^{D}x_{ni}x_{mi}\tag{6.49}
k ( x n , x m ) = θ 0 exp { − 2 1 i = 1 ∑ D η i ( x n i − x m i ) 2 } + θ 2 + θ 3 i = 1 ∑ D x n i x m i ( 6 . 4 9 )
其中 D D D 是输⼊空间的维度。
5,⽤于分类的⾼斯过程
在分类的概率⽅法中,⽬标是在给定⼀组训练数据的情况下,对于⼀个新的输⼊向量,为⽬标变量的后验概率建模。这些概率⼀定位于区间 ( 0 , 1 ) (0, 1) ( 0 , 1 ) 中,⽽⼀个⾼斯过程模型做出的预测位于整个实数轴上。调整⾼斯过程,使其能够处理分类问题,⽅法为:使⽤⼀个恰当的⾮线性**函数,将⾼斯过程的输出进⾏变换。
⾸先考虑⼀个⼆分类问题,它的⽬标变量为 t ∈ { 0 , 1 } t\in\{0,1\} t ∈ { 0 , 1 } 。如果定义函数 a ( x ) a(\boldsymbol{x}) a ( x ) 上的⼀个⾼斯过程,然后使⽤logistic sigmoid函数 y = σ ( a ) y=\sigma(a) y = σ ( a ) 进⾏变换,那么就得到了函数 y ( x ) y(\boldsymbol{x}) y ( x ) 上的⼀个⾮⾼斯随机过程,其中 y ∈ ( 0 , 1 ) y\in(0,1) y ∈ ( 0 , 1 ) 。
如图6.21~6.22,图6.21给出了在函数 a ( x ) a(\boldsymbol{x}) a ( x ) 上定义了⼀个⾼斯过程先验的样本,图6.22给出了使⽤logistic sigmoid对这个样本进⾏变换得到的结果。
⼀维输⼊空间的情况,其中⽬标变量 t t t 上的概率分布是伯努利分布
p ( t ∣ a ) = σ ( a ) t ( 1 − σ ( a ) ) 1 − t (6.50)
p(t|a)=\sigma(a)^t(1-\sigma(a))^{1-t}\tag{6.50}
p ( t ∣ a ) = σ ( a ) t ( 1 − σ ( a ) ) 1 − t ( 6 . 5 0 )
把训练集的输⼊记作 x 1 , … , x N \boldsymbol{x}_1,\dots,\boldsymbol{x}_N x 1 , … , x N ,对应的观测⽬标变量为 t = ( t 1 , … , t N ) T \mathbf{t}=(t_1,\dots,t_N)^T t = ( t 1 , … , t N ) T ,考虑⼀个单⼀的测试数据点 x N + 1 \boldsymbol{x}_{N+1} x N + 1 ,⽬标值为 t N + 1 t_{N+1} t N + 1 。⽬标是确定预测分布 p ( t N + 1 ∣ t ) p(t_{N+1}|\mathbf{t}) p ( t N + 1 ∣ t ) ,其中没有显式地写出它对于输⼊变量的条件依赖。为了完成这个⽬标,引⼊向量 a N + 1 a_{N+1} a N + 1 上的⾼斯过程先验,它的分量为 a ( x 1 ) , … , a ( x N + 1 ) a(\boldsymbol{x}_1),\dots,a(\boldsymbol{x}_{N+1}) a ( x 1 ) , … , a ( x N + 1 ) 。通过以训练数据 t N \mathbf{t}_N t N 为条件,得到了求解的预测分布。a N + 1 \boldsymbol{a}_{N+1} a N + 1 上的⾼斯过程先验的形式为
p ( a N + 1 ) = N ( a N + 1 ∣ 0 , C N + 1 ) (6.51)
p(\boldsymbol{a}_{N+1})=\mathcal{N}(\boldsymbol{a}_{N+1}|\boldsymbol{0},\boldsymbol{C}_{N+1})\tag{6.51}
p ( a N + 1 ) = N ( a N + 1 ∣ 0 , C N + 1 ) ( 6 . 5 1 )
其中,协⽅差矩阵 C N + 1 \boldsymbol{C}_{N+1} C N + 1 的元素为
C ( x n , x m ) = k ( x n , x m ) + ν δ n m
C(\boldsymbol{x}_n,\boldsymbol{x}_m)=k(\boldsymbol{x}_n,\boldsymbol{x}_m)+\nu\delta_{nm}
C ( x n , x m ) = k ( x n , x m ) + ν δ n m
其中 k ( x n , x m ) k(\boldsymbol{x}_n,\boldsymbol{x}_m) k ( x n , x m ) 是⼀个任意的半正定核函数,ν \nu ν 的值通常事先固定,假定核函数 k ( x , x ′ ) k(\boldsymbol{x},\boldsymbol{x}^{\prime}) k ( x , x ′ ) 由参数向量 θ \boldsymbol{\theta} θ 控制。
对于⼆分类问题,因为 p ( t N + 1 = 0 ∣ t N ) p(t_{N+1}=0|\mathbf{t}_N) p ( t N + 1 = 0 ∣ t N ) 的值等于 1 − p ( t N + 1 = 1 ∣ t N ) 1−p(t_{N+1}=1|\mathbf{t}_N) 1 − p ( t N + 1 = 1 ∣ t N ) 故预测分布为
p ( t N + 1 = 1 ∣ t N ) = ∫ p ( t N + 1 = 1 ∣ a N + 1 ) p ( a N + 1 ∣ t N ) d a N + 1 (6.52)
p(t_{N+1}=1|\mathbf{t}_N)=\int p(t_{N+1}=1|a_{N+1})p(a_{N+1}|\mathbf{t}_N)\mathrm{d}a_{N+1}\tag{6.52}
p ( t N + 1 = 1 ∣ t N ) = ∫ p ( t N + 1 = 1 ∣ a N + 1 ) p ( a N + 1 ∣ t N ) d a N + 1 ( 6 . 5 2 )
其中 p ( t N + 1 = 1 ∣ a N + 1 ) = σ ( a N + 1 ) p(t_{N+1}=1|a_{N+1})=\sigma(a_{N+1}) p ( t N + 1 = 1 ∣ a N + 1 ) = σ ( a N + 1 ) 。
6,拉普拉斯近似
考虑三种不同的获得⾼斯近似的⽅法。
⽅法⼀:基于变分推断 (variational inference)(Gibbs and MacKay, 2000),并且使⽤了logistic sigmoid函数的局部变分界。
⽅法二:使⽤期望传播 (expectation propagation)(Opper and Winther, 2000b; Minka, 2001b; Seeger, 2003)。
方法三:基于拉普拉斯近似 。
为了计算预测分布,寻找 a N + 1 a_{N+1} a N + 1 的后验概率分布的⾼斯近似,使⽤贝叶斯定理,后验概率分布为
p ( a N + 1 ∣ t N ) = ∫ p ( a N + 1 , a N ∣ t N ) d a N = 1 p ( t N ) ∫ p ( a N + 1 , a N ) p ( t N ∣ a N + 1 , a N ) d a N = 1 p ( t N ) ∫ p ( a N + 1 ∣ a N ) p ( a N ) p ( t N ∣ a N ) d a N = ∫ p ( a N + 1 ∣ a N ) p ( a N ∣ t N ) d a N (6.53)
\begin{aligned}p(a_{N+1}|\mathbf{t}_N)&=\int p(a_{N+1},\boldsymbol{a}_N|\mathbf{t}_N)\mathrm{d}\boldsymbol{a}_N\\&=\frac{1}{p(\mathbf{t}_N)}\int p(a_{N+1},\boldsymbol{a}_N)p(\mathbf{t}_N|a_{N+1},\boldsymbol{a}_N)\mathrm{d}\boldsymbol{a}_N\\&=\frac{1}{p(\mathbf{t}_N)}\int p(a_{N+1}|\boldsymbol{a}_N)p(\boldsymbol{a}_N)p(\mathbf{t}_N|\boldsymbol{a}_N)\mathrm{d}\boldsymbol{a}_N\\&=\int p(a_{N+1}|\boldsymbol{a}_N)p(\boldsymbol{a}_N|\mathbf{t}_N)\mathrm{d}\boldsymbol{a}_N\end{aligned}\tag{6.53}
p ( a N + 1 ∣ t N ) = ∫ p ( a N + 1 , a N ∣ t N ) d a N = p ( t N ) 1 ∫ p ( a N + 1 , a N ) p ( t N ∣ a N + 1 , a N ) d a N = p ( t N ) 1 ∫ p ( a N + 1 ∣ a N ) p ( a N ) p ( t N ∣ a N ) d a N = ∫ p ( a N + 1 ∣ a N ) p ( a N ∣ t N ) d a N ( 6 . 5 3 )
条件概率分布 p ( a N + 1 ∣ a N ) p(a_{N+1} |\boldsymbol{a}_N) p ( a N + 1 ∣ a N ) 为
p ( a N + 1 ∣ a N ) = N ( a N + 1 ∣ k T C N − 1 a N , c − k T C N − 1 k ) (6.54)
p(a_{N+1}|\boldsymbol{a}_N)=\mathcal{N}(a_{N+1}|\boldsymbol{k}^{T}\boldsymbol{C}_{N}^{-1}\boldsymbol{a}_N,c-\boldsymbol{k}^{T}\boldsymbol{C}_{N}^{-1}\boldsymbol{k})\tag{6.54}
p ( a N + 1 ∣ a N ) = N ( a N + 1 ∣ k T C N − 1 a N , c − k T C N − 1 k ) ( 6 . 5 4 )
先验概率 p ( a N ) p(\boldsymbol{a}_N) p ( a N ) 由⼀个零均值⾼斯过程给出,协⽅差矩阵为 C N \boldsymbol{C}_N C N ,数据项(假设数据点之间具有独⽴性)为
p ( t N ∣ a N ) = ∏ n = 1 N σ ( a n ) t n ( 1 − σ ( a n ) ) 1 − t n = ∏ n = 1 N e a n t n σ ( − a n ) (6.55)
p(\mathbf{t}_N|\boldsymbol{a}_N)=\prod_{n=1}^{N}\sigma(a_n)^{t_n}(1-\sigma(a_n))^{1-t_n}=\prod_{n=1}^{N}e^{a_nt_n}\sigma(-a_n)\tag{6.55}
p ( t N ∣ a N ) = n = 1 ∏ N σ ( a n ) t n ( 1 − σ ( a n ) ) 1 − t n = n = 1 ∏ N e a n t n σ ( − a n ) ( 6 . 5 5 )
通过对 p ( a N ∣ t N ) p(\boldsymbol{a}_N|\mathbf{t}_N) p ( a N ∣ t N ) 的对数进⾏泰勒展开,就可以得到拉普拉斯近似。 忽略掉⼀些具有可加性的常数,这个概率的对数为
Ψ ( a N ) = ln p ( a N ) + ln p ( t N ∣ a N ) = − 1 2 a N T C N − 1 a N − N 2 ln p ( 2 π ) − 1 2 ln ∣ C N ∣ + t N T a N − ∑ n = 1 N ln ( 1 + e a n ) (6.56)
\begin{aligned}\boldsymbol{\Psi}(\boldsymbol{a}_N)&=\ln p(\boldsymbol{a}_N)+\ln p(\mathbf{t}_N|\boldsymbol{a}_N)\\&=-\frac{1}{2}\boldsymbol{a}_N^{T}\boldsymbol{C}_{N}^{-1}\boldsymbol{a}_N-\frac{N}{2} \ln p(2\pi)-\frac{1}{2}\ln|\boldsymbol{C}_N|+\mathbf{t}_{N}^{T}\boldsymbol{a}_N-\sum_{n=1}^{N}\ln(1+e^{a_n})\end{aligned}\tag{6.56}
Ψ ( a N ) = ln p ( a N ) + ln p ( t N ∣ a N ) = − 2 1 a N T C N − 1 a N − 2 N ln p ( 2 π ) − 2 1 ln ∣ C N ∣ + t N T a N − n = 1 ∑ N ln ( 1 + e a n ) ( 6 . 5 6 )
⾸先需要找到后验概率分布的众数,计算 Ψ ( a N ) \boldsymbol{\Psi}(\boldsymbol{a}_N) Ψ ( a N ) 的梯度为
∇ Ψ ( a N ) = t N − σ N − C N − 1 a N (6.57)
\nabla\boldsymbol{\Psi}(\boldsymbol{a}_N)=\mathbf{t}_N-\boldsymbol{\sigma}_{N}-\boldsymbol{C}_{N}^{-1}\boldsymbol{a}_N\tag{6.57}
∇ Ψ ( a N ) = t N − σ N − C N − 1 a N ( 6 . 5 7 )
其中 σ N \boldsymbol{\sigma}_N σ N 是⼀个元素为 σ ( a n ) \sigma(a_n) σ ( a n ) 的向量。
对 Ψ ( a N ) \boldsymbol{\Psi}(\boldsymbol{a}_N) Ψ ( a N ) 的⼆阶导数进⾏拉普拉斯近似,为∇ ∇ Ψ ( a N ) = − W N − C N − 1 (6.58)
\nabla\nabla\boldsymbol{\Psi}(\boldsymbol{a}_N)=-\boldsymbol{W}_N-\boldsymbol{C}_N^{-1}\tag{6.58}
∇ ∇ Ψ ( a N ) = − W N − C N − 1 ( 6 . 5 8 )
其中 W N \boldsymbol{W}_N W N 是⼀个对角矩阵,元素为 σ ( a n ) ( 1 − σ ( a n ) ) \sigma(a_n)(1−\sigma(a_n)) σ ( a n ) ( 1 − σ ( a n ) ) 。
使⽤Newton-Raphson公式,a N \boldsymbol{a}_N a N 的迭代更新⽅程为a N 新 = C N ( I + W N C N ) − 1 { t N − σ N + W N a N } (6.59)
\boldsymbol{a}_N^{新}=\boldsymbol{C}_N(\boldsymbol{I}+\boldsymbol{W}_N\boldsymbol{C}_N)^{-1}\{\mathbf{t}_N-\boldsymbol{\sigma}_N+\boldsymbol{W}_N\boldsymbol{a}_N\}\tag{6.59}
a N 新 = C N ( I + W N C N ) − 1 { t N − σ N + W N a N } ( 6 . 5 9 )
这个⽅程反复迭代,直到收敛于众数(记作 a N ∗ \boldsymbol{a}_N^{*} a N ∗ )。在这个众数位置,梯度 ∇ Ψ ( a N ) \nabla\boldsymbol{\Psi}(\boldsymbol{a}_N) ∇ Ψ ( a N ) 为零,因此 a N ∗ \boldsymbol{a}_N^{*} a N ∗ 满⾜
a N ∗ = C N ( t N − σ N ) (6.60)
\boldsymbol{a}_{N}^{*}=\boldsymbol{C}_N(\mathbf{t}_N-\boldsymbol{\sigma}_N)\tag{6.60}
a N ∗ = C N ( t N − σ N ) ( 6 . 6 0 )
计算Hessian矩阵,
H = − ∇ ∇ Ψ ( a N ) = W N + C N − 1 (6.61)
\boldsymbol{H}=-\nabla\nabla\boldsymbol{\Psi}(\boldsymbol{a}_N)=\boldsymbol{W}_N+\boldsymbol{C}_N^{-1}\tag{6.61}
H = − ∇ ∇ Ψ ( a N ) = W N + C N − 1 ( 6 . 6 1 )
对后验概率分布 p ( a N ∣ t N ) p(\boldsymbol{a}_N|\mathbf{t}_N) p ( a N ∣ t N ) 的⾼斯近似为
q ( a N ) = N ( a N ∣ a N ∗ , H − 1 ) (6.62)
q(\boldsymbol{a}_N)=\mathcal{N}(\boldsymbol{a}_N|\boldsymbol{a}_{N}^{*},\boldsymbol{H}^{-1})\tag{6.62}
q ( a N ) = N ( a N ∣ a N ∗ , H − 1 ) ( 6 . 6 2 )
对应于线性⾼斯模型,有
E [ a N + 1 ∣ t N ] = k T ( t N − σ N ) var [ a N + 1 ∣ t N ] = c − k T ( W N − 1 + C N ) − 1 k
\mathbb{E}[a_{N+1}|\mathbf{t}_N]=\boldsymbol{k}^{T}(\mathbf{t}_N-\boldsymbol{\sigma}_N)\\
\text{var}[a_{N+1}|\mathbf{t}_N]=c-\boldsymbol{k}^{T}(\boldsymbol{W}_{N}^{-1}+\boldsymbol{C}_N)^{-1}\boldsymbol{k}
E [ a N + 1 ∣ t N ] = k T ( t N − σ N ) var [ a N + 1 ∣ t N ] = c − k T ( W N − 1 + C N ) − 1 k
要确定协⽅差函数的参数 θ \boldsymbol{\theta} θ 。⼀种⽅法是最⼤化似然函数 p ( t N ∣ θ ) p(\mathbf{t}_N|\boldsymbol{\theta}) p ( t N ∣ θ ) ,此时需要对数似然函数和它的梯度的表达式。如果必要的话,还可以加上正则化项,产⽣⼀个正则化的 最⼤似然解,最⼤似然函数的定义为
p ( t N ∣ θ ) = ∫ p ( t N ∣ a N ) p ( a N ∣ θ ) d a N (6.63)
p(\mathbf{t}_N|\boldsymbol{\theta})=\int p(\mathbf{t}_N|\boldsymbol{a}_N)p(\boldsymbol{a}_N|\boldsymbol{\theta})\mathrm{d}\boldsymbol{a}_N\tag{6.63}
p ( t N ∣ θ ) = ∫ p ( t N ∣ a N ) p ( a N ∣ θ ) d a N ( 6 . 6 3 )
对数似然函数的拉普拉斯近似
ln p ( t N ∣ θ ) = Ψ ( a N ∗ ) − 1 2 ln ∣ W N + C N − 1 ∣ + N 2 ln ( 2 π ) (6.64)
\ln p(\mathbf{t}_N|\boldsymbol{\theta})=\boldsymbol{\Psi}(\boldsymbol{a}_{N}^{*})-\frac{1}{2}\ln|\boldsymbol{W}_N+\boldsymbol{C}_{N}^{-1}|+\frac{N}{2}\ln(2\pi)\tag{6.64}
ln p ( t N ∣ θ ) = Ψ ( a N ∗ ) − 2 1 ln ∣ W N + C N − 1 ∣ + 2 N ln ( 2 π ) ( 6 . 6 4 )
其中 Ψ ( a N ∗ ) = ln p ( a N ∗ ∣ θ ) + ln p ( t N ∣ a N ∗ ) \boldsymbol{\Psi}(\boldsymbol{a}_{N}^{*})=\ln p(\boldsymbol{a}_{N}^{*}|\boldsymbol{\theta})+\ln p(\mathbf{t}_N |\boldsymbol{a}_{N}^{*}) Ψ ( a N ∗ ) = ln p ( a N ∗ ∣ θ ) + ln p ( t N ∣ a N ∗ ) 。当对公式(6.64)关于 θ \boldsymbol{\theta} θ 求积分 N N N 时,我们得到了两个项的集合,第⼀个集合产⽣于协⽅差矩阵 C N \boldsymbol{C}_N C N 对 θ \boldsymbol{\theta} θ 的依赖关系,第⼆个集合产⽣于 a N ∗ \boldsymbol{a}_{N}^{*} a N ∗ 对 θ \boldsymbol{\theta} θ 的依赖关系。 显式地依赖于 θ \boldsymbol{\theta} θ 的项,有
∂ ln p ( t N ∣ θ ) ∂ θ j = 1 2 a N ∗ T C N − 1 ∂ C N ∂ θ j C N − 1 a N ∗ − 1 2 Tr [ ( I + C N W N ) − 1 W N C N ∂ θ j ] (6.65)
\begin{aligned}\frac{\partial\ln p(\mathbf{t}_N|\boldsymbol{\theta})}{\partial\theta_j}&=\frac{1}{2}\boldsymbol{a}_{N}^{*T}\boldsymbol{C}_{N}^{-1}\frac{\partial\boldsymbol{C}_N}{\partial\theta_j}\boldsymbol{C}_{N}^{-1}\boldsymbol{a}_{N}^{*}\\&-\frac{1}{2}\text{Tr}\left[(\boldsymbol{I}+\boldsymbol{C}_N\boldsymbol{W}_N)^{-1}\boldsymbol{W}_N\frac{\boldsymbol{C}_N}{\partial\theta_j}\right]\end{aligned}\tag{6.65}
∂ θ j ∂ ln p ( t N ∣ θ ) = 2 1 a N ∗ T C N − 1 ∂ θ j ∂ C N C N − 1 a N ∗ − 2 1 Tr [ ( I + C N W N ) − 1 W N ∂ θ j C N ] ( 6 . 6 5 )
为了计算由于 a N ∗ \boldsymbol{a}_{N}^{*} a N ∗ 对 θ \boldsymbol{\theta} θ 的依赖产⽣的项,注意到已经构造了拉普拉斯近似,从⽽在 a N = a N ∗ \boldsymbol{a}_{N}=\boldsymbol{a}_{N}^{*} a N = a N ∗ 处,Ψ ( a N ) \boldsymbol{\Psi}(\boldsymbol{a}_N) Ψ ( a N ) 的均值为零,从⽽ Ψ ( a N ∗ ) \boldsymbol{\Psi}(\boldsymbol{a}_N^{*}) Ψ ( a N ∗ ) 对于梯度没有贡献。剩下的有贡献的项关于 θ \boldsymbol{\theta} θ 的的分量 θ j \theta_j θ j 的导数为
− 1 2 ∑ n = 1 N ∂ ln ∣ W N + C N − 1 ∣ ∂ a n ∗ ∂ a n ∗ ∂ θ j = − 1 2 ∑ n = 1 N [ ( I + C N W N ) − 1 C N ] n n σ n ∗ ( 1 − σ n ∗ ) ( 1 − 2 σ n ∗ ) ∂ a n ∗ ∂ θ j (6.66)
\begin{aligned}-\frac{1}{2}\sum_{n=1}^{N}\frac{\partial\ln|\boldsymbol{W}_N+\boldsymbol{C}_{N}^{-1}|}{\partial{a_{n}^{*}}}\frac{\partial{a_{n}^{*}}}{\partial\theta_j}=-\frac{1}{2}\sum_{n=1}^{N}\left[(\boldsymbol{I}+\boldsymbol{C}_N\boldsymbol{W}_N)^{-1}\boldsymbol{C}_N\right]_{nn}\sigma_{n}^{*}(1-\sigma_{n}^{*})(1-2\sigma_{n}^{*})\frac{\partial{a_{n}^{*}}}{\partial\theta_j}\end{aligned}\tag{6.66}
− 2 1 n = 1 ∑ N ∂ a n ∗ ∂ ln ∣ W N + C N − 1 ∣ ∂ θ j ∂ a n ∗ = − 2 1 n = 1 ∑ N [ ( I + C N W N ) − 1 C N ] n n σ n ∗ ( 1 − σ n ∗ ) ( 1 − 2 σ n ∗ ) ∂ θ j ∂ a n ∗ ( 6 . 6 6 )
其中 σ n ∗ = σ ( a n ∗ ) \sigma_{n}^{*}=\sigma(a_{n}^{*}) σ n ∗ = σ ( a n ∗ ) 。
a n ∗ a_{n}^{*} a n ∗ 关于 θ j \theta_j θ j 的导数,即∂ a n ∗ ∂ θ j = ∂ C N ∂ θ j ( t N − σ N ) − C N W N ∂ a n ∗ ∂ θ j (6.67)
\frac{\partial{a_{n}^{*}}}{\partial\theta_j}=\frac{\partial{\boldsymbol{C}_{N}}}{\partial\theta_j}(\mathbf{t}_N-\boldsymbol{\sigma}_N)-\boldsymbol{C}_N\boldsymbol{W}_N\frac{\partial{a_{n}^{*}}}{\partial\theta_j}\tag{6.67}
∂ θ j ∂ a n ∗ = ∂ θ j ∂ C N ( t N − σ N ) − C N W N ∂ θ j ∂ a n ∗ ( 6 . 6 7 )
整理,可得
∂ a n ∗ ∂ θ j = ( I + C N W N ) − 1 ∂ C N ∂ θ j ( t N − θ N ) (6.68)
\frac{\partial{a_{n}^{*}}}{\partial\theta_j}=(\boldsymbol{I}+\boldsymbol{C}_N\boldsymbol{W}_N)^{-1}\frac{\partial{\boldsymbol{C}_{N}}}{\partial\theta_j}(\mathbf{t}_N-\boldsymbol{\theta}_N)\tag{6.68}
∂ θ j ∂ a n ∗ = ( I + C N W N ) − 1 ∂ θ j ∂ C N ( t N − θ N ) ( 6 . 6 8 )
如图6.23~6.24,使⽤⾼斯过程进⾏分类的说明。图6.23给出了数据点,以及来⾃真实概率分布的最优决策边界(绿 ⾊),还有来⾃⾼斯过程分类器的决策边界(⿊⾊)。图6.24给出了蓝⾊类别和红⾊类别的预测后验概率分布,以及⾼斯过程决策边界。
7,与神经⽹络的联系
神经⽹络可以表⽰的函数的范围由隐含单元的数量 M M M 控制, 并且对于⾜够⼤的 M M M ,⼀个两层神经⽹络可以以任意精度近似任意给定的函数。在最⼤似然的框架中,隐含单元的数量需要有⼀定的限制(根据训练集的规模确定限制的程度),来避免过拟合现象。在贝叶斯神经⽹络中, 参数向量 w \boldsymbol{w} w 上的先验分布以及⽹络函数 f ( x , w ) f(\boldsymbol{x},\boldsymbol{w}) f ( x , w ) 产⽣了函数 y ( x ) y(\boldsymbol{x}) y ( x ) 上的先验概率分布,其中 y \boldsymbol{y} y 是⽹络输出向量。Neal(1996)已经证明,在极限 M → ∞ M \to \infty M → ∞ 的情况下,对 于 w \boldsymbol{w} w 的⼀⼤类先验分布,神经⽹络产⽣的函数的分布将会趋于⾼斯过程。在 这种极限情况下,神经⽹络的输出变量会变为相互独⽴。神经⽹络的优势之⼀是输出之间共享隐含单元,因此它们可以互相“借统计优势”,即与每个隐含结点关联的权值被所有的输出变量影响,⽽不是只被它们中的某⼀个影响。