人脑神经网络的知识存储容量很大。在神经网络中,知识与信息的存储表现为神经元之间分布式的物理联系,分散地表示和存储于整个网络内的各神经元及其连线上。每个神经元及其连线只表示一部分信息,而不是一个完整的具体概念,只有通过各神经元的分布式综合效果才能表达出特定的概念和知识。
由于人脑神经网络中神经元个数众多以及整个网络存储信息容量巨大,使得它具有很强的不确定性信息的处理能力,即使输入信息不完全、不准确或模糊不清,神经网络仍然能够通过联想思维得到存在于记忆中事物的完整图象,只要输入的模式接近于训练样本,系统就能给出正确的推理结论。
下图中的x1、x2、x3等表示输入值,构成第一层L1,组成输入层;中间的圆形成L2、 L3 、L4等多个层次,组成隐层;神经元经过多层的调整、评估和分析计算处理后得出hw,b(x)的结果作为神经元的输出值,构成输出层,组成人们常说的人工神经网络。
神经网络神经元结构示意图(摘自互联网)
上图中的橙色圆都是用来计算hw,b(x)的,纵向我们叫做层(Layer),每一层都以前一层的结果做为输入,经过处理得到输出结果传递给下一层
如果我们把神经网络看做一个黑盒子,那么最左边的x1、x2、x3等是这个黑盒子的输入X,最右边的hw,b(x)是这个黑盒的输出Y,可以通过一个数学模型进行拟合,通过大量数据来训练这个模型,之后就可以通过训练好的模型预估新的样本X应该能得出什么样的结果Y。
以上简单说明神经网络的结构,通过较深的多个层次来模拟真实情况,从而构造出最能表达真实世界的模型,它的运作成本就是海量的训练数据和巨大的计算处理工作量。
正是因为人脑神经网络的结构特点和其信息存储的分布式特点,使得它相对于其它的判断识别系统,如专家系统、层次分析系统等,具有显著的稳健性优点。生物神经网络不会因为个别神经元的损失而失去对原有模式的记忆,最有力的证明是,当一个人的大脑因意外事故受轻微损伤之后,并不会失去原有事物的全部记忆。神经网络也有类似的情况。因某些原因,无论是网络的硬件实现还是软件实现中的某个或某些神经元失效时,整个网络仍然能继续工作。
人工神经网络是一种非线性的处理单元。只有当神经元对所有的输入信号的综合处理结果超过某一门限值后才输出一个信号,因此神经网络是一种具有高度非线性的超大规模连续时间动力学系统,突破了传统的以线性处理为基础的计算机的局限性,标志着人们智能信息处理能力和模拟人脑智能行为能力的一大飞跃。
神经网络经过多年的研究和发展,已经形成了几十种类型不同并各具特点的神经网络模型,分析处理算法也各具特点,所以下面只简单的介绍几种典型的常用神经网络。
1.多层感知网络。它是一类具有三层或三层以上的阶层型神经网络。典型的多层感知网络是三层、前馈型的阶层网络,即含有输入层、隐层(也称中间层、隐含层)和输出层。相邻层之间的各神经元实现全连接,即下一层的每一个神经元与上一层的每个神经元都实现全连接,而且每层各神经元之间无连接。但它并非十分完善,存在以下一些主要缺陷:学习收敛速度慢、网络的学习记忆具有不稳定性,当给一个训练好的网提供新的学习记忆模式时,将使已有的连接权值被打乱,导致已记忆的学习模式的信息的消失。
2.竞争神经网络。它是基于人的视网膜及大脑皮层对剌激的反应而引出的一类神经网络。神经生物学的研究结果显示生物视网膜中有许多特定的细胞,对特定的输入模式如图形比较敏感,并使得大脑皮层中的特定细胞产生大的兴奋,而其相邻的神经细胞的兴奋程度被抑制。对于某一个输入模式,通过竞争在输出层中只激活一个相应的输出神经元。许多输入模式,在输出层中将激活许多个神经元,从而形成一个反映输入数据的“特征图形”。竞争神经网络是一种以无教师方式进行网络训练的网络,通过自身训练,自动对输入模式进行分类。竞争型神经网络及其学习规则与其它类型的神经网络和学习规则相比,有其自己的鲜明特点。在网络结构上,它既不象阶层型神经网络那样各层神经元之间只有单向连接,也不象全连接型网络那样在网络结构上没有明显的层次界限。它一般是由输入层(模拟视网膜神经元)和竞争层(模拟大脑皮层神经元,也叫输出层)构成的两层网络。两层之间的各神经元实现双向全连接,而且网络中没有隐含层,有时竞争层各神经元之间存在横向连接。竞争神经网络的基本思想是网络竞争层各神经元竞争对输入模式的响应机会,最后仅有一个神经元成为竞争的胜利者,并且只将与获胜神经元有关的各连接权值进行修正,使之朝着更有利于它竞争的方向调整。神经网络工作时,对于某一输入模式,网络中与该模式最相近的学习输入模式相对应的竞争层神经元将有最大的输出值,即以竞争层获胜神经元来表示分类结果。这是通过竞争得以实现的,实际上也就是网络回忆联想的过程。
竞争型神经网络的缺点和不足之处在于它仅以输出层中的单个神经元代表某一类模式,所以一旦输出层中的某个输出神经元损坏,则导致该神经元所代表的该模式信息全部丢失。
3.霍普菲尔网络(Hopfield network,HN)。它是一个由非线性元件构成的全连接型单层反馈系统。网络中的每一个神经元都将自己的输出通过连接权传送给所有其它神经元,同时又都接收所有其它神经元传递过来的信息,即网络中的神经元t时刻的输出状态实际上间接地与自己的t-1时刻的输出状态有关。所以,霍普菲尔神经网络是一个反馈型的网络,状态变化可以用差分方程来表征。反馈型网络的一个重要特点就是它具有稳定状态。当网络达到稳定状态的时候,也就是它的能量函数达到最小的时候。这里的能量函数不是物理意义上的能量函数,而是在表达形式上与物理意义上的能量概念一致,表征网络状态的变化趋势,并可以依据霍普菲尔工作运行规则不断进行状态变化,最终能够达到的某个极小值的目标函数。网络收敛就是指能量函数达到极小值。如果把一个最优化问题的目标函数转换成网络的能量函数,把问题的变量对应于网络的状态,那么霍普菲尔神经网络就能够用于解决优化组合问题。
霍普菲尔神经网络的能量函数是朝着梯度减小的方向变化,但它仍然存在一个问题,那就是一旦能量函数陷入到局部极小值,它将不能自动跳出局部极小点,到达全局最小点,因而无法求得网络的整体最优解
4. BP(back propagation)神经网络。它有一种按照误差逆向传播训练的算法、以此增强网络的分类和识别能力、解决非线性问题而采用多层前馈网络,即在输入层和输出层之间加上隐层,构成多层前馈感知器网络,是一种对非线性可微分函数进行权值训练的多层网络。BP神经网络算法就是以网络误差平方为目标函数、采用梯度下降法来计算目标函数的最小值。
BP神经网络是目前应用最广泛的神经网络,这里将对其算法进行一些进一步的介绍。
BP神经网络算法是一种有监督式的学习算法,由输入层、中间层、输出层组成的多阶层神经网络,中间层可扩展为多层。相邻层之间各神经元进行全连接,而每层各神经元之间无连接。网络按有教师示教的方式进行学习,当一对学习模式提供给网络后,各神经元获得网络的输入响应产生连接权值,然后按减小希望输出与实际输出误差的方向,从输出层经各中间层逐层修正各连接权,使用反向传播算法对网络的权值和偏差进行反复的调整训练,使输出的向量与期望向量尽可能的接近。此过程反复交替进行,直至网络的全局误差趋向给定的极小值,即完成学习的过程。当网络输出层的误差平方和小于指定的误差时训练完成,保存网络的权值和偏差。粗略的计算步骤如下:
(1)初始化,随机给定各连接加权值[wij],[vjt]及阈值θi,rt;
(2)根据给定的输入输出模式,经计算隐层、输出层各单元的输出结果为:
bj=f(⅀wijai-θj), ct=f(⅀vjtbj-rt);
式中bj为隐层第j个神经元的实际输出;ct为输出层第t个神经元的实际输出;wij为输入层至隐层的连接权;vjt为隐层至输出层的连接权;
(3)选取下一个输入模式,返回第2步反复训练,直到网络的输出误差达到要求时结束训练。
传统的BP算法,实质上是把一组样本输入/输出问题转化为一个非线性优化问题,并通过梯度下降算法,利用迭代运算求解权值问题的一种学习方法,但其收敛速度慢且容易陷入局部极小,可用高斯消元法进行改进。欲了解更详细的算法,可参考其他有关文献。
BP神经网络最主要的优点是具有极强的非线性映射能力。理论上,对于一个三层和三层以上的BP网络,只要隐层神经元数目足够多,该网络就能以任意精度逼近一个非线性函数。其次,BP神经网络具有对外界刺激和输入信息进行联想记忆的能力。这是因为它采用了分布并行的信息处理方式,对信息的提取必须采用联想的方式,才能将相关神经元全部调动起来。这种能力使其在图像复原、语言处理、模式识别等方面具有重要应用。再次,BP神经网络对外界输入样本有很强的识别与分类能力。由于它具有强大的非线性处理能力,因此可以较好地进行非线性分类,解决了神经网络发展史上的非线性分类难题,使其具有优化计算的能力。BP神经网络本质上是一个非线性优化问题,它可以在已知的约束条件下,寻找一组参数组合,使该组合确定的目标函数达到最小。不过,其优化计算存在局部极小问题,必须通过改进才能进一步完善。
多层神经网络可以应用于线性系统和非线性系统中,对于任意函数模拟逼近。当然,感知器和线性神经网络能够解决这类网络问题。但是,虽然理论上是可行的,但实际上BP网络并不一定总能有解。
对于非线性系统,选择合适的学习率是一个重要问题。在线性网络中,学习率过大会导致训练过程不稳定;相反,学习率过小又会造成训练时间过长。和线性网络不同,对于非线性多层网络很难选择很好的学习率。
非线性网络的误差面比线性网络的误差面复杂得多,问题在于多层网络中非线性传递函数有多个局部最优解。寻优的过程与初始点的选择关系很大,初始点如果更靠近局部最优点,而不是全局最优点,就不会得到正确的结果,这也是多层网络无法得到最优解的一个原因。为了解决这个问题,在实际训练过程中,应重复选取多个初始点进行训练,以保证训练结果的全局最优性。网络隐层神经元的数目也对网络有一定的影响。神经元数目太少会造成网络的不适性,而神经元数目太多又会引起网络的过适性。
BP神经网络无论在网络理论还是在性能方面都已比较成熟,突出优点就是具有很强的非线性映射能力和柔性的网络结构。网络的中间层数、各层的神经元个数可根据具体情况任意设定,并且随着结构的差异其性能也有所不同。但BP神经网络也存在缺陷,主要表现在学习速度慢,容易陷入局部极小值,网络层数、神经元个数的选择还缺少相应的理论指导。
人工神经网络能较好的模拟人的形象思维,对信息具有很好的隐藏性,还具有容错性强、稳健性强和自学习性强等特点,是一个大规模自组织、自适应且具有高度并行协同处理能力的非线性动力系统。人工神经网络理论的应用已经渗透到多个领域,诸如信息处理、自动化、工程应用、经济发展评价和辅助决策及医学领域中的检测数据分析和医学专家系统等。
总起来看,神经网络模型与传统计算模型不同。从计算方式上讲,神经元网络计算把一些简单的、大量的计算单元连接在一起,形成网络计算,代替只用一个计算单元进行计算的传统模式,也就是用分布式、并行计算代替集中式、串行计算;从模型构建上讲,传统的计算方法采用从上到下的方式预先构建数学模型,在神经元网络中,系统通过采集数据并进行学习的方法在计算过程中构建数据模型,进而建立网络结构;综合讲来,神经元网络适应性较强,并行计算处理速度较快,对经验知识要求较少。
一般来讲,神经网络在规模比较小时效果不错。规模可用三个指标来衡量:特征数量(通常在二三百个左右)、训练样本数(通常由几千到几万)和分类数(通常有几十个)。当问题规模变大时,比如特征数过千、训练样本数达到了几万甚至几十万,特别是分类数达到几百、上千,这时的神经元网络计算可能会出现一些问题。
人工神经网络特有的非线性适应性信息处理能力,克服了传统人工智能方法对于直觉,如模式、语音识别、非结构化信息处理方面的缺陷,使之在神经专家系统、模式识别、智能控制、组合优化、预测等领域得到成功应用。人工神经网络与其它传统方法相结合,将推动人工智能和信息处理技术不断发展。近年来,人工神经网络正向模拟人类认知的道路上更加深入发展,与模糊系统、遗传算法、进化机制等结合,形成计算智能,成为人工智能的一个重要的研究方向,将会在实际应用中得到进一步发展,将信息集合应用于人工神经网络研究,为人工神经网络的理论研究开辟了新的途径。
神经元网络计算越来越受到人们的关注,为解决大型复杂度高的问题提供了一种相对来说比较简单的有效算法,能较容易地解决具有上百个参数的分类和回归计算中一些常见的问题。
机器学习(Machine Learning),人工智能的核心,是使计算机具有智能的根本途径,其应用遍及人工智能的各个领域,主要使用归纳、综合而不是演绎的方法研究计算机怎样模拟或实现人类的学习行为,以获取新的知识或技能,重新组织已有的知识结构使之不断改善自身的性能。机器学习是一门多领域的交叉学科,涉及到概率论、统计学、逼近论、凸分析、算法复杂度理论和计算机科学等诸多学科。
机器学习(摘自互联网)
机器学习计算(Machine Learning Computing)主要设计和分析一些让计算机可以自动“学习”的算法,是一类从数据中自动分析获得规律、利用规律,对未来数据进行分类、聚类和预测等的一类算法。因为机器学习计算中涉及了大量的统计学理论,机器学习与统计推断的联系尤为密切,也被称为统计学习理论。算法设计方面,机器学习计算关注可以实现的、行之有效的学习算法,很多推论问题具有无程序可循的难度,所以部分的机器学习研究是开发简单、处理容易的近似算法。
机器学习已经得到了十分广泛的应用,如数据挖掘、计算机视觉、自然语言处理、生物特征识别、搜索引擎、医学诊断、检测信用卡、证券市场分析、DNA序列测序、语音和手写识别、战略游戏和机器人运用等。
从更广泛的意义上来看,机器学习是人工智能的一个子集。人工智能旨在使计算机更加智能化,而机器学习已经证明如何做到这一点。简而言之,机器学习是人工智能的应用,通过应用从数据中反复学习得到算法,可以改进计算机的功能,而无需进行明确的编程。
在给出机器学习计算各种算法之前,最好是先研究一下什么是机器学习和如何对机器学习进行分类,才能更好的理解和掌握一些具体的机器学习算法并将其用于实际问题的计算和处理。
学习是人类具有的一种重要智能行为,但究竟什么是学习,长期以来却众说纷纭。社会学家、逻辑学家和心理学家都各有自己不同的看法和说法。比如,有人定义机器学习是一门人工智能的科学,该领域的主要研究对象是人工智能,特别是如何从经验学习中改善具体算法的性能,也有人认为机器学习是对能通过经验自动改进计算机算法的研究,还有人认为机器学习是用数据或以往的经验,以此优化计算机程序的性能标准等等。尽管如此,为了便于进行讨论和推进机器学习学科的进展,有必要对机器学习给出定义,即使这种定义是不完全、不完整和不充分的并存在诸多争议的。
顾名思义,机器学习是研究如何使用机器来模拟人类学习活动的一门学科。稍为严格的提法是:机器学习是一门研究机器获取新知识、新技能并识别现有知识的学问。这里所说的“机器”,当然指的是计算机;现在是电子计算机,将来还可能是中子计算机、光子计算机或神经网络计算机。
计算机能否象人类一样能具有学习的能力,特别是机器的学习能力是否能超过人类,确有许多不同的想法和看法,争议颇多。持否定意见人的一个主要论据是:机器是人造的,其性能和动作完全是由设计者规定的,因此无论如何其能力也不会超过设计者本人。这种意见对不具备学习能力的计算机来说的确是对的,可是对具备了学习能力的计算机就值得考虑了,因为这种计算机的能力通过学习和实际应用会不断提高和增强,过了一段时间之后,设计者本人也不知它的能力达到了什么水平、是否超过了自己。
对机器学习可按照不同的标准和方法进行分类,下面简单介绍两种常见的分类方法。
(1)基于学习策略的分类 学习策略是指学习过程中系统所采用的推理策略。一个学习系统总是由学习和环境两部分组成。由环境(如书本或教师)提供信息,学习部分则实现信息转换,用能够理解的形式记忆下来,并从中获取有用的信息。学习策略的分类标准就是根据学生实现信息转换所需的推理多少和难易程度来分类的,依照从简到繁、从少到多的次序分为以下六种基本类型:
1)机械学习 学习者无需任何推理或其它的知识转换,直接吸取环境所提供的信息,主要考虑如何索引存贮知识并加以利用。系统的学习方法是直接通过事先编好、构造好的程序来学习,学习者不作任何工作,或者是通过直接接收既定的事实和数据进行学习,对输入信息不作任何的推理。
2)示教学习 学生从环境中获取信息,把知识转换成内部可使用的表示形式,并将新的知识和原有知识有机地结合为一体。所以要求学生有一定程度的推理能力,但环境仍要做大量的工作。教师以某种形式提出和组织知识,以使学生拥有的知识可以不断的增加。这种学习方法和人类社会的学校教学方式有点相似,学习的任务就是建立一个系统,使它能接受教导和建议,并有效地存贮和应用学到的知识。目前,不少专家系统在建立知识库时就使用这种方法以实现知识获取。
3)演绎学习 学生所用的推理形式为演绎推理,从公理出发,经过逻辑变换推导出结论。这种推理是”保真”变换和特化的过程,使学生在推理过程中可以获取有用的知识。这种学习方法包含宏操作学习、知识编辑和组块技术。
4)类比学习 利用源域和目标域二个不同领域中的知识相似性,通过类比从源域的知识推导出目标域的相应知识,从而实现学习。类比学习系统可以使一个已有的计算机应用系统转变为适应于新的领域,来完成原先没有设计出来的类似功能。类比学习需要比上述三种学习方式更多的推理,一般要求先从知识源中检索出可用的知识,再将其转换成新的形式,用到新的状态中去。
5)解释学习 学生根据教师提供的目标概念、该概念的一个例子、领域理论及可操作准则,首先构造一个解释来说明为什么该例子满足目标概念,然后将解释推广为目标概念的一个满足可操作准则的充分条件。
6)归纳学习 归纳学习是由教师或环境提供某些概念的一些实例或反例,让学生通过归纳推理得出该概念的一般描述。这种学习的推理工作量远多于示教学习和演绎学习,因为环境并不提供一般性概念描述。归纳学习是最基本的、发展较为成熟的一类学习方法,在人工智能领域中已经得到广泛的研究和应用。
(2)基于学习方式的分类 机器学习算法按照学习方式的不同可以分为五种类型:有监督学习、无监督学习、半监督学习、强化学习和深度学习。
1)有监督学习 输入的数据为训练数据,并且每一个数据都会带有标签或类别。通过训练过程建模,模型需要作出预测,如果预测出错会被修正,直到模型输出准确的训练结果,训练过程会一直持续。常用于解决的问题有分类和回归,常用的算法包括分类、逻辑回归和BP神经网络。
2)无监督学习 输入数据没有标签或类别,输出没有标准答案,就是一系列的样本。无监督学习通过推断输入数据中的结构建模,可能是提取一般规律,可以是通过数学处理系统以减少冗杂,或者根据相似性组织数据。常用于解决的问题有聚类,降维和关联规则的学习。常用的算法包括了Apriori算法和K均值算法等。
3)半监督学习 半监督学习可以看做无监督学习的延伸,介于有监督学习和无监督学习二者之间,其输入数据包含标签和不带标签的样本。常用于解决的问题是分类和回归,常用的算法是对所有的无标签的数据建模进行的预测算法。
4)强化学习 强化学习是一个连续决策的过程,每次预测都有一定形式的反馈,但是没有精确的标签或者错误信息。
5) 深度学习 深度学习并不是一种独立的学习方法,其本身也会用到有监督和无监督的学习,由于近几年该领域发展迅猛,一些特有的学习手段和算法相继提出,因此将其看作一种单独的学习方法。
深度学习是机器学习研究中的一个新的领域,目的在于建立、模拟人脑进行分析学习的神经网络,模仿人脑的机制来解释数据,如图像、声音和文本等多媒体数据。深度学习是无监督学习的一种,其概念源于人工神经网络的研究,含有多隐层的多层感知器就是一种深度学习结构。深度学习通过组合低层特征形成更加抽象的高层表示其属性类别或特征,以发现数据的分布式特征。基于深信度网络提出非监督逐层训练算法,为解决深层结构相关的优化难题带来了希望,随后提出多层自动编码器深层结构。此外提出的卷积神经网络是第一个真正多层结构学习算法,它利用空间相对关系减少参数数目以提高训练性能。
目前,机器学习领域的研究工作主要围绕在以下三个方面:
1)任务研析 对一组预定任务的学习系统进行研究,改进执行性能并提高其有效性;
2)模型研发 研究人类学习过程并进行计算机模拟和分析,改进现有模型,提出新的更加有效的模型;
3)理论分析 从理论上探索各种可能的机器学习方法,给出独立于应用领域的高效算法。
机器学习算法的功能可粗略的分为四大类,即分类、聚类、预测和降维,可用的机器学习算法不下数百种,包括回归分析、判别分析、聚类分析、因子分析和主成分分析、贝叶斯分类、决策树、支持向量机、EM、Adaboost、人工神经网络及它们之间的一些集成算法等。其中的回归分析、判别分析、聚类分析等已在统计计算里进行了介绍,神经网络计算也在上一篇文章中进行了较多的讨论,下面仅对机器学习中最常用的一些特有算法,如决策树算法、支持向量机算法、朴素贝叶斯算法、最大期望算法、KNN算法和K均值算法等,进行一些思考性、原理性的简单介绍。
1)决策树(Decision Trees)算法
决策树是一个预测模型,代表的是对象属性与对象值之间的一种映射关系。树中每个节点表示某个对象,而每个分叉路径则代表的某个可能的属性值,而每个叶结点则对应从根节点到该叶节点所经历的路径所表示的对象的值。决策树仅有单一输出,若想有多个输出,可以建立独立的决策树以处理不同输出。
一个决策树包含三种类型的节点,即决策节点,机会节点和终结点。这里,每个决策树都表述了一种树型结构,由它的分支来对该类型的对象依靠属性进行分类。每个决策树可以依靠对源数据库的分割进行数据测试。这个过程可以递归式的对树进行修剪。当不能再进行分割或一个单独的类可以被应用于某一分支时,递归过程完成。
决策树算法根据数据的属性采用树状结构建立决策模型,常常用来解决分类和预测问题。常见的算法有分类及回归树,ID3,C4.5,随机森林,多元样条回归等实际可用的一些算法。
2)支持向量机(Support Vector Machine,SVM)算法
SVM是一种監督式學習算法,广泛用于统计分类以及预测分析计算中。
SVM属于一般化线性分类器。这类分类器的特点是他们能够同时最小化经验误差与最大化几何边缘区,因此支持向量机也被称为最大边缘区分类器。
SVM的主要思想可以概括为两点:① 针对线性可分情况进行分析,对于线性不可分的情况,通过使用非线性映射算法将低维输入空间线性不可分的样本转化为高维特征空间使其线性可分,从而使得高维特征空间采用线性算法对样本的非线性特征进行线性分析成为可能;② 基于结构风险最小化理论,在特征空间中建构最优分割超平面,使得学习器得到全局最优化,并且在整个样本空间的期望风险以某个概率满足一定的上界。
3)朴素贝叶斯分类(Naïve Bayesian classification)算法
朴素贝叶斯是一种基于贝叶斯定理与特征条件独立假设的概率分类算法,通过对象的先验概率,利用贝叶斯公式
其中P(A|B)是后验概率,P(B|A)是似然概率,P(A)是先验概率,P(B)是预测先验概率。
根据上述公式计算出其后验概率,即该对象属于某一类的概率,选择具有最大后验概率的类别作为该对象所属的类别。朴素贝叶斯算法简单,快速,具有较小的出错率,对结果解释容易理解。
4)最大期望(Expectation–Maximization,EM)算法
在统计计算中,最大期望算法是在概率模型中寻找参数最大似然估计的算法,其中概率模型依赖于无法观测的隐藏变量,经常用在机器学习和计算机视觉的数据集聚领域。最大期望算法经过两个步骤交替进行计算,第一步是计算期望(E),也就是将隐藏变量象能够观测到的一样包含在内从而计算最大似然的期望值;第二步是最大化(M),也就是最大化在E步上找到的最大似然的期望值从而计算参数的最大似然估计。M步上找到的参数然后用于另外一个E步计算,这个过程不断交替进行,进行改进,以寻求渐近最优结果。
5)K最近邻(k-Nearest Neighbor,KNN)分类算法
KNN分类算法,是一个理论上比较成熟的方法,也是最简单的机器学习算法之一。该方法的思路是:如果一个样本在特征空间中的k个最相似的样本中的大多数属于某一个类别,则该样本也属于这个类别。KNN算法中,所选择的邻居都是已经正确分类的对象。该方法在定类决策上只依据最邻近的一个或者几个样本的类别来决定待分样本所属的类别。
KNN方法虽然从原理上依赖于极限定理,但在类别决策时,只与极少量的相邻样本有关。由于KNN方法主要靠周围有限的邻近的样本,而不是靠判别类域的方法来确定所属类别的,因此对于类域的交叉或重叠较多的待分样本集来说,KNN方法较其他方法更为适合。
KNN算法不仅可以用于分类,还可以用于回归。通过找出一个样本的k个最近邻居,将这些邻居的属性的平均值赋给该样本,就可以得到该样本的属性。
K-近邻算法的思想如下:首先,计算新样本与训练样本之间的距离,找到距离最近的K个邻居;然后,根据这些邻居所属的类别来判定新样本的类别,如果它们都属于同一个类别,那么新样本也属于这个类;否则,对每个后选类别进行评分,按照某种规则确定新样本的类别。
2024-08-29 14:47
2024-02-05 22:01
2024-01-17 07:00
2023-12-25 05:49
2023-12-25 05:12
2023-12-21 09:21
2023-09-10 07:56
2023-08-21 09:49
2021-12-31 16:10
2021-02-08 08:26