文章目录
在系列课程开始之初的四节课的SVM中,提到了径向基函数(Radial Basis Function Network,RBF),可能与上一节课讲到的神经网络存在一定联系,本节课尝试将二者联系起来。
k-NN与k-Means的区别:
参考自博客:点击此处。
14.1 RBF Network Hypothesis
首先回顾一下Gaussian SVM:
它要做的事情是在无限多维的空间中寻找一个“胖胖的”边界;从最后得到的假设函数来看,Gaussian SVM要做的就是将一堆Gaussian 函数做线性组合,并且这些Gaussian 函数以支持向量(Support Vector)为中心,最终得到假设函数 。Gaussian kernel 也叫作径向基函数(Radial Basis Function Network,RBF),接下来看一下其中每部分所表示的函数:
-
radical(径向):表示Gaussian函数只和新的样本点 到中心点 (支持向量的座标)的距离有关;
-
basis function(基函数):表示Gaussian 函数,最终的假设函数 就是由这些基函数线性组合而成的。
-
如果令 表示原来SVM假设函数中的一部分,即 ,其中括号内(指数项)表示新的样本点 与支持向量的座标 之间的距离。距离越近,表示权重越大,相当于对 投更多的票数,反之亦然。其物理意义是新的样本点 与支持向量的座标 的距离决定了 与 的接近程度。
如果距离越近,则 对 的权重影响越大,反之亦然。即Gaussian SVM的假设函数 就是由所有的的支持向量决定的 线性组合而成的,组合系数为权重 。
径向基函数(RBF)网络实际上就是 Gaussian SVM的延伸,目的就是要找到所有 的线性组合,得到更好的融合模型。之所以成为RBF网络,是因为与之前的神经网络类似:
由上图可知,二者的异同在于:
- 隐藏层不同,神经网络是计算输入数据与权重向量的内积,然后通过激活函数激活;而RBF网络是计算输入数据与支持向量的距离,然后通过Gaussian函数激活;
- 输出层的组合方式相同:都是对不同假设函数的线性融合(aggregation)。
径向基函数网络实际上是神经网络的一种。RBF网络的假设函数可以表示为:
其中,将支持向量(中心)记为 ,函数 表示计算距离的高斯函数, 表示权重系数(线性组合的系数)。不难发现,其中的关键就是 和 。 表示支持向量的个数, 表示支持向量的座标, 表示计算完SVM对偶(Dual)以后, 的值。至此,学习目标就变为已知RBF和输出,来计算最好的中心点座标 和权重系数 。
以上对RBF的介绍是从kernel开始的,接下来从相似性的角度分析。kernel实际上是将原来X空间的两个点转换到Z空间,然后计算其内积,来衡量二者的相似性。正是因为这样的计算方式,导致kernel要受到Mercers’s condition的保障,即它所产生的矩阵是半正定的。关于kernel的选择,不止Gaussian kernel一种,也可以选择多项式(polynomial)kernel。
kernel实际上通过将两向量从X空间转换到Z空间,通过计算二者的内积,衡量了二者之间的相似性。而RBF则是直接在X空间中,计算距离来衡量相似性,距离越近,相似性越高,反之亦然。因此kernel和RBF都可以看做衡量相似性的方法,而Guassian RBF则是二者的交集。此外,衡量相似性的函数还有很多,比如神经网络中的神经元,其衡量的是输入和输出权重之间的相似性。
由以上分析可知,RBF网络中的距离相似性是一种很好的特征转换方法。
习题1:
14.2 RBF Network Learning
上一小节介绍了RBF网络的基本概念,其核心思想是找到一些中心(支持向量),然后将这些中心对应的RBF函数进行线性组合,线性组合的权重为 。
那么中心应该如何确定呢?首先看一个简单的例子,将所有样本点都当做中心点,这样的RBF网络称为 full RBF Network。其物理意义表示每一个中心 点都对它周围的样本点 有影响,产生影响的大小表示 ,用投标来解释就是说它有几票。假设所有的中心点都有同样的影响力,设为1,,在二分类问题中,相当于根据距离中心点的远近来做投票,距离越近票数越多,反之亦然。然后通过 通过计算新的样本点 与 之间的距离来衡量相似性,最后把这些融合起来,得到最终的假设函数。full RBF 网络实际上是一种惰性的求解 的方法。这与机器学习中的另一个算法——k近邻算法(kNN)有很大的关联性:
在上述计算中,计算的是高斯函数的值,这些值有大有小,最后进行投票,得到假设函数 ,如果要找与新的样本点 最接近的中心 ,因为高斯函数是中间高两侧低的函数,在两侧衰减很快,在求和函数 中,最大值处的高斯函数值对其影响最大,所以一个思路是不做所有样本点的求和动作,而只计算最近或几个距离较近的中心点的距离。这在表达式中表示就是用最近的中心点来决定 ,这就变成了selection而非aggregation。
其物理意义是说,比如在二分类问题中,假设函数 要判断新的样本 是正类还是负类,只需要找到距离该样本点最近的中心点 所属的类别即可,即用 的类别表示 的类别,实现类别预测。 这样的模型称为 nearest neighbor model。在此基础上,将以上算法延伸,可以找出 个距离最近的中心点,然后再进行aggregation操作,就变为熟悉的 k近邻算法。这样会比最近邻算法的效果更好。易知,k近邻算法也是一种惰性的方法。这种方法容易训练,但推理比较费时。
下面看一下在回归问题中,如何最佳化权重系数 。
首先计算 ( 的行向量),每个元素为RBF函数计算的新的样本与各个中心点的距离,则 为 的对称矩阵(Symmetric Matrix),这里有一个性质,如果所有的样本 都不相同,则Gaussian RBF求解得到的 为可逆矩阵(Inverse Matrix)。如果 是对称矩阵,则有 ,代入到 的最佳化公式 中,可以很轻易地推导出 。以上是针对 full RBF Network推导的,接下来看一下引入正则化的情况:
如果不加正则化,则由假设函数 预测的输出都是原来输入数据的期望输出 ,这使得假设函数在样本上的误差 ,这些课程学到这里,很容易想到这是不好的结果,因为很有可能导致overfit,因此考虑加入使用正则化方法加以限制。
加入正则化之后,相当于把原来的线性回归改为岭回归(rige regression)。这样转化之后, 的矩阵 就是原来SVM中的 Gaussian kernel matrix 。由此得到 regularized full RBFNet 的表达式,此外还可以推导出 kernel ridge regression。
两者的区别在于Regularization不同,kernel ridge regression是对无限维的空间中做Regularization;在Regularized full RBFNet中是对有限的空间做Regularization,Regularization不同,做的结果就会有一些不一样。下面看另一种Regularization方法:
回顾之前SVM算法,在计算假设函数时,只使用了支持向量来运算,达到了正则化效果;同样地,在RBF中也可以借鉴这样的思想,即使得中心点的数量 远远小于样本数量 。这样同样可以达到正则化的效果,即限制了中心点的数量和投票权重。其物理意义是从中心点 中挑出有代表性的中心来。
习题2:
14.3 k-Means Algorithm
要从中心点中找出好的代表,就变为一个聚类问题(Clustering Problem)。本小节介绍一下为什么在RBFNet中需要找出这些代表。
一种想法是将一个点变为一群相似的点,即聚类,这是一个典型的无监督学习算法。具体地:
算法核心是使用不同的集合 将样本点 分开。我们希望如果新的样本点 和 都属于同一个集合 ,则表示这个集合的中心点与这两个样本点都很接近;如果相隔很远,则用RBF函数算出的距离很不一样,中心点 就不能够代表这个集合。
聚类的误差衡量使用平方误差。上式表示对于每个样本点 与聚类中心的距离。接下来就需要找出一种分群方式,即找出 和中心点 ,可以将样本点分得很好,使得误差函数最小化。接下来看一下聚类算法如何优化:
不难发现,这是一个困难的优化问题,因为包含两个部分,一个部分是分群,一个部分是计算中心点 ,即既需要组合最佳化,又需要数值最佳化。一种想法是对两组变量交替优化,即固定一组变量,优化另一组变量,交替进行。流程如下:
首先固定中心点 ,然后计算每一个样本 在一个集合中与各个中心点的距离,选出距离最近的那一个作为集合 的中心点即可。接下来看集合固定的情况:
如果集合 固定,则问题变为无约束优化问题(unconstrained optimization)。通过计算偏导数(梯度)来求解最佳的 。其值等于集合 中所有样本点 的平均值。至此,可以得到 k均值聚类算法(k-Means Algorithm)。其伪代码如下:
注意,这里的 k 与 k近邻算法中的 k 不同。
- 随机选取 k 个样本 来初始化聚类中心 ;
- 分别固定集合和聚类中心,进行交替迭代优化(kMeans Algorithm)。
k-Means算法是通过交替最小化的最受欢迎的聚类算法。使用 k-Means 的RBFNet的算法流程如下:
其核心有两个,分别是:
使用了 k-Means 与我们上节课介绍的自动编码器(autoencoder)类似,都是特征转换(feature transform)方法。在最优化过程中,要求解的参数有k-Means聚类算法的集合个数M、Gaussian函数参数 等。我们可以采用validation的方法来选取最佳的参数值。
习题3:
14.4 k-Means and RBF Network in Action
本小节通过demo来演示k-Means和RBFNet算法。
在该例中,k-Means算法首先随机选择四个中心点(k=4),通常如果 k 选择得当并且有比较好的初始化方法,则该算法可以得到很好的表现。
首先,进行第一次更新,根据选择的四个中心点,对输入空间的样本点进行划分:
然后,重新计算聚类中心,计算方式是对集合中的点取平均值。
接下来进行第二次迭代,根据新计算的聚类中心,重新确定样本点归属与哪个集合:
然后再计算聚类中心:
迭代到第六次时,可以将四类样本清晰的划分出来。
聚类中心选取是任意的,接下来看一下不同数量的初始化聚类中心的影响:
可以看出,k-Means算法对k初始值的选取很敏感。接下来将 k-Means 与 RBFNet结合,做二分类的结果:
可以看出,如果选择合适的聚类中心数量,可以得到不错的结果。接下来看一下full RBF Network的情形:
full RBFNet 得到的分隔超平面比较复杂,并且计算量很大,在实际应用中不太常用。
习题4:
样本数量比较少的时候,正则化强度应该大一些。
Summary
本节课主要介绍了径向基函数网络(Radial Basis Function Network,RBFNet)。RBFNet的假设函数就是计算样本之间相似度的Gaussian函数,替代了神经网络中的神经元,也使其名字中network的由来。RBFNet的学习过程也是对更假设函数进行线性组合的过程,权重为 。然后介绍了k近邻算法和k均值聚类算法,以及引入k均值算法的RBFNet。最后用过一个demo演示了其工作流程,并说明了k-Menas算法中k的选取很重要。