扫二维码与项目经理沟通
我们在微信上24小时期待你的声音
解答本文疑问/技术咨询/运营咨询/技术建议/互联网交流
AI的定义
让客户满意是我们工作的目标,不断超越客户的期望值来自于我们对这个行业的热爱。我们立志把好的技术通过有效、简单的方式提供给客户,将通过不懈努力成为客户在信息化领域值得信任、有价值的长期合作伙伴,公司提供的服务项目有:空间域名、网页空间、营销软件、网站建设、二七网站维护、网站推广。凡是通过机器学习,实现机器替代人力的技术,就是AI。机器学习是什么呢?机器学习是由AI科学家研发的算法模型,通过数据灌输,学习数据中的规律并总结,即模型内自动生成能表达(输入、输出)数据之间映射关系的特定算法。这整个过程就是机器学习。
AI的根基从数学理论开始
机器学习理论(包括:监督学习、无监督学习、强化学习、迁移学习、深度学习)
基础技术(包括:机器学习ML、深度学习DL、语音识别ASR、语音合成TTS、计算机视觉CV、机器视觉MV、自然语言理解NLU、自然语言处理NLP、专家系统)
模型算法的结果导向理解:
1、对数据进行分类,
2、找到输入数据与输出数据之间的规律。
机器学习的抽象流程是:
训练机器阶段,
让模型对输入数据进行分类,且找到规律;
测试阶段,
数据进入模型时,模型对数据进行分类,每一个测试数据都归类到训练数据类别中对应的一个类别,然后根据训练找到的规律计算出输出值(即答案);
欠拟合或者过拟合的情况下,要清洗训练数据、调整参数以及重复训练;达到拟合后,机器学习完成。
监督学习
准备样本(样本通常准备两组:训练数据和测试数据),
先将训练数据(即标记样本)给到机器,同时提供标准答案(有答案的样本数据属于“标记样本”),机器尽量从训练数据中找到因变量和自变量之间的关系,让自己推测的答案尽量跟标准答案靠近。
训练过程中机器尝试生成我们需要的算法,这个算法就是我们要机器学习出来的结果。
然后我们给机器测试样本(测试数据),不提供标准答案,看机器推理出答案的准确率怎么样,如果准确率太低(欠拟合),那我们就要调整模型的参数,并且再训练机器,接着又用测试数据测试,直到机器达到了我们期望的准确率。
监督学习的算法分类
1)KNN临近算法 (找输入数据跟训练数据最近的点)
2)决策树ID3算法 (根据数据特征进行分支)
3)logistic逻辑回归算法 (特征和结果不满足线性时, 使用逻辑回归算法)
4)支持向量机SVM (能判断分类是否正确, 通过计算一条线或者面把数据正确的区分开来)
5)朴素贝叶斯分类算法 (计算数据被分到每一个类别的概率, 概率的为该输入数的类别)
无监督学习
机器学习是否有监督,就看训练时输入的数据是否有标签(标签即标注输入数据对应的答案)。无监督学习即训练时输入数据无标签,无监督学习利用聚类算法。
1)K-聚类(聚类算法) 【将数据分成K个子集, 每个子集计算一个均值, 输入数据最接近那个均值就属于哪个类】
2)主成分分析法
半监督学习
狭义上【半监督学习】要分为transductive SVM、inductive SVM、Co-training、label propagation
我们可以尝试用另外一种方法分类【半监督学习】,即“分类半监督”、“聚类半监督”
分类半监督—
举例说明就是先用标签数据进行训练,然后加入无标签数据训练,无标签数据输入时,会根据数据特征及特征值,看该数据与有标签数据分类中哪一类更接近(支持向量机SVM的方法就可以帮助找到最接近哪一类),就视为该类数据;或者是,看该数据与有标签数据哪一个最接近(KNN的方法就可以找到最接近的那个数据),则把该无标签数据替换为该标签数据。
聚类半监督—
通常是在有标签数据的“标签不确定”的情况下利用(比如这个输入数据的答案可能是xxx),“聚类半监督”就是重点先完成数据的分类,然后尝试根据标签数据训练提供的标签预测结果。
强化学习
强化学习理论一: 马尔科夫决策
机器需要理解环境、分析环境,并且要推测出完成一个动作得到奖励的概率。该理论完全满足马尔科夫决策。马尔可夫的核心:在一个状 态下,可以采取一些动作,每一个动作都有一个“转化状态”且可以得出对应“转化状态”的概率(或该“转化状态”能获取奖励的概率)。而强化学习的目标就是学习怎样让每一次行动都是为了达到最有价值的“转化状态”上。
1) model based(算法:Qleaning, Sarsa, Policy Gradients)
理解真实环境,建立一个模拟环境的模型,有想象能力,根据想象预判结果,最后选择想象中结果最好的那一种作为参考进行下一步。
2)policy based(算法:Policy Gradients, Actor-critic)
通过感官分析环境,推测出下一步要进行的各种动作的概率,取概率的作为实际行动的参考。
3)value based(算法:Qleaning, Sarsa)
推测出所有动作的价值,根据价值高的作为实际动作的参考。
4)On policy(算法:Sarsa, Sarsa lambda)
必须亲自参与
5)Off policy(算法:Qleaning, Deep-Q-Network)
可亲自参与;也可以不亲自参与,通过观看其他人或机器,对其他人或机器进行模仿。
强化学习理论二:
agent不需要理解环境、分析环境时,做出决策,该决策正确时奖励,错误时不奖励或惩罚。agent不会在动作时去计算是否得到奖励的概率。
agent能够执行多种action,但它每次只能选择一个action来执行,agent任意执一个action来改变当前状态,一个action被执行后,environment会通过观测得出一个observation,这个observation会被agent接收,同时会出现一个reward也会被agent接收(这个reward也来自于environment,environment可以通过推测或直接判断action结束时达到的效果是否是AI工程师想要的效果来决定这个reward是正值还是负值,当然负值相当于是“惩罚”了)。agent在执行action时并不会知道结果会怎样,当agent接收到environment的observation时,agent仍然是一无所知的(因为agent不理解environment),但由于environment同时反馈reward,agent才知道执行的action好还是不好。agent会记住这次reward是正值还是负值,以后的action都会参考这次记忆。强化学习理论二对比一的区别就是:二并非在每一步都计算一个概率(所以二并非完全符合马尔科夫决策)。
1)model free(算法:Qleaning, Sarsa, Policy Gradients)
不理解环境,等待环境反馈,根据反馈进行下一步。
2)Monte-carlo update(算法:Policy Gradients, Monte-carlo leaning)
等待所有过程结束,事后总结所有转折点
3)Temporal difference update(算法:Qleaning, Sarsa)
过程中每一步都总结一下
4)On policy(算法:Sarsa, Sarsa lambda)
必须亲自参与
5)Off policy(算法:Qleaning, Deep-Q-Network)
可亲自参与;也可以不亲自参与,通过观看其他人或机器,对其他人或机器进行模仿。
强化学习不纠结于找出一条规律/算法,它只关心结果输出时能否得到奖励。之前提到的机器学习都是解决分类问题,而强化学习是解决“决策”问题。
迁移学习
将一个已经开发过的任务模型(源域)重复利用,作为第二个任务模型(目标域)的起点。深度学习中会经常用到迁移学习,迁移时(复用时),可以全部使用或部分使用第一个模型(源任务模型),当然这取决于第一个模型的建模逻辑是否允许。迁移学习是特别好的降低(获取样本数据、打标签)成本的方法。
1)样本迁移法
看看目标域的样本数据跟源域中训练数据哪部分相似,把目标域中这部分样本数据的特征值照着相似的源域中的样本数据的特征值调整,尽量调到一样,然后再把调过的数据权重值提高。这个方法是最简单的迁移学习方法,不过人工去调,如果经验不足,容易造成极大误差。
2)特征迁移法
找到源域同目标域的数据中的共同特征,将这些共同特征的数据都放到同一个坐标空间里,形成一个数据分布。这样就可以得到一个数据量更大且更优质的模型空间。
3)模型迁移法
源域的整个模型都迁移到目标域。最完整的迁移,但是可能会因为源域模型的特有的那些对目标域来说没有的数据、特征、特征值等,在目标域中反而会有干扰效果(类似与“过拟合”)。
4)关系迁移法
当两个域相似时,可以直接将源域的逻辑网络关系在目标域中进行应用。比如我们将人的大脑神经网络的逻辑关系迁移到AI神经网络中,因为从逻辑上这两者我们觉得是一样的。
深度学习
深度学习可以理解为是多个简单模型组合起来,实现多层神经网络,每层神经网络(也可以叫做神经元)处理一次数据,然后传递到下一层继续处理。这种多层的结构比起浅层学习的模型优势在于,可以提取出数据特征(无需人工提取)。“深度”并没有绝对的定义,语音识别的模型中4层神经网络就算深了,但在图像识别的模型中,20层也不算很深。
1)DNN深度神经网络
深度神经网络是深度学习最基础的神经网络。有很多层(每一层为一个神经元)从上往下排列,每一个层相互连接。有个缺点就是,正因为每一层之间连接起来,出现了参数数量膨胀问题(因为每一层涉及到一个算法,每一个算法都有自己的各种参数),这样的情况下容易过拟合(实现了局部但整体拟合不佳)。
2)CNN卷积神经网络
卷积神经网络有“卷积核”,这个“卷积核”可以作为介质连接神经元,用“卷积核”连接神经元时就不需要每一层都连接了。
3)RNN循环神经网络
因为DNN还有一个缺点,无法对时间序列上发生的变化进行建模,如果在语音识别、自然语言处理等应用中使用AI模型时,数据的时间顺序影响很大。所以RNN就出现了,RNN能弥补DNN的缺点,可以在时间序列上发生的变化进行建模。
基础概念:
拟合
拟合是用来形容训练结束后效果好坏的。1)欠拟合当训练数据少、数据质量差的时候,训练出来的模型质量就差(或者说损失函数过大),这时进行测试的时候,就会出现误差大,即“欠拟合”状况。2)过拟合在训练阶段,反复用同样的训练数据进行训练,可以让训练效果变得更好(损失函数小),但同时机器会因为要达到最好的训练效果,将训练数据中不重要的特征或只有训练数据才有的某些特征进行利用得太重或开始学习不需要的细节,也就是说机器对训练数据太过依赖,最后就会出现在训练数据上表现特别好,但在其他数据上表现不佳。这样的情况叫做“过拟合“。3)拟合欠拟合、过拟合都不是我们需要的。我们要的是拟合。所以我们在训练机器时要注意平衡。点在哪里呢?点在训练的损失函数还在减小,而测试的损失函数在减小之后突然开始增大的该点上。此时我们就达到了“拟合”。4.2、泛化性训练好的模型在其他数据上的表现好坏用泛化性形容。在其他数据上表现越好,泛化性越高。4.3、损失函数用于评估“不准确”的程度,它是衡量模型估算值和真实值差距的标准。损失函数(loss)越小,则模型的估算值和真实值的差距越小,通常情况下我们要把loss降到低。
标签
指给数据标记的答案。标记好答案的数据叫做“标签数据”。
特征值
特征(feature)的值。比如房子有特征(feature):空间、价格。它的特征值:(空间)200平方米、(价格)1500万。一般在机器学习的监督学习中,我们需要对训练数据进行特征提取的处理,即标记好每个数据有哪些特征和对应特征值。当特征值损失的情况:在实际的机器学习过程中,有时候会发生数据缺失的问题,比如一个数据有X个特征,但是由于意外发生,我们只得到部分(小于X)特征的值,在这种情况下,为了不浪费整个样本资源,且可以顺利的继续机器学习,我们需要有一些弥补措施:1)人为设置某些特征的特征值(根据经验),然后利用;2)找到相似的另一组样本,用另一组样本的特征平均值代替缺失的特征值;3)用其他的机器学习模型专门针对缺失的特征值进行学习然后利用该模型找出缺失特征值;4)使用已有特征值的均值来替代未知特征值;5)在机器学习过程中用一些方法,让机器忽略已缺失特征值的数据。
类别
物以类聚人以群分,特征相同的数据就是同一类别。机器学习中特别重要的一个步骤就是利用算法将数据分类(学习算法里边会提到多种实现数据分类的算法),机器会尽量将所有输入数据进行分类,分类的逻辑就是通过数据的“特征”,特征接近的数据会被机器认为是同一类别的数据。
分类&聚类
分类是目前最简单也是效果最好的一类算法(比如KNN、决策树ID3、logistic回归、SVM等都属于分类算法)。分类算法的前提条件是训练数据必须带有标签。聚类是目前相对分类更复杂同时效果更差的一类算法(无监督学习就是用聚类算法)。聚类算法的优势是可以训练数据不需要标签。表面上看来分类算法比聚类算法好用很多,那我们还要用聚类算法的理由是什么呢?其实,在实际情况下,训练机器时,要给数据打标签是个人工消耗极大的工作,不仅工作量大,很多时候对数据打准确的标签难度也大。
决策树
根据数据的特征值对数据进行不断分支,直到不可再分支(附 决策树形象图)。决策树的每一次对数据分支,就消耗一个特征值。当所有特征值消耗完后,决策树成形。决策树的每一个节点,即每一次对特征分支时,通常以yes/no的判断形式进行划分(所以才叫“决策树”嘛)。决策树帮助机器对数据进行分类(根据特征,决策树的分裂点即特征分别点),决策树形成后,满足一条分枝上所有分裂点条件的为同一类数据。要注意的是,有时候决策树分枝太长,会导致过拟合。因为决策树很可能把训练数据中不太有代表性的特征放在分裂点上,这样形成的决策树不适应与训练数据之外的数据了。如果出现这种情况,需要“剪枝”,枝越长,说明模型可能越依赖训练数据,在枝的长短上,要做一个平衡,平衡的原则请参考本文提到的“欠拟合”与“过拟合”的关键词解释。
知识图谱
知识图谱是模拟物理世界的实物与实物之间的关系,知识图谱呈现为无限扩散的类网状结构。它的结构组成为“实体”—“关系”--“实体”,以及“实体”--“属性”--“值”。知识图谱使得AI找到一个信息时,同时也获得了
标题名称:AI探索基础知识汇总
URL链接:http://kswjz.com/article/cgsisp.html
我们在微信上24小时期待你的声音
解答本文疑问/技术咨询/运营咨询/技术建议/互联网交流