资讯

【人工智能】智能计算概述、神经网络计算、机器学习计算、遗传算法、模糊计算、群智能计算

转载 2019-01-14 09:21 人工智能产业链联盟 来源:人工智能产业链联盟
智能计算概述

智能计算(Intellectual Computing,IC),也称计算智能(Computational Intelligence,CI)或软计算(Soft Computing,SC),是受人类组织、生物界及其功能和有关学科内部规律的启迪,根据其原理模仿设计出来的求解问题的一类算法。智能计算所含算法的范围很广,主要包括神经网络、机器学习、遗传算法、模糊计算、蚁群算法、人工鱼群算法、粒子群算法、免疫算法、禁忌搜索、进化算法、启发式算法、模拟退火算法、混合智能算法等类型繁多、各具特色的算法。以上这些智能计算的算法都有一个共同的特点就是通过模仿人类智能或生物智能的某一个或某一些方面而达到模拟人类智能、实现将生物智慧、自然界的规律等设计出最优算法,进行计算机程序化,用于解决很广泛的一些实际问题。当然,智能计算的这些不同研究领域和算法各有各的特点,虽然它们具有模仿人类和生物智能的共同点,但是在具体实现方法上还存在一些不同点。例如人工神经网络模仿人脑的生理构造和信息处理的过程,模拟人类的智慧;模糊计算模仿人类语言和思维中的模糊性概念,也是模拟人类的智慧;进化计算模仿生物进化过程和群体智能过程,模拟大自然的智慧等。

智能计算(摘自互联网)

智能计算,借鉴仿生学的思想,基于生物体系的生物进化、细胞免疫、神经细胞网络等诸多机制,用数学语言抽象描述的计算方法,是基于数值计算和结构演化的智能,是智能理论发展的高级阶段。智能计算有着传统计算无法比拟的优越性,它的最大特点就是不需要对问题自身建立精确的数学模型,非常适合于解决那些因为难以建立有效的形式化模型而用传统的数值计算方法难以有效解决、甚至无法解决的问题。

随着计算机系统智能性的不断增强,由计算机自动和委托完成任务的复杂性和难度也在不断增加。所以,智能计算也可以看作是一种经验化的计算机思考性的算法,是人工智能体系的一个分支,是辅助人类去处理各式问题的具有独立思考能力的系统。

智能计算是借助自然界、特别是生物界规律的启示,根据其规律,设计出求解问题的算法。数学、物理学、化学、生物学、心理学、生理学、神经科学和计算机科学等诸多学科的现象与规律都可能成为智能计算算法的基础和思想来源。从相互关系上来看,智能计算属于人工智能的一个分支。现在,智能计算的发展也面临严峻的挑战,其中一个重要原因就是智能计算目前还缺乏坚实的数学理论基础,还不能像物理、化学、天文等学科那样非常自如地运用数学工具解决各自的计算问题。虽然神经网络具有比较完善的理论基础,但是像进化计算等一些重要的智能算法还没有完善的数学基础;智能计算算法的稳定性和收敛性的分析与证明还处于研究的开始阶段。通过数值实验方法和具体应用手段检验智能计算算法的有效性和高效性是研究智能计算算法的重要方法。从其本质上来看,智能计算是仿生的、随机化的、经验性的,大自然也是随机性的、具有经验性的,抽取大自然的这一特性,自动调节形成经验、取得可用的结果。这些方法还具有以下共同的要素:自适应的结构、随机产生的或指定的初始状态、适应度的评测函数、修改结构的操作、系统状态存储结构、终止计算的条件、指示结果的方法、控制过程的参数等等。计算智能的这些方法具有自学习、自组织、自适应的特征和简单、通用、健壮性强、适于并行处理等优点。在并行搜索、联想记忆、模式识别、知识自动获取等方面得到了广泛的应用,取得了诸多开创性的成果。

这里所说的“软计算”是相对于“硬计算”而言的。所谓“硬计算”是指传统的数值计算,具有可用的完善数学模型,坚实的数学理论基础,主要特征是严格、确定和精准。但是硬计算并不适合处理现实生活中的许多问题,如汽车驾驶、人脸识别、信息检索等,软计算通过对不确定、不精确及不完全取值的容错以取得低代价的解决方案和稳定性,模拟自然界中智能系统的生化过程(人的感知、脑结构、生物进化和免疫等)来有效的处理日常工作、科研和生产中遇到的诸多问题。当然,软、硬计算的说法只是相对而言的,很难进行严格的定义和区分。

智能计算跟数值计算的目的是一样的,即通过计算得到令人满意的接近真解的近似解,再拿这个近似解代替真解来说明和解决问题。一般情况下,很多问题是没有解析解的,这时可以通过数学建模、用计算方法来求数值解;当遇到问题特别复杂,用传统计算方法计算量太大或很难在计算机上实现时,可以考虑采用智能算法。

计算智能是受大自然智慧和人类智慧的启发而设计出的一类算法的统称,随着技术的进步,在科学研究和工程实践中遇到的问题变得越来越复杂,采用传统的计算方法来解决这些问题面临着计算复杂度高、计算时间长等问题,特别是对于一类高难度问题,传统算法根本无法在可以接受的时间内求出精确解。因此,为了在求解时间和求解精度上取得平衡,提出了很多具有启发性特征的智能算法。这些算法或模仿生物界的进化过程,或模仿生物的生理构造和身体机能,或模仿动物的群体行为,或模仿人类的思维、语言和记忆过程的特性,或模仿自然界的物理现象,希望通过模拟大自然和人类的智慧实现对问题的优化求解,在可接受的时间内求解出可以接受的解。这些算法共同组成了计算智能算法。

智能计算和不少学科之间有着密切的关系,如智能计算和人工智能、最优化算法及统计计算等。

人工智能(Artificial Intelligence,AI),是研究、开发用于模拟、延伸和扩展人类的智能的理论、方法、技术及应用系统的一门技术科学,是计算机科学的一个分支,它企图了解智能的实质,以得出一种新的能以人类智能相似的方式做出反应的智能性机器,该领域的研究包括机器人、语言识别、图像识别、自然语言处理和专家系统等。人工智能研究的一个主要目标是使机器能够胜任一些通常需要人类智能才能完成的复杂工作,但智能计算和人工智能是两个完全不同的概念,计算和通信两个领域的融合开创了智能计算的新天地,现在计算机已经可以更聪明地帮助人们获得和处理信息,这已经和人工智能的概念大相径庭了。从相互关系上看,计算智能应属于人工智能的一个分支。

最优化算法解决的是一般的最优化问题。最优化问题可以分为求解一个或一组函数中、使得函数取值最小的自变量的函数优化问题和在一个解空间里面,寻找最优解,使目标函数值最小的组合优化问题等。优化算法有很多,经典算法包括线性规划,动态规划等,改进型局部搜索算法包括爬山法,最速下降法等;智能计算中的模拟退火、遗传算法以及禁忌搜索称作指导性搜索法,而神经网络,混沌搜索则属于系统动态演化方法,从不同的角度和策略实现改进,取得较好的”全局最小解”。二者之间既有区别,而又一定的关系,形成互补去解决常见的一些优化问题。

从比较广泛的意义上讲,智能计算和统计计算、蒙特卡罗方法联系甚为密切,可互为从属关系,是你中有我、我中有你,使用中也是互相补充。从这些算法的介绍和使用中不难发现这一特点。

智能计算是一种多层次级的计算模式,通常可分为6个层次:第一层为操作模拟层,把一些最基础的思考操作进行程序化处理;第二层为存在经验层,即对于优势的经验和便捷的过程代码化;第三层称为绩效评估层,即对各种经验的模拟结果进行评分,并能随着条件和期望结果的变化改进评分体系;第四层分为A、B两个系统:A系统通过智能计算对系统的变数进行有效的预测,B系统对这可能存在的预测结果进行的预判性评估;第五层为决策执行层,对上面的决策执行并在执行过程中进行一些必要的修正;第六层是智能计算的经验系统,对实际运行结果进行总结和经验性判定,判断判定结果的准确度。

现在,智能计算在国内外得到广泛的关注,已经成为人工智能以及计算机科学的重要研究方向,并在自身性能的提高和应用范围的拓展中不断完善。计算智能的研究、发展与应用,无论是研究队伍的规模、发表的论文数量,还是网上的信息资源,发展速度都很快,已经得到了国际学术界的广泛认可,并且在优化计算、模式识别、图像处理、自动控制、经济管理、机械工程、电气工程、通信网络和生物医学等多个领域取得了成功的应用,应用领域涉及国防、科技、经济、工业和农业等各个方面,尤其是在军事、金融工程、非线性系统最优化、知识工程、计算机辅助医学诊断等方面取得了丰硕的成果,下面简单介绍智能计算在这些领域中的应用。

科学技术的不断进步使得军事领域的各个方面都发生了革命性的变革和质的飞跃。当前,以计算机和信息技术为核心的新军事变革,使得现代战争呈现出的特点已不再是过去的以“大”吃“小”,而是现在的以“快”吃“慢”。加快信息处理速度,争夺战场信息优势,运用智能化的武器装备,已经成为21世纪战争的基本形态。面对这一重大变革,世界各国军队都在调整军事战略,其中发展先进的计算技术已成为各国军队的共同选择。计算智能是借助现代计算工具模拟人的智能机制、生命演化过程和人的智能行为而进行信息获取、问题分析、理论应用和方法生成的一种计算技术。近年来,在新的形势下,国家安全和军事领域中出现了许多新的问题,有些问题难以用传统方法来解决,甚至在某些情况下还不能完全将它们表示出来。为此,人们采用包括模糊数学、神经网络和遗传算法在内的计算智能来解决这些问题,取得了一些新的进展和突破。目前,计算智能在军事领域中的应用已涉及到作战指挥、信息处理、管理决策、智能控制、专家系统、故障诊断等方面,并还在不断拓宽深入中。

金融工程是将工程思维引入金融领域,综合运用各种工程方法来设计、开发和实施新型的金融产品,创造性的解决各种金融问题。如在股市预测、智能交易决策系统和证券组合投资策略等方面,计算智能技术都取得了比较好的效果。

对计算智能领域的神经网络融合算法、自适应信号处理所提出的各种算法应用于计算机辅助医学诊断和生物医学信号分析,也取得了许多应用成果。

目前关于计算智能的研究和应用仍处于蓬勃发展初期阶段,应用范围遍及各个科学领域。虽然计算智能是一门新兴的综合型学科,而且各种智能方法的发展历史也不是很长,但是其发展却是相当迅猛,应用也相当广泛。当前除了对单一的算法进行研究和应用之外,现已开始对各种算法的融合进行研究,针对各个算法的特点,有目的的进行取长补短的算法综合。典型的融合方案有人工神经网络与模糊逻辑、人工神经网络与免疫算法和遗传算法、模糊逻辑与免疫算法、模糊逻辑与遗传算法及遗传算法与免疫算法等,特别是和传统数值算法结合,取得了一些突破性成果。融合之后的算法可以提高算法的性能,增强算法的适应性和稳定性,同时还克服了算法选择的盲目性。另外,还有学者提出了计算智能的新框架――生物网络结构,即神经内分泌免疫网络。它由人工神经网络、人工内分泌系统和人工免疫系统等组成。新框架的提出为人们研究其理论和应用技术提供了新平台,为计算智能今后的发展指明了方向。计算智能技术在自身性能的提高和应用范围的拓展中将得到不断完善。

目前的智能计算研究的水平暂时还很难使“智能机器”真正具备人类的常识,但智能计算将在21世纪得到蓬勃发展,不仅仅只是功能模仿要持有信息机理一致的观点,即人工脑与生物脑将不只是功能模仿,而是具有相同的特性。这两者的结合将开辟一个全新的领域,开辟很多新的研究方向。智能计算将探索智能的新概念,新理论,新方法和新技术,而这一切将在今后的发展中都会取得新的重大成就。

神经网络计算

神经网络计算 (Neural Network Computing  NNC)是通过对人脑的基本单元——神经元的模拟,经过输入层、隐层、输出层等层次结构,对数据进行调整、评估和分析计算,得到的一类具有学习、联想、记忆和模式识别等功能的智能算法。

神经网络计算示意图(摘自互联网)

要想比较深入的理解神经网络计算,就必须对神经网络系统有一定的理解,下面对其进行一些简单介绍。

神经网络(Neural Network,NN)是由大量的、简单的处理单元(简称为神经元)经广泛互连而形成的一个复杂网络系统,反映了人脑功能的许多基本特征,是一个高度复杂化的非线性动力学系统。神经网络具有大规模并行、分布式存储和处理、自组织、自适应和自学习等能力,特别适合处理需要同时考虑众多因素和条件的、含不精确和模糊信息的实际问题。神经网络的发展与神经科学、数理科学、认知科学、计算机科学、人工智能、控制论、机器人学、心理学、分子生物学等诸多学科有关,是一门新兴的边缘交叉学科。

神经网络示意图(摘自互联网)

神经网络是脑科学、神经心理学和信息科学等多学科的交叉研究领域,也是近年来高科技领域的一个新的研究热点,其目的是想通过对人脑的组成机理和思维方式等的研究,进而通过模拟人脑的结构和工作模式使机器具有类似人类的智能。

神经网络就是通过神经元、细胞、触突等结构组成的一个大型网络结构,用来帮助生物进行思考和行动。那么人们就想到了计算机是不是也可以像人脑一样具有这种结构,这样是不是就可以进行类似的思考。

神经元示意图(摘自互联网)

神经网络结构图(摘自互联网)

人脑神经网络系统的基本构造是神经元(神经细胞),是处理人体内各部分之间相互信息传递的基本单元。神经生物学家研究的结果表明,人的一个大脑一般有一千个以上的神经元,每个神经元都由一个细胞体,一个连接其他神经元的轴突和一些向外伸出的其它较短分支——树突组成。轴突的功能是将神经元的输出信号传递给别的神经元,其末端的许多神经末梢使得信号可以同时传送给多个神经元。树突的功能是接受来自其它神经元的信号,神经元细胞体将接受到的所有信号进行简单处理后再由轴突输出。神经元的树突与另外的神经元的神经末梢相连的部分称为突触,这一结构的特点决定着人工神经网络具有高速信息处理的能力。人脑的每个神经元大约有上百个树突及相应的突触,一个人的大脑形成一千个左右的突触。虽然每个神经元的运算功能十分简单,且信号传输速率也较低,但由于各神经元之间的极度并行互连功能,最终使得一个普通人的大脑在约1秒内就能完成现行计算机至少需要数10亿次运算处理能力才能完成的任务。

人脑神经网络的知识存储容量很大。在神经网络中,知识与信息的存储表现为神经元之间分布式的物理联系,分散地表示和存储于整个网络内的各神经元及其连线上。每个神经元及其连线只表示一部分信息,而不是一个完整的具体概念,只有通过各神经元的分布式综合效果才能表达出特定的概念和知识。

由于人脑神经网络中神经元个数众多以及整个网络存储信息容量巨大,使得它具有很强的不确定性信息的处理能力,即使输入信息不完全、不准确或模糊不清,神经网络仍然能够通过联想思维得到存在于记忆中事物的完整图象,只要输入的模式接近于训练样本,系统就能给出正确的推理结论。

下图中的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个邻居;然后,根据这些邻居所属的类别来判定新样本的类别,如果它们都属于同一个类别,那么新样本也属于这个类;否则,对每个后选类别进行评分,按照某种规则确定新样本的类别。

6)K-均值(K-means)算法

K-均值算法是输入聚类个数k,以及包含 n个数据对象的数据库,输出满足方差最小标准 k(k

0 0

网友评论

取消