关于人工智能和python
人工智能的话题在近几年可谓是相当火热,前几天看快本时其中有一个环节就是关于人工智能的,智能家电、智能机器人、智能工具等等,在我的印象里,提到人工智能就会出现 Python,然后我便在网上查找了相关信息,并整合了一下。

人工智能
人工智能,英文缩写为AI,是研究、开发用于模拟、延伸和扩展人的智能的理论、方法、技术及应用系统的一门新的技术科学;是计算机科学的一个分支,它企图了解智能的实质,并生产出一种新的能以人类智能相似的方式做出反应的智能机器,该领域的研究包括机器人、语言识别、图像识别、自然语言处理和专家系统等。
Python
Python 是一种跨平台的计算机程序设计语言。是一种面向对象的动态类型语言,最初被设计用于编写自动化脚本(shell),随着版本的不断更新和语言新功能的添加,越来越多被用于独立的、大型项目的开发。
之间的关系
而一般说起人工智能都认为是用 Python 语言实现的,就如我之前说的,但查完资料发现,的确大部分的人工智能的代码都是使用 Python 来编写,写人工智能代码时需要用到许多框架工具和库,这些大部分都是 Python 提供的,Python是这些库的API binding,但并不能因为这样就认为人工智能就是靠 Python 写的,Python 是解释语言,速度比较慢,它只是调用AI接口,而人工智能核心算法是完全依赖于 C/C++ 这类编译语言,真正的计算全是 C/C++ 写好的数据底层,因为是计算密集型,需要非常精细的优化,还需要GPU、专用硬件之类的接口,这些都只有C/C++能做到,用Python只是写相应的逻辑!所以某种意义上其实C/C++才是人工智能领域最重要的语言。
那为什么不直接全部用 C/C++ 写人工智能呢?这是因为 Python 强大的便捷性,开发生态成熟,有很多有用的库可以用。使用 Python是因为 CPython 的胶水语言特性,要开发一个其他语言到 C/C++ 的跨语言接口,Python是最容易的,比其他语言的 ffi 门槛要低不少,C语言要写几百行的代码,可能用 Python 几行就搞定了,效率很高。尤其是使用 Cython 的时候。其他语言的 ffi 许多都只能导入 C 的函数入口点,复杂的数据结构大多只能手工用 byte 数组拼起来,如果还需要回调函数输入那就无计可施了。而 CPython 的 C API 是双向融合的,可以直接对外暴露封装过的 Python 对象,还可以允许用户通过继承这些自定义对象来引入新特性,甚至可以从 C 代码当中再调用 Python 的函数。比如3D游戏中的图形渲染模块,性能要求特别高,就可以用C/C++重写,而后封装为Python可以调用的扩展类库。
打个比方,就像我们统计数据或选择用 excel 制作表格时,因为在需要用到加减乘除或者、函数等时,只需要套用公式就可以,因为 SUM、AVERAGE 等这样的函数运行的背后,是 C++/C# 等语言已经编写好了代码,所以 Excel 只是工具和展现形式并不是它做计算。同理在学习人工智能时 Python 只是用来操作深度学习框架的工具,实际负责运算的主要模块并不依靠 Python,真正起作用的是也是一大堆复杂的 C/ C++ 程序。
用于通用 AI:
AIMA —— Python 实现 Russell 和 Norvig 的‘Artificial Intelligence: A Modern Approach’库。
pyDatalog —— Python 中的逻辑编程引擎
SimpleAI —— Python 实现了“AIMA”一书中描述的许多人工智能算法。它侧重于提供易于使用,有据可查的测试库。
EasyAI —— 简单的 Python 引擎,用于 AI 的双人游戏,如 Negamax, transposition tables, game solving。
用于机器学习:
PyBrain —— 灵活、简单,但对于机器算法任务非常高效,它是 Python 的一个机器学习模块化库。它还提供了各种预定义的环境来测试和比较你的算法。
PyML —— 一款以 Python 编写的侧重于 SVM 和其他内核方法的双边框架。它支持在 Linux 和 Mac OS X 上运行。
scikit-learn —— 旨在提供在各种环境下可重复使用的简单而强大的解决方案:机器学习作为科学和工程的多功能工具。它是一个 Python 模块,它将经典的经典机器学习算法集成在如紧密结合的科学世界的 Python 软件包中(如 numpy,scipy,matplotlib)。
小结
了解了 Python 和人工智能的关系后,我认为虽然人工智能的核心算法是 C/C++,但我们编写代码时并不需要过多的了解 C/C++,我们只需要用到 Python 就好,而 Python 语言对初学编程的人来说是很友好的,被称为“最不需要备注的语言”。上手快,语言简单易懂,对比其他语言来说没那么多条条框框的规则。
随着社会的不断发展和需求,人工智能已经逐渐被发展到社会行业的方方面面,从科学层面看,人工智能跨越认知科学、神经科学、数学和计算机科学等学科,具有高度交叉性;从技术层面看,人工智能包含计算机视觉、机器学习、知识工程、自然语言处理等多个领域,具有极强专业性;从产业层面看,人工智能在智能制造、智慧农业、智慧医疗、智慧城市等领域的应用不断扩大,具有内在融合性;从社会层面看,人工智能给社会治理、隐私保护、伦理道德等带来新的影响,具有全面渗透性。目前,在边界清晰、规则明确、任务规范的特定应用场景下(如下围棋、人脸识别、语音识别)设计出的智能体表现出较好的专用智能。在全新理念的引导下,机器人可以更多承担重复简单甚至是危险的工作,而帮助人类从繁杂工作中解放,获得更多从事创造性工作的机会。比起人工智能完全取代人的方式,工厂不必担心人工智能做出错误的决定延误生产,也不用考虑人在做重复劳动时效率降低的问题,双方取长补短,最大化的提升生产效率,从长远角度来看,这样的方式无疑更符合生产的需求,也更符合社会的需求。
所以我有一句话想对没学过编程,但对人工智能有所期望的人说:既然有 Python 这么好上手的、适合初学者的编程语言,为什么不都尝试学一下呢,毕竟技多不压身,不迈开第一步,你永远不知道你后面的路怎么走!
时代在进步,社会在发展,不说人工智能以后会不会大火,但一定不会褪色。
参考链接:https://blog.csdn.net/leyangjun/article/details/79931144
关于人工智能和python的更多相关文章
- 人工智能为什么选择Python语言?
作为新手,在面对广泛应用于企业级应用开发的 Java.游戏客户端开发的 C++.嵌入式开发的 C.人工智能领域的 Python 等数百种编程语言时,你会如何选择自己的第一门编程语言? 作者 | JAC ...
- 为什么人工智能用Python
开发效率高.python有很多库很方便做人工智能,比如numpy, scipy做数值计算的,sklearn做机器学习的,pybrain做神经网络的,matplotlib将数据可视化的. 如果很在乎性能 ...
- 饮冰三年-人工智能-Python-22 Python初识Django
1:一个简单的web框架 # 导包 from wsgiref.simple_server import make_server #自定义个处理函数 def application(environ,st ...
- 饮冰三年-人工智能-Python-21 Python数据库MySql
一:下载与安装 1:下载地址:https://dev.mysql.com/downloads/mysql/ 2:安装MySql 打开下载文件解压到指定文件目录.(我这里解压目录为D:\MySql\my ...
- 饮冰三年-人工智能-Python-20 Python线程、进程、线程
进程:最小的数据单元 线程:最小的执行单元 一: 1:线程1 import threading #线程 import time def Music(): print("Listen Musi ...
- 饮冰三年-人工智能-Python-19 Python网络编程
Socket:套接字.作用:我们只需要安照socket的规定去编程,就不需要深入理解tcp/udp协议也可以实现 1:TCP协议 1.1 客户端服务端循环收发消息 # 1:引入stock模块(导包) ...
- [人工智能] 安装python jupyter
1. 什么是python jupyter ? 简单的说,可以理解为一个IDE. http://jupyter.org/ 2. 安装python jupyter notebook http://ju ...
- 饮冰三年-人工智能-Python-30 python开发中常见的错误
1:触发条件:创建的实体类生成到数据库表时报错 报错信息:TypeError: __init__() missing 1 required positional argument: 'on_delet ...
- 饮冰三年-人工智能-Python-23 Python PyCharm 使用中常见的问题
一:软件工具使用中遇到的问题 1:AttributeError: module 'pip' has no attribute 'main'问题 处理方法: a:找到JetBrains\PyCharm ...
随机推荐
- mysql 查询参数尾部有空格时被忽略
最近再使用mysql时,无意见发现,当我查询参数尾部输入若干个空格时,依然可以查出和不加空格相同的结果,像这样 select * from wa where name='be ' 等同于 select ...
- java中存储机制堆栈。
一.java的六种存储地址及解释 1) 寄存器(register):这是最快的存储区,因为它位于不同于其他存储区的地方——处理器内部.但是寄存器的数量极其有限,所以寄存器由编译器根据需求进行分配.你不 ...
- spring security jquery ajax重定向问题解决
服务器端security增加一个配置如下: @Override protected void configure(HttpSecurity http) throws Exception { Strin ...
- 单点登录(两种单点登录类型:SSO/CAS、相同一级域名的SSO)
单点登录:SSO(Single Sign On) 什么是单点登录:大白话就是多个网站共享一个用户名和密码的技术,对于普通用户来说,只需要登录其中任意一个网站,登录其他网站的时候就能够自动登陆,不需要再 ...
- 实现非管理型UPS在linux主机上的停电自动关机
买了个山特的SANTAK TG-BOX 850 UPS,自带USB通讯线缆.本以为官方软件提供Linux下的CLI命令以监控UPS状态. 官网提供的下载链接巨慢无比不说,CLI下只提供了安装脚本,没有 ...
- RxSwift 入门
ReactiveX 是一个库,用于通过使用可观察序列来编写异步的.基于事件的程序. 它扩展了观察者模式以支持数据.事件序列,并添加了允许你以声明方式组合序列的操作符,同时抽象对低层线程.同步.线程安全 ...
- 洗牌Shuffle'm Up POJ-3087 模拟
题目链接:Shuffle'm Up 题目大意 模拟纸牌的洗牌过程,已知两个牌数相等的牌堆.求解经过多少次洗牌的过程,使牌的顺序与目标顺序相同. 思路 直接模拟,主要是字符串的操作.问题是,如何判断出不 ...
- [Python]字典的简单用法
Python中的字典与现实中字典类似,从字典中可以找到“鱼”字:鱼类是体被骨鳞.以鳃呼吸.通过尾部和躯干部的摆动以及鳍的协调作用游泳和凭上下颌摄食的变温水生脊椎动物.类比到Python的字典中,把“鱼 ...
- windows无法安装到这个磁盘怎样解决,及激活
在cmd输入.sql server 2008 slmgr.vbs -ipk KH2J9-PC326-T44D4-39H6V-TVPBY 这个问题遇到的挺多次的,依稀记得上次搞这个问题搞了很久,今天 ...
- 基于Docker搭建大数据集群(四)Spark部署
主要内容 spark部署 前提 zookeeper正常使用 JAVA_HOME环境变量 HADOOP_HOME环境变量 安装包 微云下载 | tar包目录下 Spark2.4.4 一.环境准备 上传到 ...