如果计算机可以像孩子们那样学习,机器学习算

2020-03-31 作者:yzc216亚洲城   |   浏览(142)

目前,无监督学习主要用于发现数据中的模式,检测数据中的异常值,而未来可能会产生通用人工智能。

EM算法概述

      (1)数学之美的作者吴军将EM算法称之为上帝的算法,EM算法也是大家公认的机器学习十大经典算法之一。EM是一种专门用于求解参数极大似然估计的迭代算法,具有良好的收敛性和每次迭代都能使似然函数值单调不减的优良性质。在统计机器学习、自然语言处理等领域应用非常广泛,许多统计学算法都是EM算法的体现,比如说隐含马尔科夫模型的训练方法Baum-Welch算法、最大熵模型的训练方法GIS算法、高斯混合模型EM算法、主题模型训练推理的pLSA方法,都是EM算法。甚至连聚类中的k-means算法,看似完全脱离了统计学,其实也可以看作是EM方法的体现。 
      (2)所以EM算法是统计学中非常核心的一个算法,主要是由于统计学中许多计算问题具有比较特殊的结构,可能数值计算的方法,优化理论算法在这里可能不好用,而这时候EM算法总能巧妙地予以解决。

      (3)EM及其extension研究非常多,应用及其广泛。EM算法甚至可以说不仅仅是一个算法,而是一种思想,一个方法论,指导我们遇到某些问题时,如何去找到一个具备EM思想的迭代算法。

尽管受监督机器学习和深度学习取得了成功,但有一种学派认为,无监督学习的潜力更大。受监督学习系统的学习受到其所受训练的限制:即受监督学习系统只能学习它所训练的任务。相比之下,一个无监督的系统理论上可以实现人工通用智能,这意味着具有学习人类能够学习任何任务的能力。然而,这种技术还没有出现。

EM基本思想

      (1)EM是一种专门用于求解参数极大似然估计的迭代算法。首先,提出这个算法,最开始是为有缺失数据条件下的参数估计提供了一个标准的理论框架。所以在最开始所研究的问题中确实存在数据的缺失。 
      (2)但是很快地,就延伸出去了,假设原始数据是完全的【注1】,但由于似然函数的求解十分困难,而额外添加一些数据就能将原来十分复杂的过程转化成一系列简单的似然函数优化问题,于是原始数据人为地变成了不完全数据【例1】。 
      上述两种情形,都可以看作是与缺失数据有关的问题,都会结合EM算法来分析,也难怪有学者称EM算法和缺失数据如同一对孪生姐妹一般总是如影随形。 
      (3)进一步延伸,用于含有隐变量(latent variable)的概率参数模型的最大似然估计或极大后验概率估计。

如果受监督学习的最大问题是标记训练数据的费用,那么无监督学习的最大问题就是它通常不能很好地工作。然而,无监督学习确实有其用途:它有助于减少数据集的维数,发现数据的模式和结构,查找相似对象的组,以及检测数据中的异常值和其他噪声。

E、M过程

      在一般性的问题中,如果有非常多的观测数据,让计算机不断迭代来学习一个模型,EM算法包含E、M两个过程。 
      (E):根据现有的模型,计算各个观测数据输入到模型中的计算结果,这个过程称为期望值计算过程(Expectation),即E过程; 
      (M):将(E)的计算作为输入,重新计算模型参数参数,以最大化(Maximization)某个我们定义的目标函数,即M过程。如此迭代,直到达到我们的预设条件。 
      上述两个过程被成为EM算法。 
图片 1

总的来说,作为探索数据分析的一部分,非常值得采用无监督学习方法来发现模式和聚类,减少数据的维数,发现潜在的特性,并删除异常值。那么,应该继续进行监督学习,还是使用预先训练过的模型进行预测,这取决于你的目标和数据。

实例

什么是无监督学习?

(1)高斯混合模型

      关于GMM(高斯混合模型),可以参考我的另一篇文章:
GMM是理解EM算法比较简单的一个例子。

想想我们的孩子是怎样学习的。作为家长或者老师,当你教孩子们识别狗和猫的时候,并不需要向他们展示每一种狗和猫。他们从一些例子中就能学会,不需要很多解释,自己就能归纳。他们第一次看到一只吉娃娃时可能会错误地叫它Kitty,而你会很快地纠正他们。

(2)K-means聚类:

      (E)根据现有的聚类结果(比如说k个聚类中心点),可以按某个聚类的规则对所有的数据点重新进行划分。 
      (M)根据(E)重新划分的结果,以最大化某个目标函数,得到新的聚类结果,如果没有达到我们预设的条件,就重复(E)。 
      如k-means中,定义的聚类的规则是:最近原则,每个点归到最近距离的中心所在的类(可以理解为计算每个点的期望值)。 
      目标函数,同一类各个点到中心的平均距离d最近,即-d最大;同时不同类中心之间的平均距离D最远。按照使得D,-d最大化(每次迭代比前一次大)的原则,完成M过程,得到新的聚类中心。

孩子们本能地把他们看到的一组东西分为一类。无监督学习的目标之一实际上是让计算机发展出同样的能力。不妨看看DeepMind公司的Alex Graves和Kelly Clancy的博文内容,无监督学习:好奇的学生。

参考文献

      (1)CSDN博客 小硒—代码无疆 《 数据挖掘十大算法—-EM算法(最大期望算法)》 :以一个简单的例子演示了EM算法是如何推导出来的,例子中隐含变量是两个方差相同,均值不同的高斯分布,观测结果是一系列观测值x,例子很简单,适合演示EM过程. 
      (2)吴军《数学之美》第二版 《第27章 再谈文本自动分类问题——期望最大化算法》, 一如既往的,吴军的数学之美是学习一个算法首先推荐学习的一个材料,深入浅出,他往往先讲“道”,后讲或者少讲”术“,强调”术“应该尽量简单可靠的理念。在理解了算法的”道“之后,如果觉得细节还不够丰富,具体算法还无法落地,那么就需要看更多的材料了。 
      (3)K-means聚类算法与EM算法 
      (4) GMM, Gaussian Mixture Model, 高斯混合模型

无监督学习是一种范式,旨在通过奖励代理,在不考虑具体任务的情况下学习它们观察到的数据,从而创建自主智能。换句话说,代理是出于学习的目的而去学习。

出于学习的目的而去学习代理的潜力要远远大于把复杂图片简化为二元决策的系统。劳伦斯伯克利实验室研究人员在数百万份材料科学文摘上运行文本处理算法来预测新热电材料会有什么发现,正如其工作所证明的那样,发现模式而不是执行预先定义的任务将产生令人惊讶的结果,而且结果非常有用。

聚类方法

聚类问题是一个无监督学习问题,要求模型查找有相似数据点的分组。目前在用的聚类算法有很多种,它们的特性往往略有不同。一般来说,聚类算法会查看数据点特征向量之间的度量或者距离函数,然后对彼此接近的特征向量进行分组。如果这些类不重叠,那么聚类算法的效果最好。

分层聚类

分层聚类分析可以是聚集式的,也可以是分离式的。如果幸运的话,你能找到一个展现出可用分类的聚类过程的中间阶段。

聚类过程通0常显示为系统树图。HCA算法往往需要大量的计算时间[O(n3)]和内存[O(n2)] 资源,这些限制使得算法不太适用于相对较小的数据集。

HCA算法可以使用各种度量和链接标准。欧几里得距离和平方欧几里得距离在数值数据中都很常见;而汉明距离和列文斯坦距离则常用于非数值数据。单链接和完全链接也是常见的,这两种方法都可以简化聚类算法。SLINK是少数能保证找到最优解的一种聚类算法。

K均值聚类

K均值聚类问题使用欧几里得距离指标,把n个观测值划分为k个聚类,目的是尽量减小每个聚类内的方差。这是一种矢量量化的方法,对特征学习非常有用。

Lloyd算法是解决该问题最常用的启发式算法,相对高效,但不能保证全局收敛。为了改进这一点,人们经常使用由Forgy或者随机划分方法生成的随机初始聚类中心来多次运行该算法。

K均值假设球形聚类是可分离的,这样均值就向聚类中心收敛,并且还假设数据点的排序无关紧要。这些聚类的大小应该差不多,因此到最近的聚类中心的分配是正确的分配。

求解K均值聚类的启发式算法通常与高斯混合模型的期望值最大化算法相似。

混合模型

混合模型假定观测值的子群体符合一些概率分布,这通常是数值观测值的高斯分布或者非数值数据的分类分布。每个子群体可能有自己的分布参数,例如高斯分布的均值和方差。

期望值最大化是一种最常用的方法,用于确定具有一定数量分量的混合参数。除了EM方法之外,还可以使用马尔可夫链蒙特卡罗法、矩匹配法、奇异值分解谱法和图解法来求解混合模型。

最初的混合模型应用于根据前额与体长的比值来识别河蟹的两个种群。1984年,Karl Pearson使用矩匹配法解决了这个问题。

混合模型一种常见的扩展是把定义混合分量恒等式的潜在变量连接到马尔可夫链,而不是假设它们是独立的、相同分布的随机变量。所得到的模型被称为隐马尔可夫模型,是最常见的一种顺序分层模型。

DBSCAN算法

基于密度的带噪声应用空间聚类算法是一种非参数数据聚类算法,始于1996年。它针对数据库应用进行了优化,可以使用R*树或者其他几何索引结构来加速几何区域的查询。

本质上,DBSCAN聚类核心点在Epsilon距离内具有超过一些最小数量的邻居,将其作为Epsilon距离内没有邻居的异常点而丢弃,而将核心点Epsilon距离内的点添加到该聚类中。DBSCAN是最常见的一种聚类算法,能够发现任意形状的聚类。

OPTICS算法

对数据点排序以识别聚类结构这种算法是在空间数据中寻找基于密度的聚类。OPTICS类似于DBSCAN,但处理的是点密度变化的情况。

DBSCAN和OPTICS在概念上的差异也可用于简单的异常值和噪声检测以及消除。

潜变量模型

潜变量模型是将一组可观测变量与一组潜变量相关联的统计模型。潜变量模型有助于揭示复杂和高维数据中的隐藏结构。

主分量分析

主分量分析这种统计过程使用正交变换,把一组可能相关的数值变量的观测值转换成一组称为主分量的线性不相关变量值。Karl Pearson于1901年发明了PCA。PCA可以通过数据协方差矩阵的特征值分解或者数据矩阵的奇异值分解来实现,通常在初始数据的归一化步骤之后。

奇异值分解

奇异值分解是实数矩阵或者复数矩阵的因式分解。这是线性代数中的一种常用方法,通常使用豪斯霍尔德变换来计算。SVD是求解主分量的一种方法。虽然完全可以从头开始编写SVD,但是在所有线性代数库中都有很好的实现。

矩量法

矩量法利用被观测数据样本的矩量来估计群分布参数。这一方法比较简单,通常采用手工计算,而且一般能实现全局收敛。然而,在统计量较少的情况下,矩量法有时会产生超出参数空间的估算值。矩量法是求解混合模型的一种简便方法。

期望最大化算法

期望最大化算法是一种迭代方法,用于在依赖于未观测到的潜变量的模型中查找参数的最大似然估算值。EM迭代在执行期望步骤和最大化步骤之间交替进行,前者为使用当前参数估算值评估的对数似然的期望值创建函数,后者计算使得在E步骤中找到的预期对数似然值最大化的参数。

EM收敛到最大值或者鞍点,但不一定收敛到全局最大值。可以通过对参数的很多随机初始估算值重复EM过程,或者使用矩量法确定初始估算值,以尽可能找到全局最大值。

应用于高斯混合模型的EM可以用于聚类分析。

无监督神经网络

通常在标签数据上训练神经网络,进行分类或者回归,根据定义,这是受监督机器学习。也可以使用各种无监督的方法,采用无标签数据进行训练。

自动编码器

自动编码器是对输入进行训练的神经网络。本质上,自动编码器是一种前馈网络,充当编解码器,对输入层的输入进行编码,送入神经元数量较少的一个或者多个隐藏层,然后将编码后的表达式解码,送入以拓扑结构作为输入的输出层。

在训练过程中,自动编码器使用反向传播来尽可能减小输入和输出之间的差异。自动编码器已经用于降维、特征学习、去噪、异常检测、图像处理和学习生成模型。

深度信念网络

深度信念网络是自动编码器或者受限的玻尔兹曼机堆栈,能够学习重建其输入。然后,这些层被用作特征检测器。通常使用对比分歧来训练RBN。

DBN已经用于生成和识别图像、视频排序和运动捕获数据。

生成对抗网络

生成对抗网络同时训练两个网络,其生成模型捕获数据分布,而判别模型估计来自训练数据的样本的概率。训练的目的是让发生器尽可能的欺骗鉴别器。

GAN可以用来创建虚构人物的照片,改善天文图像。GAN还被用于放大旧视频游戏的纹理,以用于高分辨率版本的游戏。除了无监督学习,GAN已经成功地应用于游戏的强化学习。

自组织映射

自组织映射定义了从一组给定数据项到规则的、通常是二维网格的有序映射。每一网格节点都与一个模型相关联。数据项将被映射到其模型与数据项最相似的节点,即,在某些指标中与数据项的距离最小。

需要采取一些预防措施来确保映射是稳定的和有序的。并非所有的商业实现都遵循所有的预防措施。

作者:Martin Heller是InfoWorld的特约编辑和审稿人。他曾是一名网络和Windows编程顾问,1986年至2010年间开发过数据库、软件和网站。

编译:Charles

原文网址:-learning-explained.html

责任编辑:周星如

本文由yzc216亚洲城发布于yzc216亚洲城,转载请注明出处:如果计算机可以像孩子们那样学习,机器学习算

关键词: yzc216亚洲城