python、java等哪一门编程语言适合人工智能?


Posted in Python onNovember 13, 2017

谷歌的AI击败了一位围棋大师,是一种衡量人工智能突然的快速发展的方式,也揭示了这些技术如何发展而来和将来可以如何发展。

python、java等哪一门编程语言适合人工智能?

人工智能是一种未来性的技术,目前正在致力于研究自己的一套工具。一系列的进展在过去的几年中发生了:无事故驾驶超过300000英里并在三个州合法行驶迎来了自动驾驶的一个里程碑;IBM Waston击败了Jeopardy两届冠军;统计学习技术从对消费者兴趣到以万亿记的图像的复杂数据集进行模式识别。这些发展必然提高了科学家和巨匠们对人工智能的兴趣,这也使得开发者们了解创建人工智能应用的真实本质。

开发这些需要注意的第一件事是:

哪一种编程语言适合人工智能?

你所熟练掌握的每一种编程语言都可以是人工智能的开发语言。

人工智能程序可以使用几乎所有的编程语言实现,最常见的有:Lisp,Prolog,C/C++,近来又有Java,最近还有Python.

LISP

像LISP这样的高级语言在人工智能中备受青睐,因为在各高校多年的研究后选择了快速原型而舍弃了快速执行。垃圾收集,动态类型,数据函数,统一的语法,交互式环境和可扩展性等一些特性使得LIST非常适合人工智能编程。

PROLOG

这种语言有着LISP高层和传统优势有效结合,这对AI是非常有用的。它的优势是解决“基于逻辑的问题”。Prolog提供了针对于逻辑相关问题的解决方案,或者说它的解决方案有着简洁的逻辑特征。它的主要缺点(恕我直言)是学起来很难。

C/C++

就像猎豹一样,C/C++主要用于对执行速度要求很高的时候。它主要用于简单程序,统计人工智能,如神经网络就是一个常见的例子。Backpropagation 只用了几页的C/C++代码,但是要求速度,哪怕程序员只能提升一点点速度也是好的。

JAVA

新来者,Java使用了LISP中的几个理念,最明显的是垃圾收集。它的可移植性使它可以适用于任何程序,它还有一套内置类型。Java没有LISP和Prolog高级,又没有C那样快,但如果要求可移植性那它是最好的。

PYTHON

Python是一种用LISP和JAVA编译的语言。按照Norvig文章中对Lips和Python的比较,这两种语言彼此非常相似,仅有一些细小的差别。还有JPthon,提供了访问Java图像用户界面的途径。这是PeterNorvig选择用JPyhton翻译他人工智能书籍中程序的的原因。JPython可以让他使用可移植的GUI演示,和可移植的http/ftp/html库。因此,它非常适合作为人工智能语言的。

在人工智能上使用Python比其他编程语言的好处

优质的文档

平台无关,可以在现在每一个*nix版本上使用

和其他面向对象编程语言比学习更加简单快速

Python有许多图像加强库像Python Imaging Libary,VTK和Maya 3D可视化工具包,Numeric Python, Scientific Python和其他很多可用工具可以于数值和科学应用。

Python的设计非常好,快速,坚固,可移植,可扩展。很明显这些对于人工智能应用来说都是非常重要的因素。

对于科学用途的广泛编程任务都很有用,无论从小的shell脚本还是整个网站应用。

最后,它是开源的。可以得到相同的社区支持。

AI的Python库

总体的AI库

AIMA:Python实现了从Russell到Norvigs的“人工智能:一种现代的方法”的算法

pyDatalog:Python中的逻辑编程引擎

SimpleAI:Python实现在“人工智能:一种现代的方法”这本书中描述过的人工智能的算法。它专注于提供一个易于使用,有良好文档和测试的库。

EasyAI:一个双人AI游戏的python引擎(负极大值,置换表、游戏解决)

机器学习库

PyBrain 一个灵活,简单而有效的针对机器学习任务的算法,它是模块化的Python机器学习库。它也提供了多种预定义好的环境来测试和比较你的算法。

PyML 一个用Python写的双边框架,重点研究SVM和其他内核方法。它支持Linux和Mac OS X。

scikit-learn旨在提供简单而强大的解决方案,可以在不同的上下文中重用:机器学习作为科学和工程的一个多功能工具。它是python的一个模块,集成了经典的机器学习的算法,这些算法是和python科学包(numpy,scipy.matplotlib)紧密联系在一起的。

MDP-Toolkit这是一个Python数据处理的框架,可以很容易的进行扩展。它海收集了有监管和没有监管的学习算饭和其他数据处理单元,可以组合成数据处理序列或者更复杂的前馈网络结构。新算法的实现是简单和直观的。可用的算法是在不断的稳定增加的,包括信号处理方法(主成分分析、独立成分分析、慢特征分析),流型学习方法(局部线性嵌入),集中分类,概率方法(因子分析,RBM),数据预处理方法等等。

自然语言和文本处理库

NLTK 开源的Python模块,语言学数据和文档,用来研究和开发自然语言处理和文本分析。有windows,Mac OSX和Linux版本。

案例

做了一个实验,一个使用人工智能和物联网做员工行为分析的软件。该软件通过员工情绪和行为的分心提供了一个有用的反馈给员工,从而提高了管理和工作习惯。

使用Python机器学习库,opencv和haarcascading概念来培训。建立了样品POC来检测通过安置在不同地点的无线摄像头传递回来基础情感像幸福,生气,悲伤,厌恶,怀疑,蔑视,讥讽和惊喜。收集到的数据会集中到云数据库中,甚至整个办公室都可以通过在Android设备或桌面点击一个按钮来取回。

开发者在深入分析脸部情感上复杂点和挖掘更多的细节中取得进步。在深入学习算法和机器学习的帮助下,可以帮助分析员工个人绩效和适当的员工/团队反馈。

结论

python因为提供像 scikit-learn的好的框架,在人工智能方面扮演了一个重要的角色:Python中的机器学习,实现了这一领域中大多的需求。D3.js JS中数据驱动文档时可视化最强大和易于使用的工具之一。处理框架,它的快速原型制造使得它成为一门不可忽视的重要语言。AI需要大量的研究,因此没有必要要求一个500KB的Java样板代码去测试新的假说。python中几乎每一个想法都可以迅速通过20-30行代码来实现(JS和LISP也是一样)。因此,它对于人工智能是一门非常有用的语言。

相关书籍推荐:

以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持三水点靠木。

Python 相关文章推荐
Python列表(list)、字典(dict)、字符串(string)基本操作小结
Nov 28 Python
Python生成器(Generator)详解
Apr 13 Python
Python如何实现文本转语音
Aug 08 Python
TensorFlow 合并/连接数组的方法
Jul 27 Python
解决Pycharm出现的部分快捷键无效问题
Oct 22 Python
在PyCharm下打包*.py程序成.exe的方法
Nov 29 Python
对python读写文件去重、RE、set的使用详解
Dec 11 Python
python常用函数与用法示例
Jul 02 Python
Python图像处理PIL各模块详细介绍(推荐)
Jul 17 Python
TensorFlow基本的常量、变量和运算操作详解
Feb 03 Python
Python+OpenCV实现图像的全景拼接
Mar 05 Python
Pytorch中Softmax与LogSigmoid的对比分析
Jun 05 Python
K-means聚类算法介绍与利用python实现的代码示例
Nov 13 #Python
python通过opencv实现批量剪切图片
Nov 13 #Python
flask + pymysql操作Mysql数据库的实例
Nov 13 #Python
django之session与分页(实例讲解)
Nov 13 #Python
python实现图片处理和特征提取详解
Nov 13 #Python
Queue 实现生产者消费者模型(实例讲解)
Nov 13 #Python
python图像常规操作
Nov 11 #Python
You might like
PHP伪造来源HTTP_REFERER的方法实例详解
2015/07/06 PHP
滚动图片效果 jquery实现回旋滚动效果
2013/01/08 Javascript
让checkbox不选中即将选中的checkbox不选中
2014/07/11 Javascript
使用javascript实现简单的选项卡切换
2015/01/09 Javascript
node.js实现爬虫教程
2020/08/25 Javascript
倾力总结40条常见的移动端Web页面问题解决方案
2016/05/24 Javascript
在js里怎么实现Xcode里的callFuncN方法(详解)
2016/11/05 Javascript
textarea 在浏览器中固定大小和禁止拖动的实现方法
2016/12/03 Javascript
ES6使用let命令更简单的实现块级作用域实例分析
2017/03/31 Javascript
nodejs个人博客开发第七步 后台登陆
2017/04/12 NodeJs
JS+HTML5 FileReader实现文件上传前本地预览功能
2020/03/27 Javascript
echarts学习笔记之图表自适应问题详解
2017/11/22 Javascript
微信小程序网络层封装的实现(promise, 登录锁)
2019/05/08 Javascript
微信小程序swiper实现文字纵向轮播提示效果
2020/01/21 Javascript
JavaScript实现简单的弹窗效果
2020/05/19 Javascript
JS+JQuery实现无缝连接轮播图
2020/12/30 jQuery
[03:40]DOTA2亚洲邀请赛小组赛第二日 赛事回顾
2015/01/31 DOTA
编写Python的web框架中的Model的教程
2015/04/29 Python
基于DataFrame筛选数据与loc的用法详解
2018/05/18 Python
django2+uwsgi+nginx上线部署到服务器Ubuntu16.04
2018/06/26 Python
python对文件目录的操作方法实例总结
2019/06/24 Python
原来我一直安装 Python 库的姿势都不对呀
2019/11/11 Python
pycharm运行程序时看不到任何结果显示的解决
2020/02/21 Python
Nebula美国官网:便携式投影仪
2019/03/15 全球购物
同步和异步有何异同,在什么情况下分别使用他们?举例说明
2014/02/27 面试题
初中语文教学反思
2014/02/02 职场文书
人事专员职责
2014/02/22 职场文书
《我要的是葫芦》教学反思
2014/02/23 职场文书
浪费资源的建议书
2014/03/12 职场文书
教师暑期培训感言
2014/08/15 职场文书
写给父母的感谢信
2015/01/22 职场文书
班主任自我评价范文
2015/03/11 职场文书
酒店前台接待岗位职责
2015/04/02 职场文书
基于Redis位图实现用户签到功能
2021/05/08 Redis
MySQL数据库中varchar类型的数字比较大小的方法
2021/11/17 MySQL
Java对文件的读写操作方法
2022/04/29 Java/Android