机器学习技法14: 径向基函数网络(Radial Basis Function Network)



在系列课程开始之初的四节课的SVM中,提到了径向基函数(Radial Basis Function Network,RBF),可能与上一节课讲到的神经网络存在一定联系,本节课尝试将二者联系起来。


k-NN与k-Means的区别:
在这里插入图片描述
参考自博客:点击此处


14.1 RBF Network Hypothesis

首先回顾一下Gaussian SVM:
在这里插入图片描述
它要做的事情是在无限多维的空间中寻找一个“胖胖的”边界;从最后得到的假设函数来看,Gaussian SVM要做的就是将一堆Gaussian 函数做线性组合,并且这些Gaussian 函数以支持向量(Support Vector)为中心,最终得到假设函数 gSVM(x)g_{SVM}(x)。Gaussian kernel 也叫作径向基函数(Radial Basis Function Network,RBF),接下来看一下其中每部分所表示的函数:
在这里插入图片描述

  • radical(径向):表示Gaussian函数只和新的样本点 xx 到中心点 xnx_n(支持向量的座标)的距离有关;

  • basis function(基函数):表示Gaussian 函数,最终的假设函数 gSVM(x)g_{SVM}(x) 就是由这些基函数线性组合而成的。

  • 如果令 gn(x)g_{n}(x) 表示原来SVM假设函数中的一部分,即 gn(x)=yn exp(γ xxn2)g_n(x) = y_n \ exp(-\gamma \ ||x-x_n||^2),其中括号内(指数项)表示新的样本点 xx 与支持向量的座标 xnx_n 之间的距离。距离越近,表示权重越大,相当于对 yny_n 投更多的票数,反之亦然。其物理意义是新的样本点 xx 与支持向量的座标 xnx_n 的距离决定了 gn(x)g_n(x)yny_n 的接近程度。

如果距离越近,则 yny_ngn(x)g_n(x) 的权重影响越大,反之亦然。即Gaussian SVM的假设函数 gSVM(x)g_{SVM}(x) 就是由所有的的支持向量决定的 gn(x)g_n(x) 线性组合而成的,组合系数为权重 αn\alpha_n

径向基函数(RBF)网络实际上就是 Gaussian SVM的延伸,目的就是要找到所有 gn(x)g_n(x) 的线性组合,得到更好的融合模型。之所以成为RBF网络,是因为与之前的神经网络类似:
在这里插入图片描述
由上图可知,二者的异同在于:

  • 隐藏层不同,神经网络是计算输入数据与权重向量的内积,然后通过激活函数激活;而RBF网络是计算输入数据与支持向量的距离,然后通过Gaussian函数激活;
  • 输出层的组合方式相同:都是对不同假设函数的线性融合(aggregation)。

径向基函数网络实际上是神经网络的一种。RBF网络的假设函数可以表示为:
在这里插入图片描述
其中,将支持向量(中心)记为 μm\mu_m ,函数 RBF()RBF() 表示计算距离的高斯函数,βm\beta_m 表示权重系数(线性组合的系数)。不难发现,其中的关键就是 μm\mu_mβm\beta_mMM 表示支持向量的个数,μm\mu_m 表示支持向量的座标,βm\beta_m 表示计算完SVM对偶(Dual)以后,αmym\alpha_my_m 的值。至此,学习目标就变为已知RBF和输出,来计算最好的中心点座标 μm\mu_m 和权重系数 βm\beta_m

以上对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函数进行线性组合,线性组合的权重为 βm\beta_m
在这里插入图片描述
那么中心应该如何确定呢?首先看一个简单的例子,将所有样本点都当做中心点,这样的RBF网络称为 full RBF Network。其物理意义表示每一个中心 xmx_m 点都对它周围的样本点 xx 有影响,产生影响的大小表示 βm\beta_m,用投标来解释就是说它有几票。假设所有的中心点都有同样的影响力,设为1,βm=1ym\beta_m = 1 \cdot y_m,在二分类问题中,相当于根据距离中心点的远近来做投票,距离越近票数越多,反之亦然。然后通过 guniform(x)g_{uniform}(x) 通过计算新的样本点 xxxmx_m 之间的距离来衡量相似性,最后把这些融合起来,得到最终的假设函数。full RBF 网络实际上是一种惰性的求解 μm\mu_m 的方法。这与机器学习中的另一个算法——k近邻算法(kNN)有很大的关联性:
在这里插入图片描述
在上述计算中,计算的是高斯函数的值,这些值有大有小,最后进行投票,得到假设函数 guniform(x)g_{uniform}(x) ,如果要找与新的样本点 xx 最接近的中心 xmx_m ,因为高斯函数是中间高两侧低的函数,在两侧衰减很快,在求和函数 m=1n\sum^{n}_{m=1} 中,最大值处的高斯函数值对其影响最大,所以一个思路是不做所有样本点的求和动作,而只计算最近或几个距离较近的中心点的距离。这在表达式中表示就是用最近的中心点来决定 ymy_m ,这就变成了selection而非aggregation。

其物理意义是说,比如在二分类问题中,假设函数 gnbor(x)g_{nbor}(x) 要判断新的样本 xx 是正类还是负类,只需要找到距离该样本点最近的中心点 xmx_m 所属的类别即可,即用 xmx_m 的类别表示 xx 的类别,实现类别预测。 这样的模型称为 nearest neighbor model。在此基础上,将以上算法延伸,可以找出 kk 个距离最近的中心点,然后再进行aggregation操作,就变为熟悉的 k近邻算法。这样会比最近邻算法的效果更好。易知,k近邻算法也是一种惰性的方法。这种方法容易训练,但推理比较费时。

下面看一下在回归问题中,如何最佳化权重系数 βm\beta_m
在这里插入图片描述
首先计算 znz_n1×N1 \times N 的行向量),每个元素为RBF函数计算的新的样本与各个中心点的距离,则 ZZN×NN \times N 的对称矩阵(Symmetric Matrix),这里有一个性质,如果所有的样本 xnx_n 都不相同,则Gaussian RBF求解得到的 ZZ 为可逆矩阵(Inverse Matrix)。如果 ZZ 是对称矩阵,则有 ZT=ZZ^T = Z ,代入到 β\beta 的最佳化公式 β=(ZTZ)1ZTyβ = (Z^TZ)^{−1}Z^Ty 中,可以很轻易地推导出 β=Z1y\beta=Z^{-1}y 。以上是针对 full RBF Network推导的,接下来看一下引入正则化的情况:
在这里插入图片描述
如果不加正则化,则由假设函数 gRBF(xn)g_{RBF}(x_n) 预测的输出都是原来输入数据的期望输出 yny_n,这使得假设函数在样本上的误差 Ein=0E_{in} =0,这些课程学到这里,很容易想到这是不好的结果,因为很有可能导致overfit,因此考虑加入使用正则化方法加以限制。

加入正则化之后,相当于把原来的线性回归改为岭回归(rige regression)。这样转化之后,N×NN \times N 的矩阵 ZZ 就是原来SVM中的 Gaussian kernel matrix KK。由此得到 regularized full RBFNet 的表达式,此外还可以推导出 kernel ridge regression。
在这里插入图片描述

两者的区别在于Regularization不同,kernel ridge regression是对无限维的空间中做Regularization;在Regularized full RBFNet中是对有限的空间做Regularization,Regularization不同,做的结果就会有一些不一样。下面看另一种Regularization方法:
在这里插入图片描述
回顾之前SVM算法,在计算假设函数时,只使用了支持向量来运算,达到了正则化效果;同样地,在RBF中也可以借鉴这样的思想,即使得中心点的数量 NN 远远小于样本数量 MM 。这样同样可以达到正则化的效果,即限制了中心点的数量和投票权重。其物理意义是从中心点 μm\mu_m 中挑出有代表性的中心来。


习题2:
在这里插入图片描述


14.3 k-­Means Algorithm

要从中心点中找出好的代表,就变为一个聚类问题(Clustering Problem)。本小节介绍一下为什么在RBFNet中需要找出这些代表。
在这里插入图片描述
一种想法是将一个点变为一群相似的点,即聚类,这是一个典型的无监督学习算法。具体地:
在这里插入图片描述
算法核心是使用不同的集合 SMS_M 将样本点 xnx_n 分开。我们希望如果新的样本点 x1x_1x2x_2 都属于同一个集合 SmS_m ,则表示这个集合的中心点与这两个样本点都很接近;如果相隔很远,则用RBF函数算出的距离很不一样,中心点 μm\mu_m 就不能够代表这个集合。

聚类的误差衡量使用平方误差。上式表示对于每个样本点 xnx_n 与聚类中心的距离。接下来就需要找出一种分群方式,即找出 S1,S2,...,SMS_1,S_2,...,S_M 和中心点 μ1,μ2,...,μM\mu_1,\mu_2,...,\mu_M ,可以将样本点分得很好,使得误差函数最小化。接下来看一下聚类算法如何优化:
在这里插入图片描述
不难发现,这是一个困难的优化问题,因为包含两个部分,一个部分是分群,一个部分是计算中心点 μm\mu_m,即既需要组合最佳化,又需要数值最佳化。一种想法是对两组变量交替优化,即固定一组变量,优化另一组变量,交替进行。流程如下:
在这里插入图片描述
首先固定中心点 μm\mu_m ,然后计算每一个样本 xnx_n 在一个集合中与各个中心点的距离,选出距离最近的那一个作为集合 SmS_m 的中心点即可。接下来看集合固定的情况:
在这里插入图片描述
如果集合 SmS_m 固定,则问题变为无约束优化问题(unconstrained optimization)。通过计算偏导数(梯度)来求解最佳的 μm\mu_m 。其值等于集合 SmS_m 中所有样本点 XnX_n 的平均值。至此,可以得到 k均值聚类算法(k-Means Algorithm)。其伪代码如下:
在这里插入图片描述
注意,这里的 k 与 k近邻算法中的 k 不同。

  • 随机选取 k 个样本 xnx_n 来初始化聚类中心 μk\mu_k
  • 分别固定集合和聚类中心,进行交替迭代优化(k­Means 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的学习过程也是对更假设函数进行线性组合的过程,权重为 αm\alpha_m。然后介绍了k近邻算法和k均值聚类算法,以及引入k均值算法的RBFNet。最后用过一个demo演示了其工作流程,并说明了k-Menas算法中k的选取很重要。
在这里插入图片描述

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章