MIT 的一个研究小组正努力让初学者更容易入门人工智能,同时也帮助专家进一步推进这个领域的发展。

在 PLDI 大会(Programming Language Design and Implementation conference)上发表的一篇论文中,研究人员介绍了一种名为“Gen”的新型概率编程系统。用户无需处理公式或者手写高性能的代码即可编写多个 AI 应用领域的模型和算法,例如计算机视觉、机器人学以及统计学 。Gen 还可以让专业研究人员编写先前不可行的复杂模型和用于预测任务的算法。

例如,在他们的论文中,研究人员展示了一个简短的 Gen 程序可以预测 3-D 身体姿势,这个高难度的计算机视觉预测任务在自治系统、人机交互和增强现实中均有应用。这个程序包括执行图形渲染、深度学习和不同类型的概率模拟组件。与其他早期系统相比,这些不同技术的结合提高了这个预测任务的准确性和速度。

由于其简单性以及在某些情况下的自动化,研究人员表示,Gen 可以被任何人轻松使用,包括新手和专家。“这项工作的一个目的是让缺乏计算机科学或数学知识的人更容易入门自动化人工智能,”论文第一作者、电气工程和计算机科学博士 Marco Cusumano-Towner 说,“我们还希望提高生产力,能够让专家更轻松地快速迭代以及制作 AI 系统原型。”

研究人员还展示了 Gen 通过使用另一个 Gen 程序简化数据分析的能力。该程序可以自动生成专家通常用于分析、解释和预测数据模式的复杂统计模型。这是建立在之前的工作基础之上的。之前的工作是让用户编写几行代码来获得金融趋势、航空旅行、投票模式和疾病传播等方面的灵感。与早期系统不同,早期系统需要大量的手动编码才能进行准确的预测。

“Gen 是第一个灵活、自动化、足够高效且能够涵盖计算机视觉和数据科学中不同用例的系统,并且性能足够好,”Vikash K. Mansinghka 表示。他是一个来自大脑和认知科学系的研究员,负责概率计算项目。

和 Cusumano-Towner、Mansinghka 一起合作论文的有 Feras Saad 和 Alexander K. Lew,他们都是 CSAIL 的研究生以及概率计算项目的成员。

全世界最佳

2015 年,Google 发布了 TensorFlow,这是一个开源的 API 库,可以让初学者和专家无需进行太多数学计算即可自动生成机器学习系统。现在已经得到了广泛使用,该平台正在帮助人工智能的某些方面民主化。但是,虽然 TensorFlow 足够自动化和高效,但它只是侧重于深度学习模型,与更广泛的 AI 相比,这些模型既昂贵又有限制。

现在有很多其他 AI 技术可用,例如统计和概率模型以及模拟引擎。一些其他的概率编程系统能够灵活涵盖几种 AI 技术,但它们运行效率低下。

研究人员力求将所有最优的特性 —— 自动化、灵活性和速度 —— 结合在一起。 “我们这么做也许可以使更广泛的建模和预测算法民主化,就像 TensorFlow 对深度学习起的作用,”Mansinghka 说。

在概率 AI 中,预测算法对数据执行操作,并基于新数据连续地微调概率以进行预测。最终会生成一个描述如何预测新数据的模型。

建立在早期概率编程系统Church中使用的概念基础之上,研究人员将几种自定义建模语言融入 Julia,这也是MIT 开发的一种通用编程语言。每种建模语言都针对不同类型的 AI 建模方法进行了优化,使其更加通用。 Gen 还使用各种方法(如优化、变分推断、某些概率方法和深度学习等)为预测任务提供高层基础设施。最重要的是,研究人员进行了一些调整,使其实现运行更加高效。

走出实验室

外部用户已经在寻找利用 Gen 进行 AI 研究的方法。比如英特尔正在与 MIT 合作,把 Gen 用于机器人和增强现实系统中使用的深度感知相机的 3D 姿势预测。MIT 林肯实验室也在就把 Gen 用于人道主义救援和灾难响应的空中机器人而开展合作。

在 MIT Quest for Intelligence 中,Gen 开始被用于雄心勃勃的 AI 项目。例如,Gen 是 MIT-IBM Watson AI Lab 项目以及美国国防部的国防高级研究计划署正在进行的机器常识项目的核心。该项目旨在模拟 18 个月大的孩子的常识。Mansinghka 是该项目的主要研究人员之一。

“在 Gen 的帮助下,这是第一次研究人员可以轻松整合一些不同的 AI 技术。看到人们现在发现的可能性将会很有趣,”Mansinghka 说。

Uber 首席科学家兼人工智能副总裁以及剑桥大学教授 Zoubin Ghahramani 表示,“自从深度学习出现以来,概率编程是人工智能前沿最有前途的领域之一。 Gen 代表了这个领域的重大进步,有助于基于概率推理的 AI 系统的大规模实际应用。”他并未参与 Gen 的研究。

谷歌的研究主管 Peter Norvig 也没有参与这项研究,他同样也赞扬了这项工作。 “[Gen] 让问题解决者使用概率编程,因此可以采用更原则的方法解决问题,但不受概率编程系统设计者的选择限制,”他说。 “通用编程语言之所以成功,是因为它们使程序员更容易完成任务,同时也使程序员能够创造一些全新的东西来有效地解决新问题。Gen 对概率编程也是如此。”

Gen 的源代码是公开的,将在即将举行的开源开发者大会上展示,包括 Strange Loop 和 JuliaCon。这项工作部分得到了 DARPA 的支持。

原文链接:
http://news.mit.edu/2019/ai-programming-gen-0626

人工智能新编程语言-Gen的更多相关文章

  1. 转 苹果的新编程语言 Swift 简介

    苹果官方文档地址 https://developer.apple.com/library/prerelease/ios/documentation/Swift/Conceptual/Swift_Pro ...

  2. C、C++ 不得宠,微软正开发新的编程语言!

    76 年迭代与更新,编程语言界,谁主沉浮? 在六百多种编程语言中,对于开发者而言,其主观印象中或只有几种主流的编程语言,如 Java.C.C++.C#.新贵 Python 等,而之所以它们能够成为主流 ...

  3. gen语言

    概率编程语言(PPL)领域正经历着机器学习技术快速发展带来的奇迹般的复兴.在短短的几年里,PPL 已经从一个模糊的统计研究领域发展出十几个活跃的开源方案.最近,麻省理工学院(MIT)的研究人员推出了一 ...

  4. julia,集Python、C++、R为一体!Julia 1.0重磅发布, MIT发布史上最强科学计算编程语言?创始人独家解答11个问题

    这个编程语言的新版本之所以受到整个人工智能界的关注,最主要的原因正是其将 C 语言的速度.Ruby 的灵活.Python 的通用性前所未有地结合在一起,支持并行处理,易于学习和使用,尤其适合科学和工程 ...

  5. 入门人工智能的首选语言为什么会是Python?

    为何人工智能(AI)首选Python?当你读完这篇文章就会明白了.为何人工智能(AI)首选Python?读完这篇文章你就知道了.我们看谷歌的TensorFlow基本上所有的代码都是C++和Python ...

  6. The Swift Programming Language 中文翻译版(个人翻新随时跟新)

    The Swift Programming Language --lkvt 本人在2014年6月3日(北京时间)凌晨起来通过网络观看2014年WWDC 苹果公司的发布会有iOS8以及OS X 10.1 ...

  7. Apple Swift编程语言入门教程

    Apple Swift编程语言入门教程 作者: 日期: 布衣君子 2015.09.22 目录 1   简介 2   Swift入门 3   简单值 4   控制流 5   函数与闭包 6   对象与类 ...

  8. 苹果Swift编程语言新手教程【中国版】

    Swift代码语言教程:在刚刚过去的WWDC2014大会上,苹果公司新公布了一种编程语言Swift.据悉.Swift语言继承了C语言以及Objective-C的特性,且克服了C语言的兼容性问题.对于广 ...

  9. [转]Swift 编程语言入门教程

    今天在网上看到一篇非常好的教程,分享给大家 原文地址:http://gashero.iteye.com/blog/2075324 目录 1   简介 2   Swift入门 3   简单值 4   控 ...

随机推荐

  1. Mysql中innodb和myisam

    innodb和myisam两种存储引擎的区别 1.事务和外键 1)InnoDB具有事务,支持4个事务隔离级别,回滚,崩溃修复能力和多版本并发的事务安全,包括ACID.如果应用中需要执行大量的INSER ...

  2. Hbase的表结构中rowkey的设计---避免热点问题

    热点问题 hbase 中的行是以 rowkey 的字典序排序的,这种设计优化了scan 操作,可以将相关的 行 以及会被一起读取的行 存取在临近位置,便于 scan . 然而,糟糕的 rowkey 设 ...

  3. php导出表格两种方法 ——PhpExcel的列子

    php常用的导出表格有两种方法,第一种是输出表格,这种方法打开的时候有警告提示,一般导出表格会用phpexcel,这个导出比较灵活,而且还可以设置表格的样式. 第一种导出例子 /** * 执行导出 * ...

  4. 安装cuda及之后更新环境变量的方法

    安装参考:https://www.cnblogs.com/fanfzj/p/8521728.html 更新环境变量: 将 CUDA.CUPTI 和 cuDNN 安装目录添加到 %PATH% 环境变量中 ...

  5. Django 中使用redis

    Django使用redis   方式一,使用Django-redis模块 #安装: pip3 install django-redis CACHES = { "default": ...

  6. S1_搭建分布式OpenStack集群_04 keystone认证服务安装配置

    一.新建数据库及用户(控制节点)# mysql -uroot -p12345678MariaDB [(none)]> CREATE DATABASE keystone;MariaDB [(non ...

  7. Github搭建简单的博客

    1)安装pelcan和markdown pip install pelican markdown --upgrade 2)创建一个文件夹用来作为博客的目录 mkdir 博客目录 3)cd到该目录下运行 ...

  8. tldr/cheat

    tldr 比man好用的查询命令查询工具, man很强大,但是 TLDR,too long dont read 安装 npm install -g tldr 使用说明 其他版本下载 https://g ...

  9. IIS 站点配置文件

    IIS 站点配置文件  C:/Windows/System32/inetsrv/config/applicationHost.config 配置文件示例: <system.application ...

  10. [Gradle] 发布 library 到本地 maven 仓库

    Java Library // publish_local_java.gradle apply plugin: 'maven-publish' publishing { publications { ...