课程简介 :
主要介绍了 RBF 模型及其与最近邻算法、神经网络、Kernel Method 的比较。最后介绍了 RBF 模型的 regularization 问题。
课程提纲 :
1、what is RBF
2、RBF and nearest neighbors
3、RBF and neural networks
4、RBF and kernel methods
5、RBF and regularization
1、what is RBF
RBF 是基于半径的一个模型。因为训练集中的每一个点都会对训练集(h(x))造成影响,但是影响的方式会因问题而异。这一节课主要讨论的是训练集中的点对模型的影响是基于:||X-Xn|| 的形式的。也就是说是基于半径的(based on radial )。
标准形式:(下面的模型是高斯分布模型,当然也可以用其它的模型,但是既然是radial based,那么就必须得存在||x-xn||项)
有了模型,我们还需要学习它的参数,上述公式中的参数主要有两个:wn 和 γ。γ 会影响高斯分布曲线的形状(肥瘦)。现在暂时放下 γ 参数,先来看看如何学习 wn。
学习的前提是要有一个指导方针。这里的指导方针就是h(xm) == ym。 其中 ym 是数据的真实值(对于分类问题就是标签)。
所以我们的问题就是解下面的方程:(为了一致性,下述公式中的xm对应上述公式的 xn,下述公式中的 xn 对应上述公式中的 x)
用矩阵表示如下:
如果矩阵可逆,则有:(听说可以利用插入法求解)
到目前为止,我们可以成功的利用训练数据求得参数 W ,一切都很顺利,那么是不是说明只要我们再把 γ 求出来就可以了呢?
答案是否定的,因为这里存在一个过拟化的问题。显然上述的方法得到的解,对于样本内数据来说,误差为 0,之前说过,这并不是一件好事,因为这样会导致泛化能力减弱。这里利用到的解决方法是:聚类。
2、RBF and nearest neighbors
对于第一点中提到的过拟化问题,可以利用聚类方法进行解决。
基本思路:利用某种方法(比如:k-means)把训练数据聚成 k 个类。每个聚类中心代表该类进行训练。
因此模型变为:
针对上述模型,存在两个问题:
1、如何选择 k 个中心点。
2、如何学习 wk。
第一点可以利用 k-means 方法解决。现在主要看看第二点:
由于现在参数 wk 变为k个,因此该模型会存在误差,有:
通过解上述方程,我们可以求出 W(具体怎么解?还得恶补线性代数。。。)
现在剩下的问题就是如何求解 γ 了。下面用到的方法叫做:混合高斯模型的期望最大化(EM algorithm in mixture of Gaussians)
第一步:固定 γ,求解 W
第二步:固定W,求出使模型误差最小时对应的 γ。
第三步:跳回第一步,直到满足终止条件。(迭代m次等。)
3、RBF and neural networks
通过上面步骤,已经可以求解出 RBF 模型了。现在看看其与神经网络的比较:
通过上图我们可以知道:
1、RBF network 和 neural network 在形式上是一致的。
2、对于 RBF network 第一级输入参数是固定的:||x-μi||,但是对于 neural network,对应的参数需要通过反向传播进行学习。
3、对于 RBF network 当第一级输入值很大的时候,对应节点的输出会变得很小(高斯模型),而对于 neural network 则不存在这一特点,根具体节点使用的函数有关。
4、RBF and kernel methods
再来看看 RBF 与 SVM kernel 的对比。
首先在形式上:
SVM kernel: RBF:
对于 RBF ,增加额外的参数b,并且转变为而分类问题。这样是为了更方便地与 SVM kernel 比较。
我们关心的第一个问题是:它们的表现如何? 下面的图显示了这两个模型的表现(绿色线表示目标函数 ):
可以看到,虽然是来自两个不同世界的模型,但是他们的表现却很接近(SVM 更好一点),不过在具体的问题中,很难说清楚谁的效果更好。
注意,上图中RBF 用到的聚类数量 k == svm 中的支持向量数。
5、RBF and regularization
注意:关于聚类中的 k 如何选择?我开始认为是否可以计算出 VC 维作为参考?在课堂最后的时候学生也问到这个问题,不过教授说不能这样做。是 k -> VC 而不是 VC->k.