本文翻译来自Carlos E. Perez Deep Teaching: The Sexiest Job of the Future

    微软研究中心最近发表了一篇论文(机器教学:构建机器学习系统的新范式),探讨了机器学习的最终演变。本文对机器学习和机器教学作了明确的区分。作者解释说,机器学习是在研究机构中实践的,机器教学是最终将被工程机构实践的。教学视角不仅不同于学习视角,而且概念的分离也有明显的优势,这是先验的:

    1*9Ou7jF04KoE8d5w9bgdmQQ.png

    本文最后提出了机器教学要取得进展所需要的三个关键发展:

    • 要真正满足这一要求,就必须推进机械教学学科建设。这一转变与20世纪80年代和90年代编程领域的转变是一样的,这一转变带来了大量的好处。本文从编程史上的三个教训中得到启示。
    • 第一个是问题分解和模块化,这使得编程可以随着复杂性而扩展。
    • 第二个教训是编程语言的标准化:一次编写,到处运行。
    • 最后一堂课是过程规程,它包括关注点的分离,以及标准工具和库的构建。

    如果你一直在积极关注这个博客,那么现在应该很明显,它有一个独特的软件工程的转变,以应用深度学习技术。我们每天都被大量惊人的发现淹没在深度学习中。为了避免不堪重负,我们特别寻求能够加速开发深度学习解决方案的各种发现。正如上面提到的,这种加速的开发很可能反映了软件工程的历史。
    在任何一门新的科学或技术中,作为人类,我们试图将新的概念构建成一个更为熟悉的框架。深度学习是许多专家难以掌握的新科学之一。这是因为我们不仅不了解它是如何工作的,而且也不了解技术的局限性。我们对这个领域的集体理论理解还处于初级阶段。大多数进展都是由实验而非理论推动的。
    软件工程(SE)实践是在过去几十年中发展起来的,其主要目标是控制复杂性。SE是由“控制推理”的目标驱动的。也就是说,SE的实践侧重于信息边界、关注点分离、模块化和组合,以构建我们可以在日益复杂的环境中发展的系统。软件工程理解一个系统的不同组件是如何以不同的速度随时间演化的。松耦合的原理就是实现这一点的原因,我之前在深入学习的背景下写过这一点。
    谷歌的彼得诺维格(Peter Norvig)有一段关于传统软件工程与这种新的深度学习开发模式之间差异的短片:

    软件工程工作流中的人工智能
    我们今天通常发现,经过端到端训练的整体式深度学习网络本质上非常复杂,以至于我们无法解释其推理或行为。最近的研究表明渐进式训练方法是可行的。通过对较小的单元进行训练,然后将它们组合起来执行更复杂的行为,已经证明网络工作良好。谷歌的DeepMind和微软的Maluuba今年在上述研究方面取得了重大进展。
    要使软件工程实践能够深入学习,需要一种支持模块化的机制。这仍然是一个研究课题,在这方面有许多最新进展。重点研究领域适应、迁移学习、元学习、多目标系统和课程学习。
    Keras的开发者Francois Chollet最近写了一篇关于“深度学习的未来”的文章,他对未来做了一些推测性的预测。他写道:
    在高层,我认为承诺的主要方向是:

    1. 模型更接近通用计算机程序,建立在比我们现在的可微层更丰富的基元之上。
    2. 需要较少的人类工程师参与的模型-你的工作不应该是无休止地调整参数。
    3. 对以前学习过的特性和体系结构进行更大的系统重用;基于可重用和模块化程序子程序的元学习系统。

    所有这些都反映了当前深度学习发展的痛点,即处于极度实验阶段,以及对更高抽象性的渴望,这些抽象性导致了生产力的提高。
    尽管Chollet从程序员的角度开始他的演讲,但他最后还是提出了“发展”一个系统的想法。深度学习系统很可能不会像今天这样被编程。相反,这将更像是与一个生物系统一起工作,在那里我们有目的地调整系统以实现我们的目标。
    日本人有一种叫做盆景的艺术形式,在盆景中种植微型树木。盆景并没有使用基因矮化的树木,而是使用修剪和嫁接等栽培技术,创造出小树丛中模仿成树的树木。《连线》杂志有一篇文章说“很快我们就不给电脑编程了。“我们要像训练狗一样训练他们”,这暗示了从编码到教学的范式转变。
    因此,与其有一个我们组合在一起的模块化程序库,不如有一个我们组合在一起训练新系统的教学程序库。
    微软研究人员从编程历史中总结出的第二个教训是,需要一个通用的机器,允许将深度学习模型轻松移植到不同的服务器或设备上。我之前写过关于深度学习虚拟机的最新发展。这个领域最活跃的项目是谷歌的Tensorflow的XLA项目和英特尔Nervana的NNVM项目。在接下来的几年里,我们将看到许多公司推出专门的深度学习硬件(参见:GraphCore、Wave Computing、Groq、Fujistu DLU、Microsoft HPU等)。只有在有足够的高级框架可用的情况下,才能利用这种新硬件。许多硬件供应商可能会受到残酷现实的打击,他们需要在移植现有的深度学习框架以支持其硬件方面投入大量资金。瞄准通用虚拟机是实现这一目标的最简单途径;不幸的是,目前的现实情况是,这种方法还远远没有准备好。
    微软研究论文的最后一课是对过程方法论的需求。到目前为止,大多数研究都集中在深度学习系统的培训上(见:“培训深度学习网络的最佳实践”)。“教学”的过程方法很少,这当然是可以理解的,因为我们的“教学方法”仍在深度学习实验室中被发现,我预测这些工具至少需要一年的时间才能达到工程团队所要求的成熟程度。