人工智能学习笔记

以下内容是学习《人工智能--一种现代的方法》《终极算法》以及其他网络课程以后整理而成的,一开始介绍了人工智能的基础目的,面对真实世界完成基础目的生长出来的复杂性,这些复杂性推动出人工智能的不同的流派,然后介绍不同流派的人工智能算法模型适合解决什么样的问题,怎么解决问题,算法的逻辑是什么。让大家对人工智能,对机器学习有一个基本性的认知。

*人工智能系统的基础原则

基础原则:简单反射、基于模型的反射、基于目标的反射、基于效用的反射

这些原则的递进目的:要有行动规则知道怎么行动,要对信息进行计算从而知道怎么选择行动规则,还要从目标,从效用方面考虑来进行信息数据的计算从而生成/选择具体的规则。

简单反射,我们会给出规则,agent感知到的信息如果符合什么样的规则,那么就采取什么样的行动,而当没有适应的规则的时候,我们可以随机采取某个规则去行动。【这些行动基本就是选择,是搜索】

基于模型的反射,我们需要用来做判断的信息比较多,而且存在状态的关联关系,你不能简单的通过静态的输入信息来做出判断,而是要考虑历史数据,考虑前因来做出判断,这个时候我们就需要计算,用agent来将感应的信息和历史的数据一起计算,从而选择某个行动规则。【行动上来说是先计算,然后再选择】

基于模型的反射和简单反射有什么样的区别,基于模型的反射agent可以保存历史状态,基于模型的反射angent知道这个世界是如何运转的,这个世界如何运转的知识就是模型。比如,世界上的狗有很多的样子,我不可能给你一个规则,告诉你这是个狗,但是我可以给你一个计算模型,把图片给我,我就能知道它是不是狗。这个例子也说明,历史数据也不是必须的。世界是如何运行的模型才是必须的。

用家装AI举例子,简单反射需要能感知到位置,从而选择相应的家具摆放,而基于模型的反射,则会自己计算房间的大少,选择位置,判断功能,判断组合来摆放的家具。

基于目标的反射,则会给基于模型的反射一个更收敛的选择范围。还是家装的例子,你能做出很多的摆放,但是我只需要地中海风格的摆放。那么模型的计算就增加了限制条件。

基于效用的反射,则会进一步的让选择范围收敛。不光要地中海风格的,还要摆放的速度快,还要摆放的效果好。模型计算的限制条件进一步的加强。

【PS:简单反射是所有反射的基础,其他的反射最后都会在一些事先设定好的类别(规则)里挑选出一类,不管这个规则是被生成出来的,还是被定义出来的。】

*机器学习

上面说到了模型,我们可以通过人工的对经验数据的处理来得出计算模型,但是随着规则的复杂性的增加,人的经验逻辑就很难满足复杂的问题的解决,很多数据之间的关联关系是不能被人的经验感知到的,这个时候通过机器学习,来发现数据之间的关联关系,给我们完善规则,给我们选择规则提供更有效率的帮助。

机器学习是人工智能的一部分。有些环境是部分可观察的,而且是不确定的,我们没有一个确定性的算法模型可以直接拿来使用,我们需要通过可观察的历史数据来统计出或者说学习出一个适合这个环境的算法模型。

机器学习是一种实现人工智能的方式。

我们对世界的认知总是有限的,我们希望不管是简单反射、基于模型的反射、基于目标的反射还是基于效用的反射都能够自己学习,也就是机器学习。我们需要性能元件(也就是那四种反射agent,也就是模型)来执行行动规则,我们需要评判元件,对我们行动后果进行评价;我们需要学习元件根据评判软件的反馈来调整模型;而学习元件会让问题元件生成一些探索性的任务,让性能元件来执行,看看可不可以获得更好的效果。

上面说的四个元件加在一起就是我们常说的算法模型,既有用来训练、调整模型的算法,也有被训练成模型的算法。

学习的过程

机器学习需要根据问题特点和已有数据确定具有最强解释性或预测力的模型,其过程也可以划分为类似于“学习 - 练习 - 考试”这样的三个阶段,每个阶段的目标和使用的资源可以归纳如下:

模型拟合(model fitting):利用训练数据集(training set)对模型的普通参数进行拟合;

模型选择(model selection):利用验证数据集(validation set)对模型的超参数进行调整,筛选出性能最好的模型;

模型评价(model assessment):利用测试数据集(test set)来估计筛选出的模型在未知数据上的真实性能。


*抽象化世界

要想计算这个世界,就需要抽象化这个世界,要进行智能化,首先需要解决的是数据化的问题。

信息的描述会影响到算法的选择以及数据的数量,信息可以是原子的、要素的、结构的,原子的是复杂的,结构化的数据是复杂的。信息简单会使得数据量巨大,因为需要通过数据冗余来记录数据关系,信息复杂会使得规则或者说算法复杂,因为你要去解构信息里的多种含义。明显复杂信息更有竞争力,因为原子信息造成的数据量的增加会造成空间上的效率低下,也造成搜索时长的增加让时间上的效率也降低,而结构性的信息,随着计算能力的增加,在空间和时间上都具备高效率。

1、原子性(没有状态,或者只有一个原子状态)

对应问题求解agent,点和点之间没有未知的约束性条件,在行动之前不存在基于状态的逻辑判断,所有的行动后果都是明确的、已知的,只存在基于规则的逻辑判断,他们通过反射agent就可以行动。

2、要素性(状态丰富,状态之间有约束)

点和点之间有约束性条件,每个点都要记录自己的状态等信息,在行动之前存在基于状态的逻辑判断。

3、结构性

每个点不仅仅记录状态,还要记录事件,记录行为。这些都在之后的逻辑判断中被解释处理,被理解,并使用,对最终的判断结果造成影响。


*机器学习的五大学派

问题不一样,解决问题的办法就会不一样,目的不一样,解决问题的办法也会不一样,我们需要根据不同的目的、不同的问题,选择适合的解决问题的办法。现在存在着五种学派,我们看看它们要解决什么样的问题,它们适合什么样的目的。下面这张图可以让我们对问题的类型有一定的认知。

人工智能学习笔记_第1张图片

1、符号学派

研究怎么找到明知识。

我们找到所有判断元素 ,把这些元素组成合取概念,这些判断元素能够保证测试数据集都能做出正确的判断。

但是这些元素在有些实例里面是必须的,但有些不是,于是我们开始使用元素分离的方式来分解出多个规则,把这些规则集成规则集。

有时候我们获取的规则里的元素有些过于的多了,这些规则保证了我们目前的训练数据集的推导的准确性,但是它可能是过拟合的,这样在我们有新的测试数据的时候会很容易发现这套规则会做出错误的判断。准确度是一个需要把握的度,有时候过拟合是因为一些偶发事件造成的,类似这样效果元素可以不用考虑的,有时候有些元素是我们做为启动基础的假设时多余的元素,这些也不用考虑。

我们学到的知识是基于假设的,科学也是如此,过分拟合的规则定义(比如全要素规则),就是没有假设。也就是说我们要用最少的元素来定义更广的一般事物,如果没有特殊实例,那么我们就不要增加元素,就假设这些元素是可以起到作用的,直到遇到证伪的实例,才去丰富规则要素。

那么我们如何学习新的知识呢?我们对规则进行归纳,逆向演绎可以让我们得出更通用简洁的规则或者说是知识。

能够得到结果的规则归纳有很多种,我们要选择最简短的那一套,我们用所有规则或者说元素来构建决策树,在这些决策树里面选择形状最简单的那一个。

但是符号主义有一个问题,那就是很多的现象无法通过规则来表达,它们是潜意识的,没有办法抽象的,那么 联结学派 就出来了。

【PS:计算概率(频率主义)】

2、联结学派

研究怎么找到暗知识。

连接学派的实现原理是,我们输入和输出之间,建立一个连接网络。在这个网络里面灌入训练数据,然后调节网络里某些节点之间的连接的强度,从而能让输入正确的达到输出。

那么联接学派的 知识表示,知识推理和知识运用是什么呢?

知识表示:我们会把算法描述成一个神经网络的拓扑图,拓扑图中节点之间被标注出权重。我们称之为“构模”

知识推理:现在流行的知识推理是,反向传播算法、自编码等。

知识运用:图像识别等。

联结学派,只能发现相关性,不能发现因果性。无法解释为什么结果是这个样子。

3、贝叶斯学派

研究怎么找到明知识。

贝叶斯学派和符号学派都是信奉 学习的,而 进化学派、联结学派都是信奉自然启发的。

但是与进化学派、联结学派两个好兄弟比起来;符号学派和贝叶斯学派的关系并不融洽,

符号学派,希望归纳出最大公约数,或者比最大公约数更冗余的过拟合了的元素集,只要符合这些元素集就能推导出结果。如果这些元素不够时,就向元素集里面加入新元素,使的规则成立。当然元素之间的关系会通过加减乘除、分支等数学符号连接起来。

贝叶斯学派不同,它不做元素组合或者规则组合,没有公理定理性的推断,它是依据: 随着数据量的增加,概率是增强了还是减弱了,通过一个/一组元素对结果出现概率的影响,来判断元素的预测能力。

也就是说对与电灯不亮,符号学派会先判断,灯泡是不是坏了,如果不是,是不是停电了,如果不是,是不是线路坏了。而贝叶斯学派则是算出灯泡坏了的概率,停电的概率,线路的概率。

再比如,符号学派会假设说鸟是会飞的,但是数据的增加会慢慢否点这个假设,我们会加入一些排除特殊情况的条件。而概率学派会计算会飞是鸟的概率,不会飞是鸟的概率。最后得出鸟会飞的概率。

符号学派的假设是慢慢丰富的,逻辑也是慢慢丰富的,但是贝叶斯不是,它要想准确必须一开始就有丰富的假设,它可能把所有元素都作为导致结果的假设来计算概率。

符号学派会有结构,会有演绎关系,它是元素的逻辑组合。贝叶斯会对一个元素或几个元素做 概率计算。符号学派更在意确定性,而贝叶斯更在意的是不确定性或者说的可能性。

【PS:计算概率(贝叶斯主义)】

PS:频率主义的概率、贝叶斯主义的概率

频率主义的概率,认为模型是固定的,数据应该按照模型的计算来分布;

贝叶斯主义的概率,认为数据是固定的,参数应该按照数据变化的来变动;

怎么理解呢?频率主义的概率是个先验概率,这个概率是基于一个假设,最后的结果都与要素相关,这个要素是个必要条件,而事实上,我们并不能证明这个假设。贝叶斯主义说,我觉得所有的要素都不是必要条件,只是充分条件。我们的模型需要计算这个要素的必要性,所以我要考虑这个要素是必要条件的概率,从而让最后的判断更准确。

4、类推学派

研究怎么找到默知识。

KNN,SVM,K-means【后面有说明】

【PS:计算距离】

5、进化学派

研究怎么找到明知识。

怎么给一个目标函数求的一个最优解的问题,也就是说它的逻辑框架是有的,但是具体细节是需要调整的,我们可以通过下面的流程来找到这个最优解


人工智能学习笔记_第2张图片

适应度函数,可以大体理解成目标函数,它是用来计算个体适应度的,那么什么是个体什么是种群呢?可以粗糙的理解成事目标函数的待求解的参数集,比如一个参数数组。

我们通过适应度函数选出最优的几个组合,复制它们,然后再杂交最优的组合形成新的组合,然后再在新的组合里随机改变一些参数,这样的话,保留了一批最优的,进化了一批待验证的,还加入了变异基因,从而为找到最大优化创造了可能。

遗传学派和联结学派是自下而上的,符号学派是自上而下的,也就是说前者模拟自然现象,而后者依赖抽象理论。

遗传学派和联结学派可以很好的组合,一个用来发现结构,一个为发现的结构选择最优的权值,谁先谁后,其实不太好确定。

是选择遗传学派、联结学派,还是选择符号学派,要看谁可以更快的找到答案,比如像疾病治疗可能更适合符号学派这种有人类研究理论指导型的,而像图像识别这种,人类都无法说清理论的,就更适合联结学派。


机器学习基础概念

1、代价函数

计算算法模型是不是靠谱,建立代价函数,通过梯度下降来找到最少代价函数,也就是找到算法的模型最优参数。

代价函数就是如何度量函数对数据的拟合程度,最小代价函数是拟合度比较好的情况。

2、梯度算法

梯度算法就是能够通过它找到代价函数的“最小值”(最优值),下降的速度别太快,也别太慢,该快的时候快,该慢的时候慢,离目的地远的时候快点,离目的地近的时候慢点,别开过头,错过了最小值。


人工智能学习笔记_第3张图片

3、算法模型

简单抽象的说就是特征的线性的、非线性的关系;以及/或者,组合特征的的线性、非线性关系;


【PS:对以上概念准确的理解可以去coursera上学习吴恩达的人工智能的课程】

【PS:可以说机器学习基础的点就三个:算法模型(牛逼的话自己写,不牛的话就选一个现成的),代价函数,梯度算法。】



算法概念

(一)算法分类

I、按照输出分类

1、分类

分类树可以处理离散数据,也就是数据种类有限的数据,它输出的是样本的类别。

2、回归

回归是通过测试数据求出一条线,这条线使的所有测试点与线的绝对差或者方差最少。

它是通过样本的离散程度来求解。

新的样本可以求得自己在线上的位置,得到结果。

3、聚类

把相似数据并成一组(group)的方法。‘物以类聚,人以群分’不需要类别标注的算法,直接从数据中学习模式。 所以,聚类是一种 数据探索 的分析方法,他帮助我们在大量数据中探索和发现数据结构。

II、按照输入

原子的、元素的、结构的

III、按照数据是否标注分类

1、有监督的学习

它指的是我们需要事先对数据打上分类标签,这样机器就知道这个数据属于哪个分类。

2、无监督的学习

就是数据没有被打上分类标签,这可能是因为我们不具备先验的知识,或者打标签的成本很高。所以我们需要机器代我们部分完成这个工作,比如将数据进行聚类,方便后续人工对每个类进行分析。

IV、按照学习策略分类

1、批量学习(batch learning):大部分算法是集中处理所有的数据,也就是一口气对整个数据集进行建模与学习,并得到最佳假设。

2、在线学习(online learning):和批量学习相对应的是在线学习(online learning)。在在线学习中,数据是以细水长流的方式一点点使用,算法也会根据数据的不断馈入而动态地更新。当存储和计算力不足以完成大规模的批量学习时,在线学习不失为一种现实的策略。

3、主动学习(active learning):在学校中,老师可以通过将学生代入学习过程,引导学生主动提问来加强学习效果。这种策略应用在机器学习中就是主动学习(active learning)。主动学习是策略导向的学习策略,通过有选择地询问无标签数据的标签来实现迭代式的学习。当数据的标签的获取难度较高时,这种方法尤其适用。

(二)模型分类

1、参数模型和非参数模型的区别体现的是全局普适性和局部适用性的区别;

2、数据模型和算法模型的区别体现的是可解释性和精确性的区别;

3、生成模型和判别模型的区别体现的是联合分布和条件分布的区别。

(三)算法

1、决策树

【输出的结果】有分类树,也有回归树。【有监督的学习】

分类树:确定所有判断条件对结果的概率影响能力,概率影响的能力越大,你就是树的根节点,以此向下类推,直到找到目标类别。比如基尼系数,信息增益,信息增益率来判断概率的大小

回归树:通过最小绝对差(LAD)或最小绝对方差来计算样本数据获得目标函数。然后将样本数据构造成回归树,不断的二分或者多分来将范围缩小。新数据按照离散程度来遍历树找到属于自己的叶子节点,然后经目标函数算出数值。

【PS:决策树是计算概率,准确的说是计算频率概率】

“信息熵”概念:

结果随机性的程度,值越大(最大为1)随机性就越高。

“纯度”概念:

随机性越高,纯度越低,纯度可以理解成确定性

“信息增益”概念:

某个属性特征对信息熵的影响,即用这个属性特征做判断,结果的确定性比较高,那么这个属性的信息增益就比较高。

信息增益率容易让决策算法死板,也就是常说的过拟合。因为如果一个属性,他的特征值比较多,那么它的信息增益就容易比较大。

节点D的信息增益,等于节点D的信息熵减去 子节点D1、D2的归一化信息熵:

“信息增益率”概念:

信息增益率 = 信息增益 / 属性熵

属性熵也就是属性信息熵,也就是这个属性下面结果的随机性。【例如:Entropy(D1)+Entropy(D2)】

这样即使归一化信息商(增益率率公式里面括号部分)因为特征值过多而造成结果比较少,也可以通过➗一个比较大的除数(属性信息熵而不是归一信息商)而平衡回来。

说的直白点,如果你的属性特征值太多,我就认为你是过拟合的,我要降低你的判断权重。

“基尼系数”概念:

基尼系数的计算方法和信息熵的计算方法在思路上是一致的,只是在计算概率的算法公式上存在着一定的差别,一个求的是对数,一个求的是平方和。

【PS:基尼指数是信息熵中﹣logP在P=1处一阶泰勒展开后的结果信息熵与基尼指数的关系(一阶泰勒展开)】

节点 D 的基尼系数等于子节点 D1 和 D2 的归一化基尼系数,归一化基尼系数越小,纯度越高,分类越准确。

“方差”概念:

方差为每个样本值减去样本均值的平方和除以样本个数:


2、贝叶斯

在没有太多可靠证据的情况下,怎么做出更符合数学逻辑的推测。

“先验概率”概念:某个结果发生的可能性是多少。P(B)

“条件概率”概念:事件 A 在另外一个事件 B 已经发生条件下的发生概率,表示P(A|B),读作“在 B 发生的条件下 A 发生的概率”。

“后验概率”概念:导致先验概率里的结果的某个原因的可能性是多少。是条件概率的一种,表示P(B|A)。

贝叶斯原理是通过求解后验概率来找到某个原因导致结果的可能性,我们常常称之为“逆向概率”。

【PS:这么看,决策树的信息熵、信息增益和贝叶斯的先验概率、后验概率在方向上很像啊,都是发现大概率,那么区别是什么呢?适用范围有什么样的不同呢?

因为计算方法的问题,如果数据比较片面,信息熵会掩盖掉这个问题,会造成决策树的判断过分的乐观(过拟合)?而贝叶斯方法,在缺少数据的时候,后验概率也会比较的公正。】

“似然函数”概念:你可以把概率模型的训练过程理解为求参数估值的过程。似然函数就是用来衡量这个模型的参数的。即我们通过观测到的样本数据,来求得一个似然函数。

人工智能学习笔记_第4张图片
后验概率=似然函数P(A|Bi)×先验概率P(Bi)/证据因子

3、“朴素贝叶斯”

之所以称为朴素贝叶斯,是因为它假设每个输入变量是独立的。也就是说条件和条件之间互相没有影响,一个值的改变,并不影响另一个值。而实际上这个假设并不太可能,所以如果遇到属性特征之间关联性比较强的时候,存在逻辑关系,会使得某些特征被强化,出现过拟合,会使最后的结果不准确。

类别的概率P(Cj):类别也就是我们最后把结果分类成那几个。

条件概率P(Ai|Cj):条件概率,是指在某个类别下的条件存在的概率。

人工智能学习笔记_第5张图片

P(A1A2A3) 都是固定的,我们想要寻找使得 P(Cj|A1A2A3) 的最大值,就等价于求 P(A1A2A3|Cj)P(Cj) 最大值。我们假定 Ai 之间是相互独立的,那么:P(A1A2A3|Cj)=P(A1|Cj)P(A2|Cj)P(A3|Cj)

【PS:它的应用?

朴素贝叶斯分类最适合的场景就是文本分类、情感分析和垃圾邮件识别。其中情感分析和垃圾邮件识别都是通过文本来进行判断。从这里你能看出来,这三个场景本质上都是文本分类,这也是朴素贝叶斯最擅长的地方。所以朴素贝叶斯也常用于自然语言处理 NLP 的工具。

决策树对数据要求比较严格,数据缺失精度就不准,而贝叶斯则对缺失数据有一定的消解作用。

【PS:计算概率】


4、SVM支持向量机

说的直白点,就是找到一条线,或者一个面,让不同分类的点到达这个线或者面的最小距离最大化。

“分类间隔”:极限位置(越过了这个位置就会出现分类错误)到最优决策面 (两个极限位置的中间位置) 之间的距离,就是“分类间隔”,英文叫margin。

“超平面”:将不同的样本划分开的平面,线段,或者其他形状。

“支持向量”:离分界线最近的向量(向量直白点说的话就是数据点),也就是说如果找到了某些点当向量也就直接决定了一个超平面,所以找向量还是很讲究的。

“支持向量机”:通过“支持向量”来生成一个超平面,然后把那个拥有“最大间隔”(max margin)超平面就是 SVM 要找的最优解,从而让不同分类的点到达这个超平面的最小距离最大化。

"硬间隔":假如数据是完全的线性可分的,那么学习到的模型可以称为硬间隔支持向量机。换个说法,硬间隔指的就是完全分类准确,不能存在分类错误的情况。

"软间隔":就是允许一定量的样本分类错误。【PS:这个有点像灰度的概念,在分类之间存在模糊地带。】

“非线性SVM”:如果数据是非线性可分的,如下图中的两类数据,那么什么线性函数都无法处理,就需要用到“核函数”来进行升维来处理。


人工智能学习笔记_第6张图片

“核函数”:它可以将样本从原始空间映射到一个更高维的特质空间中,使得样本在新的空间中线性可分。

【PS:SVM 是有监督的学习模型,通常可以帮我们模式识别、分类以及回归分析。】

SVM本身是一种二分的分类器,无法支持多分类的情景,不过我们可以通过“一对多法”和“一对一法”来处理。

一对多法

(1)样本 A 作为正集,B,C,D 作为负集;

(2)样本 B 作为正集,A,C,D 作为负集;

(3)样本 C 作为正集,A,B,D 作为负集;

(4)样本 D 作为正集,A,B,C 作为负集。

一对一法

(1)分类器 1:A、B;

(2)分类器 2:A、C;

(3)分类器 3:B、C;

【PS:计算距离】

5、KNN

KNN是一种监督学习算法,解决的分类问题,K代表与待分类的点最近的k个已分类的点。

KNN的工作原理:

    ① 计算待分类物体与其他物体之间的距离;

    ② 统计距离最近的 K 个邻居;

    ③ 对于 K 个最近的邻居,它们属于哪个分类最多,待分类物体就属于哪一类。

K值如何选择?

    k值较小就会过拟合,k值较大就会欠拟合,所以k值要进行调整,通过训练数据和测试数据来调整出一个比较好的k值。

  计算距离的方法:

    欧氏距离:

    曼哈顿距离 :两个点在坐标系上绝对轴距总和

    切比雪夫距离:

    余弦距离:实际上计算的是两个向量的夹角,是在方向上计算两者之间的差异

【PS:KNN还可以用来做回归,那就是知道分类,然后把相邻的K个分类的值平均后给这个点,那么怎么找到这K个相邻的点呢?】

【PS:计算距离】

6、K-means

K-Means 是一种非监督学习算法,解决的是聚类问题。K 代表类别个数,Means是每一个类别的中心,这个算法的本质就是找到K类的中心点。当找到了中心点也就完成了聚类。

· 如何确定 K 类的中心点?· 如何将其他点划分到 K 类中?

  ① 可以随机取k个点做为初始的类中心点

  ②将每个点分配到最近的类中心点,这样就形成了 K 个类,然后重新计算类中心点

  ③重复第二步,直到类不发生变化,或者你也可以设置最大迭代次数,这样即使类中心点发生变化,但是只要达到最大迭代次数就会结束。

  类到中心点的距离怎么计算呢?

    欧氏距离:

    曼哈顿距离 :

    切比雪夫距离:

    余弦距离:

· 如何区分 K-Means 与 KNN?

首先,这两个算法解决数据挖掘的两类问题。K-Means 是聚类算法,KNN 是分类算法。

其次,这两个算法分别是两种不同的学习方式。K-Means 是非监督学习,KNN是监督学习,

最后,K 值的含义不同。K-Means 中的 K 值代表 K个分类,KNN 中的 K 值代表 K 个最接近的邻居。

【PS:K的值怎么设置是个问题】

【PS:计算距离】


7、EM聚类

EM 的英文是 Expectation Maximization,所以EM算法叫做最大期望值算法。

人工智能学习笔记_第7张图片
EM算法的过程

EM求解的过程就是不断的循环执行上面的步骤,直到满足了观察预期。

“最大似然”概念: 它指的就是一件事情已经发生了,然后反推更有可能是什么因素造成的。

EM 算法是一种求解最大似然估计的方法,通过观测样本,来找出样本的模型参数。

EM 聚类的工作方式:

我要聚出k个类,每个类出现的概率是x,条件的判断系数是y,样本进来以后,发现算出的类的概率结果不是x是x1,那么调整参数y为y1,然后重复输入样本,发现概率结果不是x1,那么继续调整y1为y2,反复进行下去,直到x和y的值不发生变化。

EM聚类可以采用很多的计算模型来进行概率分类计算,比如 GMM(高斯混合模型),或者 HMM(隐马尔科夫模型)。它们描述了估计参数和预期分类之间的函数关系。


【PS:计算概率】

【PS:EM 和K-means相比,EM是软分类,K-means是硬分类,】

【PS:跟计算概率相关的,基本都会涉及到似然函数。

            贝叶斯里要用到似然函数,贝叶斯的模型框架是固定的(一个要解决的问题对应着它的框架),但是它的模型参数是不固定的,是根据输入数据得到的。而我们要做的就是用训练数据获得模型框架里的似然函数,这个函数负责生成模型参数。然后再用这个模型去处理现实问题,数据+似然函数=似然参数,比如,把邮件输入到这个模型里,释然函数会计算出来似然参数,算法模型有了似然参数以后就可以算出邮件是不是垃圾邮件了。

            EM算法也是如此,它有一个框架,但是它的参数是需要计算的,只不过它的计算不是监督学习,而是非监督学习,它通过不断的自我参数调整,来让聚类变的的稳定,不再变化。


8、Apriori 算法、FP-Growth (关联规则)

关联规则挖掘可以让我们从数据集中发现项与项(item 与 item)之间的关系,它在我们的生活中有很多应用场景,“购物篮分析”就是一个常见的场景,这个场景可以从消费者交易记录中发掘商品与商品之间的关联关系,进而通过商品捆绑销售或者相关推荐的方式带来更多的销售量。

“支持度”

支持度是个百分比,它指的是某个商品组合出现的次数与总次数之间的比例。支持度越高,代表这个组合出现的频率越大。

“置信度”

它指的就是当你购买了商品 A,会有多大的概率购买商品 B,置信度是个条件概念,就是说在 A 发生的情况下,B 发生的概率。

“提升度”

我们在做商品推荐的时候,重点考虑的是提升度,因为提升度代表的是“商品 A 的出现,对商品 B 的出现概率提升的”程度。

提升度 (A→B)= 置信度 (A→B)/ 支持度 (B)

①提升度 (A→B)>1:代表有提升;

②提升度 (A→B)=1:代表有没有提升,也没有下降;

③提升度 (A→B)<1:代表有下降。

频繁项集:

就是支持度大于等于最小支持度(Min Support) 阈值的项集,所以小于最小值支持度的项目就是非频繁项集,而大于等于最小支持度的项集就是频繁项集。


Apriori算法工作原理:

Apriori 算法其实就是查找频繁项集的过程。Apriori 算法的递归流程:

①K=1,计算 K 项集的支持度;

②筛选掉小于最小支持度的项集;

③如果项集为空,则对应 K-1 项集的结果为最终结果。

Apriori算法的缺点:

①可能产生大量的候选集。因为采用排列组合的方式,把可能的项集都组合出来了

②每次计算都需要重新扫描数据集,来计算每个项集的支持度。

FP-Growth算法工作原理:

与Apriori算法相比:

①创建了一棵 FP 树来存储频繁项集。在创建前对不满足最小支持度的项进行删除,减少了存储空间。

②整个生成过程只遍历数据集 2 次,大大减少了计算量。


9、PageRank算法


人工智能学习笔记_第8张图片

10、集成算法AdaBoost

集成的含义就是集思广益,博取众长,当我们做决定的时候,我们先听取多个专家的意见,再做决定。集成算法通常有两种方式,分别是投票选举(bagging)和再学习(boosting)。投票选举的场景类似把专家召集到一个会议桌前,当做一个决定的时候,让 K 个专家(K 个模型)分别进行分类,然后选择出现次数最多的那个类作为最终的分类结果。再学习相当于把 K 个专家(K 个分类器)进行加权融合,形成一个新的超级专家(强分类器),让这个超级专家做判断。

所以你能看出来,投票选举和再学习还是有区别的。Boosting的含义是提升,它的作用是每一次训练的时候都对上一次的训练进行改进提升,在训练的过程中这 K 个“专家”之间是有依赖性的,当引入第 K 个“专家”(第 K 个分类器)的时候,实际上是对前 K-1 个专家的优化。而 bagging 在做投票选举的时候可以并行计算,也就是 K 个“专家”在做判断的时候是相互独立的,不存在依赖性。

AdaBoost 的英文全称是 Adaptive Boostting,中文含义是自适应提升算法。

AdaBoost 的工作原理



Adaboosting算法是一个框架,框架型的算法,要么需要监督学习来训练出参数,要么需要自我迭代达到平衡状态,Adaboosting算法属于自我迭代的方式。

11、随机森林算法(集成算法)

随机森林是一种集成学习方法,构成这座森林的每一颗树都是决策树,每一棵决策树都用随机选取数据和待选特征构造出来,再按照少数服从多数的原则从所有决策树的结果中得到最终输出。



【再简洁一些】

人工智能就是随着关联关系的计算越来越复杂,越来越难发现也越来越难计算要素之间的关联关系,所以机器学习出现了。

面对不同的结果(分类、聚类、回归),我们选用适用的计算模型。

如何选择模型,你要看它的流派,它的思想,从而才能选择正确的计算模型,

如何选择模型,还可以看看数据是不是需要标注。

你可能感兴趣的:(人工智能学习笔记)