kernel方法和高斯过程

转自:http://hi.baidu.com/linecong/item/fd24fc5e20d58809e7c4a57f


人的学习方式有两种,一种是从经验中总结中规律来,然后用规律来指导对事物的判断和实践;另一种是案例学习法, 在大脑中记下大量的案例,当在实际中遇到需要做出判断的情况时,便从大脑中找出与当前情况相似的案例,根据相似案例的情形来指导当前的判断。中国古人对后一种方法是相当重视的,写文章都必须引用古代的典故,引得越多,仿佛文章的观点就越站得住脚。

机器学习与此类似,通常需要从训练数据中总结出一个公式y(x),以此来对将来可能遇见的数据进行预测。但机器学习同样可以将训练数据记下来,在遇到一个待预测的输入时,利用那些相似的训练数据,来得到一个预测值。要使这样的机器学习过程可以工作,需要定义一个kernel函数k(x,x'),它用来定义输入x和输入x'的相似度。而这个相似度,其实是将两输入向量映射到另一个向量空间后,得到的两个新的向量的内积,即:

k(x,x') = Φ(x)TΦ(x')

在kernel函数定义的相似度下,与待预测输入越相似的训练数据,对预测值的贡献越大。

如果将训练数据看作一个序列,那么可以利用一个高斯过程来描述这个序列,进而利用该高斯过程对新的输入进行预测。用下面的分布来表示这个高斯过程:

p(T)=Ν(T|0,K)

其中T是由输出值组成的序列,即T=1,t2,...>,Ν为高斯分布,K是由kernel函数组成的协方差矩阵,其中Knm=k(xn,xm)。

考虑n个训练数据t1,t2,...,tn,和1个待预测值tn+1,上式可以求出1,t2,...,tn+1>的联合分布,进而可以求得预测值的分布p(tn+1|t1,t2,..,tn),它同样是一个高斯分布。

你可能感兴趣的:(machine,learning,math)