来自于Carlos E. Perez 关于软件2.0的几点讨论

    • 计算同质-这很有趣,但这是无效的,考虑到数字系统本质上也是计算同质的,如果我们从通用门(即NAND和NOR)的角度来看。事实上,新的深度学习硅不是同质的,使用专门的核心。有一些硅优化为3x3卷积为例。今天看起来也很同质,但那是因为现在还为时过早。然而,从自然中汲取灵感,我们应该期待通常的多样化变成专业化和模块化的部分。以大脑为例,它不是同质的,它有许多部分和许多不同种类的神经元。
    • 很容易融入到芯片中——这并不完全正确,因为ASIC设计师的主要风险是致力于一种架构,这种架构可能在几个月内被淘汰。并不是说这不容易,真正的问题是“植入”。困难的部分是知道你有深入学习的关键组成部分。这不容易,因为这是一个快速移动的领域。这就是为什么可编程gpu在比预期更长的时间内比asic更有价值的原因。

    恒定的运行时间-对于有条件地遍历不同路径的更复杂的网络不适用(请参见:条件逻辑是新的热点)。事实上,简单网络的计算是有界的。然而,完全有可能有迭代组件(见AlphaGo中的mct),它们在运行时间上可能有很大的差异。

    高度便携-不是真的。深度学习比经典的ML更具可移植性和模块化,但它确实缺少模块化系统的一些特性。对此我有分析:https://medium.com/intuitonmachine/the-end-of-monolite-deep-learning-86937c86bc1f。卡帕锡的两个要点也与模块化问题有关。

    • 这很容易接受——这是成熟技术的典型特征。作为软件专业人士,我们不需要了解作为半导体基础的量子物理。我们甚至不需要知道算术逻辑单元(ALU)是如何构造的。我们在一个抽象的层次上工作,这对手头的任务是有意义的。很多深度学习是用很多数学来教的,但这在将来是不可能的。一种更直观的软件开发水平将不得不出现,这将更接近我们今天的教学方式。
    • 总比你强——我同意这种看法。许多创新性的发现都是通过暴力手段发现的。深入学习可能导致“人类的最后发明”。

    我再次重申,我同意卡帕锡的观点,即可教机器确实是“软件2.0”。显然值得商榷的是,这些新型系统是否与其他通用计算机器不同。当然也有同样的东西,那就是信息处理。具体来说,它的核心是计算、内存和存储。然而,深度学习除了支持通用计算外,还具有从归纳学习的能力。这种能力意味着系统的模块性将不同于手工编程的系统。
    不同的模块性(如何组织软件)并不意味着基本的硬件特性消失。软件2.0不能超越物理定律。最后一句话是卡帕锡论点中的缺陷。事实上,当你开始用物理术语(而不是纯数学)为深度学习建模时,你就会开始意识到机器学习正统理论的缺陷。
    关于软件的深度学习的问题呢?有很多事情你需要考虑,因为深度学习系统本质上是“直觉机器”,因此有着与软件1.0截然不同的行为。我说话的方式是通过深入学习的画布。也就是说,这是一个清单,说明在开发此类系统时应该考虑什么。
    1*BOr1tSiqlZsAQKaVOVi66w.png

    我们仍处于深入学习发展的早期阶段,仍有许多问题需要解决,以便将这种新的计算发展成与软件1.0具有相同功能但总体上更好的计算。这是一个开放的问题,许多公司,如谷歌和Uber公司正在做的工作,但仍有许多缺失的部分。