简洁实用,一文读懂这门超越深度学习的新AI编程语言

Java 人工智能应用:使用 DL4J 实现深度学习算法 本文介绍了如何使用Java深度学习库DL4J实现深度学习算法。DL4J是为Java开发者设计的开源分布式深度学习库,可与Hadoop和Spark集成处理大规模数据。文章详细讲解了DL4J开发环境的搭建步骤,包括Maven依赖配置和Java环境准备。重点演示了如何使用DL4J构建多层感知机(MLP)模型,涵盖数据准备、模型构建、训练和评估的完整流程。通过示例代码展示了如何实现数据预处理、神经网络配置、模型训练和性能评估,为Java开发者提供了深度学习应用的实践指南。文中采用的MLP模型适用于二分类问题,可作为 阅读详情

大数据文摘出品

来源:MIT

编译: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://delivery.acm.org/10.1145/3320000/3314642/pldi19main-p645-p.pdf?ip=118.144.138.198&id=3314642&acc=OA&key=4D4702B0C3E38B35%2E4D4702B0C3E38B35%2E4D4702B0C3E38B35%2EE959BD37CA561672&__acm__=1562839037_72bcb9e83ef52bd8c297ff545e867515

 

Generative Function Interface(生成函数接口)以下简称GFI,GFI是一个“黑盒子”,用来实现建模语言和特定推理算法之间的接口,Generative Function (生成函数)由建模语言编辑器生成,具体实现过程是这样的:

 

  1. 用户将需要实现的功能使用@gen语法描述;

  2. 将语法描述交由动态建模语言编译器生成Generative Function;

  3. 通过Generative Function实现GFI

 

为了理解下文先介绍两个名词:

  •  Choice Map是地址到真实值之间的映射

  •  Generative Function表示为元组的形式:G = (X, Y, f ,p,q)

 

接口方法

 

论文中介绍了5种接口方法:

  1. generate (对约束条件的trace)-参数:u(Choice Map)、x-以映射集合u和参数x作为输入并返回结果;

  2. propose-参数x-返回t(Choice Map)、权重w;

  3. assess(评估Choice Map的可能性):此方法评估和计算由Generative Function生成的特定Choice Map(u)的可能性;

  4. update:更新方法调整执行trace的(t,x)中的随机选择,这是迭代推理算法中的常见模式,例如MCMC和MAP优化;

  5. choice_gradients:choice_gradients(differentiation)此方法计算跟踪的对数概率的梯度参数x和/或随机值的值选择。

 

具体的执行过程参照下图foo()函数的trace和choice map的生成过程。

 

系统总览

 

下面将以一个回归任务为例,演示Gen的编程风格:

 

a图给定数据集(x,y),需要推断x,y之间的关系,并检测异常值,这是一个典型的回归问题;b图是用@gen语法生成的描述模式;c图是b图的生成地址空间;f和g图展示出了在“Julia”(上文提到的MIT开发的通用编程语言)中实现的两个用户程序,每一个程序实现了一种不同的算法来解决任务,结果表现出不同的效率,如图h所示。

 

 

实验室外的“Gen”:Gen的工业应用

 

讲了这么多,Gen有没有开源?在工业界有使用案例吗?请看下文:

 

外部用户已经找到了利用Gen进行人工智能研究的方法。例如,英特尔正在与MIT合作运用其用于机器人和增强现实系统的深度感应摄像头,利用Gen进行3D姿态估计。MIT林肯实验室也在合作研究Gen在航空机器人领域的应用,以实现其在人道主义救援和灾难应急响应方面的应用。

 

MIT一直致力于人工智能的研究,因此Gen开始被用于雄心勃勃的人工智能项目。例如,Gen是MIT和IBM沃森人工智能实验室项目的核心,美国国防部高级研究项目计划局也将其应用于正在进行的机器常识项目,旨在模拟一个18个月大的孩子所能拥有的人类常识。Mansinghka也是该项目的主要研究人员之一。

 

Mansinghka说,“对于Gen,研究人员第一次可以很容易地整合一系列不同的人工智能技术。看看人们在现阶段发现了什么是可能的,这将会是很有趣的。”

 

Gen的开放源代码是公开可用的,并且在即将举行的开放源代码开发人员会议上展示,包括Strange Loop和JuliaCon,这项工作在一定程度上也得到了美国国防高级研究计划局(DARPA)的支持。

 

相关报道:

https://www.csail.mit.edu/news/new-ai-programming-language-goes-beyond-deep-learning

 

AI编程语言:从语法到语义的新跨越 让我们一步步思考:AI编程语言的新跨越 1. 问题背景 在当今快速发展的科技时代,人工智能(AI)已经成为驱动创新的重要力量。编程语言作为AI技术实现的关键工具,其重要性不言而喻。然而,传统的编程语言在应对复杂的AI任务时,往往显得力不从心。因此,开 阅读详情

相关推荐

SpringBoot+Vue企业级开源聚合支付系统!支持30+款支付平台,只需配置商户证书就能直接使用!

一款开源SAAS支付系统推荐

技术Z先生的博客 2720

【深度学习】Java DL4J 2024年度技术总结

在当今数字化浪潮中,深度学习作为人工智能领域的核心驱动力,正以前所未有的速度改变着我们的生活和工作方式。从图像识别到自然语言处理,从医疗诊断到金融预测,深度学习的应用场景无处不在,展现出巨大的潜力和价值。Java作为一门广泛应用于企业级开发的编程语言,以其稳定性、可移植性和丰富的类库资源,在软件开发领域占据着重要地位。然而,传统的Java开发在面对深度学习复杂的模型构建和大规模数据处理时,往往显得力不从心。的出现,为Java开发者打开了一扇通往深度学习世界的大门。DL4J是一个专为Java和Scala。

在技术的广袤天地里,本博客如精准罗盘。剖析前沿科技,深掘代码奥秘,以精炼笔触,带您穿越复杂技术迷宫,速达知识彼岸。 1万+

导出库的版本_Windows下PaddleOCR在C++中的推理部署(CPU版本)CMake + VS2017

PaddleOCR是一个与OCR相关的开源项目,不仅支持超轻量级中文OCR预测模型,总模型仅8.6M(单模型支持中英文数字组合识别、竖排文本识别、长文本识别,其中检测模型DB(4.1M)+识别模型CRNN(4.5M)),而且提供多种文本检测训练算法(EAST、DB)和多种文本识别训练算法(Rosetta、CRNN、STAR-Net、RARE)。本文将教大家通过PaddleOCR(CPU版...

weixin_31304817的博客 1914

为何人工智能用Python这门编程语言?

为何人工智能(AI)首选Python? 读完这篇文章你就知道了。我们看谷歌的TensorFlow基本上所有的代码都是C++和Python,其他语言一般只有几千行 。如果讲运行速度的部分,用C++,如果讲开发效率,用Python,谁会用Java这种高不成低不就的语言搞人工智能呢? Python虽然是脚本语言,但是因为容易学,迅速成为科学家的工具(MATLAB也能搞科学计算,但是软件要钱,且很贵),从...

Python8年程序员教程分享 4833

Reality Capture控制点修复/合并模型

通过增加控制点/修改对齐设置参数来修复模型被分为两个部分的解决方法

草履虫建模的博客 5241

Kriging代理模型理论相关推导

代理模型,Kriging,加点准则

森屹的博客 1万+

使用 ESP-DL 深度学习库基于 ESP32-S3 实现手势识别

用户基于乐鑫深度学习库 ESP-DL,能够在 ESP32-S3 上部署高性能的深度学习模型。

乐鑫 Espressif 1万+

迈德威视相机调用( 基于 Linux系统+ OpenCV )

迈德威视相机调用( 基于 Linux系统+ OpenCV )前言一、登录迈德威视官网,下载官方SDK二、代码调用与视频帧处理( 基于 OpenCV )总结 前言     此博客记录了迈德威视工业相机在 Linux 系统下的代码调用及其环境配置,通过 OpenCV 对视频帧进行处理。   一、登录迈德威视官网,下载官方SDK      迈德威视官网 : http://www.mindvision.com.cn/     1. 进入官网后,在服务支持中选择软件下载。    2. 选择Linux系统S.

kkkkkk0729的博客 5678

人工智能ai用什么编程语言_用于AI开发的6种最佳编程语言

人工智能ai用什么编程语言 AI( 人工智能 )为应用程序开发人员开辟了无限的可能性。 通过利用机器学习或深度学习,您可以产生更好的用户配置文件,个性化设置和推荐,或者合并更智能的搜索,语音界面或智能帮助,或以其他多种方式改进您的应用程序。 您甚至可以构建可以看到,听到和应对意外情况的应用程序。 您应该学习哪种编程语言来深入了解AI? 当然,您需要一门具有许多良好的机器学习和深度学习库的语言...

科技博客的分析“工具人” 1万+

k8s 查看cpu使用率最高的pod

在 Kubernetes 中,可以使用命令查看 Pod 的资源使用情况,从而找到 CPU 使用率最高的 Pod。

u010674101的专栏 3345

PSCAD学习笔记(1)Project Settings(重点snapshot设置)

若不勾选,则横坐标为实际时间2-7s,故障显示在第3s发生。图片中时间坐标轴显示为0-5s,故障时刻显示为第1s,即0-1s展示系统稳态,1-5s展示系统发生故障后的暂态响应,如何通过快照文件实现?勾选该项后,使用快照文件启动仿真会将仿真起始时间强制设置为0s,反之不勾选则依据快照文件保存的时间轴继续(即坐标为实际时间)。如果已有的快照文件保存的是0s至5s的仿真内容,则仿真运行时间从5s开始,到10s结束。如果已有的快照文件保存的是0s至2s的仿真内容,则仿真运行时间从2s开始,到7s结束;

gwenh的博客 7343

深度学习需要新的编程语言?

CNN 之父再出豪言:深度学习需要新的编程语言当地时间 2 月 18 日,Facebook 首席首席人工智能科学家、卷积神经网络之父 Yann LeCun 在旧金山的国际固态电路大会上发表了一篇论文,分享了他关于人工智能发展的一些看法,同时也谈到自己对于芯片和硬件发展的关注和研究。在这其中,诸如“深度学习可能需要一种新的编程语言”等说法引起了热烈讨论。 ...

测试0901-1 5860

项目管理 Agent:进度追踪与风险预警 Harness

我们先从LangChain的Agent定义说起:Agent是一个能感知环境、自主决策、调用工具、执行动作、迭代反思的智能实体。而「项目管理全自主Agent」,就是把Agent的核心能力和项目管理的五大过程组(启动、规划、执行、监控、收尾)深度结合,聚焦执行监控阶段的两个核心痛点:进度偏差自动化计算、风险信号自动化识别与预警的专门化Agent。全感知(Omnisensing):能从。

AI架构师小马 515

AI人工智能的5种绝佳编程语言

如今,人们期望AI程序员掌握多种语言,因为AI的开发者们是在跨学科环境中工作而不是在一个孤岛上。在AI项目中更多的是涉及Python,R,Java,Lisp,Prolog,Julia等语言的综合使用 是的,你没看错,没有一种单独的“ AI语言”可以被视为最佳编程语言。 因此,让我们讨论一些流行的语言,这些语言正在全球AI项目中流行和使用。了解这些可以帮助你尽快成为更专业的AI工程师。 1)Python: 在AI,ML和数据分析的所有其他语言中,它排名第一。建议你在需要快速编码时使用。 Py..

创帆云的博客 1万+

IDEA的使用指南

IDEA基于java的使用手册,可以最快速的上手,在使用中不断的丰富自己的使用技巧.

STM32F407中文手册

STM32f407中文手册 本参考手册面向应用开发人员,提供有关使用 STM32F405xx/07xx、STM32F415xx/17xx、 STM32F42xxx 和 STM32F43xxx 微控制器存储器与外设的完整信息。STM32F405xx/07xx、STM32F415xx/17xx、STM32F42xxx 和 STM32F43xxx 构成一个微 控制器系列,各产品具有不同的存储器大小、封装和外设。有关订购信息以及器件的机械与电气特性,请参见数据手册。有关 ARM Cortex™-M4F 内核的信息,请参见《Cortex™-M4F 技术参考手册》。

AI、ML、DL 和 DS 之间的区别

人工智能 数据分析 数据科学 深度学习 机器学习 神经网络在本文中,我们将了解 AI(人工智能)、ML(机器学习)、DL(深度学习)和 DS(数据科学)之间的区别。这些术语经常互换使用,但实际上,它们指的是计算机科学和数据分析领域内的不同概念。

技术探索驿站 7279

复分析 阿尔福斯(Ahlfors) 第三版答案 英文

答案分为十章,有部分习题没有答案,全英文复分析阿尔福斯(Ahlfors) 第三版答案

人工智能哲学:超越机器即真理”

作者:禅与计算机程序设计艺术 人工智能哲学:超越“机器即真理” 引言 1.1. 背景介绍 随着科技的快速发展,人工智能技术已经走进了我们的生活。从智能手机、语音助手,到自动驾驶汽车、智能医疗等领域,人工智能的应用越来越

AI天才研究院 4197

Outlook Express 6 (OE6) for Win7/Win8/Win10

英文版 Outlook Express6.0, 兼容Win7/Win10/WinXP,解压就可用。

AI的未来?华为仓颉编程语言与人工智能的接轨

华为仓颉编程语言的推出为国产人工智能开发开辟了新的道路。其在性能、生态和工具链上的优势,使其成为AI开发的重要选择。未来,随着生态的不断完善和社区的壮大,仓颉语言有望在人工智能领域取得更大的成功。对于开发者而言,这是一个值得关注和尝试的语言。如果你正在探索人工智能的开发工具,不妨试试仓颉语言!

2406_83947720的博客 4361

Interview之AI:人工智能领域岗位求职面试—人工智能算法工程师知识框架及课程大纲(AI基础之数学基础/数据结构与算法/编程学习基础、ML算法简介、DL算法简介)来理解技术交互流程

​ Interview之AI:人工智能领域岗位求职面试—人工智能算法工程师知识框架及课程大纲(AI基础之数学基础/数据结构与算法/编程学习基础、ML算法简介、DL算法简介)来理解技术交互流程 目录 剖析自己 一、AI基础 二、ML算法简介 三、DL算法简介 剖析自己 1、个人能力角度 确定自己应具备的能力:以结果为导向的思维,看职位要求让做什么,自己会会什么,还差哪些? 职位条件 目前能力 还差的能力 ML算法工程师 熟悉python/R、S

头部AI社区如有邀博主AI主题演讲请私信—心比天高,仗剑走天涯,保持热爱,奔赴向梦想!低调,专注,谦虚,自律,反思,成长,还算比较正能量的博主,公益免费传播…内心特别想在AI界做出一些可以推进历史进程影响力的技术(兴趣使然,有点小情怀,也有点使命感呀 1万+

再见Python!Yann LeCun警告:深度学习需要新编程语言

整理 | 一一出品 | AI科技大本营尽管工程师们普遍定位 Python 是简单、优雅的编程语言,但它并非毫无缺点,比如人们一直吐槽它的执行速度不够快,线程不能利用多 C...

AI科技大本营 3700

如何学习人工智能AI技术

学习人工智能是一项系统性的任务,涉及到理论知识、编程技能、算法理解、项目实践等多个层面。下面是一个从易到难的具体学习流程,以及所需掌握的编程软件与开发环境.

FPGA/MATLAB学习教程/源码/项目合作开发 2万+

Python如何统治AI世界?一文读懂它的优势与挑战

Python是一种由Guido van Rossum于1991年首次发布的高级编程语言。其设计理念强调代码的可读性和简洁性,使其成为了许多开发者的首选语言。Python的语法简洁直观,采用了缩进来定义代码块,这与其他使用花括号或关键词的编程语言不同。Python支持多种编程范式,包括面向对象编程、过程化编程和函数式编程,这使得它在各种应用场景中都表现出色。设计理念Python的设计理念“优雅、明确、简单”被广泛接受和推崇。

iShare_Carlos的博客 1371

为何人工智能(AI)首选Python?读完这篇文章你就知道了

为何人工智能(AI)首选Python?读完这篇文章你就知道了。我们看谷歌的TensorFlow基本上所有的代码都是C++和Python,其他语言一般只有几千行 。如果讲运行速度的部分,用C++,如果讲开发效率,用Python,谁会用Java这种高不成低不就的语言搞人工智能呢?Python虽然是脚本语言,但是因为容易学,迅速成为科学家的工具(MATLAB也能搞科学计算...

qq_44929388的博客 6143

人工智能ai用什么编程语言_2020年人工智能的5种最佳编程语言

人工智能ai用什么编程语言 如今,人们期望AI程序员掌握多种语言,因为它们是在跨学科环境中而不是在孤岛中工作。 该列表为Python,R,Java,Lisp,Prolog,Julia等。 尽管当前这一代人更喜欢Python,但是前端开发人员必须了解用于机器学习应用程序JavaScript,Python和R.知名组织的流程自动化首席开发人员知道R,Java,Nia和.Net并为人工智能,机器学...

IT与开发人员的地盘 8555

深度学习英文缩写_机器学习、深度学习……人工智能那些名词你知道几个?

原标题:机器学习、深度学习……人工智能那些名词你知道几个?这一次,小KE带你了解几个火爆的“人工智能”名词儿,这样在撸串炸鸡啤酒时,可以跟小伙伴吹嘘吹嘘,提高提高自己的人格档次。“机器学习”和“深度学习”,这几个名词,经常会和人工智能一同出现在不同场合,他们都是什么意思呢?人工智能先来看看人工智能。在1956年达特矛斯会议上,约翰•麦卡锡提出了“人工智能”这个概念。人工智能的含义是可以执行人类智能...

weixin_39627430的博客 947
上一篇: AI赌神升级!无惧bluff,6人局德扑完胜世界冠军,训练只用了8天
下一篇: 好悲伤?快去MuseNet上听听Gaga风的肖邦!
BigDataDigest
博客等级 码龄9年 448粉丝 500原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值