大数据文摘出品
编译: Stats 熊, 小七, 宁静
AI 的快速发展激起了很多人的学习热情, 但是初学者苦于大量的手动编程而止步不前, 有没有一种编程语言可以让那些在计算机科学和数学领域专业知识较少的人, 也能使用简洁的代码量来完成具体的 AI 应用呢?
今天文摘菌为大家推荐一个专门用来预测的复杂模型和推理算法 --Gen. 下面随文摘菌一起来看看它的 "前生今世".
Gen 问世之前的 AI 学习库(框架)
在 2015 年, 谷歌发布了一个采用数据流图进行数值计算的开放源代码应用程序软件库 TensorFlow(基于数据流编程的符号数学系统), 它可以帮助初学者和专家自动生成机器学习系统, 而不需要做太多数学运算. 这个平台现在被广泛的使用, 希望帮助人工智能在某些方面实现民主化.
尽管它是自动且高效的, 但是与人工智能的广泛前景相比, 它的重点仅限于深度学习模式, 总的来说这种模式既昂贵又有局限性.
但是现在有很多可用的人工智能技术, 比如统计和概率模型, 以及仿真引擎. 其他一些概率编程系统虽然足够灵活, 能够覆盖多种人工智能技术, 但他们的运行效率很低.
Gen"缘起"
鉴于之前的 AI 应用开发框架不太灵活, 研究人员试图研究一套系统以将自动化, 灵活性和高效性都融合在一起, 但 Mansinghka(一位研究人员)说,"如果我们可以做到这样, 也许我们可以通过更广泛的建模和推理算法集合来帮助实现民主化, 就像 TensorFlow 一样有助于深度学习的研究."
MIT 的一队研究人员一直致力于使初学者快速入门人工智能, 与此同时, 他们的研究也帮助这一领域的专家不断取得了进步. 研究人员发现, 在基于概率的人工智能中, 用推理算法对数据进行运算, 并根据新数据不断调整概率来进行预测. 这样做最终会生成一个可以对新数据进行预测的模型.
基于他们早期概率编程系统 "Church" 中使用的概念, 研究人员将几种自定义的建模语言融入 MIT 开发的通用编程语言 "Julia" 中. 每种建模语言都针对不同类型的人工智能建模方法进行了优化, 使其变得更加通用. Gen 还使用了各种不同的方法, 例如优选法, 变分推理, 概率统计法和机器学习, 为推理任务提供高级基础设施. 除此之外, 研究人员还进行了一些优化调整, 以使其实现有效运行.
同时, 本周召开的程序设计语言设计与实现大会上, 研究者们做了一场以新型概率编程系统 --Gen 为题的演说, 用户从不同的 AI 技术应用领域编写模型和算法, 这些领域涉及到计算机视觉, 机器人和统计学, 而这些模型算法可以代替人去解决, 那些复杂公式和手工编写高性能代码.
为什么要使用 Gen?
举例来说, 在研究者的文章中提到, 一个简短的 Gen 编程, 可以推断 3D 身体姿势, 而这种复杂的计算机视觉推断任务需要用到自动系统, 人机交互, 增强现实等技术. 而在屏幕之后, 这些程序包括了那些组成执行图像渲染, 深度学习和其他种类的概率模拟的组件. 这些不同技术的结合使这项任务比一些研究人员早期开发的系统具有更高的准确性和速度.
研究表明, 不管是初学者还是专家都能非常轻易地上手 Gen, 因为它使用起来非常简单, 且在某些用例中是自动化的. 一位电气工程和计算机科学系的 Marco Cusumano Towner 博士说,"这个项目的一个动机就是让那些在计算机科学和数学领域专业知识较少的人, 更容易地使用自动化人工智能", 他还说 "我们同样也希望提高生产率, 这意味着让专家更容易地高速迭代和原型化他们的人工智能系统".
研究人员还演示了 Gen 通过使用另一个 Gen 的程序来简化数据分析的能力, 该程序可以自动生成复杂的统计模型, 通常用来供专家分析, 解释和预测数据中基本趋势. 它与早期需要大量手工编码才能进行准确预测的系统不同, 建立在研究人员先前工作的基础上, 它只需要让用户编写几行代码就可以揭示和了解金融走势, 航空旅行, 投票方式以及疾病传播等的趋势.
一位大脑与认知科学部门负责概率计算机项目的研究员 Vikash K.Mansinghka 说,"Gen 是第一个灵活高效自动化的系统, 拥有最先进的性能, 能够覆盖计算机视觉和数据科学中不同类型的事例."
Uber 的首席科学家兼人工智能副总裁, 剑桥大学教授 Zoubin Ghahramani 虽然没有参与这一项目, 但是他说,"概率规划是自机器学习出现以来, 人工智能最有前景的领域之一. Gen 代表了这一领域的显著的进步, 将有助于实现基于概率推理的人工智能系统的可扩展性和实际性发展."
同样也没有参与此项研究的谷歌研究主管 Peter Norving 也赞扬了这项工作, 他说,"Gen 允许解决问题的人使用概率规划, 如此对问题有一个更为原则性的方法, 但不受概率规划系统设计者的选择所限制." 他还说,"通用编程语言...... 之所以成功是因为, 它们使程序员更容易完成任务, 同时也使程序员能创造出全新的东西来有效地解决新问题. Gen 对于概率规划也是这样做的."
探索 "Gen" 的本质
铺垫了这么多, 那么 Gen 是怎么实现的呢?
下文将以论文的第三, 四部分为例, 介绍实现的机理, 文摘菌略过了论文中枯燥的公式推理, 先说明下原理吧, 感兴趣的读者可以阅读论文原文.
来源: http://www.tuicool.com/articles/Aveq2yY