人工智能与python

news2025/1/16 1:32:45

人工智能的话题在近几年可谓是相当火热,前几天看快本时其中有一个环节就是关于人工智能的,智能家电、智能机器人、智能工具等等,在我的印象里,提到人工智能就会出现 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 这么好上手的、适合初学者的编程语言,为什么不都尝试学一下呢,毕竟技多不压身,不迈开第一步,你永远不知道你后面的路怎么走!

时代在进步,社会在发展,不说人工智能以后会不会大火,但一定不会褪色。

 

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/145315.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

(第三章)OpenGL超级宝典学习:认识渲染管线

OpGL超级宝典学习:认识渲染管线 前言 本章作为OpenGL学习的第三章节 在本章节我们将认识OpenGL的渲染管线 对管线内各个过程有一个初步的认识 ★提高阅读体验★ 👉 ♠一级标题 👈 👉 ♥二级标题 👈 &#x1…

【KG】TransE 及其实现

原文:https://yubincloud.github.io/notebook/pages/paper/kg/TransE/ TransE 及其实现 1. What is TransE? TransE (Translating Embedding), an energy-based model for learning low-dimensional embeddings of entities. 核心思想:将 relationship …

基于R的Bilibili视频数据建模及分析——建模-因子分析篇

基于R的Bilibili视频数据建模及分析——建模-因子分析篇 文章目录基于R的Bilibili视频数据建模及分析——建模-因子分析篇0、写在前面1、数据分析1.1 建模-因子分析1.2 对数线性模型1.3 主成分分析1.4 因子分析1.5 多维标度法2、参考资料0、写在前面 实验环境 Python版本&#…

防火墙命令

启动: systemctl start firewalld 查看状态: systemctl status firewalld 停止:systemctl stop firewalld 禁用:systemctl disable firewalld 怎么开启一个端口呢 添加 firewall-cmd --zonepublic --add-port80/tcp --permanent …

easyx保姆级教程---->从游戏玩家到游戏制作者

请点击这里&#xff1a;安装教程 1.头文件 #include<easyx.h> //这个是只包含最新的API(函数接口) #include<graphics.h> //这个头文件包含了上面的&#xff0c;还包含了已经不推荐使用的函数2.窗口 1.初始化绘制窗口 initgraph(width,height,flag); //窗…

Domino Web应用中的搜索功能和结果选择问题

大家好&#xff0c;才是真的好。 还有不到十天Domino多瑙河版本就将发布&#xff0c;在此之前&#xff0c;我们还是讲述一下Web中的搜索技术。 废话不多说&#xff0c;我们直接上干货。 Notes应用的视图在Web浏览器中可以直接展现&#xff0c;并且可选择。 如果这样展现的话…

【QGIS入门实战精品教程】8.1:QGIS制作地图案例教程

文章目录 一、加载矢量数据二、加载影像底图三、美化矢量数据四、切换到排版视图五、添加经纬度格网六、添加其他修饰元素七、地图输出一、加载矢量数据 加载本实验数据基础数据.gpkg中的甘肃省政区矢量数据,如下所示: 二、加载影像底图 QGIS加载在线地图案例教程参考: 【…

5、Java中的JDBCJDBCUtilsJDBC控制事务getResource中文或有空格路径处理ResourceBundle演示

JDBC&#xff1a; 1. 概念&#xff1a;Java DataBase Connectivity Java 数据库连接&#xff0c; Java语言操作数据库 * JDBC本质&#xff1a;其实是官方&#xff08;sun公司&#xff09;定义的一套操作所有关系型数据库的规则&#xff0c;即接口。各个数据库厂商去实现这…

回收租赁商城系统功能拆解04讲-商品品牌

回收租赁系统适用于物品回收、物品租赁、二手买卖交易等三大场景。 可以快速帮助企业搭建类似闲鱼回收/爱回收/爱租机/人人租等回收租赁商城。 回收租赁系统支持智能评估回收价格&#xff0c;后台调整最终回收价&#xff0c;用户同意回收后系统即刻放款&#xff0c;用户微信零…

第04章 程序控制结构

在程序中&#xff0c;程序运行的流程控制决定程序是如何执行的。 顺序控制 介绍&#xff1a; 程序从上到下的逐行的执行&#xff0c;中间没有任何判断和跳转。 使用&#xff1a;java中定义变量时&#xff0c;采用合法的前向引用。如&#xff1a; public class Test{int num…

【虚幻引擎】UE4/UE5像素流在广域网上(云)部署(多实例)

一、选择云服务器 每个云平台都提供许多预设的镜像选择&#xff0c;由于像素流技术目前只支持Windows操作系统&#xff0c;所以我们需要选择Windows Server的镜像&#xff0c;2012/2016/2019皆可。我们这里选择了Windows Server 2016 R2 简体中文版的镜像&#xff0c;之所以选择…

【SSM整合】对Spring、SpringMVC、MyBatis的整合,以及Bootstrap的使用,简单的新闻管理系统

✅作者简介&#xff1a;热爱Java后端开发的一名学习者&#xff0c;大家可以跟我一起讨论各种问题喔。 &#x1f34e;个人主页&#xff1a;Hhzzy99 &#x1f34a;个人信条&#xff1a;坚持就是胜利&#xff01; &#x1f49e;当前专栏&#xff1a;【Spring】 &#x1f96d;本文内…

代码随想录第53天|● 1143.最长公共子序列 ● 1035.不相交的线 ● 53. 最大子序和 动态规划

1143.最长公共子序列 和718.最长重复子数组类似 包括二维数组初始化这些 不同之处在于递推公式主要就是两大情况&#xff1a; text1[i - 1] 与 text2[j - 1]相同&#xff0c;text1[i - 1] 与 text2[j - 1]不相同 如果text1[i - 1] 与 text2[j - 1]相同&#xff0c;那么找到了…

Windows/Linux日志分析

Windows日志分析 Windows系统日志是记录系统中硬件、软件和系统问题的信息&#xff0c;同时还可以监视系统中发生的事件。用户可以通过它来检查错误发生的原因&#xff0c;或者寻找受到攻击时攻击者留下的痕迹。 Windows主要有以下三类日志记录系统事件&#xff1a;应用程序日志…

【链表】leetcode707.设计链表(C/C++/Java/Js)

leetcode707.设计链表1 题目2 思路3 代码3.1 C版本3.2 C版本3.3 Java版本3.3.1 单链表3.3.2 双链表3.4 JavaScript版本4 总结1 题目 题源链接 设计链表的实现。您可以选择使用单链表或双链表。单链表中的节点应该具有两个属性&#xff1a;val 和 next。val 是当前节点的值&…

2022年地图产业研究报告

第一章 行业概况 地图是按照一定法则&#xff0c;有选择地以二维或多维形式与手段在平面或球面上表示地球&#xff08;或其它星球&#xff09;若干现象的图形或图像&#xff0c;它具有严格的数学基础、符号系统、文字注记&#xff0c;并能用地图概括原则&#xff0c;科学地反映…

canvasjs javascript-charts 3.7.3 Crack

canvasjs javascript-charts/ 3.7.3 具有 30 多种图表类型的 JavaScript 图表库 具有 10 倍性能和 30 多种图表类型的 JavaScript 图表和图形库。核心 JavaScript 图表库是独立的&#xff0c;但也带有流行框架的组件&#xff0c;如 React、Angular、Vue 等。图表响应迅速&#…

14、RH850 F1 RAM存储器介绍

前言: RAM——程序运行中数据的随机存取&#xff08;掉电后数据消失&#xff09;整个程序中&#xff0c;所用到的需要被改写的量&#xff0c;都存储在RAM中&#xff0c;“被改变的量”包括全局变量、局部变量、堆栈段&#xff0c;此专栏会有针对SPI的工作原理的详细介绍。 一、…

性能优化系列之如何选择合适的WebView内核?

文章の目录一、iOS UIWebView1、优点2、不足二、iOS WKWebView1、优势2、不足三、Android WebKit 和 Chromium四、Android 第三方1、X5 内核五、选型建议写在最后一、iOS UIWebView 1、优点 从 iOS 2 开始就作为 App 内展示 Web 内容的容器排版布局能力强 2、不足 内存泄露…

将两个对象以指定方法按指定轴对齐的DataFrame.align()方法

【小白从小学Python、C、Java】【计算机等级考试500强双证书】【Python-数据分析】将两个对象以指定方法按指定轴对齐DataFrame.align()选择题关于以下python代码说法错误的一项是?import pandas as pddf1 pd.DataFrame({"A": [1,2],"B":[3,4]})df2 pd.…