Pedro Domingos深度解析机器学习五大流派中主算法精髓

    xiaoxiao2021-04-18  194

    本文联合编译:Blake, 高斐

    Pedro Domingos是华盛顿大学计算机科学与工程学教授,也是国际机器学习协会的联合创始人之一。他曾在IST Lisbon获得电子工程和计算科学的硕士学位,在加州大学Irvine分校获得信息与计算科学博士学位。而后在IST作为助理教授工作了两年,于1999年加入华盛顿大学。他还是SIGKDD创新奖获得者(数据科学领域中最高奖项),也是AAAI Fellow之一。雷锋网(公众号:雷锋网)注:本文是Pedro Domingos在Google所作的机器学习演讲内容整理。

    让我们首先从一个简单的问题开始,知识到底是从哪里来的?以前已知的三个来源有

    1. 进化——来自于你的DNA

    2. 经验——来自于你的神经

    3.文化——这些知识来自于与他人交流,读书学习等

    我们日常生活中几乎每件事都是来自于这三个方面的知识,最近出现了第四个来源,那就是计算机。现在有越来越多的知识是来自于计算机(这些知识也是被计算机发现的)。

    计算机来源的出现对于前三个来说是非常大的改变,进化天然就存在于地球上。经验是将我们与动物以及虫类分类开的原因,文化则是使得我们之所以为人的根本。

    这四种中每一种与前者的差别都是数量级的差异,后者也能发现更多的知识。计算机比之前三种要快几个数量级,且能与其他几种实现共存。

    Yann Lecun——Facebook AI研究组主任

    未来世界上大多数知识都将被机器提取,且将留存在机器中。

    所以,机器学习不但对于计算机科学家来说是一个大的改变,对于普通人来说也是他们需要理解的一件事。

    那么计算机到底是如何发现新的知识的呢?

    1. 填补现有知识的空白

    和科学家工作的方式很像,观察——做出假设——通过理论来进行解释——成功(或失败,尝试新的)等

    2.大脑仿真

    世界上最伟大的学习机器就是人的大脑,因此让我们对它进行逆向工程。

    3.模拟进化过程

    进化过程,从某种角度来说甚至比人类的大脑更伟大(因为它造就了你的大脑,你的躯体,还有其他地球上的一切生命),所以来说这个过程值得好好弄清楚并且使用计算机来进行运算。

    4.系统地减少不确定性

    你学到的知识不一定正确,当从数据中获得什么东西时,你对它却不能完全确定。所以使用概率来量化这个不确定性,当你看到更多的证据时,不同的假设的概率能够进一步完善。还可以使用贝叶斯理论来进行这个工作。

    5.注意新旧知识之间的相似性

    通过类比来进行推理,在心理学上有证据说人类经常这样做。当你面临一个情境时,你在以往的经验中寻找相似的情境,然后将这两者连接起来。

    机器学习五大流派(主要算法)

    符号主义——逻辑学、哲学——逆向演绎

    相信填补现有知识的空白的

    联结主义——神经科学——反向传播

    希望从大脑运行方式得到启发

    进化主义——进化生物学——遗传编码

    遗传算法

    贝叶斯派——统计学——概率推理

    行为类推主义——心理学——机器内核(支持向量机) 

    符号主义代表人物:

    Tom Mitchell、Steve Muggleton、Ross Quinlan

     

    逆向演绎

    Tom Mitchell、Steve Muggleton、Ross Quinlan等认为学习是一个逆向演绎的过程,推理是从通用规则推导至特定事实,归纳刚好相反,从特定事实总结出通用准则。我们可以由减法和加法的相反关系来推倒出推理的原理。

    逆向演理示例:

    苏格拉底是人类+人类是凡人= 苏格拉底是凡人

    (但是计算机现在还不能理解自然语言)

    找出图中的生物学家

    其实是那台机器,图中的机器是一名完整的、自动的生物学家,它也是从分子生物学中的DNA、蛋白质、RNA开始学习的。使用逆向演绎来进行假设,设计实验来测试这些假设是否成立(在没有人类的帮助下)。然后它给出结果,提炼假设(或者提出新的假设)。

    联结主义代表人物有:

    Geoff Hinton、Yann Lecun、Yoshua Bengio

    单一神经元

    神经元是一种非常有趣的细胞,看起来像树一样。神经元是具有长突触(轴突)的细胞,它由细胞体和细胞突起构成。在长的轴突上套有一层鞘,组成神经纤维,它的末端的细小分支叫做神经末梢。细胞突起是由细胞体延伸出来的细长部分,又可分为树突和轴突。每个神经元可以有一或多个树突,可以接受刺激并将兴奋传入细胞体。每个神经元只有一个轴突,可以把兴奋从胞体传送到另一个神经元或其他组织,如肌肉或腺体。神经元之间是互相连接的,这样形成了一个大的神经网络。人类所学会的知识几乎都存在神经元之间的突触中,整个学习过程基本上是出现在一个神经元帮助另一个神经元发射信号的过程。

    人工神经元模型

    人工神经元的工作过程:将输入加权组合,

    例如:每个输入都是像素,每个都进行加权组合,当其超过阈值时会得到输出为1的结果,否则得到的就是0的结果。

    再如输入是猫,当所有的加权组合起来超过了阈值,神经元就能识别出来:这是只猫。

    反向传播

    问题一:你如何训练这些神经元的网络?

    神经网络拥有一大堆神经元,需要通过一层一层计算才能得到输出。

    问题二:如果运算中出现错误了怎么办?如何在整个大型、紊乱的神经网络中进行调整,来得出正确的答案?

    当出现错误,神经元本应该发射信号时,实际上却不会。出现问题的神经元可能是整个网络中的任一一个,但是想要找出它来却十分困难。这就是反向传播能解决的问题,当人们在20世纪60年代设想出神经网络时,他们并没有想到这个反向传播的方法,它最终是在19世纪80年代由David Rumelhart等人提出的。

    反向传播的基本理念是十分直观的,举例来说,理想输出应该是1,但是实际输出确是0.2,需要将其增大。

    问题三:怎样调整权重才能让其增大?

    通过后续的神经元向前序神经元进行反馈,一层一层向后直到得到的值接近真实值,这就是反向传播算法(也是深度学习的核心所在)。

    近期以来深度学习被用于各种领域中,证券市场预测、搜索、广告、视频识别、语义识别等。不过对于大众来说,最有名的应该是Google推出的能识别猫的神经网络——在当时,它是有史以来最大型的神经网络(可能超过10亿参数)。

    进化主义代表人物:John Holland、John Koza、Hop Lipson

    进化理论认为反向传播只是在模型中调整权重而已,而没有整个弄明白大脑的真正来源是什么。所以要搞清楚整个进化过程是如何进行的,然后在计算机上模拟同样的过程。

    遗传算法是如何工作的?

    遗传算法(Genetic Algorithm)是模拟达尔文生物进化论的自然选择和遗传学机理的生物进化过程的计算模型,是一种通过模拟自然进化过程搜索最优解的方法。遗传算法是从代表问题可能潜在的解集的一个种群(population)开始的,而一个种群则由经过基因(gene)编码的一定数目的个体(individual)组成。每个个体实际上是染色体(chromosome)带有特征的实体。染色体作为遗传物质的主要载体,即多个基因的集合,其内部表现(即基因型)是某种基因组合,它决定了个体的形状的外部表现,如黑头发的特征是由染色体中控制这一特征的某种基因组合决定的。因此,在一开始需要实现从表现型到基因型的映射即编码工作。不同的人是通过他们的基因进行区分的,但是与人类不同,计算机的构成单元只是比特符(0和1)。遗传算法(Genetic Algorithm)是一类借鉴生物界的进化规律(适者生存,优胜劣汰遗传机制)演化而来的随机化搜索方法。它是由美国的J.Holland教授1975年首先提出,其主要特点是直接对结构对象进行操作,不存在求导和函数连续性的限定;具有内在的隐并行性和更好的全局寻优能力;采用概率化的寻优方法,能自动获取和指导优化的搜索空间,自适应地调整搜索方向,不需要确定的规则。遗传算法的这些性质,已被人们广泛地应用于组合优化、机器学习、信号处理、自适应控制和人工生命等领域。它是现代有关智能计算中的关键技术。

    遗传操作是模拟生物基因遗传的做法。在遗传算法中,通过编码组成初始群体后,遗传操作的任务就是对群体的个体按照它们对环境适应度(适应度评估)施加一定的操作,从而实现优胜劣汰的进化过程。

    遗传编码

    由于仿照基因编码的工作很复杂,我们往往进行简化,如二进制编码,初代种群产生之后,按照适者生存和优胜劣汰的原理,逐代(generation)演化产生出越来越好的近似解,在每一代,根据问题域中个体的适应度(fitness)大小选择(selection)个体,并借助于自然遗传学的遗传算子(genetic operators)进行组合交叉(crossover)和变异(mutation),产生出代表新的解集的种群。这个过程将导致种群像自然进化一样的后生代种群比前代更加适应于环境,末代种群中的最优个体经过解码(decoding),可以作为问题近似最优解。

    当下,遗传算法专家已经不满足于在电脑上进行模拟了,他们将自己的技术也带到了真实世界中——机器人技术。他们最开始用的是普通的机器人模式,当他们训练到足够好时,通过3D打印技术将整个机器人打印出来,打印出来的机器人真的能够进行爬行走动等动作。(hod lipson实验室)虽然这些机器人现在还不够好,但是相比它们刚起步的时候,已经发展的相当迅速了。

    贝叶斯派代表人物:David Heckerman Judea pearl Micheal Jordan

    贝叶斯一直以来都是小众领域,其中Judea pearl是图灵奖获得者。

    贝叶斯理论

    贝叶斯定理是概率论中的一个定理,它跟随机变量的条件概率以及边缘概率分布有关。在有些关于概率的解说中,贝叶斯定理能够告知我们如何利用新证据修改已有的看法。

    其中P(A|B)是在B发生的情况下A发生的可能性。

    在贝叶斯定理中,每个名词都有约定俗成的名称:

    P(A|B)是已知B发生后A的条件概率,也由于得自B的取值而被称作A的后验概率。

    P(B|A)是已知A发生后B的条件概率,也由于得自A的取值而被称作B的后验概率。

    P(A)是A的先验概率或(或边缘概率)。之所以称为"先验"是因为它不考虑任何B方面的因素。

    P(B)是B的先验概率或边缘概率。

    后验概率 = (相似度*先验概率)/标准化常量

    也就是说,后验概率与先验概率和相似度的乘积成正比。

    另外,比例P(B|A)/P(B)也有时被称作标准相似度(standardised likelihood),贝叶斯定理可表述为:

    后验概率 = 标准相似度*先验概率

     贝叶斯学习机制已经被应用于许多领域。例如,自动驾驶车辆的“大脑”中就配有贝叶斯学习机制。因而,在某种程度上,贝叶斯定理在帮助驾驶车辆或者帮助车辆学习如何驾驶方面起到重大作用。

    贝叶斯学习机制应用——垃圾邮件过滤器

    不过,大概人人都熟悉的一项贝叶斯学习机制应用为垃圾邮件过滤器。首个垃圾邮件过滤器是由David Heckerman及其同事共同设计的。他们仅仅运用一个非常建议的贝叶斯学习机,即初级(naive)贝叶斯分类器。下面是该分类器的工作原理:其基于的假设为——一封邮件是垃圾邮件或一封邮件不是垃圾邮件,当然这种假设是在我们检测邮件内容之前提出的。其中蕴含的先验概率为:当你判断一封邮件为垃圾邮件的先验概率为90%,99%,99.999%时,你的假设即为正确的。证明这一假设正确与否的证据在于邮件的真实内容。例如,当邮件内容含有“万艾可”一词,这封邮件将在极大程度上被判定为垃圾邮件;当邮件内容含有大写全拼“FREE”一词,这封邮件将在极大程度上被判定为垃圾邮件;当“FREE”一词后面出现四个感叹号,这封邮件将在极大程度上被判定为垃圾邮件。当邮件署名出现你最好朋友的名字,这将降低这封邮件被判定为垃圾邮件的概率。因而,初级贝叶斯分类器就包含了这些“证据”。在一天结束时,该分类器将计算出一封邮件为垃圾邮件或非垃圾邮件的概率,基于计算得出的概率,分类器决定是否将该邮件过滤掉或将其发送给用户。垃圾邮件过滤器使我们能够有效管理自己的邮箱。

    当下,各种不同的算法被应用于垃圾邮件过滤器。但是,贝叶斯学习机制是首个应用于垃圾过滤的算法,并在其他众多垃圾邮件过滤过滤器中得到应用。

    行为类比推理法

    最后,正如我提到的,行为类比主义者所持的基本观点为:我们所做的一切,所学习的一切,都是通过类比法推理得出的。所谓的类比推理法,即观察我们需要作出决定的新情景和我们已经熟悉的情景之间的相似度。早期行为类比主义的先驱之一为Peter Hart。他证实了,有些事物是与最佳临近算法相连的,这种算法是首个基于相似度的算法,稍后将对此详细讲解。Vladimir Vapnik发明了支持向量机,内核机,成为当时运用最广,最成功的基于相似度学习机。这些都是最原始的类比推理形式。人们,例如Douglas Hofstadter,也致力于研究许多复杂高端的学习机。Douglas Hofstadter不仅是著名的量化研究科学家和计算机科学家,也是“哥德尔,埃舍尔,巴赫”一书的作者。其最著名的书有500页,书中的观点是一切智能都只是类比。他强烈主张类比是主算法。

    最佳邻近算法

    内核机

    理解类比推理法的实例,最佳邻近算法及内核机

    下面是一个用于理解这一观点的一个谜题。假设给出两个国家,由于所给出的是积极的例子和消极的例子,我赋予它们富有想象力的名字“Posistan”和“Negaland”。在图中,我将不给出两个国家的边界线,只给出两个国家的主要城市的位置。Posistan的主要城市用加号标出,Positiveville为首都,Negaland的主要城市也用同样的方式标出。所给出的问题是:倘若我给出主要的城市,你能告诉我边界线的位置吗?当然,你并不能给出确定的答案,因为这些城市并不能决定边界线的位置。但是,这也是机器学习的问题所在。我们得学会概括。

    最佳邻近算法能够为这一问题提供简单的答案。即如果地图上的一点临近某一个积极地城市或任何一个消极城市,那么我们可以假定这一个点位于Posistan。该假设将产生如下效果,即将地图划分为这个城市的邻近城市,如此一来,Posistan将成为这些积极城市邻近区域的联合国家。一个城市的邻近城市由那些离其最近的点构成。因而,便可得到一条锯齿状的边界线。尽管最佳邻近算法是如此简单,但是在学习阶段,这种算法甚至于不能起到任何作用,这一点是令人惊奇的。这个问题中所涉及的一些推理过程不是理想化的,其中之一便是,所得出得这条边界线可能不是最正确的,因为真正的边界线可能更为平滑。第二,倘若你仔细观察这幅地图,你可能舍弃一些城市,但是这一举动不会对最终结果产生太大影响。倘若舍弃这个城市,它将并入其他两个城市,最终的边界线不会发生变化。唯一需要保留的是那些界定边界线的城市,即所谓的“支持向量”,通常,这些向量存在于超空间内。因此,通常情况下,可以舍弃大量的城市,而不会对最终结果产生任何影响。不过,在大数据集中,舍弃大量数据将对最终输出值产生影响。支持向量机,或简称为内核机,将解决这一问题。存在一种学习程序,能够舍弃对界定边界线来讲没有必要的例子,保留必要的例子,如此一来,能够得到一条平滑的边界线。在确定边界线的过程中,支持向量机将使得边界线与其最邻近的城市之间的距离达到最大。这边是支持向量机的工作原理。

    推荐系统

    在深度学习盛行之前,支持向量机可能是应用最强健地学习算法。人们从20世纪50年代便开始运用这种基于类比的学习算法,因此这种学习算法基本上适用于地球上的一切事物。我们都体验过这种学习算法的应用实例,尽管可能没有意识到应用到了基于类比的学习算法。这便是推荐系统。例如,我想弄清楚推荐给你什么类型的电影比较合适,当然民俗电影已经有20年的历史了,也是一种非常简单的电影形式。我将不用电影的类别进行推荐,因为人们的兴趣复杂多变,这在很大程度上将是一个难题。我将采用一种“协同过滤”方法,即找到一些品味兴趣与你相似的五个人,这意味着你和他们一样给某部电影五个星,给另一部电影一个星。倘若他们对一部你没有看过的电影五颗星,我便可以通过类比推理法假定,你也会喜欢那部电影,这样我便可以向你推荐这部电影。这种运用类比推理的“协同过滤”方法取得了极好的成效。事实上,Netflix四分之三的业务得益于这种推荐系统。亚马逊也运用了这种推荐系统,这种系统为其业务的发展带来了三分之一的成效。这些时间以来,人们运用各种学习算法来实现这一推荐系统,但是最佳邻近算法是最早应用于研究这一系统的学习算法,也是最优的算法之一。

    机器学习五大流派,其中存在的问题及解决方案

    再返回来,我们之前讲到机器学习的五大流派,我们发现每个流派都存在各自能够更好解决的一个问题。每一个流派都有一种特定的主算法,这种算法可以解决出现的问题。例如,只有象征主义者能够解决的问题是学习那些可以用不同形式组构的知识,他们用逆向推理的方法学习这些知识。联结主义者运用反向传播算法来解决信用分配问题。进化论者解决学习结构问题。联结主义者仅从一个固定的结构开始,进而调整权重值。进化论者知道如何运用遗传程序提出一种学习结构。贝叶斯学习机制均是研究不确定的事物,他们知道如何就处理所有不确定的事物,他们参考大量数据便可以知道如何提高假说发生的概率。他们使用概率推理法,这种方法在算法上是非常有效的,能够将贝叶斯原理应用于超大的假说集中。最终,行为类比主义者运用事物之间的相似度进行推理。他们能够从一两个例子中概括推理。当时最好的类比算法当属核心机。但是,我想指出的是,因为每一个出现的问题都是真式且重要的,没有一种单一算法能够解决这些问题。我们真正需要的是一种能够同时解决这五个问题的单一算法。这样的话, 我们便需要一种机器学习大统一理论。事实上,我们已经朝向这个目标做出了很多努力,并取得了一定成就,但是我们仍然任重道远。

    如何将五种算法化零为整

    下面我将给大家呈现我们当前所处的研究状态。我们拥有五种算法或五种类型的学习方法,关键在于如何将其统一起来。看起来,这是一个难题,甚至有人声称,这是一个难以实现的目标。这一目标之所以看似难以企及是因为这五种算法之间看起来是不同的。但是,仔细观察,这五种算法之间还是存在想通之处,它们都由三个相同成分构成,即表征,评估,优化。

    我们将分析每一个成分具体指代什么,以实现五种算法的统一。表征指学习者如何表示正在学习的知识,模型和编程。学习者将用于编写算法的编程语言不是Java,或c++,或类似的任何语言,而应当是一介逻辑语言。因此,我们的首要任务是统一这些表征方法。最自然的做法是运用象征主义者的表征方法,这里我们运用的是一阶逻辑的变体形式,而贝叶斯用到的表征方法是图像模型。这些表征方法已经得到极其普遍的运用。倘若能够将这两种表征方法相结合,我们可以用来表达任何一种事物。例如,任何一种计算机编程都可以运用一阶逻辑来表达。任何用于处理不确定事物或权衡证据的方法都可以用图像模型来表征。现在我们确实已经实现将这两种表征方法结合在一起的目标。事实上,我们已经发展形成各种形式的概率逻辑。应用最广泛的是Markov 逻辑网络,该网络实际上是逻辑网络和Markov网络的结合体。该网络是一种非常简单的模型,由公式和一阶逻辑开始,然后赋予每一个规则于权重值。

    接下来,任何一种学习算法的组成成分是评估。评估是一个分数函数,这个函数会显示一个候选模型的性能优劣。例如,该候选模型是否与数据,与我的目的一致。事实上,每一种学习问题在于能否找到实现评估函数值最大化的编程。一个比较明显的候选模型是贝叶斯使用的后验概率。通常来讲,评估不应当成为算法的一部分,评估结果应当由用户提供,用户来决定学习者应当优化的内容。

    最后一个组成成分是优化,即找到实现函数值最大化的模型。因而,这里便有遗传编程与反向传播算法的自然结合,即去发现我们能够运用遗传编程的公式。在一阶逻辑中,每一个公式是一个树,我们可以穿越这些树,应用遗传过程来提出能够更好的公式。我拥有一个涉及到许多不同公式,事实,和不同步骤的推理链,所有的公式,事实,和不同的步骤都被赋予一定的权重值,我可以运用反向传播算法来学习这些权重。我们在这一块儿做出很多努力,但是还未成功。但是,有些人认为实现将五种算法统一为一种单一算法这一目标,仅仅是时间问题。我却不是特别乐观。我个人认为,即使我们成功地实现这五种范式的统一,在此过程中仍会出现一些主要思想的丢失,还可能存在我们尚未拥有的想法,没有了这些想法,我们将不能拥有一种真正意义上的全面的学习机制。

    浅论主算法的未来影响

    我将针对主算法的未来影响稍作讨论,以此结束我们今天的演讲。在这里我提出四个术语,第一个术语为家庭机器人。我们都希望拥有一台家庭机器人能够为我们做饭,铺床,等等便利服务,但是,为何至今我们都没能实现这一目标?首先,要实现这一目标不能离开机器学习,现今还没有任何一种程序能够使得机器人做任何其想要做的一切事物。其次,我们现有的学习算法还有待优化。因为家庭机器人在一天的工作任务中将会遇到所有这五种问题,这将要求其能够解决所有的问题。因此,在主算法发展过程中,我们还需多做努力。

    第二个术语为网络大脑。每一个人, 包括谷歌在内,都试图将网络转变为一个知识库。我希望问问题并得到答案,而非查询关键字再返回到网页。但是,这便要求网络中所有的知识都要以计算机能够推理的方式表征出来,例如,一阶逻辑。另一方面,网络中到处充斥着冲突,噪音,差异,其他等等因素,因此我需要应用概率来解决这一问题。因而,需要统一这五种学习算法,以便能够从网络中提取知识。

    第三个术语为癌症治疗。关于人体健康,治疗癌症可能是最重要的。可是,为什么我们还未找到治疗癌症的有效方法?问题在于癌症不是一种单一的疾病,每个人的癌症病症都是不同的。事实上,病人病情发展过程中,同一种癌症都会发生变异,因此,一种药物是不太可能治愈所有的癌症。癌症的一种真正治疗方法,或至少越来越多的癌症研究者认为,将依靠一种学习算法项目,这种项目能够包含病人的基因组信息,病史,肿瘤细胞的变异,以此来预测使用哪一种药物能够杀死这种肿瘤细胞,而不会对病人的正常细胞产生危害,或者使用一系列药物,或多种药物联合治疗,或者针对某一病人设计特定的药物。在某种程度上,这与向人们推荐书目或电影的推荐系统相似,只不过,这里需要推荐一种药物。当然,这里涉及的问题比如何推荐一种药物,书目,电影更为复杂,你要理解细胞的工作原理,基因与及细胞形成的蛋白质是如何交互作用的。好的消息是,我们拥有大量的数据来实现这一目标,如微阵列,序列等等。但是,基于我们现有的学习算法,我们还无法实现这一目标,而,拥有主算法,这一目标将得以实现。

    第四个术语为360度推荐系统。就推荐系统而言,作为一名消费者,我希望能够有一种关于我自己的一个完备的360度推荐模型,这种模型能够学习我产生的所有数据,这一模型比任何小型模型都更了解我,因而能够为我提供更好地推荐服务,不仅能够推荐一些细枝末节的事物,也能够为我推荐工作,房子,专业等。拥有这样一个推荐系统,好比拥有一个生命中的挚友,能够为你生活中的每一步提供宝贵意见。为了达到这一目标,我们不仅仅需要不断增长的数据,还需要强大的算法来学习人类这一丰富多彩的模型。

    本文作者:高婓

    本文转自雷锋网禁止二次转载,原文链接

    相关资源:七夕情人节表白HTML源码(两款)

    最新回复(0)