解读! Python在人工智能中的作用


Posted in Python onNovember 14, 2017

人工智能是一种未来性的技术,目前正在致力于研究自己的一套工具。一系列的进展在过去的几年中发生了:无事故驾驶超过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中变量交换的例子
Aug 25 Python
Python的Bottle框架中实现最基本的get和post的方法的教程
Apr 30 Python
使用Python脚本和ADB命令实现卸载App
Feb 10 Python
python中使用xlrd读excel使用xlwt写excel的实例代码
Jan 31 Python
NumPy 数学函数及代数运算的实现代码
Jul 18 Python
python进阶之多线程对同一个全局变量的处理方法
Nov 09 Python
Python面向对象基础入门之设置对象属性
Dec 11 Python
pyqt5 实现在别的窗口弹出进度条
Jun 18 Python
python3.x+pyqt5实现主窗口状态栏里(嵌入)显示进度条功能
Jul 04 Python
pycharm 对代码做静态检查操作
Jun 09 Python
Python使用tkinter制作在线翻译软件
Feb 22 Python
教你怎么用PyCharm为同一服务器配置多个python解释器
May 31 Python
python利用有道翻译实现"语言翻译器"的功能实例
Nov 14 #Python
TensorFlow在MAC环境下的安装及环境搭建
Nov 14 #Python
python中文分词,使用结巴分词对python进行分词(实例讲解)
Nov 14 #Python
Python中import机制详解
Nov 14 #Python
AI人工智能 Python实现人机对话
Nov 13 #Python
Python编程实现蚁群算法详解
Nov 13 #Python
Python编程实现粒子群算法(PSO)详解
Nov 13 #Python
You might like
用PHP实现文件上传二法
2006/10/09 PHP
PHP curl CURLOPT_RETURNTRANSFER参数的作用使用实例
2015/02/07 PHP
php中switch与ifelse的效率区别及适用情况分析
2015/02/12 PHP
完美解决phpdoc导出文档中@package的warning及Error的错误
2016/05/17 PHP
javascript入门基础之私有变量
2010/02/23 Javascript
javascript学习笔记(三) String 字符串类型介绍
2012/06/19 Javascript
jquery 实现密码框的显示与隐藏示例代码
2013/09/18 Javascript
javascript/jquery获取地址栏url参数的方法
2014/03/05 Javascript
Javascript中浮点数相乘的一个解决方法
2014/06/03 Javascript
JS跨域问题详解
2014/11/25 Javascript
jQuery 判断图片是否加载完成方法汇总
2015/08/10 Javascript
js添加绑定事件的方法
2016/05/15 Javascript
全面理解闭包机制
2016/07/11 Javascript
JavaScript中省略元素对数组长度的影响
2016/10/26 Javascript
详解如何使用PM2将Node.js的集群变得更加容易
2017/11/15 Javascript
vue中axios解决跨域问题和拦截器的使用方法
2018/03/07 Javascript
jQuery实现鼠标移到某个对象时弹出显示层功能
2018/08/23 jQuery
vue-cli+axios实现文件上传下载功能(下载接收后台返回文件流)
2019/05/10 Javascript
详解vue中使用axios对同一个接口连续请求导致返回数据混乱的问题
2019/11/06 Javascript
JS常用正则表达式超全集(密码强度校验,金额校验,IE版本,IPv4,IPv6校验)
2020/02/03 Javascript
在react中使用vue的状态管理的方法示例
2020/05/02 Javascript
[14:20]刀塔大凶女神互压各路奇葩屌丝
2014/05/16 DOTA
Python 时间操作例子和时间格式化参数小结
2014/04/24 Python
详细介绍Python的鸭子类型
2016/09/12 Python
浅谈Matplotlib简介和pyplot的简单使用——文本标注和箭头
2018/01/09 Python
Python打开文件,将list、numpy数组内容写入txt文件中的方法
2018/10/26 Python
django实现支付宝支付实例讲解
2019/10/17 Python
Numpy将二维数组添加到空数组的实现
2019/12/05 Python
Python DES加密实现原理及实例解析
2020/07/17 Python
英国建筑用品在线:Building Supplies Online(BSO)
2018/04/30 全球购物
小米官方旗舰店:Xiaomi
2020/08/07 全球购物
教师职称自我鉴定
2014/02/12 职场文书
交警作风整顿剖析材料
2014/10/11 职场文书
公司领导班子召开党的群众路线教育实践活动总结大会新闻稿
2014/10/21 职场文书
2015双创工作总结
2015/07/24 职场文书
python开发实时可视化仪表盘的示例
2021/05/07 Python