当前课程知识点:智能控制 > 第六章 典型神经网络 > 6.1 感知器 > 6.1.2.2 感知器应用实例分析(实现逻辑运算异或)
既然可以用感知器实现逻辑运算“与或非”
那它能不能实现逻辑运算“异或”呢
我们来看异或的定义
两个输入x1,x2
同为0异为1
也就是说两个输入都为0的时候
或者两个输入都为1的时候
对应的输出y就为0
两个输入不相同
0和1和1和0的时候
对应的输出就为1了
那么按照我们刚才讲的
显然它是一个两输入一输出的
要用这样一个感知器
来实现逻辑运算“异或”功能
同样道理
我们就是要找到采用的是硬限幅函数
激励函数来实现输出值为1
我们未来要区分y是0和1
根本原因就是要找到这条分界线
(见公式)的这条分界线在哪里
那么这四个不同的输入模式
在这个分类示意图上
00和11对应的输出是0
那么它用小方框表示
10和01对应的输出是1
用小圆圈表示
我们发现在这个坐标平面上
你无论怎么找
都找不到这样一条直线
能把这四个不同的输入模式
区分为两类
它是非常困难的
事实上是 这样的
直线是不存在的
难怪麻省理工的明斯基教授
他也是1969年的图灵奖即获得者
那么图灵奖是计算机领域的诺贝尔奖
那么他是这个领域的权威
他也在1969年出版的
《感知器》这本书里面发出了感慨
唉!这个单层的感知器
连最简单的逻辑运算“异或”都解决不了
研究它还有什么用呢
那么由于他是人工智能领域的权威
他的论断就导致了神经网络的研究
在此后十几年陷入了低潮
这也回答了在当年历史上面
为什么在1969年陷入了低潮
那这个问题确实很困难
单层的感知器
无法解决逻辑运算“异或”功能
那我们今天来看看这个问题
我们刚才问题的困境就在于
我们现在在这个平面上找到一条直线
想把这四个不同的输入模式区分为两类
但是发现很困难
难在哪里呢
它是不存在的 这条直线
既然直线不存在
我们可不可以用曲线
曲面或者其它的形状来区分
如果我们以这两个点(0,0),(1,1)
为椭圆的焦点
以(0.5,0.5)为椭圆的中心点
这样画这么一个椭圆
我们发现椭圆内部的点和椭圆外部的点
刚好可以区分为两类
那么我们把椭圆的方程写出来
是其中的一个方程
是这样子
(见公式)
我们发现椭圆内部的点
比如x1,x2都为0的时候
那么这个u等于几
等于-1是小于0的
椭圆内部的另外一个点
x1,x2都等于1的时候
u等于多少
24+24
48-32-8-8-1
得多少呢
48-32再减16
等于0
再减1
-1也是小于0的
说明什么
椭圆内部的点
都会使得u小于0
那么对应的输出y多少呢
是不是0
对
那就正好实现了00、11到0
的这样一个非线性映射
那椭圆外部的点
10和01它是对称的
我们看一个例子
当x1等于1的时候
x2等于0的时候
那么就是u等于多少
24-8-1
实际上大于0的
同样道理
当x1=0,x2=1的时候
它u也是大于0
也就是说它对应的输出y是多少呢
是1
这样的话正好实现了逻辑运算
“异或”功能
实际上画出来就是这样的一个形状
它是一个单层的非线性感知器
这里面刚好是加权求和之后
那么在加权求和的过程中
它是一种非线性加权了
这表示乘法
那么(见公式)得到了u
这事实上是一种非线性的加权求和的形式
得到的u
再经过非线性映射
再经过激励函数f映射
得到输出y
这样的话
我们采用这样一种单层的非线性感知器
解决了逻辑运算“异或”功能
实现了从00、11到0
10、01到1的一种非线性映射
我们用单层的线性感知器
没有解决逻辑运算“异或”功能
但是我们用这样一个
单层的非线性感知器
把逻辑运算“异或”功能解决了
依此类推
我们是不是还有其它的办法呢
我们想一想
刚才我们发现是直线无法区分两类
那我们用一个平面
用两条直线呢
能不能把它区分开来
答案是可以的
如果我们以(0,0.5)和(0.5,1)
这两个点做一条直线
以及(0.5,0),(1,0.5)这两点
做另外一条直线就构成一个平面区域
刚好可以把00和11夹在平面内部
01和10加在平面外部
那么上面这条直线
它对应的方程就是(见公式)
那么直线上方的点
都会满足u大于0
直线下方点
都会满足u小于0
这样把它分成两类了
对应的感知器网络是这样子
那么另外一条线就是(见公式)
这条线又可以把这些点分为两类
这样正好把整个平面区域分为两个区域
这两条直线夹住的中间这部分的
这个平面区域是趋于I
之外的区域就是趋于II
我们同样很容易验证出来
当x1,x2在趋于I的时候
y是等于0的
当x1,x2趋于II的时候
y是等于1的
这样的话我们可以很容易地
采用y1,y2,y这三个式子
也就是采用这样一个
多层的线性感知器来实现逻辑运算
“异或”功能
我们验证一下
比如当x1,x2同时为0
或者同时为1的时候
这两个点我们发现x1-x2实际上是为0的
那么0-0.5是小于0的
y1等于几呢
是等于0
y2呢
等于f是0.5
它是等于1的
那么y1等于0
y2等于1
那么y1减y2就是0-1+0.5就是-0.5
这时候y是等于0的
内部的两个点对应的输出y等于0的
我们再来验证一下外部的两个点
我们以10或者01
那么10或者01的时候
那么这时候x2-x1它等于多少
要么等于1
要么等于-1
那么1或者-1加减0.5
它俩的形式
它们两个符号将会同号一样了
也就是意味着y1,y2是相等的
那么这个时候y等于多少呢
y等于f(0.5)是等于1的
正好实现了逻辑运算“异或”功能
我们发现单层的线性感知器
无法解决逻辑运算“异或”功能
但是我们采用单层的非线性感知器
还有多层的线性感知器
就可以把逻辑运算“异或”功能给实现了
这个事情告诉我们
我们在学习的时候
不要盲目地迷信权威
要大胆地假设
要充发挥想象力和创造力
去大胆质疑
要有发散性思维
要有创新性思维去解决问题
单层的不行
我要采用多层的
线性的不行
我采用非线性的
都可以解决这样的逻辑运算“异或”功能
实现问题
那么这张图描述的是一个用感知器网络
来实现模式分类和函数逼近的问题
那么上面这张图
其实找到一个分界线
可以区分这两个不同的模式
下面张图其实它表示的是
通过神经网络找到一条曲线
最贴近这些点
实现函数逼近的功能
这也是感知器网络的
其它领域的一些应用
-开篇
--开篇
-1.1课程考试方式
-1.2 数据、信息、知识与智能
-1.3传统控制面临的挑战
-1.4 控制科学发展过程
-1.5 智能控制的多元论
--1.5
-1.6 控制策略的渗透与融合
--1.6
-1.7 智能控制与传统控制的联系与区别
--1.7
-1.8 智能控制的类型之分级递阶智能控制系统
--1.8
-1.9 智能控制的类型之专家控制系统
--1.9
-1.10 智能控制的类型之模糊控制系统
--1.10
-1.11 智能控制的类型之神经网络控制系统,智能控制的类型之基于规则的仿人智能控制系统,集成智能控制系统,组合智能控制
--1.11
-1.12智能控制系统的类型之基于规则的仿人智能控制系统,集成智能控制系统,组合智能控制
--1.12
-1.13本章小结
--1.13
-第一章测试
-2.1基于搜索的问题求解
-- 2.1.7 均一代价搜索
-- 2.1.10 A星算法
-2.2 专家系统简介
- 2.3 专家PID
-第二章测试
-3.1 模糊控制概述
-3.2 模糊集合
-3.3 隶属函数
--3.3隶属函数.
-3.4 模糊关系及其运算
-第三章测试
- 4.1 模糊自适应整定PID控制原理
-4.2 基于FF的模糊PID控制试验验证
-第四章测试
- 5.1 神经网络简介
- 5.2 神经网络的发展简史
-5.3 神经网络的基本概念
- 5.4 神经网络的分类
-5.5 神经网络的学习算法、基本特征和研究领域
-第五章测试
-6.1 感知器
--6.1.2.1 感知器应用实例分析(实现逻辑运算与或非)
- 6.2 BP神经网络
--6.2.2.1 BP神经网络应用实例分析之一:逻辑运算异或实现
--6.2.2.2 BP神经网络应用实例分析之二:非线性函数拟合
-第六章测试
- 7.1 什么是遗传算法
-7.2 遗传算法的特点
-7.3 遗传算法的基本操作之复制
-7.4 遗传算法的基本操作之交叉与变异
-第七章测试
-8.1 遗传编程工作原理
-8.2 遗传编程基本操作之复制
-8.3 遗传编程基本操作之交换和突变
- 8.4 遗传编程的工作步骤及实例分析
-第八章测试
-期末测试




