前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >2017最受欢迎人工智能编程语言:Python第一,R并未上榜

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

作者头像
新智元
发布2018-03-22 14:27:13
2.4K0
发布2018-03-22 14:27:13
举报
文章被收录于专栏:新智元

【新智元导读】人工智能(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. JavaScript

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

在JavaScript中,学习对话模型并不重要。学习服务器端的数据,然后通过Ajax调用学习者进行预测。 JavaScript有很多好用的库,我们总结其中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行代码快速验证。

编译来源:https://www.rankred.com/best-artificial-intelligence-programming-language/

本文参与 腾讯云自媒体同步曝光计划,分享自微信公众号。
原始发表:2017-09-11,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 新智元 微信公众号,前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体同步曝光计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
相关产品与服务
NLP 服务
NLP 服务(Natural Language Process,NLP)深度整合了腾讯内部的 NLP 技术,提供多项智能文本处理和文本生成能力,包括词法分析、相似词召回、词相似度、句子相似度、文本润色、句子纠错、文本补全、句子生成等。满足各行业的文本智能需求。
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档