Author Archive

机器学习领域,史上引用次数最多的论文 Top 10

近40年来机器学习领域产生了数以万计的论文,并以每年上万篇的速度增长。但真正能够称为经典、经受住历史检验、能投入实际应用的并不多。本文整理了机器学习历史上出现的经典论文,按照被引用次数对它们进行了排序,分为top10,被引用次数超过2万,被引用次数超过1万,未来有潜力的文章4部分。

元学习 – Meta learning

一文看懂元学习

元学习是人工智能领域里一个较新的方向,被认为是实现通用人工智能的关键。

为什么他如此重要?如何快速简单的理解元学习的精髓?本文将详细给大家介绍一下元学习。

 

为什幺元学习很重要?

元学习的核心是具备自学能力。那为什么需要自学能力?

机器学习:简单的机器学习很难处理复杂问题;

深度学习:深度学习相比机器学习来说,在复杂问题上的效果更好,但是面对互相影响的问题或者连续问题时就无从下手了,智能处理一对一的映射问题;

强化学习:依赖海量的训练,并且需要精准的奖励。成本较高且比较复杂。

元学习:具备自学能力,能够充分利用过去的经验来指导未来的任务。被认为是实现通用人工智能的关键。

 

什么是元学习?

元学习的思想是学习“学习(训练)”过程。

元学习有好几种实现方法,不过本文谈到的两种“学习‘学习’过程”的方法和上文介绍的方式很类似。 在我们的训练过程中,具体而言,可以学习到两点:

元学习主要学习2点:神经网络初始参数、优化器参数

  1. 神经网络的初始参数(图中的蓝色■);
  2. 优化器的参数(粉色的★)。

我会介绍将这两点结合的情况,不过这里的每一点本身也非常有趣,而且可获得到简化、加速以及一些不错的理论结果。 现在,我们有两个部分需要训练:

  1. 用“模型(M)”这个词来指代我们之前的神经网络,现在也可以将其理解为一个低级网络。有时,人们也会用“优化对象(optimizee)”或者“学习器(learner)”来称呼它。该模型的权重在图中用 ■ 表示。
  2. 用“优化器(O)”或者“元学习器”来指代用于更新低级网络(即上述模型)权重的高级模型。优化器的权重在图中用 ★ 表示。

查看详情

 

维基百科

维基百科版本

元学习最初由Donald B. Maudsley(1979)描述为“学习者意识到并且越来越多地控制他们已经内化的感知,探究,学习和成长习惯的过程”。Maudsely将他的理论的概念基础设定为在假设,结构,变革过程和促进的标题下合成。阐述了五个原则以促进元学习。学习者必须:

  1. 有一个理论,无论多么原始;
  2. 在安全的支持性社会和物质环境中工作;
  3. 发现其规则和假设;
  4. 重新与环境中的现实信息联系起来;
  5. 通过改变其规则/假设来重组自己。

John Biggs(1985)后来使用元学习的概念来描述“意识到并控制自己的学习”的状态。您可以将元学习定义为对学习本身现象的认识和理解,而不是学科知识。这个定义隐含着学习者对学习环境的感知,包括了解学科的期望是什么,更简单地说,是对特定学习任务的要求。

在这种背景下,元学习取决于学习者的学习观念,认识论信念,学习过程和学术技能,在此总结为一种学习方法。具有高水平元学习意识的学生能够评估她/他的学习方法的有效性,并根据学习任务的要求对其进行管理。相反,元学习意识低的学生将无法反思她/他的学习方法或学习任务集的性质。因此,当学习变得更加困难和苛刻时,他/她将无法成功适应。

查看详情

 

 

遗传算法(Genetic algorithm | GA)

小白版本

遗传算法借鉴了生物学中的遗传原理,是模拟达尔文生物进化论的自然选择遗传学机理的生物进化过程的计算模型,是一种通过模拟自然进化过程搜索最优解的方法。

其本质是一种高效、并行、全局搜索的方法,能在搜索过程中自动获取和积累有关搜索空间的知识,并自适应地控制搜索过程以求得最佳解。

由于整个逻辑比较复杂,可以看看《超详细的遗传算法(Genetic Algorithm)解析

 

百度百科版本

遗传算法(Genetic Algorithm)是模拟达尔文生物进化论的自然选择和遗传学机理的生物进化过程的计算模型,是一种通过模拟自然进化过程搜索最优解的方法。遗传算法是从代表问题可能潜在的解集的一个种群(population)开始的,而一个种群则由经过基因(gene)编码的一定数目的个体(individual)组成。

每个个体实际上是染色体(chromosome)带有特征的实体。染色体作为遗传物质的主要载体,即多个基因的集合,其内部表现(即基因型)是某种基因组合,它决定了个体的形状的外部表现,如黑头发的特征是由染色体中控制这一特征的某种基因组合决定的。因此,在一开始需要实现从表现型到基因型的映射即编码工作。

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

查看详情

 

维基百科版本

在计算机科学和运筹学研究中,遗传算法(GA)是一种受自然选择过程启发的元启发式,属于更大类的进化算法(EA)。遗传算法通常用于生成高质量的优化和搜索问题的解决方案,依靠生物启发的运算符,如变异,交叉和选择。John Holland在1960年基于达尔文进化论的概念引入了遗传算法; 之后,他的学生戈德堡于1989年延长了GA。

查看详情

 

2019年深度学习的十大预测

革命性进展应该分阶段发生,我们今天遇到的是实现Interventional level的主要障碍。这并不意味着我们不能取得任何进展,而是在目前的成熟度水平中有许多悬而未决的成果,而这些成果已经准备好进行开发,DL在2019年的进展将主要围绕这一务实的认识。

Facebook利用跨字嵌入实现无监督机器翻译

本文转载自公众号 微软研究院AI头条,原文地址

现有的机器翻译需要大量的翻译文本做训练样本,这使得机器翻译只在一小部分样本数量充足的语言上表现良好,但如何在没有源翻译的情况下训练机器翻译模型,即无监督训练,成为了目前热门的研究话题。Facebook在EMNLP 2018上的论文《Phrase-Based & Neural Unsupervised Machine Translation》利用跨字嵌入(Cross Word Embedding),提升了高达11 BLEU,那么Facebook是如何实现的呢?

第一步是让系统学习双语词典。系统首先为每种语言中的每个单词训练词嵌入,训练词嵌入通过上下文来预测给定单词周围的单词。不同语言的词嵌入具有相似的邻域结构,因此可以通过对抗训练等方法让系统学习旋转变换一种语言的词嵌入,以匹配另一种语言的词嵌入。基于这些信息,就可以得到一个相对准确的双语词典,并基本可以实现逐字翻译。在得到语言模型和初始的逐字翻译模型之后,就可以构建翻译系统的早期版本。

然后将系统翻译出的语句作为标注过的真实数据进行处理,训练反向机器翻译系统,得到一个更加流畅和语法正确的语言模型,并将反向翻译中人工生成的平行句子与该语言模型提供的校正相结合,以此来训练这个翻译系统。

通过对系统的训练,形成了反向翻译的数据集,从而改进原有的机器翻译系统。随着一个系统得到改进,可以使用它以迭代方式在相反方向上为系统生成训练数据,并根据需要进行多次迭代。

逐字嵌入初始化、语言建模和反向翻译是无监督机器翻译的三个重要原则。将基于这些原理得到的翻译系统应用于无监督的神经模型和基于计数的统计模型,从训练好的神经模型开始,使用基于短语模型的其它反向翻译句子对其进行训练,最终得到了一个既流畅,准确率又高的模型。

对于无监督机器翻译,微软亚洲研究院自然语言计算组也进行了探索。研究人员利用后验正则(Posterior Regularization)的方式将SMT(统计机器翻译)引入到无监督NMT的训练过程中,并通过EM过程交替优化SMT和NMT模型,使得无监督NMT迭代过程中的噪音能够被有效去除,同时NMT模型也弥补了SMT模型在句子流畅性方面的不足。相关论文《Unsupervised Neural Machine Translation with SMT as Posterior Regularization》已被AAAI 2019接收。

预训练(Pre-train)

微软研究院版本

目前神经网络在进行训练的时候基本都是基于后向传播(Back Propagation,BP)算法,通过对网络模型参数进行随机初始化,然后利用优化算法优化模型参数。但是在标注数据很少的情况下,通过神经网络训练出的模型往往精度有限,“预训练”则能够很好地解决这个问题,并且对一词多义进行建模。

预训练是通过大量无标注的语言文本进行语言模型的训练,得到一套模型参数,利用这套参数对模型进行初始化,再根据具体任务在现有语言模型的基础上进行精调。预训练的方法在自然语言处理的分类和标记任务中,都被证明拥有更好的效果。目前,热门的预训练方法主要有三个:ELMo,OpenAI GPT和BERT

在2018年初,艾伦人工智能研究所和华盛顿大学的研究人员在题为《Deep contextualized word representations》一文中提出了ELMo。相较于传统的使用词嵌入(Word embedding)对词语进行表示,得到每个词唯一固定的词向量,ELMo 利用预训练好的双向语言模型,根据具体输入从该语言模型中可以得到在文本中该词语的表示。在进行有监督的 NLP 任务时,可以将 ELMo 直接当做特征拼接到具体任务模型的词向量输入或者是模型的最高层表示上。

在ELMo的基础之上,OpenAI的研究人员在《Improving Language Understanding by Generative Pre-Training》提出了OpenAI GPT。与ELMo为每一个词语提供一个显式的词向量不同,OpenAI GPT能够学习一个通用的表示,使其能够在大量任务上进行应用。在处理具体任务时,OpenAI GPT 不需要再重新对任务构建新的模型结构,而是直接在 Transformer 这个语言模型上的最后一层接上 softmax 作为任务输出层,再对这整个模型进行微调。

ELMo和OpenAI GPT这两种预训练语言表示方法都是使用单向的语言模型来学习语言表示,而Google在提出的BERT则实现了双向学习,并得到了更好的训练效果。具体而言,BERT使用Transformer的编码器作为语言模型,并在语言模型训练时提出了两个新的目标:MLM(Masked Language Model)和句子预测。MLM是指在输入的词序列中,随机的挡上 15% 的词,并遮挡部分的词语进行双向预测。为了让模型能够学习到句子间关系,研究人员提出了让模型对即将出现的句子进行预测:对连续句子的正误进行二元分类,再对其取和求似然。

预训练
预训练

上面内容转载自公众号 微软研究院AI头条,原文地址

 

百度百科版本

无监督预训练是用来训练的数据不包含输出目标,需要学习算法自动学习到一些有价值的信息。

查看详情

 

相关资源(1)