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