人工智能的先修知识
人工智能的先修知识
1.Python
Python与C不同,Python是一门解释型的语言,而C语言是编译型的语言。所以学过Python的同学应该能发现,我们是可以改变库的名字就像下面这样
虽然Python一直被诟病运行的速度比较慢,但是Python由于pip包管理工具和以C作为解释器的优点,我们在训练好模型后往往只要几行代码就可以完成部署,而且正因为解释器是C语言的所以,它和C语言进行适配,底层的代码库通过C/C++来开发,通过调用的方式既可以做到十分的简单,又可以保证速度,所以在此建议,想学人工智能的同学们,学一学C++。
为什么Python如此方便好用看下面我如何装Pytorch的库
在CUDA11.8的版本下windows安装只需要一行如此简单的命令就可以装入Pytorch这就是pip的好用之处,学过C++的同学就知道这有多舒服了,Java有maven、gradle Python有pip C#有nuget但是C++没有导致配置环境十分的痛苦。而Python真正的做到了一行命令就可以结束。
在下面我会详细介绍一下什么是CUDA如何安装这里就简单的介绍一下
那么有同学会问了,我要学Python那我要下什么软件呢,别急哦,一步一步来,首先呢去Python的官网上面去下载Python,我的建议是选择3.7~3.9的版本比较合适,太新的版本有一些库是没有办法下载的,建议这两个版本的库。下载完Python后还需要添加环境变量,这里不做教程,这是必要会的操作,网上搜教程,实在不会的话,找学长或学姐请教,这个是一定要会的。
1.1常用软件下载(Pycharm Anaconda)
接下来就是下载集成开发环境,这边的话推荐Pycharm,方便好用。推荐另一个集成开发环境Anaconda进阶版里面会具体讲到,这边只做一个了解,大部分的软件包括Pycharm这个里面都有,这个后面在具体展开介绍
下面是Anaconda打开的图片
我们一般常用的编程软件是Vscode或者是Pycharm,搞人工智能常用的软件是jupyter
1.2Python常用的库
1.1.1 numpy
那么这个库是干什么用的呢,主要是用来进行大量的维度数组,矩阵运算的,线性代数,傅里叶变换,随机数生成的功能,针对数组也提供了大量的数学函数库
这个库经常会和Matplotlib(绘画库)一起使用
1.1.2 pandas
pandas经常用与数据分析,可以从中导入数据进行处理,它广泛的用于各个领域
LeetCode上线了pandas的题目,可以去练练,如果学了以后不知道如何实践的话
2.数学知识
从上面的库中我们也可以看到,实际上对于数学的要求是比较高的,但是这是对于要考研的同学来说的,我们不考研的同学,不用知道那么多,了解一下就行,需要高数,线性代数,概率论等知识,对于不同的领域还需要去学对应的一些知识,比如计算机视觉领域,还需要学习Opencv,声音处理还需要学习数字信号处理等等人工智能是一个综合性很强的学科,也是最好玩的学科
3.机器学习和深度学习的区别
很多同学都不太明白,机器学习和深度学习到底有什么区别?
3.1机器学习
简单来概括,在以前技术没那么发达的时候,通过简单的机器学习,比如识别图片,给他十几张图片训练,和看到的照片进行比对,这就是有名的模板匹配,可以理解就是死记硬背
3.2深度学习
再后来随着技术的发展,科学家们发现机器学习的死记硬背是根本不够用的,而且也不支持多输入,接着科学家们开始研究人脑,随之而来的就是深度学习,那么深度学习好在哪里呢,首先它支持多输入,多输出,可以同时完成很多物品的识别,相比于传统的机器学习,它是自主学习的,大家应该有听说过神经网络,神经网络就是模仿我们的人类一样去学习,首先学习,接着记忆,学了一段时间后开始验证,如果错了,返回去更新,接着学习,直到一个最优解。
4.linux系统的使用
4.1为什么需要学习linux系统的命令
有一些同学的电脑可能是轻薄本或者是Mac电脑,那么肯定就会涉及到一个问题,就是没有显卡,或者说是显卡算力不够,那么我们就可能会用到云服务器,云服务器的话一般都是linux系统,为什么上面提到人工智能经常会用jupyter因为jupyter是一个可以运行操作系统命令的软件,并且它是可以直接拷贝别人的代码的,所以学会简单的linux命令是很有必要的
这里介绍几个常用的在jupyter中使用的命令,有一些CUDA的安装Pytorch的安装会在后面讲到,这边的话默认服务器都装好了
进入某个文件夹
列出当前文件夹下的所有文件
创建文件夹
pip安装卸载
运行python程序
安装程序
解压压缩包
zip后缀
tar后缀
5.人工智能模型的不同领域
人工智能也不是只有机器学习和深度学习的,也有强化学习,生成式对抗网络等,这里不做过多的介绍(我没怎么用过,交给后面的学弟学妹补充了)
6.常见的人工智能框架和模型
6.1常见框架
框架最大的用处就是类似于Matlab仿真或者说就是Math库,帮助我们完成一些向量化的自动的计算,直接调用设置参数就可以完成
6.1.1 Pytorch
是Facebook开源的神经网络框架,专门针对GPU加速的神经网络编程,主要偏向于科研想考研的同学,这个框架你们肯定是逃不开的,pytorch是动态框架,pytorch的库还在完善中
6.1.2 tensorflow
是google推出的深度学习框架,主要偏向于工业部署,tensorflow的库比较完备,是静态框架
6.1.3 paddlepaddle
隶属于百度旗下的深度学习框架,国内目前最好的框架,提供免费服务器,全国大学生智能车比赛就是用的飞浆的百度大脑FZ3B,从数据集标注训练到部署,都有简化版本,真正的做到了初学者很容易入门,如果不考研的同学,我是比较推荐这个框架的,因为上面有很多的开源项目
6.1.4 Scikit-Learn
大三的AI专业在学习机器学习时,可能会用到这个框架,它是一个开源的基于python的机器学习工具包
6.2常见模型
6.2.1 YOLO(You only look once)模型
YOLO是目标检测模型,常用于找寻一张照片中某些特定的物体,YOLO模型在整个图像领域都是独一档的好,我们有涉及到图像方面的都会去考虑YOLO模型去实现,YOLO模型也有对应的Pytorch版,它的数据集格式稍微奇怪一点,是txt的,区别于常见的voc和coco,不过可以通过后面的roboflow导出YOLO-Pytorch版的直接进行训练
6.2.2 Bert模型
建议tensorflow1.x的版本,2.0的版本很多函数都没有了,是NLP类型的,NLP类型的模型是类似于chatgpt的,语言类模型
6.2.3 SSD模型
SSD模型也是很常见的目标检测类的模型,速度非常快,但是准确率的话可能有点小低
7.常见的数据集类型
VOC(xml)
coco(json)
txt