介绍
第一部分 参数方法——类密度模型参数估计
第二部分 监督学习——分类(基于似然的方法)
第三部分 监督学习——分类(基于判别式的方法)(参数方法——判别式参数估计)
第四部分 监督学习——回归
第五部分 监督学习——关联规则
第六部分 维度规约(特征的提取和组合)
第七部分 半参数方法
第八部分 非监督学习——聚类
第九部分 非参数方法——密度估计
第十部分 非参数方法——决策树实现的判别式
第十一部分 多层感知器——非参数估计器
第十二部分 局部模型
第十三部分 支持向量机与核机器
第十四部分 隐马尔科夫模型
第十五部分 参数的贝叶斯估计
第十六部分 集成学习——组合多学习器
第十七部分 增强学习
第十八部分 机器学习实验
第十九部分 特征工程与数据预处理
局部模型的思想,在介绍非参数估计、多层感知器和维度规约章节都有体现。非参数方法不对全局模型拟合数据,而是从相邻的实例获取局部模型。多层感知器中,对于具有局部结构的问题,只考虑局部临近输入的相关性构建网络(CNN)。维度规约中,对非线性空间的局部采用线性近似并构建相似度度量,根据空间中的实例相似度进行映射,得到新的空间(Isomap,LLE等)。
在函数近似上,也同样可以运用局部思想,将输入空间划分为局部小片,并在每个局部小片分别学习拟合。
本节介绍通过将输入空间聚类为局部小片,再在此基础上进行监督学习,来学习回归或分类。
竞争学习
竞争学习是用于在线聚类的神经网络方法。
与聚类的统计学方法(非监督学习——聚类)相比,竞争学习同样像高斯混合模型一样,假设数据存在k个分组(蔟)。但是竞争学习的方法不是概率的方法,不将参数模型建立在数据源上。并且起学习方法是在线的。
之所以叫做竞争学习,是因为假设的k个分组,更确切的说是代表这些分组的单元为成为代表实例的单元互相竞争。(与混合模型 按权重对各分支求和的思想不同)
简单竞争网络
在《非监督学习——聚类》中,提及了k均值聚类的在线版本,在选择最近中心的过程就是竞争的过程。其在线的重构误差为。
对该重构误差使用梯度下降,得到每个实例的更新规则:
由的定义,可以看出,只有在竞争中获胜的所对应的的类才更新。
简单竞争网络可以用单层递归网络实现,输入层,输出层为,感知器为(这里使用的点积只用来代表一种相似性度量,实际上竞争网络并没有网络的输出误差,来梯度下降那样进行,而是使用(a)进行更新。除非当具有相同的范数时,最大点积——也就是最大化余弦相似度 对应的单元与最小欧氏距离对应的单元相同,可参见《监督学习——分类(基于似然的方法)》中多维输入部分)。
为了选择最大的将其输出为1,其余的,可以用单层递归网络实现侧抑制。在输出层,每个输出节点到自身有一个兴奋递归连接(正权重),到其他输出节点有一个抑制递归连接(负权重)。使用适当的非线性激活函数和输出层的正负递归权重(一般递归权重是固定不更新的),网络在一些迭代后会是其中一个节点输出为1,其他为0。
通常,竞争学习网络(包括复杂的拓展网络)会对权重进行归一化,。
在竞争网络中有一个问题是需要避免死中心,就是那些因为被初始化在离任何输入都很远而从来未能赢得竞争的中心。有很多方法来避免这一问题:
- 使用输入实例来初始化,保证中心从有数据的地方开始。
- 使用领导者聚类算法不断添加单元,而不是从一开始就初始化一个位置,如自适应共鸣理论。
- 更新时不仅更竞争获胜的中心,也更新某些其他中心像输入移动,逐渐将所有移向输入空间中存在输入的部分。如。自组织映射。
- 引进conscien机制,给赢得竞争的单元 增加惩罚,使其不容易取胜。
自适应共鸣理论
前面所介绍的内容,在计算参数前,都确定了分组数k。但确定分组可以采用自适应的方法,从一个分组开始,增量地在需要的时候添加分组。
给定一个输入,所有的输出单元都计算它们的值(相似度量)。选择具有最大相似度单元。自适应共鸣理论的方法,会将与输入的相似度与一个预定的阈值比较。如果的相似度大于阈值,则对更新。如果相似度达不到阈值,则会添加一个以当前输入初始化的新的输出单元。
记阈值为,采用欧氏距离表示相似性度量,计算具有最大相似度的输出单元为,更新规则变为
设置阈值,相当于实例距离其所属的类中心距离最大为。也就是每个实例所容许的最大重构误差为。当输入在现有输出节点上的重构误差大于时,就添加新的输出节点。
自组织映射
避免死中心的另一种方法是每次不只更新获胜节点,也更新其他节点,使得无法获胜的节点也得到了更新,向输入靠拢。
Kohonen自组织映射(SOM)学习输入空间的一个低维离散化表示,通常是二维空间。前面介绍的聚类,是把输入空间映射到一维空间。自组织映射初始化的输出单元,定义了单元的邻域(定义的邻域不一定在更新过程中始终保持在空间上是最近邻的,而是在初始定义的输出单元网络结构中是最近邻的。),形成一个(二维)网格。
对输入,当是获胜的最近中心时,除了更新,也更新它的邻域 。如指定更新邻域的大小为2,则,,,也更新。但随着邻域内距离的增大,更新程度减小。
,其中是邻域函数。时,,并随着增大而减小。例如定义它为高斯函数。
由于邻域单元也向输入移动,避免了远离输入空间的死单元,使它们可以靠近输入空间并最终有机会赢得竞争。
径向基函数——局部表示
对输入实例的反应或表示,有两种类型。在使用点积的多层感知器中,每一个隐藏单元定义了一个超平面。每个超平面将输入空间一分为二,所以对很多隐藏单元,给定输入都有非零输出。经过非线性激活函数,以Sigmoid函数为例,隐藏层单元输出在0~1之间的值。这种有许多隐藏单元同时被激活的情况,称作分布表示。(《多层感知器》一节中讨论的内容都属于分布表示,而竞争模型中,则考虑局部性)
还有一种局部表示,对给定的输入,只有一个或少数几个单元是活跃的(竞争网络,每层只有少数获胜单元有有效输出)。
这种局部性意味着有一个距离函数,度量给定输入和(隐藏)单元h的位置的相似度。如通常去欧氏距离反应距离,随两者距离增大,相似性减小。常用的就是高斯核函数(不是高斯函数一样的密度函数,只是有相同的钟形结构)。
在神经网络中,使用高斯核函数来代替Sigmoid函数作隐藏单元的激活函数。这定义了一个径向对称的基函数,和表示局部单元 h 的中心和展宽。(此时输出和Sigmoid等非线性函数一样都是一维的,对于有复杂输出需求的模型,可以采用椭圆——再不用维上有不同的展宽、马氏距离这样的函数。)
局部基函数的基本思想是:
竞争学习后,在输入数据中找到一些实例的分组或簇。对每个簇,定义一个基函数。当实例属于 h 时不为零。
确定径向基函数参数的方式:
使用竞争学习找到中心。取展宽的方式,可以在求出簇中心后,取簇中最远实例到中心距离的一半。
或不使用竞争学习,通过半参数方法混合模型,求簇均值和方差作为,。后面会看到很多模型中对,的更新规则。
- 软编码
定义了一个新的H维空间,由此形成了输入的新表示。相比于前面介绍竞争学习中的为0/1的硬编码,用(0,1)中的值对点到簇中心的距离编码,携带了更多信息。
(类似地,在分布表示中,使用Sigmoid函数使用实例到超平面的距离编码。比超平面正负侧的硬编码携带了更多信息。)
监督学习
在使用径向基函数得到局部表示后,将其作为输入,进行监督学习。如果使用感知器,则有,其中H是基函数的个数。
这种结构称为径向基函数(RBF)网络。通常,不使用多于一个高斯单元层的RBF网络。H是复杂度参数,与多层感知器的隐藏单元数一样。(对应于非监督学习聚类中的k个中心。)
在这里可以看出使用软编码的好处,如果使用硬编码,那么在区域内是同一个值,那么在区域间边界处,会形成不连续的分段常量近似。而使用软编码,在区域间过渡取加权平均,能导致光滑的近似。
这种结构就像《非参数方法——密度估计》中的核估计Parzen窗口一样。只不过在Parzen窗口方法中只有一个核函数,而在这里对指定H个单元,各自有一个高斯核函数。
H就是复杂度参数,使用较多的单元,可以更好地近似数据,但更复杂的模型可能导致过拟合额;单元过少可能欠拟合。
通过竞争学习确定和,则就是固定的,对任意对输入可以确定的由局部表示给出。在此基础上,通过跟进监督学习,可以批处理地或在线地训练。而为什么要采用局部表示来代替作为监督学习的输入,后面给出解释。
当固定了和,第二层的监督学习是一个线性模型,这等价于取高斯核的支持向量机。
考虑监督学习这一层的工作。对于回归,监督学习的任务就是一个以为输入的线性的归回模型(b),可以解析地求解或更新,就像《监督学习——回归》中一样,通过对误差平方和求导来解析的计算。
对于分类,则像《监督学习——分类(基于判别式的方法)》中介绍的内容一样。注意在这里的分类工作,因为给定的缘故,不再可能使用基于似然的方法。此外,强调一点,在竞争学习过程作用实现的聚类属于非监督的任务,与分类任务不同。竞争学习一层的工作是实现对输入的局部表示,尽管看起来聚类的过程,通过把输入归入到最近的局部单元 h 。但实际上x是有类标号的,在监督过程中才予以使用。
这样实现的是一个两阶段过程:首先使用非监督学习确定中心,然后在其上构建一个监督层。这称作混合学习。
RBF网络可以看做神经网络,但不同于多层感知器 。因为RBF中第一层和第二层实现了不同的函数。
当然,不采用混合学习方式,即不采用竞争学习找到局部中心,也可以直接用监督方式学习包括,在内的所有参数。这类似于多层传感器,以为隐藏单元,,是第一层权重,是第二层权重。
但问题就在于,这样的方式学习两层网络速度更慢。而采用混合学习方式,每次训练一层,因此更快。
- 考虑具有多输出的回归,批处理的误差平方和为
,其中
使用梯度下降,得到第二层权重的更新规则:。
由于是通过,定义的高斯核函数,通常重叠不多。在每次迭代中,只有少量的非零,且只有它们对应的被更新。这就是为什么RBF网络学习更快,采用分布表示的多层感知器学习更快的原因。
类似地,第一层权重的更新规则为:
- 对于分类,有软最大函数,
互熵误差为
规范化基函数
在(b)中,对输入,可能所有的都是0。在某些而应用中,可能希望有一个规范化的步骤,确保局部单元值的和为1,从而确保对任意输入,至少存在一个非零单元:
输出(b)变为加权和
竞争的基函数
在RBF网络中,输出有局部单元的加权和给出。尽管单元是局部的,但重要的还是最终的加权和,希望它与训练预期输出尽可能接近。
如对于回归,最小化,这基于概率模型
其中(非规范化的)或(规范化的)。不论是非规范化的基函数,还是规范化的,我们都可以把模型看做协同模型,因为多个单元通过权重协同构成最终的每一维输出。
而竞争的基函数方法,相比于协同模型,只有胜利的分支节点产生输出,不同的输出单元由不同的分支节点决定。假定输出取自混合模型
是混合比例,是分支概率。注意这两项都依赖于输入。(d)与(c)的不同在于输入的输出按通过分支构成。
也就是说,对给定输入以感知器为例,在协同模型中,竞争性在输入层到隐藏层之间的非监督聚类中。就像本节前面竞争学习部分所介绍的那样。
而在竞争的基函数模型中,除了输入层到隐藏层之间的竞争学习网络。在隐藏层到输出层,通过混合模型的簇概率,构成输出的基函数之间也存在竞争。只有选中的分支才构成输出。
混合比例为
通常假定对所有分支都相等并忽略它们。这与规范化基函数中的有着相同的形式。
- 先考虑回归问题。
混合模型的分支是高斯的(输出各维度间没有相关性,相当于协方差矩阵是对角型的多元高斯分布。并且在这里假设各维度i 上的有相同的方差,方程中可以消掉)。
使用(d)的混合模型,对数似然是
其中是分支对输出 的常量拟合,是分支对输出的高斯分布的均值。并且不依赖于,(而在竞争的混合专家模型中,局部拟合可以是的线性函数,见后文。)需要对均值进行更新来最大化似然。
采用梯度上升来最大化对数似然(e),有。其中
可以看出是给定输入非监督的单元的后验概率;是给定输入和预期输出的监督的单元的后验概率,相比多考虑了误差。
对类中心和展宽的更新为:
在协同模型中,并不强求单元是局部的;而在竞争情况下,为了提高似然,单元必须必须局部的,单元之间更加分离,具有更小的展宽。
- 对于分类,每个分支本身是多项式分布的,所以对数似然是
其中每个节点对输出的概率近似使用软最大指示类的形式,同样与无关。
使用梯度上升最大化似然,
混合专家模型
在RBF中,每个局部小片,都给出一个常量拟合,在通过径向基函数()一起给出具体输出。对任意输入,如果有一个()为1,其余为0,那么得到一个分段的常量拟合。对输出i,局部h 的拟合输出由给出。
由泰勒展开式,如果x 足够接近 a,并且接近0,则常量拟合很好。如果不是这样,则需要将空间划分成大量局部小片,保证局部内平坦,才能通过局部的常量拟合得到较好的整体拟合。这对于高维度输入而言会造成维度灾难。
一个可供选择的方法是考虑泰勒展开的下一项(线性项),使用分段线性近似代替分段常量拟合。这就是混合专家模型。令,这与前面介绍的径向基函数方法一样,但其中局部h 对 输出i 的拟合是线性函数,而不是常量。
相比于RBF网络中,是中间层到输出层的权重,在这里,这层权重被看做是线性模型,并称这些权重为专家。而作为选择局部单元的控制,可以看做是门控单元。混合专家模型的思想就是通过门控单元将输入指派到对应的专家处。
使用混合专家模型是RBF网络的推广。这里取规范化的基函数作为单元活性
通过将输入指派到对应专家,实现了分类。这样来看,任何分类器都可以用于给出,如使用软最大方式
作为推广,自然同上面一样,根据构成输出的方式不同(加权和和竞争性的混合高斯模型),分为协同的和竞争的专家模型。
协同专家模型
在协同情况下,输出。对于回归,同协同的径向基函数方法一样,误差函数是。
对专家权重参数的更新为,相比于协同的径向基函数方法对权重的更新,这里的更新是输入的函数。
对于分类,输出,其中。
使用梯度下降最小化互熵。竞争专家模型
与竞争RBF一样,回归问题的对数似然为,
其中。
对于分类,也有一样的对数似然
这里
根据门控单元不同,如选择(f)或(g),有具体的更新规则。