PRML笔记(一)

1 Introduction

本章主要讲解的是三大理论的一些基本概念知识,这三大理论分别为:probability theory,decision theory 以及 information theory。

1.1 Example: Polynomial Curve Fitting

本章刚开始便引入了一个“polynomial curve fitting”的regression problem。在这个拟合问题中,所要拟合的函数是sin( 2 π x 2\pi x 2πx),在生成数据时,本书的方法是:首先从(0,1)区间上等间距地得到input data x,然后通过sin( 2 π x 2\pi x 2πx)计算得到一个数值,并用该数值与一个Gaussian noise相加,遂得到最终的结果。更为详细的过程见《PRML附录笔记》,其示意图如下所示:
在这里插入图片描述
那么为何要这样构造?首先,当我们对于数据的生成过程了如指掌之后,我们就很容易对一些learnable models进行比较,分析其performance。
为什么要加上噪声?因为这种方式正符合一般数据的生成过程:确定的函数+随机噪声。在正常数据的生成与获取过程中,我们一般都会遇到两种噪声:一是由随机过程引起的噪声(例如放射性物质的衰减);二是由于该数据本身有某些unobserved的部分,这些部分的variability所带来的noise。
我们的目的在于:挖掘training data set中的regularity,并在遇到新的input data时,可以对output data进行更为准确的预测。
我们将如何应对数据本身带来的noise?在probability theory这一节中,作者将对这样的noise进行量化。而在decision theory中,作者将讲述如何利用这个probabilistic representation的方法,在某种特定的criterion下,进行最优决策。

本处将采用多项式来对生成的数据进行拟合:
y ( x , w ) = w 0 + w 1 x + w 2 x 2 + ⋯ + w M x M = ∑ j = 0 M w j x j        ( 1.1 ) y(x,\mathbf{w})=w_0+w_1x+w_2x^2+\dots+w_Mx^M=\sum_{j=0}^Mw_jx^j\ \ \ \ \ \ (1.1) y(x,w)=w0+w1x+w2x2++wMxM=j=0Mwjxj      (1.1)
其中多项式系数通过vector w \mathbf{w} w 来进行表示。虽然该式是关于x的非线性函数,但它是关于系数 w \mathbf{w} w 的线性函数,因此被称为“linear model”。而linear model将在第3和4章重点讨论。
我们当前的目标在于寻找最合适的系数 w \mathbf{w} w,那么我们应该如何去做?首先我们需要意识到的一点是, 我们希望我们构造的多项式函数能尽可能地拟合我们所得到的数据。因此,我们可以通过minimize error function的方式,对 y ( x , w ) y(x,\mathbf{w}) y(x,w) 与在training set中真实的target value t之间的差异进行衡量。
一种选取error function的的方式是平方误差和(sum of the squares of the errors):
E ( w ) = 1 2 ∑ n = 1 N { y ( x n , w ) − t n } 2        ( 1.2 ) E(\mathbf{w})=\frac{1}{2}\sum_{n=1}^N\{y(x_n,\mathbf{w})-t_n\}^2\ \ \ \ \ \ (1.2) E(w)=21n=1N{ y(xn,w)tn}2      (1.2)
由该函数的特性可知,当且仅当该函数穿过training set中的所有data points之后,该式才等于0,否则该式大于0:
在这里插入图片描述
当我们选定了要用多项式函数去拟合training data之后,我们有两件事情同时需要去做:一是选择合适的系数;二是确定多项式的次数。
由于该error function是二次函数,因此其关于系数的derivative是linear function,所以该error function的最小值存在唯一解,我们将该解所对应的系数标记为 w ∗ \mathbf{w}^* w
至于该多项式的order的选取,我们需要通过“model selection”这一方法进行。下图所示的,为在不同order值选取后,该多项式函数对于training data的拟合情况:
在这里插入图片描述
过小的order在training set上表现出较差的performance,过大的order会和真实的函数 sin( 2 π x 2\pi x 2πx)之间相差甚远,导致overfitting的发生。
有时候我们希望将不同来源的error放在同一个scale下(以单个data point为scale)进行比较,此时我们可以采用root-mean-square error:
E R M S = 2 E ( w ∗ ) N E_{RMS}=\sqrt{\frac{2E(\mathbf{w}^*)}{N}} ERMS=N2E(w)
当然,具体而言,我们的training set和testing set中数据点的个数往往是不同的。那么如果我们想要将training set 和 testing set下模型的error放在一起比较,那么我们首先需要通过RMS error进行处理。
我们对不同order下该多项式函数模型在training和testing set上的error进行计算,并绘制成图,如下所示:
在这里插入图片描述
该结果与之前分析的相符合,当order过小的时候,model在两个数据集上的表现都不好;当order过大的时候,尽管model在training set上的表现较好,但在testing set上的表现极差。
有人可能会有这样的疑问:高次的多项式中不是本应包含低次的多项式吗?是这样的,然后由于高次多项式本身的灵活性非常大,导致它不仅拟合了数据中sin( 2 π x 2\pi x 2πx) 的部分,也同样拟合了noise的部分。
那么,当我们给定了model,即确定了该model的complexity之后,如果我们改变dataset的size,之前出现overfitting的model的performance又是如何呢?如下图所示:
在这里插入图片描述
我们可以看到,当数据量增大之后,模型over-fitting的问题减轻了。
然而很多时候,我们的dataset中的数据量是有限的,然而我们仍然希望通过某一种较为复杂的函数,对这些数据进行拟合,那么我们需要如何去做?
一种控制过拟合问题发生的方法是“regularization”,它通过在(1.2)式上加入惩罚项的方式,希望模型的参数尽量不要过大,一种较为简单形式的error function如下:
E ~ ( w ) = 1 2 ∑ n = 1 N { y ( x n , w ) − t n } 2 + λ 2 ∣ ∣ w ∣ ∣ 2        ( 1.4 ) \widetilde{E}(\mathbf{w})=\frac{1}{2}\sum_{n=1}^N\{y(x_n,\mathbf{w})-t_n\}^2+\frac{\lambda}{2}||\mathbf{w}||^2\ \ \ \ \ \ (1.4) E (w)=21n=1N{ y(xn,w)tn}2+2λw2      (1.4)
其中有 ∣ ∣ w ∣ ∣ 2 = w 0 2 + w 1 0 + ⋯ + w M 2 ||\mathbf{w}||^2=w_0^2+w_1^0+\dots+w_M^2 w2=w02+w10++wM2。其中的 λ \lambda λ用于控制error和penalty之间的权重。
在使用regularization方法之后,原先overfitting的model在数据集上的表现如下所示:
在这里插入图片描述
可见,一个合适的 λ \lambda λ 参数,会让原模型overfitting的问题大大减轻,然而过大的 λ \lambda λ 会使得model的performance欠佳。

1.2 Probability Theory

由于测量方法所造成的noise,或是由于数据集有限的原因,我们的数据中存在许多的uncertainty。而本节内容,将用一种统一的框架,对这些uncertainty进行处理。
对于probability theory,我们首先要知道的是两个最基本的公式,即sum rule 和 product rule:
s u m    r u l e              p ( X ) = ∑ Y p ( X , Y )                      ( 1.10 ) p r o d u c t    r u l e              p ( X , Y ) = p ( Y ∣ X ) p ( X )        ( 1.11 ) \mathbf{sum\ \ rule}\ \ \ \ \ \ \ \ \ \ \ \ p(X)=\sum_Yp(X,Y)\ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ (1.10)\\ \mathbf{product\ \ rule}\ \ \ \ \ \ \ \ \ \ \ \ p(X,Y)=p(Y|X)p(X)\ \ \ \ \ \ (1.11) sum  rule            p(X)=Yp(X,Y)                    (1.10)product  rule            p(X,Y)=p(YX)p(X)      (1.11)
根据式(1.11),以及对称特性:p(X,Y)=p(Y,X),我们可以得到Bayes’ theorem:
p ( Y ∣ X ) = p ( X ∣ Y ) p ( Y ) p ( X )        ( 1.12 ) p(Y|X)=\frac{p(X|Y)p(Y)}{p(X)}\ \ \ \ \ \ (1.12) p(YX)=p(X)p(XY)p(Y)      (1.12)
再利用sum rule,我们可以得到Bayes’ theorem的分母为:
p ( X ) = ∑ Y p ( X ∣ Y ) p ( Y )       ( 1.13 ) p(X)=\sum_Yp(X|Y)p(Y)\ \ \ \ \ (1.13) p(X)=Yp(XY)p(Y)     (1.13)
其中,作者还对prior probability以及posterior probability进行了解释:对于变量Y的prior probability,实际上是在我们还没有对X进行观测时,对Y发生的概率所进行的估计。而对于变量Y的posterior probability,实际上是在对X进行观测,并得知X具体取值的前提下,我们对prior的一种修正。
此外,关于两个变量相互独立的定义:p(X,Y)=p(X)p(Y)。并且,运用product rule可以得知,在两个随机变量相互独立的前提下,有p(Y|X)=p(Y)。

1.2.1 Probability densities

  • 之前所有的问题都是关于离散变量的,当将关注点转向连续型变量之后,我们需要对real-valued random variable的概率分布进行分析:
    • 假设real-valued variable x落在区间 ( x , x + δ x ) (x,x+\delta x) (x,x+δx) 内的概率为 p ( x ) δ x p(x)\delta x p(x)δx (当 δ x → \delta x\rightarrow δx 0时),则此时p(x)被称为概率密度。因此,当x落在(a,b)区间内时,其概率为:
      p ( x ∈ ( a , b ) ) = ∫ a b p ( x ) d x        ( 1.24 ) p(x\in (a,b))=\int_a^bp(x)\text{d}x\ \ \ \ \ \ (1.24) p(x(a,b))=abp(x)dx      (1.24)
      又由于概率的非负性以及x在实数范围取值的规定,所以可得:
      p ( x ) ≥ 0        ( 1.25 ) ∫ − ∞ ∞ p ( x ) d x = 1        ( 1.26 ) p(x)\geq 0\ \ \ \ \ \ (1.25)\\ \int_{-\infin}^{\infin}p(x)\text{d}x=1\ \ \ \ \ \ (1.26) p(x)0      (1.25)p(x)dx=1      (1.26)
  • 我们需要注意的一点是问题是:
    • 设有一个在variables之间的non-linear transformation x=g(y),那么,对于确定性的函数来说,f(x)可以表示成: f ~ ( y ) = f ( g ( y ) ) \widetilde{f}(y)=f(g(y)) f (y)=f(g(y))。由此,我们也可以根据transformation function g,在概率密度函数 p x ( x ) p_x(x) px(x) p y ( y ) p_y(y) py(y) 之间找到对应关系。假设有observations落在了( x , x + δ x x, x+\delta x x,x+δx)这个区间内,那么在经过transformation g之后,必然是存在另一个对应的区间( y , y + δ y y,y+\delta y y,y+δy),在这两个区间内,对应的随机变量的取值概率近似相等,即: p x ( x ) δ x ≃ p y ( y ) δ y p_x(x)\delta x\simeq p_y(y)\delta y px(x)δxpy(y)δy,因此便有:
      p y ( y ) = p x ( x ) ∣ d x d y ∣ = p x ( g ( y ) ) ∣ g ′ ( y ) ∣        ( 1.27 ) p_y(y)=p_x(x)\left|\frac{dx}{dy}\right|\\ =p_x(g(y))\left|g\prime(y)\right|\ \ \ \ \ \ (1.27) py(y)=px(x)dydx=px(g(y))g(y)      (1.27)
      上述文字中,加粗的部分是我要着重说明的,因为书上并没有点透到这一步。
      从另一个角度我们也可以进行理解:这里面要进行的non-linear transformation实际上是要在累积分布函数(CDF)上进行,因此转换到概率密度函数时,必然存在一个求一阶导的过程,通过该过程中所要使用的求导链式法则,我们就可以得到上式。
      那么通过式(1.27),我们能得到什么信息呢?如果两个随机变量之间存在非线性关系,那么这两个随机变量取到概率密度最大值时的变量值(记为: x ∗ , y ∗ x^*, y^* x,y),一般不满足关系: x ∗ = g ( y ∗ ) x^*=g(y^*) x=g(y)。所以说,概率密度最大值,其实际上与我们所选取的变量有关。
      x落在区间( − ∞ , z -\infin, z ,z)之间的概率为:
      P ( z ) = ∫ − ∞ z p ( x ) d x        ( 1.28 ) P(z)=\int_{-\infin}^zp(x)dx\ \ \ \ \ \ (1.28) P(z)=zp(x)dx      (1.28)
      其中P(z)就是被称为cumulative distribution function(CDF)的函数,该函数满足: P ′ ( x ) = p ( x ) P^\prime(x)=p(x) P(x)=p(x)
      而如果我们有一连串的continuous variables: x 1 , … , x D x_1,\dots,x_D x1,,xD, 统一用vector x \mathbf{x} x来表示,那么我们可以定义联合概率密度函数: p ( x ) = p ( x 1 , … , x D ) p(\mathbf{x})=p(x_1,\dots,x_D) p(x)=p(x1,,xD), 且对于落在 δ x \delta \mathbf{x} δx 大小的区间内的vector x \mathbf{x} x来说,生成该vector的概率为 p ( x ) δ x p(\mathbf{x})\delta \mathbf{x} p(x)δx, 此时该多元概率密度函数应当满足:
      p ( x ) ≥ 0        ( 1.29 ) ∫ p ( x ) d x = 1        ( 1.30 ) p(\mathbf{x})\geq0\ \ \ \ \ \ (1.29)\\ \int p(\mathbf{x})\text{d}\mathbf{x}=1\ \ \ \ \ \ (1.30) p(x)0      (1.29)p(x)dx=1      (1.30)
      其中式(1.30)中的积分将遍历 x \mathbf{x} x 所在的空间,并进行积分。
      此外,sum rule以及product rule也可以在continuous variable上进行apply:
      p ( x ) = ∫ p ( x , y ) d y        ( 1.31 ) p ( x , y ) = p ( y ∣ x ) p ( x )        ( 1.32 ) p(x)=\int p(x,y)\text{d}y\ \ \ \ \ \ (1.31)\\ p(x,y)=p(y|x)p(x)\ \ \ \ \ \ (1.32) p(x)=p(x,y)dy      (1.31)p(x,y)=p(yx)p(x)      (1.32)

1.2.2 Expectations and covariances

Probability的一个作用是计算得到某一个特定函数的weighted sum。函数f(x)在概率p(x)下的weighted sum称为该函数的期望,记作 E [ f ] \mathbb{E}[f] E[f],在离散随机分布的情况下有:
E [ f ] = ∑ x p ( x ) f ( x )        ( 1.33 ) \mathbb{E}[f]=\sum_xp(x)f(x)\ \ \ \ \ \ (1.33) E[f]=xp(x)f(x)      (1.33)
在连续随机分布下,p(x)将选择为该概率分布的概率密度函数:
E [ f ] = ∫ p ( x ) f ( x ) d x        ( 1.34 ) \mathbb{E}[f]=\int p(x)f(x)\text{d}x\ \ \ \ \ \ (1.34) E[f]=p(x)f(x)dx      (1.34)

假如我们只有从某一个概率分布(无论是离散还是连续的)中sample出来的N个点,我们该如何估计函数f(x)在p(x)下的期望呢?此时的计算公式非常简单:
E [ f ] ≃ 1 N ∑ n = 1 N f ( x n )        ( 1.35 ) \mathbb{E}[f]\simeq\frac{1}{N}\sum_{n=1}^Nf(x_n)\ \ \ \ \ \ (1.35) E[f]N1n=1Nf(xn)      (1.35)

假设我们的函数f具有两个变量x,y, 为了单纯求f(x,y)关于p(x)的期望,我们这样表示:
E x [ f ( x , y ) ]        ( 1.36 ) \mathbb{E}_x[f(x,y)]\ \ \ \ \ \ (1.36) Ex[f(x,y)]      (1.36)
此时,式(1.36)就仅仅是关于y的函数了。

而假设我们所研究的函数f需要关于分布p(x|y)进行期望求得时,我们可以将该期望表示如下:
E x [ f ∣ y ] = ∑ x p ( x ∣ y ) f ( x )        ( 1.37 ) \mathbb{E}_x[f|y]=\sum_xp(x|y)f(x)\ \ \ \ \ \ (1.37) Ex[fy]=xp(xy)f(x)      (1.37)
该期望被称为“条件期望”(对于连续条件分布下的公式同样可以类比得出)。

关于f(x)的方差定义如下:
var [ f ] = E [ ( f ( x ) − E [ f ( x ) ] ) 2 ]        ( 1.38 ) \text{var}[f]=\mathbb{E}\left[(f(x)-\mathbb{E}[f(x)])^2\right]\ \ \ \ \ \ (1.38) var[f]=E[(f(x)E[f(x)])2]      (1.38)
该量用以描述f(x)相对于其期望 E [ f ( x ) ] \mathbb{E}[f(x)] E[f(x)] 的variability。
对于上述期望公式,我们可以进一步推导如下:
var [ f ] = E [ f ( x ) 2 ] − E [ f ( x ) ] 2        ( 1.39 ) \text{var}[f]=\mathbb{E}[f(x)^2]-\mathbb{E}[f(x)]^2\ \ \ \ \ \ (1.39) var[f]=E[f(x)2]E[f(x)]2      (1.39)

特别的,当f(x)=x时,有:
var [ x ] = E [ x 2 ] − E [ x ] 2        ( 1.40 ) \text{var}[x]=\mathbb{E}[x^2]-\mathbb{E}[x]^2\ \ \ \ \ \ (1.40) var[x]=E[x2]E[x]2      (1.40)

对于两个随机变量x和y,二者之间的covariance为:
cov [ x , y ] = E x , y [ { x − E [ x ] } { y − E [ y ] } ] = E x , y [ x y ] − E [ x ] E [ y ]        ( 1.41 ) \text{cov}[x,y]=\mathbb{E}_{x,y}[\{x-\mathbb{E}[x]\}\{y-\mathbb{E}[y]\}]\\ =\mathbb{E}_{x,y}[xy]-\mathbb{E}[x]\mathbb{E}[y]\ \ \ \ \ \ (1.41) cov[x,y]=Ex,y[{ xE[x]}{ yE[y]}]=Ex,y[xy]E[x]E[y]      (1.41)
而对于两个随机向量 x \mathbf{x} x y \mathbf{y} y,有:
cov [ x , y ] = E x , y [ { x − E [ x ] } { y T − E [ y T ] } ] = E x , y [ x y T ] − E [ x ] E [ y T ]        ( 1.42 ) \text{cov}[\mathbf{x}, \mathbf{y}]=\mathbb{E}_{\mathbf{x}, \mathbf{y}}[\{\mathbf{x}-\mathbb{E}[\mathbf{x}]\}\{\mathbf{y}^T-\mathbb{E}[\mathbf{y}^T]\}]\\ =\mathbb{E}_{x,y}[\mathbf{x}\mathbf{y}^T]-\mathbb{E}[\mathbf{x}]\mathbb{E}[\mathbf{y}^T]\ \ \ \ \ \ (1.42) cov[x,y]=Ex,y[{ xE[x]}{ yTE[yT]}]=Ex,y[xyT]E[x]E[yT]      (1.42)
并且,当vector x \mathbf{x} x 本身之间进行cov运算时,我们通常进行简写: cov [ x ] ≡ cov [ x , x ] \text{cov}[\mathbf{x}]\equiv \text{cov}[\mathbf{x},\mathbf{x}] cov[x]cov[x,x]

1.2.3 Bayesian probabilities

我们在很多时候都需要对各式各样的事物进行分析,分析其发生的概率。如果我们能够本身进行多次实验(例如本章中的取小球例子)的话,我们就可以通过大量实验,对各类情况的结果进行统计,并根据当数据量趋于无穷大时,频率分布将收敛于概率分布的特点,对概率分布进行直接估计。这是频率学派的观点。
然而,又有很多时候,我们根本没法得到很多的数据(正如书中所举的例子:月球之前是否有环绕太阳的可能性?北极冰帽有多大可能性在本世纪末消失?)。这些例子都几乎不能做反复试验,因此频率学派的方法在这里失去了作用。
但是,虽然我们无法预知北极冰帽完全消融的时间,但是我们可以对冰消融的速度进行一个初步的估计。假设此时我们从卫星传回地球的信息中得到了一些新的相关信息,这些信息或多或少会与我们之前的估计有所不同,因此,我们可以根据这些新的信息,对我们之前所做的估计进行修正。由此,我们可以根据我们在修正后的估计,来进行最优的决策。这就是贝叶斯的角度对probability的解释。

我们自然可以使用频率学派的观点,仅将第1.1节中的 t n t_n tn 视为variable。但此时,我们需要对参数 w \mathbf{w} w 的uncertainty进行量化。所以我们需要从贝叶斯的观点去运用probability theory。
此时,回想到在书中,我们在得知取到红球之后,所选择的可能颜色的盒子概率分布也相应地发生了改变。此时,我们再结合Bayes’ theorem本身进行分析,我们可以得到Bayes’ theorem的另外一个作用:它通过吸纳observed data所提供的evidence,将prior probability转换为posterior probability。
联系到参数 w \mathbf{w} w 上,我们首先对该参数作以初步假设: p ( w ) p(\mathbf{w}) p(w), 即为该参数的prior probability,然后在得到data D = { t 1 , t 2 , . . . , t N } \mathcal{D}=\{t_1, t_2, ..., t_N\} D={ t1,t2,...,tN} 之后,我们可以通过 p ( w ∣ D ) p(\mathbf{w}|\mathcal{D}) p(wD) ,将这些observed data加入进模型,从而得到该参数的posterior probability:
p ( w ∣ D ) = p ( D ∣ w ) p ( w ) p ( D )        ( 1.43 ) p(\mathbf{w}|\mathcal{D})=\frac{p(\mathcal{D}|\mathbf{w})p(\mathbf{w})}{p(\mathcal{D})}\ \ \ \ \ \ (1.43) p(wD)=p(D)p(Dw)p(w)      (1.43)
其中, p ( D ∣ w ) p(\mathcal{D}|\mathbf{w}) p(Dw) 称为“likelihood”,它是参数 w \mathbf{w} w的函数,它使用observed data D \mathcal{D} D 对当前 w \mathbf{w} w 下生成数据的可能性进行评估。但要注意的是,likelihood并非是关于 w \mathbf{w} w 的分布。
而又由于 p ( D ) p(\mathcal{D}) p(D) 是用于normalization的constant,因此我们可以得到如下关系:
posterior ∝ likelihood × prior       ( 1.44 ) \text{posterior}\propto \text{likelihood}\times \text{prior}\ \ \ \ \ \ (1.44) posteriorlikelihood×prior      (1.44)
且上式中的三项均为参数 w \mathbf{w} w 的函数。
而Bayes’ theorem中的denominator可以表示为:
p ( D ) = ∫ p ( D ∣ w ) p ( w ) d w        ( 1.45 ) p(\mathcal{D})=\int p(\mathcal{D}|\mathbf{w})p(\mathbf{w})\text{d}\mathbf{w}\ \ \ \ \ \ (1.45) p(D)=p(D

  • 16
    点赞
  • 22
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值