第1章:Introduction

来源:互联网 发布:手机淘宝拍图片搜索 编辑:程序博客网 时间:2024/05/20 15:37

1.3:Model Selection:

1:正如我们之前说的,当我们运用最大似然法去拟合模型的时候,会出现过度拟合的问题。因此此时我们不能用训练的模型在训练集上的表现来判断这个模型的好坏,这时候我们有如下几种方法来判断训练后的模型的表现。

(1):把数据集按一定比例分为训练集(training set),验证集(validation set)和测试集(test set),我们利用训练集来训练各种模型,然后把训练后的各种模型应用于验证集,选择一个有最好表现的模型,最后我们用测试集来最终评价这个已经被选择出来的模型的表现;

但这个方法的缺点就是数据集是有限的,我们希望能够尽可能多的利用数据来作为训练集,然后如果验证集数据数目比较少的话,对模型的评价将不是很准确。

(2):考虑到上述方法的缺点,我们可以采用交叉验证(cross-validation)的方法,也就是把可得到数据的(s-1)/s部分作为训练集,整个可得到的数据作为验证集。因此对一个特定的模型,我们有s个训练run,并且把s次对应的表现求平均作为这个特定模型最终的表现。并且当数据很稀缺的话,可以把(N-1)/N部分的可得到数据作为训练集(N是可得到数据的个数)。

但是这个方法的缺点就是训练run的数目是随着s增加的,因此如果这个训练是计算量很大的,那么这种方法耗费的时间也长。

因此最好是把整个数据集当做训练集来训练模型同时训练完之后又能给出这个模型的表现,这样单个run就能搞定,并且是最大化的利用数据集作为训练集。我们可以想一想,我们之所以会用(1)和(2)方法来评价模型的表现是因为最大似然法时会出现过度拟合的问题,因此模型在训练集的表现不能作为这个模型最终的表现,这时有两种选择:

    第一种:选择一个标准,这种标准能够规避掉过度拟合的影响,同时又能作为评价模型表现的标准;    第二种:选择一种决定模型参数的方法,这种方法不会导致过度拟合的问题

(3):第一种解决方法导致了Akaike信息标准(Akaike information criterion): lnp(D|w⃗ ML)M 和 贝叶斯信息标准(Bayesian information criterion)。但是这些标准不会考虑模型参数的分布并且只能应用于非常简单的模型。

(4):第二种解决方法就是用完全贝叶斯方法去训练模型,我们知道贝叶斯方法不会导致过度拟合的问题。

1.5:Decision Theory

一:当我们在解决模式识别问题时,我们可以把问题求解分成推断(inference)和决定(decision)这两个阶段。

(1):推断阶段:我们应该要从训练集中得到联合概率分布p(x⃗ ,t⃗ )或者是后验概率分布p(t⃗ |x⃗ )

(2):决定阶段:基于一些准则,利用推断阶段得到的联合概率分布或者是后验概率分布,做出最优的决定。

在分类问题中,我们做出的决定是把新输入的变量值x分配到某一个类别中。而对于递归问题,我们做出的决定是对已经输入变量x的每一个目标值t做出比较好的推断y(x)

二:分类问题所对应的决定论:

1:分类问题中决定论依据的准则:

(1):如果我们想极小化分类错误率,那么我们应该选择类别k使得p(Ck|x⃗ )最大;

(2):如果我们想极小化损失函数(loss function, cost function),那么我们应该选择类别j使得ΣkLkjp(Ck|x⃗ )最小(Lkj指的是正确类别是k但我们确指定了类别k时所引发的损失);

(3):当我们发现最大的p(Ck|x⃗ )值很小或者是最小的ΣkLkjp(Ck|x⃗ )值很大时,这时候机器很难做出确定,因为很难看出有一个最优选择,如果盲目做出决定,犯错误率会很高,这时候机器可以选择拒绝做出决定。

比如我们可以规定当最大的p(Ck|x⃗ )小于阈值θ时,机器拒绝做出决定,如果阈值为1,那么机器拒绝对所有事例做出决定,如果阈值小于1/k(k为类别的数目),那么机器对所有事例都会做出决定,因此阈值控制着事例中有多大比例会被机器拒绝作出决定。

2:解决分类问题三种方法:

(1):generative models

利用训练集先推出类条件概率密度p(x⃗ |Ck)和先验类概率p(Ck),然后利用如下贝叶斯公式求出后验概率p(Ck|x⃗ )

p(Ck|x⃗ )=p(x⃗ |Ck)p(Ck)p(x⃗ )p(x⃗ )=Σkp(x⃗ |Ck)p(Ck)

或者等价地,利用训练集我们直接得出联合概率分布p(x⃗ ,Ck),然后归一化得出后验概率分布p(Ck|x⃗ )。有了后验概率,我们就能依据决定论把新输入的变量x⃗ 分配到某一类。

(2):discriminative models:

利用训练集直接得出后验概率分布p(Ck|x⃗ ),然后使用决定论把新输入的变量x⃗ 分配到某一类。

方法(1)和方法(2)看起来类似,都是求后验概率分布p(Ck|x⃗ )。但是方法(1)可以求p(x),这样的话我们对新输入的变量x的值可以求出其出现的概率,如果这个变量x的值出现的概率很低,那么或许对应的预测值或许不是很准确。当然,如果我们只需要借助于后验概率p(Ck|x⃗ )来做出分类决定,那么方法(1)就显得多余,用方法(2)即可。

(3):discriminant function:

利用训练集直接训练一个函数,把输入变量x⃗ 映射到某一个类标号,因此discriminant function把推断(inference)和决定(decision)这两个步骤一起合并解决了。

这一方法虽然简单,但不提倡,因为其这不涉及任何概率知识,因此我们无法通过这种方法求出后验概率p(Ck|x⃗ ),但后验概率是非常重要的,书中列出了四个理由表明为什么要计算后验概率。

三:递归问题所对应的决定论:

1:递归问题中的loss function:

在递归问题中,loss function的一个普遍选择是平方损失(square loss)函数L(t,y(x⃗ ))=y(x⃗ )t2。但必须要说的是,对于递归问题,平方损失函数并不是唯一的选择,有时候平方损失函数可能会导致一个非常差的结果。

书中介绍了另外一种损失函数,其实是平方损失函数的一种归纳,称为Minkowski损失,表达式为Lq=|y(x⃗ )t|q

2:决定论所采取的准则:

对于递归问题,当我们在推断阶段已经得到了联合概率分布p(t,x⃗ )或者是后验概率分布p(t|x⃗ )时,我们在决定阶段是通过采取极小化损失函数这一准则来做出决定的。如果损失函数为平方损失函数,那么最终的决定结果是

y(x⃗ )=tp(x⃗ ,t)dtp(x⃗ )=tp(t|x⃗ )dt

3:解决递归问题的三种方法:

和解决分类问题一样,我们也能给出三种方法:

(1):在推断阶段,利用训练集决定联合密度p(x⃗ ,t),然后再归一化得出条件密度分布p(t|x⃗ ),最终利用这条件密度分布决定y(x⃗ )

(2):在推断阶段,直接得出条件密度p(t|x⃗ ),然后再决定y(x⃗ )

(3):利用训练集直接求出递归函数y(x⃗ )

这三种方法的相对优缺点与分类问题三种方法的类似。

1.6 information theory

1:信息 h(x)=log2p(x) (p(x)为变量x的概率分布)。对数基的选择是任意的,此刻我们选择的是以2为底,对应的h(x)单位是bits(‘binary digits’);我们也可以选择自然对数,不过此时h(x)的单位是nats。

2:离散变量的熵(entropy):

假设离散变量x服从概率分布p(x),则此变量x所对应的熵H[x]=Σxp(x)log2p(x)。当p(x)=0时,我们认为p(x)log2p(x)=0.

当离散变量x服从均匀分布时,即p(x)=1/M(M为离散变量x所对应的状态总数),离散变量的熵最大,此时H=lnM(这时候信息表达式是以自然对数为底,而不是以基为2的对数为底。

3:连续性变量的微分熵:

(1):对于单个连续性变量x,微分熵H[x]=p(x)lnp(x)dx。对于多个连续性随机变量,以矢量x⃗ 代表,微分熵H[x⃗ ]=p(x⃗ )lnp(x⃗ )

(2):对于连续性随机变量x来说,最大化微分熵的分布是高斯分布,对应的最大值为H[x]=1/2(1+ln(2πσ2))σ为高斯分布的sigma)。

(3):假定我们有一个联合分布p(x⃗ ,y⃗ )H[y⃗ |x⃗ ]=p(y⃗ ,x⃗ )lnp(y⃗ |x⃗ )dy⃗ dx⃗ ,这称之为给定了x⃗ y⃗ 的条件熵。
并且我们可以发现H[x⃗ ,y⃗ ]=H[y⃗ |x⃗ ]+H[x⃗ ]

4:相对熵(relative entropy)

假设有一个真实的但未知的分布p(x⃗ ),我们使用q(x⃗ )去近似化这个真实的但未知的分布,相对熵KL(p||q)能够用如下式子表达:

KL(p||q)=p(x⃗ )lnq(x⃗ )p(x⃗ )dx⃗ 

条件熵也称之为Kullback-Leibler divergence或者是KL divergence,并且这并不是一个对称量,也就是说KL(p||q)不等于KL(q||p)。另外需要说明的是KL(p||q)总是大于等于0,等号成立当且仅当p(x⃗ )=q(x⃗ ),因此我们能够认为条件熵表征了两个分布p(x)与q(x)的不同性,条件熵值越大,这两个分布越不同

5:mutual information

给定两个随机变量X和Y,它们独立时p(x,y)=p(x)p(y),如果它们不独立,我们希望能够知道它们离独立有多远,这可以用互信息I[x,y]度量

I[x,y]=KL(p(x,y)||p(x)p(y))=H[x]H[x|y]=H[y]H[y|x]>=0

$$\quad$对互信息的另外一个理解是当观察到x(或y)后,y(或x)的uncertainty的减少量。

0 0
原创粉丝点击