[AI知识-3]机器学习理论导图
2021-04-25 16:10:03 0 举报
AI智能生成
机器都会“学习”啦,人类需要先学习什么是“机器学习”,然后才能让自己更好的学习:)作为AI相关最重要的通识,有必要掌握。
作者其他创作
大纲/内容
监督学习
准备样本(样本通常准备两组:训练数据和测试数据),先将训练数据(即标记样本)给到机器,同时提供标准答案(有答案的样本数据属于“标记样本”),机器尽量从训练数据中找到因变量和自变量之间的关系,让自己推测的答案尽量跟标准答案靠近。训练过程中机器尝试生成我们需要的算法,这个算法就是我们要机器学习出来的结果。然后我们给机器测试样本(测试数据),不提供标准答案,看机器推理出答案的准确率怎么样,如果准确率太低(欠拟合),那我们就要调整模型的参数,并且再训练机器,接着又用测试数据测试,直到机器达到了我们期望的准确率。抽象一个最简单的逻辑公式:线性代数y=kx。我们提供n组x值及对应y值作为训练数据,模型经过计算推测出k值(推测出k值这个过程我们叫做“回归”),然后我们再用m组测试数据,但是此时只输入x值,看机器得出的y值是否跟我们已知的正确答案y值是否相同。当有多个纬度的特征时,应该抽象公式应该是y=kx1+kx2+kx3,或者y=k1x1+k2x2+k3x3。当然还有可能要考虑其他一些参数,此时公式应该为y=kx1+kx2+kx3+b,或y=k1x1+k2x2+k3x3+b。参数b是我们的AI工程师可以直接调整的,以便让机器训练的结果最接近我们想要的结果。
分类算法
KNN临近算法
在训练阶段时,机器将训练数据进行分类(根据数据的feature,即数据的特征)。(逻辑推理出,在某些情况下模型可以找出来的数据之间的映射不止一条,即可能每一类数据会有一个映射关系。)当测试数据输入时,机器会根据输入数据的特征判断该输入数据跟哪一类的训练数据为同一类,在此判断基础上,机器便决定用哪一个映射关系来推测当下输入测试数据对应的输出数据(即答案)。机器是如何判断测试时的输入数据更接近哪一类训练数据的呢?用数学逻辑解释就是,模型内是一个多维空间,有一个多维坐标,每一纬是一个特征,当一个训练数据输入时,该数据坐落在坐标上某一点,训练数据量大了之后,模型里的坐标上有无数点。当测试数据输入后,根据测试数据的特征在坐标上为它找到一个点,机器会找与该点欧式距离最近的点(训练数据的点)是哪一个,并且将该点视为与找到的距离最近的训练数据的点为同一类。
举例
Mary喜欢玩探探,在她眼里,探探里的男银分3类。第一类是不喜欢,左划;第二类是喜欢,右划;第三类是超级喜欢,点星星。第一类男银的共同点是单眼皮、低鼻梁、秃顶、着装安ta之类的运动服;第二类的共同点是双眼皮、高鼻梁、茂密的头发、着装笔挺小西装;第三类的共同点是带名牌手表,照片旁边有一辆跑车。AI了解Mary后,开始为Mary把关。当AI看到一个男银上探探,就会看这个男银是否单眼皮,鼻梁接近于高还是低,头发多少,着装随时还是成熟,然后将这个男银为第一类或者第二类,第一类的直接帮Mary划掉,第二类的直接帮Mary点喜欢。还有,当AI看到一个男银带名牌表,有豪车,直接帮Mary点一个超级喜欢。然后Mary不用那么累地全部都要点一遍,AI帮她选的人她都挺满意,她一脸的满足。
决策树ID3算法
基于“决策树”的理论的一种算法。根据数据特征进行分支,直到不可再分支,此时决策树成形,数据也被分出一类来,成形的一个决策树表现了这一类数据的所有特征。决策树ID3算法与KNN算法的区别在于:KNN算法需要始终保存并持续使用所有训练数据,决策树ID3算法完成决策树之后,可以不再保存所有的训练数据了(可以清清内存),只需要将决策树模型保留下来,便可以对新数据进行高准确率地分类。
logistic回归算法
当特征和结果不满足线性时(函数大于一次方时),就可以用逻辑回归算法。逻辑回归是一个非线性模型,它的因变量(x)跟线性回归函数不相同。逻辑回归同样用来解决分类问题,呈二项分布,它只输出两种结果,0或1(实际情况是输出为0~0.5,或0.5~1,小于0.5取值0,大于等于0.5取值1),0和1分别代表两个类别。
公式
分支主题
示意图
分支主题
支持向量机SVM
主要优势就是可以判断到分类是否正确。先给大家举一个例,当我们要分割一个平面,会用一条线,即分割二维数据用一维数据;如果我们要分割一个立体空间,会用一个面,即分割三维数据用二维数据。理解例子后,就可以理解SVM的原理了。SVM的原理就是用一个N-1维的“分割超平面”线性分开N维数据。
朴素贝叶斯分类算法
首先说明一点:KNN算法、决策树ID3算法、logistic回归算法、SVM都是属于判别方法,而朴素贝叶斯算法是属于生成方法。朴素贝叶斯算法的逻辑是:每一个训练数据输入时,计算该数据被分到每一个类别的概率,最后视概率最大的那一个为该输入数据的类别。
贝叶斯公式
分支主题
无监督学习
定义:机器学习是否有监督,就看训练时输入的数据是否有标签(标签即标注输入数据对应的答案)。无监督学习即训练时输入数据无标签,无监督学习利用聚类算法。无监督学习不利用“回归”方式找到规律。其他的跟监督学习基本相同
聚类算法
K-聚类
K-means聚类是一种矢量量化的方法,给定一组向量,K-means算法将这些数据组织成k个子集,使得每个向量属于最近的均值所在的子集。在特征学习中,K-means算法可以将一些没有标签的输入数据进行聚类,然后使用每个类别的质心来生成新的特征。
主成分分析法
强化学习
强化学习理论一
算法
model based(算法:Qleaning, Sarsa, Policy Gradients)
model-based的解释:理解真实环境,建立一个模拟环境的模型,有想象能力,根据想象预判结果,最后选择想象中结果最好的那一种作为参考进行下一步。
policy based(算法:Policy Gradients, Actor-critic)
policy based 的解释:通过感官分析环境,推测出下一步要进行的各种动作的概率,取概率最大的作为实际行动的参考。
value based(算法:Qleaning, Sarsa)
Valued based的解释:推测出所有动作的价值,根据价值最高的作为实际动作的参考。
On policy(算法:Sarsa, Sarsa lambda)
On policy的解释:必须亲自参与
Off policy(算法:Qleaning, Deep-Q-Network)
可亲自参与;也可以不亲自参与,通过观看其他人或机器,对其他人或机器进行模仿。
马尔科夫的核心
在一个状态下,可以采取一些动作,每一个动作都有一个“转化状态”且可以得出对应“转化状态”的概率。
而强化学习的目标就是学习怎样让每一次行动都是为了达到最有价值的“转化状态”上
强化学习理论二
算法
model free(算法:Qleaning, Sarsa, Policy Gradients)
model free的解释:不理解环境,等待环境反馈,根据反馈进行下一步。
Monte-carlo update(算法:Policy Gradients, Monte-carlo leaning)
Monte-carlo update的解释:等待所有过程结束,事后总结所有转折点
Temporal difference update(算法:Qleaning, Sarsa)
Temporal difference update的解释:过程中每一步都总结一下
On policy(算法:Sarsa, Sarsa lambda)
On policy的解释:必须亲自参与
Off policy(算法:Qleaning, Deep-Q-Network)
可亲自参与;也可以不亲自参与,通过观看其他人或机器,对其他人或机器进行模仿。
迁移学习
将一个已经开发过的任务模型(源域)重复利用,作为第二个任务模型(目标域)的起点。深度学习中会经常用到迁移学习,迁移时(复用时),可以全部使用或部分使用第一个模型(源任务模型),当然这取决于第一个模型的建模逻辑是否允许。迁移学习是特别好的降低(获取样本数据、打标签)成本的方法。
基本方法
样本迁移
看看目标域的样本数据跟源域中训练数据哪部分相似,把目标域中这部分样本数据的特征值照着相似的源域中的样本数据的特征值调整,尽量调到一样,然后再把调过的数据权重值提高。这个方法是最简单的迁移学习方法,不过人工去调,如果经验不足,容易造成极大误差。
特征迁移
找到源域同目标域的数据中的共同特征,将这些共同特征的数据都放到同一个坐标空间里,形成一个数据分布。这样就可以得到一个数据量更大且更优质的模型空间。(之前提到很多模型算法对输入数据分类时都要依靠模型里虚拟的空间,这个空间的质量越好,分类效果越好)
模型迁移
源域的整个模型都迁移到目标域。最完整的迁移,但是可能会因为源域模型的特有的那些对目标域来说没有的数据、特征、特征值等,在目标域中反而会有干扰效果(类似与“过拟合”)
关系迁移
当两个域相似时,可以直接将源域的逻辑网络关系在目标域中进行应用。比如我们将人的大脑神经网络的逻辑关系迁移到AI神经网络中,因为从逻辑上这两者我们觉得是一样的。
深度学习
深度学习可以理解为是多个简单模型组合起来,实现多层神经网络,每层神经网络(也可以叫做神经元)处理一次数据,然后传递到下一层继续处理。这种多层的结构比起浅层学习的模型优势在于,可以提取出数据特征(无需人工提取)。“深度”并没有绝对的定义,语音识别的模型中4层神经网络就算深了,但在图像识别的模型中,20层也不算很深。
算法
DNN(深度神经网络)
深度神经网络是深度学习最基础的神经网络。有很多层(每一层为一个神经元)从上往下排列,每一个层相互连接。有个缺点就是,正因为每一层之间连接起来,出现了参数数量膨胀问题。这样的情况下容易过拟合(实现了局部最佳但整体拟合不佳)
CNN(卷积神经网络)
卷积神经网络有“卷积核”,这个“卷积核”可以作为介质连接神经元,用“卷积核”连接神经元时就不需要每一层都连接了。
RNN(循环神经网络)
因为DNN还有一个缺点,无法对时间序列上发生的变化进行建模,如果在语音识别、自然语言处理等应用中使用AI模型时,数据的时间顺序影响很大。所以RNN就出现了,RNN能弥补DNN的缺点,可以在时间序列上发生的变化进行建模。
总结
关于模型算法的结果导向理解:1、对数据进行分类,2、找到输入数据与输出数据之间的规律。以上提到的机器学习方式可以配合利用,且各种算法模型也可以结合利用。
半监督学习
半监督学习其实就是监督学习和非监督学习的方法合并利用,训练数据有一部分是有标签的,有一部分是无标签的,通常无标签的数据量比有标签的数据量大很多。半监督学习的好处是,1)降低打标签的人工成本的情况下让模型可以得到很好的优化;2)大量的没办法打标签的数据得以被利用起来,保证训练数据的量,从而让训练结果更佳。狭义上【半监督学习】要分为transductive SVM、inductive SVM、Co-training、label propagation;我们可以尝试用另外一种方法分类【半监督学习】,即“分类半监督”、“聚类半监督”。“分类半监督”举例说明就是先用标签数据进行训练,然后加入无标签数据训练,无标签数据输入时,会数据特征及特征值,看该数据与有标签数据分类中哪一类更接近,就视为该类数据;或者是,看该数据与有标签数据哪一个最接近(找最接近的方法在KNN算法中讲过),则该无标签数据被当作是最接近的标签数据。“聚类半监督”通常是在有标签数据的标签不确定的情况下利用(比如这个输入数据的答案可能是xxx),“聚类半监督”就是重点先完成数据的分类,然后尝试根据标签数据训练提供的标签预测结果。
算法
S3VM
S4VM
CS4VM
TSVM
重要的关键词理解
拟合
拟合是用来形容训练结束后效果好坏的
欠拟合
当训练数据少、数据质量差的时候,训练出来的模型质量就差(或者说损失函数过大),这时进行测试的时候,就会出现误差大,即“欠拟合”状况。
过拟合
在训练阶段,反复用同样的训练数据进行训练,可以让训练效果变得更好(损失函数小),但同时机器会因为要达到最好的训练效果,将训练数据中不重要的特征或只有训练数据才有的某些特征进行利用得太重或开始学习不需要的细节,也就是说机器对训练数据太过依赖,最后就会出现在训练数据上表现特别好,但在其他数据上表现不佳。这样的情况叫做“过拟合“。
最佳拟合
欠拟合、过拟合都不是我们需要的。我们要的是最佳拟合。所以我们在训练机器时要注意平衡。最佳点在哪里呢?最佳点在训练的损失函数还在减小,而测试的损失函数在减小之后突然开始增大的该点上。此时我们就达到了“最佳拟合”。
泛化性
训练好的模型在其他数据上的表现好坏用泛化性形容。在其他数据上表现越好,泛化性越高
损失函数(loss)
用于评估“不准确”的程度,它是衡量模型估算值和真实值差距的标准。损失函数(loss)越小,则模型的估算值和真实值的差距越小,通常情况下我们要把loss降到最低。
香农熵
形容信息量大小。机器学习中重要是用于衡量特征的数量多少。一个数据的特征越多,说明我们可以从这个数据中获得的信息越多,也就可以说香农熵高。顺便提一下,决策树的生成过程,就是降低香农熵的过程。
标签
指给数据标记的答案。标记好答案的数据叫做“标签数据”。
特征值
特征(feature)的值。比如房子有特征(feature):空间、价格。它的特征值:(空间)200平方米、(价格)1500万。一般在机器学习的监督学习中,我们需要对训练数据进行特征提取的处理,即标记好每个数据有哪些特征和对应特征值。
当特征值损失的情况
在实际的机器学习过程中,有时候会发生数据缺失的问题,比如一个数据有X个特征,但是由于意外发生,我们只得到部分(小于X)特征的值,在这种情况下,为了不浪费整个样本资源,且可以顺利的继续机器学习,我们需要有一些弥补措施:1)认为设置某些特征的特征值(根据经验),然后利用;2)找到相似的另一组样本,用另一组样本的特征平均值代替缺失的特征值;3)用其他的机器学习模型专门针对缺失的特征值进行学习然后利用该模型找出缺失特征值;4)使用已有特征值的均值来替代未知特征值;5)在机器学习过程中用一些方法,让机器忽略已缺失特征值的数据。
类别
物以类聚人以群分,特征相同的数据就是同一类别。机器学习中特别重要的一个步骤就是利用算法将数据分类(学习算法里边会提到多种实现数据分类的算法),机器会尽量将所有输入数据进行分类,分类的逻辑就是通过数据的“特征”,特征接近的数据会被机器认为是同一类数据。
分类&聚类
分类是目前最简单也是效果最好的一类算法(比如KNN、决策树ID3、logistic回归、SVM等都属于分类算法)。分类算法的前提条件是训练数据必须带有标签。
聚类是目前相对分类更复杂同时效果更差的一类算法(无监督学习就是用聚类算法)。聚类算法的优势是可以训练数据不需要标签。表面上看来分类算法比聚类算法好用很多,那我们还要用聚类算法的理由是什么呢?其实,在实际情况下,训练机器时,要给数据打标签是个人工消耗极大的工作,不仅工作量大,很多时候对数据打准确的标签难度也大。
举例
在自然语言处理(NLP)中,Penn Chinese Treebank在2年里只完成了4000句话的标签
决策树
根据数据的特征值对数据进行不断分支,直到不可再分支(附 决策树形象图)。决策树的每一次对数据分支,就消耗一个特征值。当所有特征值消耗完后,决策树成形。决策树的每一个节点,即每一次对特征分支时,通常以yes/no的判断形式进行划分。决策树的理论是AI建模所依靠的重要基础理论之一。
示意图
子主题 2
知识图谱
知识图谱是模拟物理世界的实物与实物之间的关系,知识图谱呈现为无限扩散的类网状结构。它的结构组成为“实体”--“关系”--“实体”,以及“实体”--“属性”--“值”。知识图谱使得AI找到一个信息时,同时也获得了更多跟跟这个信息相关的其他信息。
子主题 1
0 条评论
下一页