你好,游客 登录
背景:
阅读新闻

2017最受欢迎人工智能编程语言:Python第一,R并未上榜

[日期:2017-09-11] 来源:新智元  作者: [字体: ]

【新智元导读】人工智能(AI)已经成为一个热门话题,也是一个大的研究领域,每个巨头科技公司以及创业公司都在其中努力。这是一个非常广泛的话题,从基本的计算器、自我导航技术到能够彻底改变未来的具有自我意识的机器人。开发相当于或超过人类智能的系统是AI的关键。Rankred 网站发布了该网站评出的2017年7大最好的人工智能编程语言。

7. Haskell

Haskell 是1990年开发的强静态类型,非限定性编程语言。由于Haskell开发人员不多,小公司很少尝试Haskell。

Haskell 做得很好的是抽象(抽象数学,而不是Java OOP)。它允许具有表达性的、高效的库表达AI算法。例如,HLearn使用常见的代数结构(模块,单群等)来表达和提高简单机器学习算法速度。

虽然你可以用任何语言编写这些算法,但Haskell相比其他语言更具表现力,同时保持不错的性能。例如,Haskell写的faster cover trees 。

Haskell支持领域特定语言(embedded domain-specific languages),这是一个着名的编程语言研究领域,适用于包括人工智能在内的许多领域。具体来说,它对概率编程来说很好,并能帮助开发人员在编译时发现错误。

该语言具有CUDA绑定,并被编译为字节码(bytecode)。由于函数编程和静态,代码可以轻松地在云上的不同CPU上执行。行业采用方面,Facebook使用Haskell打击垃圾邮件。

6. Java

Java 是一种高级、面向对象的直译语言,主要用于使网页交互和创建在线程序,包括游戏。

在Java中,学习对话模型并不重要。学习服务器端的数据,然后通过Ajax调用学习者进行预测。 Java有很多好用的库,我们总结其中3个:

  • ConventJS:实现深度学习的库——在浏览器中训练卷积神经网络。它支持完全连接的层以及非线性神经网络模块,分类和回归成本函数。

  • Synaptic:一个用于node.js.的神经网络库。 其通用算法是无架构的,可以用于开发和训练几乎所有类型的一阶和二阶神经网络架构。

  • Mind:它使用矩阵实现来处理训练数据。你可以完全自定义网络拓扑和上传/下载已学习的minds。

简而言之,你不必重新造轮子,只需确定AI要做什么类型的“learning”。

5. Prolog

Prolog是一种与计算语言和人工智能相关的逻辑编程语言和语义推理引擎。它具有灵活而且强大的框架,被广泛应用于定理证明,非数字编程,自然语言处理和AI。

Prolog 是一种具有形式逻辑的声明语言。AI开发者重视其预设计的搜索机制,非确定性,回溯机制,递归性质,高级抽象和模式匹配。

Prolog非常适合涉及结构化对象及其关系的问题。例如,在Prolog中,更容易表达对象之间的空间关系,比如表达“绿色的三角形在蓝色的后面”。说明一般规则也很简单,例如表达“对象A比对象B更靠近人,而B比C更近,则A应该比C更近”。

Prolog的性质使得实现事实(facts)和规则(rules)变得简单直接。实际上,Prolog中的一切都是事实或规则。它允许你查询数据库,即使你已具有上述这些事实和规则。

Prolog支持开发图形用户界面,管理和网络应用程序。它非常适合语音控制系统等项目。

4. Java

在Java中编程AI的好处:很好地支持大型项目,更好的用户交互,调试易用性,便于可视化以及Swing和Standard Widget Toolkit的并入。

其主要优点是通用性——如果你是初学者,互联网上可提供上千种有用的教程(免费),使你的学习更轻松,更高效。

Java开发的一些著名应用程序:

  • WEKA 机器学习套件:专门用于机器学习和数据挖掘

  • JOONE:用于设计,训练和测试神经网络

  • ALICE(artificial linguistic internet computer entity的缩写):自然语言处理chatbot

  • Robocode:一个用于学习Java编程原理的开源游戏

3. Lisp

Lisp是最早的(1958年开发的)编程语言之一,由John MaCarthy博士创造,John MaCarthy也是创造“人工智能”这个术语的人。虽然近年来Lisp没有被很多人使用,但该语言既灵活又具有可扩展性。

Lisp最初是针对Lambda演算开发的,诞生以来发生了很多演变。该语言在计算机科学中引入了许多想法,如递归,动态类型,高级函数,自动内存管理,自主(self hosting)编译器和树结构(tree data structure)。

Lisp用于开发人工智能软件,因为它支持使用符号计算的程序的实现。符号表达和计算是Lisp擅长的。

此外,Lisp由一个宏系统,可以生成高效代码的开发良好的编译器,以及一组集合类型,包括哈希表和动态大小列表组成。

Lisp开发的有数以千计的AI应用程序,包括: 

  • 美国运通的授权人助理,用于检查交易(信用卡)

  • METAL,一种自然语言翻译系统

  • Macsyma,第一个大型计算机代数系统

  • ACL2,AMD使用的定理证明程序

2. C++

C ++比其他语言更快——它在硬件层进行通信的能力允许你改进代码执行时间。这对在意耗时的人工智能项目非常有用。它可以用于统计AI方法,如神经网络中的。

由于执行时间和OOP原则更快,C ++本身就是AI程序的好选择。事实上,大部分机器学习和深度学习库都是用C / C ++编写的,并提供相同语言的API和为其他编程语言提供封装。

如果你想控制运行时间和性能,C ++显然是一个很好的选择。 模板(template)使用更安全,它们提供了更好的推广API的方法。虽然模板是一种强大的技术,可以简化很多事情,但需要更多的时间和经验来决定何时使用它们。

该语言覆盖了3D游戏的复杂性,优化资源管理,并通过网络促进多人游戏。一个真实的例子是科幻游戏Doom 3,它使用C ++和虚拟引擎,一套游戏开发工具(用C ++编写)。Microsoft Windows,Mac OS,Adobe Photoshop,Maya 3D软件,CAD,Mozilla Firefox等都是使用C ++的著名应用程序。

1. Python

Python专注于DRY(don’t repeat yourself)和RAD(rapid application development)。Python开发于20世纪90年代初,由于其可扩展性,适应性和易于学习而成为增长最快的编程语言之一。

Python有数百个库可以使任何类型的项目成为可能,无论是移动应用程序,Web应用程序,数据科学还是人工智能。例如,用于科学计算的“Numpy”,用于机器学习的“Pybrain”,用于高级计算的“Scipy”和用于人工智能的“AIMA”。

Python的整体语言设计,低级和高级编程的平衡,模块化编程和测试框架使其不同于其他语言。Python的另一个优势是快速原型设计。在Python中,几乎所有的想法都可以通过30-40行代码快速验证。

收藏 推荐 打印 | 录入:Cstor | 阅读:
相关新闻      
本文评论   查看全部评论 (0)
表情: 表情 姓名: 字数
点评:
       
评论声明
  • 尊重网上道德,遵守中华人民共和国的各项有关法律法规
  • 承担一切因您的行为而直接或间接导致的民事或刑事法律责任
  • 本站管理人员有权保留或删除其管辖留言中的任意内容
  • 本站有权在网站内转载或引用您的评论
  • 参与本评论即表明您已经阅读并接受上述条款