AI快速入门必读



AI快速入门必读
扫码关注公众号,参与学习

AI for Test 使能测试技术

论文学习●经验交流●研讨会


AI快速入门必读

Learning Together


AI快速入门必读
本期介绍

     AI,人工智能,2023年从chatGPT开始进入人们视野,将会在2024年爆发。美国的投资界把这次的人工智能LLM大模型看成是“1980年代的 pc、1995年的互联网”,是一场工业革命级别的机会点,他们有一个观点一旦某国在人工智能上形成了自己的优势那对其他国家对全球竞争来说就是降维打击。人工智能绝对是我们这一代人今天碰到的最大的机会。

    那么如何学习Al?都需要什么样的知识基础?需要什么样的软件工具库?要了解哪些编程功能函数?本期为大家做一个基本的引导,以便帮助大家快速入门,走出第一步,少走弯路。

AI快速入门必读
AI快速入门必读
                                                        


什么是 Al ?

    要想学习Al,首先要知道它是什么?范围是哪些?


    人工智能(Al,Artificial Intelligence):它是研究、开发用于模拟、延伸和扩展人的智能的理论、方法、技术及应用系统的一门新的技术科学。人工智能的目的就是让机器能够像人一样思考,让机器拥有智能。时至今日,人工智能的内涵已经大大扩展,是一门交叉学科。[引用:知乎] 


1.1
AI发展史

    1956年是Al-人工智能元年,其发展里程碑如下图[引用:知乎]示:

AI快速入门必读

    1956年在达特茅斯会议上由约翰.麦卡锡首次提出,当时的定义为“制造智能机器的科学与工程”。达特茅斯会议足足开了两个月的时间,虽然大家没有达成普遍的共识,但是却为会议讨论的内容起了一个名字:人工智能。


1.2
AI核心领域

    提到AI,首先大家想到的是机器学习、深度学习等领域[引用:知乎]:

AI快速入门必读

    它们的关系可以简单描述如下:

  1. 人工智能:是研究、开发用于模拟、延伸和扩展人的智能的理论、方法及应用系统的一门新的技术科学。

  2. 机器学习:专门研究计算机怎样模拟或实现人类的学习行为,以获取新的知识或技能,重新组织已有的知识结构使之不断改善自身的性能。是人工智能的核心研究领域之一。

  3. 深度学习:源于人工神经网络的研究,多层感知器就是一种深度学习结构。深度学习是机器学习研究中的一个新的领域,它模仿人脑的机制来解释数据,例如图像,声音和文本。


    机器学习是人工智能的一个重要子领域,深度学习又是机器学习的一个重要的子领域。


1.3
AI基础原理&算法

    机器学习的本质是基于观测数据样本的“归纳法”,我们听到的“某某LLM大模型是16B,几千亿参数…”,表达的就是这个LLM大模型是从多少的训练数据中训练出来的。数据是基础,训练过程是对数据的处理,包括数据预处理、清洗、分片、向量化、特征提取、建模、评估、调优、调精等操作,其中用到很多高等数学线性代数概率统计理论等基础知识,同时还需要用到很的编程软件库来实现这些处理过程。


    其中,入门阶段最关键的是这个训练过程的处理方案和原理,为什么要这样做?基本的步骤是啥?理论是啥?学习Al的初始阶段,弄清原理比深入算法实现更重要,这是因为业界已有很多成熟的算法实现库,比一个新学者从0开始编写在质量和效率上要好很多。但是到了Al的高级阶段,核心任务偏重到结果的调精/调优处理上,大众软件库满足不了情况下,此时可能会对算法实现代码上下功夫了。

    

    Al的学习初始阶段,首先要理解Al的处理过程、算法原理,以及常用到的功能库的用法,接下来用2个大章节介绍机器学习深度学习的流程、建模、各种算法及评估原理。

    

Al 机器学习

机器学习有以下纬度的理解:

  1. 机器学习是专门研究计算机怎样模拟或实现人类的学习和思考行为;

  2. 有推理能力,从训练的知识或技能里,能重新组织知识结构,得到新的判断或结果;

  3. 机器学习就是计算机用机器学习算法来建立模型,从数据中学习规律和模式,在新数据上做出决策和预测;

  4. 机器学习与传统的工程工具不同,机器学习通过算法模型能动态、自主的“思考”出答案,从学习中完成任务;传统工程工具是为解决特定任务,设计硬编码的软件程序,为事先设计定义好的固定逻辑处理过程;

  5. 机器学习是基于数据的“归纳法”,数据是基础,训练是能力建模;

  6. 机器学习的本质,一切都是量化的,而不是“抽象、模糊”的。原生的图片、文字等形式都是机器无法直接辨识的,都要先转化为数字、向量、矩阵。


2.1
机器学习的流程

    机器学习的最典型流程的核心步骤包括“数据收集预处理特征提取模型训练评测”。

01
数据收集

   业界有一个共识“数据决定了机器学习的上界,而模型和算法只是逼近这个上界”,可见数据的重要性和基础性。

    给Al大模型做输入的训练数据也叫做语料,其来源⼗分丰富,⽐如维基百科、书籍、论坛、代码等。

    语料的质量和分布对大模型的训练效果有很大的影响,从大模型的训练周期和效果看,语料有如下几类:

  1. 容易获取的通用、共享、大众化的通识数据:如互联网上能获取到的各种数括,是训练的主体数据;

  2. 长尾数据:是指训练集中的少数类别(头部数据)占多数的样本,而大量其余类别(尾部数据)占少数的样本,导致分类和识别系统对头部数据过拟合,对尾部数据欠拟合;

    AI快速入门必读

    绿色:头部数据    黄色:长尾数据


  3. 私有数据:众多有权限、保密性的数据,通用大模型的训练是无法获取到的;

  4. 数据的新鲜度:LLM 学习的知识来⾃于训练数据,虽然⼤部分知识的更新周期不会很快,但依然会有⼀些知识或者信息更新得很频繁,很容易过时。象chat-GPT在23年刚发布时使用的数据是几年前的。

长尾数据、私有数据、数据的新鲜度对大模型的训练效果有很大的影响,一般需要一些模型算法、调精算法,甚至一些特殊的处理技术如RAG来优化。


02
数据预处理

    一般情况下,获取到的训练数据会存在缺失不完整重复混乱等情况,在使用之前都需要进行数据预处理; 


    数据预处理没有统一的标准,一般结合训练场景需要会做去除重复处理缺失分片结构化特征编码特征缩放等处理; 


    数据获取模块会将多种来源、多种类型和格式的数据通过适配转换成⼀个统⼀的⽂档格式 (如常用的json ),便于后续的处理和使⽤。⽂档的格式可基于业务需要自定义,⼀般包括如时间信息、标题、关键词、⼈物、地点、⽂本总结、摘要等等。

03
特征提取

    机器学习使用数学模型来拟合数据,在机器学习流程中,特征是数据和模型之间的纽带; 


    特征提取是通过对数据的处理和加工,将数据属性通过处理转换为数据特征的过程; 


    这个过程处理是机器学习流程中一个极其关键的环节,机器学习流程的绝大部分时间都耗费在特征提取和数据预处理上[重要性],大模型的调优过程也较多耗费于此。


04
模型构建和训练

    当我们提取完特佂数据后就可以开始选择模型训练了; 

    机器学习模型的选择有很多考虑,每个模型都有自己的适用场景,合适的选择训练的效果会更好,做大模型一个难点就是选择一个最合适的模型,有时因训练数据庞大且复杂,最合适的模型是很难明确选择的,甚至有时候需要反复选择,比较分析才能选定一个相对较好的模型。需要考虑有很多纬度,如:

  1. 对处理好的数据分析判断,选择监督学习无监督学习的模型;

  2. 分析问题的类型来判断是属于分类问题,还是回归问题

  3. 还会考虑到数据集的大小,若是数据样本较少,训练的时间较短,通常考虑朴素贝叶斯等一些轻量级的算法,否则的话就要考虑一些重量级的算法


    选好模型后就可以开始训练模型了,训练模型的本质在于找到最合适的权重、参数,以便最大限度地分类(分类问题)或者,预测与实际值之间的误差最小(回归问题); 


    训练的结果,还要进行充分的验证、分析、比较,这样不断的“特征提取模型选择训练调参/调优比较/验证”循环迭代过程,直到训练出最佳效果的模型。 

05
大模型评测

    标准的大模型评测,一般是用成熟的基准评测集,如TextVQA、MathVista、ChartQA、InfographicVQA、Ai2D、Wikilingua、XLSum、数学基准 MGSM(它是数学基准 GSM8K 的翻译变体)、MMMU基准测试(该基准测试包括需要大学水平学科知识和刻意推理的多学科任务图像的问题)、MMLU(是一项通过一系列考试测试知识和推理的著名的基准测试)等等众多全球公认的基准评测集。

AI快速入门必读
举例
谷歌Gemini评测

谷歌最新发布的Gemini Ultra在32个评测集中有30个取得了新的领先水平,包括:

  1. 12个流行文本和推理基准测试中的10个取得了领先水平;

  2. 9个图像理解基准测试中全部9个取得了领先水平;

  3. 6个视频理解基准测试中全部6个取得了领先水平;

  4. 5个语音识别和语音翻译基准测试中全部5个取得了领先水平;


『参见以前文章《Gemini学习交流笔记》』


2.2
机器学习分类

    基于训练数据的不同,是否有标注,机器学习可为两大类:

  1. 监督学习(Supervised Learning),有数据和答案;

  2. 无监督学习(Unsupervised Learning),只有数据没有答案;

01
监督学习
AI快速入门必读
场景
小孩识羊

    就象父母或老师教小孩子一样,指着羊(训练数据样本)说“这是羊”,这样在小孩子的意识里就慢慢的记住了“长这个样子的动物就叫羊”。

    监督学习的每个输入样本都有标注,这个标注就像标准答案一样“监督”着学习的过程。


    监督学习又可分成两类:分类和回归:

· 分类问题:Classification,标注是不连续的,或离散值,比如红色、黄色…。如果标注只有两个值,则称为二分类;如果标注有多个值,则称为多分类等等。

· 回归问题:Regression,标注是连续值,比如一个人的岁数,作为标注就是一个连续值,属于回归问题。


    从给定的训练数据集中学习或推导出一个模型(函数,输入参数和输出结果),当新的数据(输入参数)输入时,可以根据这个模型(函数)预测得到一个结果(输出)。


举例

猜人的年龄,根据样本数据拟合出一个从1~100的曲线,这个就是回归问题;


天气预报,根据样本数据可以预报一些天气情况晴天、多云、小雨等等,这个就是分类问题;


02
无监督学习


场景
科学研究

    一个科学家分析一类现象,有一个数据集,没人告诉他标准和规律,科学家要在这堆数据中找到某种标准或者规律。

    无监督学习中,只有一个数据集,不知道每个数据点是什么。只告诉你这是一个数据集,你能在其中找到规律吗?


    无监督学习就是输入没有标记的未知数据,需要根据样本间的相似性对样本集进行聚类(Clustering)。


区别:

    分类是对已知类别的识别;

    聚类是对未知类别的识别;


    无监督学的有效/良好结果:类内差距最小,类间差距最大。


    常用的算法有K-means聚类算法,参见后面算法章节介绍。

03
强化学习
AI快速入门必读
场景
训练一只猴子

    一个杂技团驯兽师在训练一只猴子,下达一个命令“敬礼”,若是一个新猴子,它不能不知道是什么意思,它可能会观察,做出跑,后退等等随机反应,这些不对的结果反应会得到驯兽师的鞭打(负向奖励),直到做出类似接近敬礼的动作,这时驯兽师改变态度会给根香焦(正向奖励),慢慢的猴子听到命令“敬礼”就会做出标准的敬礼动作,以得到正向奖励(香焦),这样的过程就是一个强化学习的训练过程。

    强化学习也没有标签(Label),但有回报函数(即奖励),来判断结果是否更加接近目标。

2.3
训练效果

    建模当中都可能会遇到两种最常见结果:过拟合(Over-fitting)、欠拟合(Under-fitting)。

01
过拟合

    过拟合表现为训练的时候效果很好,但是在使用过程中或测试样本上的效果就很差;

    训练数据集过小,过拟合更容易发生;

    过拟合的本质是学到了很多没必要的特征,如在训练系统识别狗时,把训练样本中狗的毛色“黑”色做为了关键特征,那么在系统识别其他颜色的狗时就会出错;

    降低“过拟合”的方法有:增加训练数据、降低模型复杂度、正则化的方法。

02
欠拟合

    相对过拟合,欠拟合可能是因为训练样本被提取的特征比较少,导致训练出来的模型不能很好地匹配,甚至样本本身都无法高效地识别的问题;

    欠拟合的本质的原因是训练的模型太简单,最通用的特征模型都没有学习到;

    降低“欠拟合”的方法有:添加新特征、增加模型复杂度。

2.4
衡量机器学习模型的指标

    对于模型性能的好坏,必须有个评判的标准,需要用某个指标来衡量,当模型较差时,可通过这个指标进行调参来优化模型。


几个常见的模型评价术语,假设分类只有两类,正例(Positive)和负例(Negative),有如下几种情况:

  1. True Positives(TP):预期对,结果也对[√]

  2. False Positives(FP):预期错,结果确对[×]

  3. True Negatives(TN):期错,结果也错[√]

  4. False Negatives(FN):期对,结果确错[×]


真正例TP是指模型将正类别样本正确地预测为正类别

假正例FP是指模型将负类别样本错误地预测为正类别

真负例TN是指模型将负类别样本正确地预测为负类别

假负例FN是指模型将正类别样本错误地预测为负类别


01
正确率

正确率是我们最常见的评价指标;

正确率(Accuracy)=(TP+TN)/(P+N),被分对的样本数除以所有的样本数;


通常来说,正确率越高,分类器越好。


错误率描述被分类器错分的比例;

错误率(Error Rate)=(FP+FN)/(P+N)


灵敏度(Sensitive)=TP/P,表示所有正例中被分对的比例,它衡量了分类器对正例的识别能力;


特效度(Specificity)=TN/N,表示所有负例中被分对的比例,它衡量了分类器对负例的识别能力;


02
精确率

    精确率也叫精度(Precision),表示被分为正例的示例中实际为正例的比例;

    预测为正就有两种,一种就是把正类预测为正类(TP),另一种就是把负类预测为正类(FP);


精确率Precision=TP/(TP+FP)

03
召回率

    召回率(Recall)表示的是样本中的正例有多少被预测正确了;

    有两种可能:一种是把原来的正类预测成正类(TP);另一种就是把原来的正类预测为负类(FN);


召回率Recall=TP/(TP+FN)

灵敏度Sensitive=TP/P


召回率与灵敏度是一样的。

04
F1 score和ROC曲线

    精确率和召回率两个指标,对于多个模型来说,这两个指标差不多的情况下很难判断哪个更好,可用F1值来区分。


F1 score是精确值和召回率的调和均值,其公式如下:

(F1 score公式)


AI快速入门必读
举例
比较好坏

两个模型识别样本的精确率与召回率分别是:0.6 0.6与0.5 0.7,那么哪个更好呢?

F1 score分别是:

·Precision=0.6 recall=0.6时,F1 score=0.60。

·Precision=0.5 recall=0.7时,F1 score=0.58。


显然precision=0.6 recall=0.6的模型效果相对稍微好一点。



ROC:Receiver Operating Characteristic Curve,“受试者工作特征曲线”,其主要的分析方法就是画这条特征曲线。


AI快速入门必读
举例
投掷硬币

    投掷硬币,正例分对和负例分错概率相同,预测出来的正例负例和正例负例本身的分布是一致的,是一条45°的直线。ROC曲线越向上远离这条45°直线,说明用了这个学习器在很小的代价下达到了相对较大的查全率。


2.5
机器学习常用算法

    机器学习的算法非常多,每个算法都是基于某类数据集场景的模型化过程,都是一个个基于数学、统计模型,十分复杂,本文下面只做非常简单的介绍,让初学人员有个印象即可,在后面真正使用过程中还是要下大功夫深入学习。

01
K最近邻算法

    k最近邻算法(k-Nearest Neighbors,简称kNN),就是新数据点离谁最近,就和谁属于同一类;

    训练过的数据点都被模型化后赋予了一个值,越象似的数据点离的越近,距离[模型算法]越近,可以通过距离进行聚类;

    kNN是非常简单的算法,也是新手入门机器学习的常用算法;

    有那么一堆你已经知道分类的数据,当一个新数据进入的时候,就开始跟训练数据里的每个点求距离,然后挑离这个训练数据最近的k个点看看这几个点属于什么类型,最后用少数服从多数的原则,给新数据归类。

AI快速入门必读
举例
水果分类

有一个水果分类的训练集,把水果挥特征分类:

苹果:直径[10~15cm],红色[0.1~0.5],单果[1]

葡萄:直径[1~3cm],紫色[0.6~0.9],串果[2~20]


输入一个测试样本X:直径[2cm],紫色[0.9],串果[15]

如上可用Scikit-learn建模,欧氏距离计算,最终得到X为葡萄。

  

计算距离的方法有Euclidean(欧氏距离)、Chebyshev(切比雪夫距离)、Manhattan(曼哈顿距离)等。

02
回归算法

    回归是数学建模、分类和预测中最古老但功能非常强大的工具之一;

    回归分析是建模和分析数据的重要工具;

    回归分析是一种预测性的建模技术,它研究的是因变量(目标)和自变量(预测器)之间的关系,通常用于预测分析,时间序列模型以及发现变量之间的因果关系;


    回归算法是通过利用测试集数据来建立模型,再利用这个模型训练集中的数据进行处理的算法;


    回归算法应该掌握的常用算法有:线性回归、逻辑回归、多项式回归、逐步回归、岭回归、套索回归、ElasticNet回归等;


    每种同归算法都有其数学模型和算法步骤,本文因篇幅所限不做介绍,大家在使用过程中具体使用哪个再做深入学习即可(平时没有实战式的学习基本记不住)。

03
决策树

    决策树方法在分类、预测、规则提取等领域有着广泛应用;

    20世纪70年代后期和80年代初期,机器学习研究者J.Ross Quinlan提出了ID3算法以后,决策树在机器学习、数据挖掘领域得到极大的发展。Quinlan后来又提出了C4.5,成为新的监督学习算法。1984年,几位统计学家 提出了CART分类算法。ID3和CART算法几乎同时被提出,但都是采用类似的方法从训练样本中学习决策树;

参考《Python数据分析与挖掘实战》


    决策树是一个预测模型,它代表的是对象属性与对象值之间的一种映射关系。树中每个节点表示某个对象,而每个分叉路径则代表某个可能的属性值,而每个叶节点则对应从根节点到该叶节点所经历的路径所表示的对象的值。 

04
随机森林

    随机森林(Random Forest),指的是利用多棵树对样本进行训练并预测的一种分类器;


    它是一个包含多个决策树的分类器,并且其输出类别是由个别树输出的类别的众数决定的;


    随机森林的每一棵决策树之间是没有关联的;


    在得到森林之后,当有一个新的输入样本进入时,就让森林中的每一棵决策树分别进行判断,看看这个样本属于哪一类,然后看看哪一类被选择最多,并预测这个样本为哪一类;


    一般来说,随机森林的判决性能优于决策树。 

05
K-means聚类算法

    在无监督学习过程中,数据本身没有标签,如何把它们进行划分?这时候聚类算法就派上用场了;


    K-means聚类算法(K-means Clustering Algorithm)本质上是通过计算不同样本间的距离来判断它们的相近关系,相近的就会放到同一个类别中去;


    聚类与分类算法的最大区别在于,分类的目标类别是已知的,而聚类的目标类别是未知的; 

06
朴素贝叶斯算法

    朴素贝叶斯算法(Naïve Bayesian algorithm)是应用最为广泛的分类算法之一;


    朴素贝叶斯方法是在贝叶斯算法的基础上进行了相应的简化,即假定给定目标值时属性之间相互条件独立,没有哪个属性变量对于决策结果来说占有较大的比重,也没有哪个属性变量对于决策结果占有较小的比重,极大地简化了贝叶斯方法的复杂性。 

07
支持向量机SVM

    支持向量机(Support Vector Machines,SVM)是一种监督学习算法;


    “支持向量(Support Vector)”就是离分隔超平面最近的那些点,而“机(Machine)”就是表示一种算法,而不是表示机器;


    支持向量机虽然诞生只有短短的二十多年,但是自一诞生起便由于它良好的分类性能席卷了机器学习领域。


作为入门了解,以上简单介绍的最常见学习算法就可以了。还有很多的算法,以后再慢慢介绍。

Al 深度学习

    深度学习,源于人工神经网络的研究,多层感知器就是一种深度学习结构;

    深度学习是机器学习研究中的一个新的领域,它模仿人脑的机制来解释数据,例如图像、视频声音

3.1
人工神经网络

    人工神经网络(Artificial Neural Network,ANN)也称为神经网络(NN),它是一种模仿生物神经网络(动物的中枢神经系统,特别是大脑)的结构和功能的数学模型或计算模型,它的主要任务是根据生物神经网络的原理和实际应用的需要来建造实用的人工神经网络模型,设计相应的学习算法,模拟人脑的某种智能活动,然后在技术上实现出来用以解决实际问题;


    神经网络的一个重要特性是它能够从环境中学习,并把学习的结果分布存储于网络的突触连接中;


    神经网络的学习是一个过程,在其所处环境的激励下,相继给网络输入一些样本模式,并按照一定的规则(学习算法)调整网络各层的权值矩阵,待网络各层权值都收敛到一定值,学习过程就结束了;


    近年来,神经网络的使用使计算机在图像识别领域取得飞跃式的发展。    

3.2
神经元

    生物学中,神经元也叫神经细胞,它的功能是接受某些形式的信号并对之做出反应,比如传导兴奋、处理并储存信息以及发生细胞之间的联结等,正因为神经元的这些功能,才能使得人和动物能够对外界环境的变化做出反应;

虚拟世界的神经网络模型只需一组数字就能构建出一个神经元,比如5个输入(树突),1个输出(轴突)的神经元模型,只需要7个数字表示:5个值表示每个输入的权重(w);1个值表示阈值(b);1个值表示神经元激发后的输出;

AI快速入门必读


    神经元是神经网络的基本组成;


    训练神经网络的目的就是通过训练过程来得到这些权重w和阀值b,这些w和b值可以让神经网络得到一项判断能力,一项预测能力。

    

3.3
激活函数

    生物学上的神经元只有两个状态:1和0,1对应神经元兴奋;0对应神经元抑制;

    类比生物学的神经元,信号从人工神经网络中的上一个神经元传递到下一个神经元的过程中,信号必须足够强,才能激发下一个神经元的动作电位,使其产生兴奋;

    激活函数的作用与之类似,神经元的输入和输出之间具有函数关系,这个函数就称为激活函数;

    当信息到达并计算完成之后,这个值不会直接传递给下一层,而是需要经过一个激活函数,将激活函数的值传递给下一层;

    这里激活函数也叫点火规则,在人工神经网络中,只要输入超过一定标准时才会产生输出;    

3.4
神经网络

    最简单的ANN模型由单个神经元组成,包括一个简单的神经元,对输入的加权和进行函数变换(在生物神经元中是枝状突起),并输出其结果(输出将等同于生物神经元的轴突);


    单层感知器具有一定的局限,只能用于二元分类,且无法学习比较复杂的非线性模型,因此实际应用中的感知器模型往往更加复杂。将多个单层感知器进行组合,得到一个多层感知器结构;


    多层感知器(Multilayer Perceptron,MLP)也叫人工神经网络(ANN),简单地说就是将多个神经元连接起来,组成一个网络;


    一个神经网络的搭建,需要满足三个条件:输入和输出、权重(w)和阈值(b);


    在多层感知器的结构中,最困难的部分就是确定权重(w)和阈值(b)。目前为止,这两个值都是主观给出的,但现实中很难估计它们的值,必须有一种方法,可以找出答案。这种方法就是试错法。其他参数都不变,w(或b)的微小变动,记作Δw(或Δb),然后观察输出有什么变化。不断重复这个过程,直至得到对应最精确输出的那组w和b,就是我们想要的值,这个过程称为模型的训练。可以看到,整个过程需要海量计算。所以,神经网络直到最近这几年才有实用价值,而且一般的CPU还不行,要使用专门为机器学习定制的GPU来计算。    

3.5
卷积神经网络(CNN)

    卷积神经网络(Convolutional Neural Networks)是一种深度学习模型或类似于人工神经网络的多层感知器,常用来分析视觉图像;

    卷积神经网络的创始人是着名的计算机科学家Yann LeCun,他是第一个通过卷积神经网络在MNIST数据集上解决手写数字问题的人。


    若对Al的视觉图像感兴趣,可再下功夫深度学习CNN,本文不做深度展开。


如何学习AI ?

学习Al,要先了解或掌握如下一些最基础内容:

  1. Al基础概念和相关术语:前面几个章节若认真阅读,算是已经了解部分,算找到门坎了;『掌握

  2. Al算法原理&实现算法:k最近邻算法、K-means聚类算法、朴素贝叶斯算法、回归算法、决策树、随机森林、支持向量机SVM等等众多算法;『掌握原理了解实现算法(见软件库成熟算法)』

  3. 常用的机器学习软件库:Pandas、NumPy和Matplotlib,Anaconda大礼包等等,后面章节有介绍;『掌握,会用提供的方法和功能』

  4. Al常用编程语言:推荐python,理由见后面章节介绍;『熟练使用


4.1
算法原理&实现

    入门或初期阶段,熟悉算法原理比实现算法重要:机器学习的本质是数学和统计学的结合,搞懂这些才是王道;


    我们知道一个模型有好多个参数,不同参数的设置带来的模型效果可能截然不同,我们只有弄懂了理论原理,才能更好地指导我们选择合适的参数;


    初学者先了解已有软件库已提供的功能,用来加深自己对算法原理的理解,比自己花很大力气自己写个不成熟、质量无法保障的算法实现要有意义的多;    

4.2
机器学习软件库

    熟悉掌握某一个机器学习软件库即可;


    成熟的软件库一般包含了绝大多数的机器学习算法,并且在实现上使用了许多的数值计算优化技巧;


    为了实现自己的需求,我们不必从头实现算法,即使你实现了,你的计算效率也一定没有软件库实现的高[很多高手不断优化],初学者要熟练使用一个软件库;


推荐入门学习者可先了解以下的软件库:

  1. Pandas工具包可以处理数据帧,数据帧类似于Excel文件当中的信息表,有横行和纵列。这种数据就是所谓的结构化数据;

  2. NumPy工具包可以基于数据进行数值运算,机器学习可以把能想象到的一切事物转化为数字,再建立出这些数字中的模型;

  3. Matplotlib工具包可以制图,实现数据可视化。对读者来说,理解表格中的一堆数据可能很难,相信大家会更喜欢那种有线条贯穿始终的图表,实现数据可视化是交流成果的重要环节;

  4. Anaconda大礼包:Anaconda是一个基于Python的数据处理和科学计算平台,相当于一个“全家桶”。它已经内置了许多非常有用的第三方库。安装好Anaconda,就相当于把Python和一些如NumPy、Pandas、Scrip、Matplotlib等常用的库自动安装到位,使得安装比常规Python安装要容易;    

4.3
编程语言

    AI时代首选Python,为何人工智能(AI)首选Python?如下几个原因,业界普遍使用Python:

  1. Python容易学,免费,只要有一门编程语言基础,如C或VB,三天之内就能掌握了Python的使用技能;(MATLAB也能搞科学计算,但是软件要钱,而且很贵)

  2. Python是一种解释型语言,不需要任何类型的编译和连接。开发者可以用交互方式来使用解释器,直接高效易用;

  3. Python迅速成为了科学家的工具,积累了大量的工具库、架构。Python有非常多优秀的深度学习库可用,大部分深度学习框架都支持Python;

  4. PyCharm作为一款针对Python的编辑器,配置简单、功能强大、使用起来省时省心,对初学者友好;

    

4.4
常用的数据结构和软件算法

    Python机器学习技的数据结构和软件算法基础,如NumPy、Pandas、Matplotlib等专业库,同时要了解机器学习中常用的数据结构,如向量(vector)、矩阵(matrice)、张量(tensor)等等,包括它们的各种属性和操作函数,如下为一些常用的,因篇幅所限本文只做简单介绍:

#参考
常用的数据结构和软件算法

01
向量

使用NumPy创建一个一维数组。

02
矩阵

使用NumPy创建一个二维数组。

03
稀疏矩阵

高效地表示只有零星非零值的数据,在机器学习中,数据集十分庞大且其中大部分元素都是零的情况很常见。稀疏矩阵只保存非零元素并假设剩余元素的值都是零,这样能节省大量的计算成本。

04
元素

在向量或矩阵中选择一个或多个元素。使用的数组索引选取元素或数组中的一组元素(即索引和切片)。

05
形状、大小和维数

使用NumPy的shape、size和ndim函数。

06
最大值或最小值

使用NumPy的max和min方法。求一个数组或一个数组的子集中元素的最大值和最小值是很常见的需求,使用max和min方法很容易实现。

07
平均值、方差和标准差

使用NumPy的mean、var和std。

08
矩阵变形

在不改变元素值的前提下,改变一个数组的形状(行数和列数),使用NumPy的reshape

09
变形转置向量或矩阵

转置一个向量或矩阵,使用T方法。

10
展开矩阵

将矩阵转换成一个一维数组,使用flatten。

11
矩阵的秩

使用NumPy中的线性代数方法matrix_rank。

12
行列式

计算一个矩阵的行列式,使用NumPy的线性代数方法det。

13
对角线元素

获取矩阵的对角线元素,使用diagonal。

14
矩阵的迹

矩阵的迹是其对角线元素之和,常被用在机器学习方法的底层计算中。给定一个NumPy的多维数组,使用trace就能计算出它的迹。计算一个矩阵的迹使用trace。

15
特征值和特征向量

计算一个方阵的特征值和特征向量,使用NumPy的linalg.eig。

16
点积

计算两个向量的点积,使用NumPy的dot。

17
矩阵的相加或相减

将两个矩阵相加或相减,使用NumPy的add和subtract。

18
矩阵的乘法

将两个矩阵相乘,使用NumPy的dot。

19
矩阵的逆

计算一个方阵的逆,使用NumPy中的线性代数方法inv。

20
随机数

生成一些伪随机数,使用NumPy的random。

21加载CSV文件

加载以逗号为分隔符(Comma-Separated Values,CSV)的文件,使用pandas库的read_csv来加载一个本地或远端的CSV文件。

22
加载Excel文件

加载一个Excel数据表,使用pandas库的read_excel来加载一个Excel数据表。

23
加载JSON文件

加载一个JSON文件来做数据预处理,Pandas库提供了read_json,可以将JSON文件转换为pandas对象。

24
创建一个数据帧

创建一个新的数据帧。在pandas中有很多方法可以创建一个新的数据帧对象,一个简单的方法是,使用DataFrame创建一个空数据帧并分别定义好每一列。

25
处理缺失值

筛选出数据帧中的缺失值。Isnull和notnull都能返回布尔型的值来表示一个值是否缺失:在数据整理中,缺失值是很常见的问题,很多人都低估了处理缺失值的难度。

26
根据值对行分组

要根据一些共有的值(shared value)对行分组。Groupby是pandas中最强大的功能之一,groupby才是数据整理工作的真正起点。经常会遇到这种情况,数据帧的每一行代表的是一个人或者一个事件,而我们需要根据某些标准对这些行分组并计算某个统计量。

27特征的缩放

将一个数值型特征的值缩放(rescale)到两个特定的值之间。用scikit-learn的MinMaxScaler来缩放一个特征数组,在机器学习中,缩放是一个很常见的预处理任务。本书后面所讲的很多算法都假设所有的特征是在同一取值范围中的,最常见的范围是[0, 1]或[-1, 1]。用于缩放的方法有很多,其中最简单的一种被称为min-max缩放。Min-max缩放利用特征的最小值和最大值,将所有特征都缩放到同一个范围中。

28
填充缺失值

数据中存在缺失值,我们希望填充或者预测这些值。如果数据量不大,可以使用KNN(K-Nearest Neighbors,K近邻)算法来预测缺失值,还可以使用scikit-learn的Imputer模块,用特征的平均值、中位数或者众数来填充缺失值,不过效果通常都会比使用KNN的差。

29
对nominal型分类特征编码

存在一个没有内部顺序的nominal型分类特征(例如,苹果、梨、香蕉),现在要对其进行处理。利用scikit-learn的LabelBinarizer对特征进行one-hot编码(独热编码)。对ordinal分类特征编码:存在一个ordinal分类特征(例如,高、中等、低),现在要对其编码。使用pandas数据帧的replace方法将字符串标签转换成相应的数字。

30
清洗文本

对一些非结构化的文本数据进行基本的清洗。大部分基本的文本清洗操作用Python的常用字符串操作即可完成,其中 strip、replace和split这三个操作用得最多。

31
解析并清洗HTML

提取HTML文件中的文本数据,而且仅提取某段文本。Beautiful Soup是一个可以从HTML或XML文件中提取数据的Python库,提供了很多选项。

32
文本分词

将文本分离成独立的单词。Python的自然语言工具集(Natural Language Toolkit,NLTK)在处理文本方面有很多功能强大的操作,其中包括文本分词(word tokenizing)。

33
提取词干

将一个单词序列中的单词转换成它们的词干。使用NLTK的PorterStemmer。

34
特征降维

对于给定的一组特征,在保留信息量的同时减少特征的数量。使用scikit-learn库中的主成分分析工具(PCA)。

35
识别支持向量

找出哪些观察值是决策超平面的支持向量。训练模型,然后使用support_vectors_方法。

36
训练决策树回归模型

训练一个基于决策树的回归模型,使用scikit-learn中的DecisionTreeRegressor。

37
训练随机森林分类器

训练一个随机森林分类器模型。使用scikit-learn中的RandomForestClassifier训练随机森林分类器模型。

38
训练多元分类器

数据集中不止两个分类,需要训练出一个合适的分类器模型。在scikit-learn中,通过LogisticRegression使用一对多或者多项式方法来训练逻辑回归模型。

39
使用K-Means聚类算法

要把观察值聚类为k个分类。使用K-Means聚类算法。

...
更多

其他更多的功能算法可找专业学习书籍,文章附录推荐了一些入门书籍…

    

END



交流机会

专家微信号:AI4Test

进群与众多测试专家交流

返回:AI快速入门必读

本文由“公众号文章抓取器”生成,请忽略上文所有联系方式或指引式信息。有问题可以联系:五人工作室,官网:www.Wuren.Work,QQ微信同号1976.424.585