论文部分内容阅读
摘要:感知器是最简单的人工神经网络,也是学习掌握人工神经网络的重要基础。在“智能控制”课程感知器教案设计中,融入了人工神经网络的发展历史,结合了采用感知器实现各种基本逻辑功能的内容,并在第二课堂设计方面进行了积极探索和大胆实践。教学实践表明所设计的教案激发了学生的学习兴趣,提高了学生分析、解决问题的能力,培养了学生主动学习的习惯,启迪了学生创造性思维能力,取得了较好的教学效果。
关键词:智能控制;感知器;教案设计;教学实践
作者简介:黄从智(1982-),男,湖北浠水人,华北电力大学控制与计算机工程学院,副教授;白焰(1954-),男,辽宁沈阳人,华北电力大学控制与计算机工程学院,教授。(北京 102206)
基金项目:本文系北京高等学校青年英才计划项目(项目编号:YETP0703)、北京市共建项目专项资助的研究成果。
中图分类号:G642.0 文献标识码:A 文章编号:1007-0079(2014)14-0095-02
智能控制是自动化专业本科高年级必修课程,智能控制课程涵盖专家系统、模糊控制、神经网络、进化计算等四大主要模块,是一门跨学科课程,基本概念和教学内容极其丰富,应用范围十分广泛。[1]该课程一般以“自动控制理论”、“现代控制理论”、“线性代数”为先修课程,作为研究生课程的学科前沿类概论课程,其主要目的是引导学生掌握智能控制理论的基本概念、思想方法,了解其能解决的实际问题,培养学生实际动手能力,提高分析、解决实际问题的能力。[2-5]为使学生在有限课堂时间内在理论学习和仿真实现两个方面都有所收获,笔者结合近几年的教学实际,从学生实际出发,贴近工业过程控制实际,不断优化课堂教学内容和教学方式,在理论教学内容和教学方式等方面进行了一系列持续的探索和研究,在教学实践中不断反复总结教学经验优化教案,根据学生实际情况不断改进教学方式,取得了较好的教学效果。
感知器是最简单也最基本的人工网络模型,掌握好感知器的基本数学模型对于学习掌握人工神经网络具有非常重要的意义。[6]本文以“感知器”这堂课的教案设计优化与教学实践为例,力图在智能控制教学方面做出一些有益的探索,为培养工程化创新实践型人才做出应有贡献。
一、感知器的模型
首先通过人工神经网络早期的发展历史引入感知器的模型。早在1943年,美国神经生理学家麦卡洛克(McCulloch)和皮兹(Pitts)就提出了第一个人工神经元模型——MP模型。MP模型的提出,标志着人工神经网络研究的开始。但是,在MP模型里,它的模型参数必须事先人为设定不能调整,因而缺乏与生物神经元类似的学习能力。
在MP模型的基础上,引入了学习能力就是本节课要学习的感知器,这是美国学者罗森布拉特在1958年提出的第一个人工神经网络模型。感知器的提出是人工神经网络发展史上的重要转折点,它标志着人工神经网络从此有了智能的特性,此后进入了第一个发展高潮。基于这段发展历史,开始介绍感知器的数学模型。
单层单神经元感知器的基本模型如图1所示。
由图1可知,单层单神经元感知器是一个阈值加权和模型,有n个输入变量x1,x2,…,xn,它们对应的权值分别是w1,w2,…,wn,加权求和后与阈值θ相比较,得到u,即。
如果把阈值并入权值的话,那么把它看作是第0个输入,x0=1,权值为w0=-θ。这样就可以把它改写为加权求和的形式,。输入特征向量就是[x0,x1,x2,…,xn],对应的权值为[w0,w1,w2,…,wn],然后u经过激励函数f变换为输出y。一句话,感知器的运算法则就是:加权、求和、取函数。这个函数称为激励函数(Activation Function)。早期的激励函数采用硬限幅函数Hard-limiting,当输入u大于或等于0时,输出y为1;否则y为0。由于其输出只能是0或1,它主要用于两个模式的分类问题。有时可能要求输出能在0到1之间连续取值,比如模糊控制中模糊隶属度的输出是个概率估计值,这时可采用Sigmoid函数,当输入u在(-∞,+∞)之间变化时,输出y在[0,1]之间连续取值。
单层单个神经元的感知器主要用于两类模式的分类问题,比如说要区分一个水果到底是苹果还是桔子?可根据水果的一些特征来进行判断,一看外形,圆形的定义输入为0,椭圆形的就为1;二看颜色,黄色为0,红色为1;三看质地,光滑为0,粗糙为1。这样就得到三个不同的输入,其值可能为0或1。苹果一般认为是圆形、红色、光滑的,就定义其输入为[0,1,0],而桔子一般认为是椭圆形、黄色、粗糙的,就定义其输入为[1,0,1]。按照这三个不同的特征将水果分为苹果和桔子两种不同的类别,可定义输出0为苹果,输出1为桔子。因此可采用一个三输入一输出的单层单个感知器网络,只要选择合适的权值和阈值,就能实现从[0,1,0]到0、从[1,0,1]到1的一一映射,解决这样最简单的两个模式分类问题。实际生活中常见的人脸识别、虹膜识别都是模式识别的范畴,都可采用类似方法解决,有兴趣的同学将来可在模式识别与智能系统硕士专业继续深造。
进一步地,如还要区分桃子、梨子、西瓜、葡萄等多种水果,则需用感知器分类多个模式,要求感知器有多个输出,就需要用到更复杂的多层多神经元感知器。
二、感知器的应用——逻辑函数实现
除模式分类外,感知器还可用于逻辑函数实现,以下结合两个实例说明。
1.实例分析1:如何用感知器实现逻辑运算“与”、“或”、“非”
从逻辑“与”真值表可知,只有当两个输入同为1时,输出才为1,否则输出为0。可以用2输入1输出的单层单神经元感知器,激励函数采用硬限幅函数。以两个输入x1和x2为坐标轴画出分类示意图,(0,0)、(0,1)、(1,0)、(1,1)分别表示四种可能的输入模式,那怎么将它们区分开呢?如采用直线x1+x2-1.5=0就容易将其输出分为两类即0和1。直线上方对应的u大于0,输出y为1;直线下方对应的u小于0,输出y为0。对比下,就能确定感知器的权值均为1,阈值为1.5,这样就实现了逻辑“与”功能。
类似地,也可用一个这样的感知器来实现逻辑“或”,这很容易通过类比方法解决,留给学生课后思考。而逻辑“非”呢,更简单了,它只有一个输入一个输出,采用单输入单神经元感知器就可实现了。它的分界线就是直线-x1+0.5=0,正好把0和1这两类区分开来。
既然感知器能实现逻辑“与”、“或”、“非”功能,那它能不能实现逻辑“异或”呢?这也是本节课要介绍的第二个实例。
2.实例分析2:如何用感知器实现逻辑运算“异或”
由真值表可知,逻辑运算“异或”定义为:两个输入x1和x2同为0或1时,输出y为0,否则y为1。根据逻辑运算“与”的实现经验知,要实现逻辑运算“异或”,只需一个2输入1输出的感知器。在二维平面上对应的四个点(0,0)、(0,1)、(1,0)和(1,1),其中(0,0)、(1,1)这两个点对应的输出为0,(0,1)、(1,0)这两个点对应的输出为1。关键问题在于:这个平面上能否找到一条分界线将(0,0)、(1,1)这两个点和(0,1)、(1,0)这两个点区分开来?无论怎么找都找不到,实际上这样的直线是不存在的。
美国麻省理工大学(MIT)的Minsky教授在1969年出版的《感知器》一书中发出感慨:感知器连最简单的异或都实现不了,研究人工神经网络还有什么前途?Minsky是1969年图灵奖获得者,而图灵奖是计算机领域的诺贝尔奖,由于他在人工智能领域当时是绝对的学术权威,这个悲观的论调无疑给当时的神经网络研究泼了一盆冷水,直接导致美国和前苏联几乎中止了这方面的研究。那么,感知器到底能不能实现“异或”呢?它有四个可能的输入,两类可能的输出,采用什么分界线可以区分这两类不同模式的输出呢?用直线不能区分,那么用其他图形呢?此时启发学生积极思考,主动采用发散性思维方式创造性解决问题。以(0,0)和(1,1)为焦点画个椭圆,就可以区分它们了,如图2所示。
如图2(a)所示,椭圆方程为:,对应的单层非线性感知器如图2(b)所示,其输入是x1和x2,经过非线性处理再加权求和后得到u,再经过硬限幅激励函数f运算得到输出y。显然,当x1和x2同为0或为1时,u为-1,再经f运算得y为0;当x1和x2不同时,u为15,再经f运算得输出y为1,正好实现了逻辑运算“异或”功能。
如图2所示的椭圆可将这四个点对应的两类输出区分出来,那么是不是还有其他方法呢?此时启发学生再提出其他所有可能的解决方案。其中一种可行的解决思路如下:考虑用两条直线围成的带状区域作为分界线,如图3所示。
如图3(a)所示,如分界线采用这个带状区域,也可以将它们对应的输出划分为两类。其对应的是如图3(b)所示的多层线性感知器,这里采用了两层:1个隐含层有2个神经元,1个输出层有1个神经元。具体论证过程让学生课后自己验证。
通过以上分析,让学生独立自主发现问题、分析问题、解决问题,得出结论:单层线性感知器的确无法实现逻辑运算“异或”功能,但是换个角度,采用一个单层非线性感知器或多层线性感知器就能实现逻辑运算“异或”功能。通过介绍这段历史,启迪学生一个道理:同学们在学习的时候,不要盲目地迷信一些学术权威或书本,要学会独立思考、大胆怀疑,要有发散思维,要用发展变化的观点去分析问题和解决问题,换个角度思考很可能就会柳暗花明又一村。
三、课堂内容总结及第二课堂设计
总结一下本堂课的讲课内容,主要介绍了感知器的数学模型,并结合实例分析了它在模式识别和逻辑函数功能实现中的实际应用。作为下次课程的引子,可以将“关于感知器如何学习,它的权值和阈值如何调整”这一问题抛给学生在后续课程中继续学习。
课程虽然结束了,但有很多后续问题可留给学生课后思考,所以在第二课堂设计中增加了如下问题让学生积极思考,主动去寻找这些问题的答案:
问题一:除课堂中介绍的两种方法之外,还有没有其他方法也可以设计一个感知器实现逻辑运算“异或”功能呢?
问题二:既然感知器可以解决逻辑运算“异或”功能,那么如何用感知器实现逻辑运算“同或”功能呢?
问题三:根据课程内容,如何利用MATLAB或C语言编写程序设计感知器,研究分别实现逻辑运算“与”、“或”、“非”、“异或”、“同或”功能?[7]
问题四:进一步地,如何利用MATLAB或C语言编写程序设计BP神经网络,研究分别实现逻辑运算“与”、“或”、“非”、“异或”、“同或”功能?
四、教学效果
通过在本科智能控制课程四大模块之一的人工神经网络“感知器”部分课堂教学实践中实际应用上述优化后的教案,极大地激发了学生浓厚的学习兴趣。教学实践表明,学生普遍由此对人工神经网络的课程内容产生了较大的学习兴趣,部分同学针对所学内容提出了一些很有新意的解决思路,并通过自行编程实现了所提出的解决方案。学生在学习过程中充分发挥了主体作用,充分利用发散性思维能力,提高了综合分析问题、解决问题的能力和创新能力。
参考文献:
[1]刘金锟.智能控制[M].第2版.北京:电子工业出版社,2009.
[2]蔡自兴.智能控制导论[M].北京:中国水利水电出版社,2007.
[3]蔡自兴.智能控制原理与应用[M].北京:清华大学出版社,2007.
[4]韦巍,何衍.智能控制基础[M].北京:清华大学出版社,2008.
[5]李少远,王景成.智能控制[M].北京:机械工业出版社,2009.
[6]高隽.人工神经网络原理及仿真实例[M].第2版.北京:机械工业出版社,2010.
[7]薛定宇.控制系统计算机辅助设计——MATLAB语言与应用[M].第2版.北京:清华大学出版社,2008.
(责任编辑:王意琴)
关键词:智能控制;感知器;教案设计;教学实践
作者简介:黄从智(1982-),男,湖北浠水人,华北电力大学控制与计算机工程学院,副教授;白焰(1954-),男,辽宁沈阳人,华北电力大学控制与计算机工程学院,教授。(北京 102206)
基金项目:本文系北京高等学校青年英才计划项目(项目编号:YETP0703)、北京市共建项目专项资助的研究成果。
中图分类号:G642.0 文献标识码:A 文章编号:1007-0079(2014)14-0095-02
智能控制是自动化专业本科高年级必修课程,智能控制课程涵盖专家系统、模糊控制、神经网络、进化计算等四大主要模块,是一门跨学科课程,基本概念和教学内容极其丰富,应用范围十分广泛。[1]该课程一般以“自动控制理论”、“现代控制理论”、“线性代数”为先修课程,作为研究生课程的学科前沿类概论课程,其主要目的是引导学生掌握智能控制理论的基本概念、思想方法,了解其能解决的实际问题,培养学生实际动手能力,提高分析、解决实际问题的能力。[2-5]为使学生在有限课堂时间内在理论学习和仿真实现两个方面都有所收获,笔者结合近几年的教学实际,从学生实际出发,贴近工业过程控制实际,不断优化课堂教学内容和教学方式,在理论教学内容和教学方式等方面进行了一系列持续的探索和研究,在教学实践中不断反复总结教学经验优化教案,根据学生实际情况不断改进教学方式,取得了较好的教学效果。
感知器是最简单也最基本的人工网络模型,掌握好感知器的基本数学模型对于学习掌握人工神经网络具有非常重要的意义。[6]本文以“感知器”这堂课的教案设计优化与教学实践为例,力图在智能控制教学方面做出一些有益的探索,为培养工程化创新实践型人才做出应有贡献。
一、感知器的模型
首先通过人工神经网络早期的发展历史引入感知器的模型。早在1943年,美国神经生理学家麦卡洛克(McCulloch)和皮兹(Pitts)就提出了第一个人工神经元模型——MP模型。MP模型的提出,标志着人工神经网络研究的开始。但是,在MP模型里,它的模型参数必须事先人为设定不能调整,因而缺乏与生物神经元类似的学习能力。
在MP模型的基础上,引入了学习能力就是本节课要学习的感知器,这是美国学者罗森布拉特在1958年提出的第一个人工神经网络模型。感知器的提出是人工神经网络发展史上的重要转折点,它标志着人工神经网络从此有了智能的特性,此后进入了第一个发展高潮。基于这段发展历史,开始介绍感知器的数学模型。
单层单神经元感知器的基本模型如图1所示。
由图1可知,单层单神经元感知器是一个阈值加权和模型,有n个输入变量x1,x2,…,xn,它们对应的权值分别是w1,w2,…,wn,加权求和后与阈值θ相比较,得到u,即。
如果把阈值并入权值的话,那么把它看作是第0个输入,x0=1,权值为w0=-θ。这样就可以把它改写为加权求和的形式,。输入特征向量就是[x0,x1,x2,…,xn],对应的权值为[w0,w1,w2,…,wn],然后u经过激励函数f变换为输出y。一句话,感知器的运算法则就是:加权、求和、取函数。这个函数称为激励函数(Activation Function)。早期的激励函数采用硬限幅函数Hard-limiting,当输入u大于或等于0时,输出y为1;否则y为0。由于其输出只能是0或1,它主要用于两个模式的分类问题。有时可能要求输出能在0到1之间连续取值,比如模糊控制中模糊隶属度的输出是个概率估计值,这时可采用Sigmoid函数,当输入u在(-∞,+∞)之间变化时,输出y在[0,1]之间连续取值。
单层单个神经元的感知器主要用于两类模式的分类问题,比如说要区分一个水果到底是苹果还是桔子?可根据水果的一些特征来进行判断,一看外形,圆形的定义输入为0,椭圆形的就为1;二看颜色,黄色为0,红色为1;三看质地,光滑为0,粗糙为1。这样就得到三个不同的输入,其值可能为0或1。苹果一般认为是圆形、红色、光滑的,就定义其输入为[0,1,0],而桔子一般认为是椭圆形、黄色、粗糙的,就定义其输入为[1,0,1]。按照这三个不同的特征将水果分为苹果和桔子两种不同的类别,可定义输出0为苹果,输出1为桔子。因此可采用一个三输入一输出的单层单个感知器网络,只要选择合适的权值和阈值,就能实现从[0,1,0]到0、从[1,0,1]到1的一一映射,解决这样最简单的两个模式分类问题。实际生活中常见的人脸识别、虹膜识别都是模式识别的范畴,都可采用类似方法解决,有兴趣的同学将来可在模式识别与智能系统硕士专业继续深造。
进一步地,如还要区分桃子、梨子、西瓜、葡萄等多种水果,则需用感知器分类多个模式,要求感知器有多个输出,就需要用到更复杂的多层多神经元感知器。
二、感知器的应用——逻辑函数实现
除模式分类外,感知器还可用于逻辑函数实现,以下结合两个实例说明。
1.实例分析1:如何用感知器实现逻辑运算“与”、“或”、“非”
从逻辑“与”真值表可知,只有当两个输入同为1时,输出才为1,否则输出为0。可以用2输入1输出的单层单神经元感知器,激励函数采用硬限幅函数。以两个输入x1和x2为坐标轴画出分类示意图,(0,0)、(0,1)、(1,0)、(1,1)分别表示四种可能的输入模式,那怎么将它们区分开呢?如采用直线x1+x2-1.5=0就容易将其输出分为两类即0和1。直线上方对应的u大于0,输出y为1;直线下方对应的u小于0,输出y为0。对比下,就能确定感知器的权值均为1,阈值为1.5,这样就实现了逻辑“与”功能。
类似地,也可用一个这样的感知器来实现逻辑“或”,这很容易通过类比方法解决,留给学生课后思考。而逻辑“非”呢,更简单了,它只有一个输入一个输出,采用单输入单神经元感知器就可实现了。它的分界线就是直线-x1+0.5=0,正好把0和1这两类区分开来。
既然感知器能实现逻辑“与”、“或”、“非”功能,那它能不能实现逻辑“异或”呢?这也是本节课要介绍的第二个实例。
2.实例分析2:如何用感知器实现逻辑运算“异或”
由真值表可知,逻辑运算“异或”定义为:两个输入x1和x2同为0或1时,输出y为0,否则y为1。根据逻辑运算“与”的实现经验知,要实现逻辑运算“异或”,只需一个2输入1输出的感知器。在二维平面上对应的四个点(0,0)、(0,1)、(1,0)和(1,1),其中(0,0)、(1,1)这两个点对应的输出为0,(0,1)、(1,0)这两个点对应的输出为1。关键问题在于:这个平面上能否找到一条分界线将(0,0)、(1,1)这两个点和(0,1)、(1,0)这两个点区分开来?无论怎么找都找不到,实际上这样的直线是不存在的。
美国麻省理工大学(MIT)的Minsky教授在1969年出版的《感知器》一书中发出感慨:感知器连最简单的异或都实现不了,研究人工神经网络还有什么前途?Minsky是1969年图灵奖获得者,而图灵奖是计算机领域的诺贝尔奖,由于他在人工智能领域当时是绝对的学术权威,这个悲观的论调无疑给当时的神经网络研究泼了一盆冷水,直接导致美国和前苏联几乎中止了这方面的研究。那么,感知器到底能不能实现“异或”呢?它有四个可能的输入,两类可能的输出,采用什么分界线可以区分这两类不同模式的输出呢?用直线不能区分,那么用其他图形呢?此时启发学生积极思考,主动采用发散性思维方式创造性解决问题。以(0,0)和(1,1)为焦点画个椭圆,就可以区分它们了,如图2所示。
如图2(a)所示,椭圆方程为:,对应的单层非线性感知器如图2(b)所示,其输入是x1和x2,经过非线性处理再加权求和后得到u,再经过硬限幅激励函数f运算得到输出y。显然,当x1和x2同为0或为1时,u为-1,再经f运算得y为0;当x1和x2不同时,u为15,再经f运算得输出y为1,正好实现了逻辑运算“异或”功能。
如图2所示的椭圆可将这四个点对应的两类输出区分出来,那么是不是还有其他方法呢?此时启发学生再提出其他所有可能的解决方案。其中一种可行的解决思路如下:考虑用两条直线围成的带状区域作为分界线,如图3所示。
如图3(a)所示,如分界线采用这个带状区域,也可以将它们对应的输出划分为两类。其对应的是如图3(b)所示的多层线性感知器,这里采用了两层:1个隐含层有2个神经元,1个输出层有1个神经元。具体论证过程让学生课后自己验证。
通过以上分析,让学生独立自主发现问题、分析问题、解决问题,得出结论:单层线性感知器的确无法实现逻辑运算“异或”功能,但是换个角度,采用一个单层非线性感知器或多层线性感知器就能实现逻辑运算“异或”功能。通过介绍这段历史,启迪学生一个道理:同学们在学习的时候,不要盲目地迷信一些学术权威或书本,要学会独立思考、大胆怀疑,要有发散思维,要用发展变化的观点去分析问题和解决问题,换个角度思考很可能就会柳暗花明又一村。
三、课堂内容总结及第二课堂设计
总结一下本堂课的讲课内容,主要介绍了感知器的数学模型,并结合实例分析了它在模式识别和逻辑函数功能实现中的实际应用。作为下次课程的引子,可以将“关于感知器如何学习,它的权值和阈值如何调整”这一问题抛给学生在后续课程中继续学习。
课程虽然结束了,但有很多后续问题可留给学生课后思考,所以在第二课堂设计中增加了如下问题让学生积极思考,主动去寻找这些问题的答案:
问题一:除课堂中介绍的两种方法之外,还有没有其他方法也可以设计一个感知器实现逻辑运算“异或”功能呢?
问题二:既然感知器可以解决逻辑运算“异或”功能,那么如何用感知器实现逻辑运算“同或”功能呢?
问题三:根据课程内容,如何利用MATLAB或C语言编写程序设计感知器,研究分别实现逻辑运算“与”、“或”、“非”、“异或”、“同或”功能?[7]
问题四:进一步地,如何利用MATLAB或C语言编写程序设计BP神经网络,研究分别实现逻辑运算“与”、“或”、“非”、“异或”、“同或”功能?
四、教学效果
通过在本科智能控制课程四大模块之一的人工神经网络“感知器”部分课堂教学实践中实际应用上述优化后的教案,极大地激发了学生浓厚的学习兴趣。教学实践表明,学生普遍由此对人工神经网络的课程内容产生了较大的学习兴趣,部分同学针对所学内容提出了一些很有新意的解决思路,并通过自行编程实现了所提出的解决方案。学生在学习过程中充分发挥了主体作用,充分利用发散性思维能力,提高了综合分析问题、解决问题的能力和创新能力。
参考文献:
[1]刘金锟.智能控制[M].第2版.北京:电子工业出版社,2009.
[2]蔡自兴.智能控制导论[M].北京:中国水利水电出版社,2007.
[3]蔡自兴.智能控制原理与应用[M].北京:清华大学出版社,2007.
[4]韦巍,何衍.智能控制基础[M].北京:清华大学出版社,2008.
[5]李少远,王景成.智能控制[M].北京:机械工业出版社,2009.
[6]高隽.人工神经网络原理及仿真实例[M].第2版.北京:机械工业出版社,2010.
[7]薛定宇.控制系统计算机辅助设计——MATLAB语言与应用[M].第2版.北京:清华大学出版社,2008.
(责任编辑:王意琴)