感知机与多层网络,解决异或问题可视化_Lyan_92的博客-程序员秘密_解决异或问题的两层感知机

技术标签: 机器学习  AI  Machine Learning  

                                                         感知机与多层网络

声明:在阅读本文时,手里最好配备一本《机器学习》,以做好前期的一些理论知识铺垫。

在阅读书中(《机器学习》,周志华)的第5章时,文中主要以逻辑与、或、非,以及异或运算为例子,指出单层感知机可以处理线性可分的问题,而解决非线性可分问题,需考虑使用多层感知机,看到这里,我进行了思考:为什么含有非线性激活函数的单层感知机只可以解决线性可分的问题,而对异或这种问题却无能为力?而仅仅多了一层隐含层的两层感知机则可以解决此类非线性可分的问题?对此,我以书中(《机器学习》,周志华)图5.5为例子,对单层感知机和两层感知机应用于异或问题进行了一些可视化工作,并且进行了分析。

首先来回顾一下什么是异或运算:

                                                                                        表1

                                         

由表1可知,输入的x1和x2都∈{0,1},若两者相同则输出0,两者相异则输出1,那如果我们要学习到一个模型y=F(x1,x2) 能正确预测这些样本,也即意味着上述4个异或样本点都会落在模型y在三维坐标系对应的超平面中(三维情况下是一个平面或曲面)。如下图1所示,是4个异或的样本点的分布情况,红色点代表x1,x2输入相异而输出为1的两个点,蓝色点代表x1,x2输入相同而输出为0的两个点,X,Y轴分别代表输入x1和x2,Z轴代表输出。通过对4个样本点的分布进行观察,我们发现,找不到一个平面可以使红色样本点和蓝色样本点同时落在该平面上,(数学上也可以严格证明,只需将4个样本点代入单层感知机(不带激活函数)的函数表达式,得到4条不等式,会推导出式子之间互相矛盾),因此,这是一个非线性可分的问题,下面将进行进一步阐述。

                                                          

                                                                                             图1

1. 单层感知机不能解决非线性问题的可视化

以下,先由简单的单层感知机开始,其结构如下图所示:

                                                                     

                                                                                        图2

上图的输出层包含一个激活函数,以及有一个偏置量θ 没有标出来。我们令权重w1和w2都为1,偏置θ 为-0.5,则得到一个单层感知机表达式:y1=f(x1+x2-0.5)f代表阶跃函数,起到激活作用,当没加激活和有加激活函数时,y1分别所代表的模型超平面如下图3 a,b所示。

     

                                                   图3a                                                                                   图3b

从图3a,b可以看出,单层感知机加上激活函数后的确起到了非线性整流的作用,模型从一个平面变成了一个曲面,但作用有限,整流后也只把3个样本点预测准确了(这3个点落在曲面上),其中(1,1)这个样本点就预测错误了,真实label应该是0,而y1模型预测为1。

同理,如果我们令w1和w2都为-1,偏置θ 为1.5,得到另一个单层感知机y2=f(-x1-x2+1.5) ,当没加激活和有加激活函数时,y2分别所代表的模型超平面如下图4 a,b所示。

          

                                                    图4a                                                                             图4b

从上图4b可以看出也有3个样本点预测正确了(有3个点落在曲面上),但是这次预测错误的样本是(0,0),真实label应该是0,但y2模型预测为1。

因此,这上面的可视化工作进一步证明了,我们找不到一个平面可以使红色样本点和蓝色样本点同时落在该平面上,也即单层感知机不能解决异或这种非线性可分的问题。

2. 两层感知机能解决异或问题的可视化

由上述可知,上面两个的单层感知机都不能解决异或问题,但通过观察上面两幅图3b和4b,就想到可不可以将这两个单层感知机的优点进行互补起来?然后接下来试试搭建一个两层感知机,具体是y1模型和y2模型的输出作为第三个单层感知机y3的输入,如下图所示

                                                              

                                                                                             图5

同理,如果我们令第三个感知机y3的参数w1和w2都为1,偏置θ 为-1.5,用数学形式表达就是:y3=f(f1+f2-1.5) ,当没加激活和有加激活函数时,y3分别所代表的模型超平面如下图6 a,b所示。

          

                                                 图6a                                                                                       图6b

神奇了,由图6b可以看到,4个样本点全落在了y3模型所对应的曲面上,也就是两层感知机可以解决异或这类非线性可分问题,同时可以看到这个两层感知机的曲面形状是“鞍形”这种独特的形状。

3. 实验分析

       通过上述实验,可以看出单层感知机是非线性模型,但其主要结构是线性的,其非线性是激活函数带来的,但这种非线性的作用主要是整流,也即为模型分类增加确信度,那么可以认为,激活函数没带来所需的非线性作用。那么,什么是所需的非线性作用?通过对两层感知机的可视化(图6 a,b)的“鞍形”曲面的观察,我们发现,对于异或问题,我们所需的非线性作用是模型函数的单调性可变,这其中涉及了多元函数的单调性问题,我们先来看看二元函数的单调性定义:

                                     

从图3a和4a可清晰地观察到,并可证明,没加激活函数的单层感知机所表示的二元函数z=f(x1,x2) ,总是能在xoy面找到一个\underset{AB}{\rightarrow}  方向,使z在\underset{AB}{\rightarrow} 单调增加,反之,在\underset{BA}{\rightarrow} 上单调减少。进一步观察图3b和4b,并可证明,加了激活函数也并没有严格改变模型的单调性。也即我们可以给出一个观点:单层感知机不能解决非线性可分问题的原因是(1)其主要模型结构是线性的,(2)激活函数作用是局限的,导致其表示的多元函数单调性是确定的,不可变。

对于两层感知机的单调性,它可以做到某个方向上不固定,可变的(图6b是先增后减),其单调性可变的原因也很简单:由于两层的结构,它将两个单层感知机的输出作为自身输入进行加权求和,其中一个感知机是在\underset{AB}{\rightarrow} 方向上是单调增函数,另一个感知机在​​​​\underset{AB}{\rightarrow} 方向上是单调减函数,根据函数单调性的性质,则得到了先增后减的这种异或问题所需的“非线性”性质。也即我们可以给出一个观点:两层感知机能解决非线性可分问题的原因是其两层连接结构,使其整个模型所表示的多元函数单调性是不确定的,是可变的。

参考资料:

  1. https://wenku.baidu.com/view/2d687e45de80d4d8d15a4f85.html
  2. https://blog.csdn.net/qq_25353433/article/details/82467936
  3. https://blog.csdn.net/uncle_gy/article/details/78890302?utm_source=blogxgwz7
  4. https://www.zhihu.com/question/263676843
  5. https://blog.csdn.net/dcrmg/article/details/79165976
  6. 《机器学习》,周志华,清华大学出版社,2015.
版权声明:本文为博主原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明。
本文链接:https://blog.csdn.net/sinat_28685897/article/details/85241977

智能推荐

为什么软件开发周期总是预估的2~3倍?_boss_mu的博客-程序员秘密

我们引用个案例形象的解释一下来,让我们从旧金山出发,沿着西海岸徒步旅行,到洛杉矶的纽波特沙滩面基吧→→→出处简单的来说 所有事情不会像表面上那么简单比如说 这个程序很简单 我一天就能搞定好吧 刚开始写 电脑老死机 折腾了半个小时才弄好刚写一会儿,父亲大人来了个电话,咱得接起,听后指示吧,又费了点时间。突然觉得肚子里翻江倒海,必须去厕所飞翔。好嘛一上午过去了。下午下决心好好写程序,然后突然跳出来了N个bug。这样原来预估的时间就不够了。配图的意思就是原来看着挺简单,但是一放大还带小

改变Windows鼠标滚动方向_不白码的博客-程序员秘密_windows 鼠标滚动方向

修改Windows系统鼠标滚动的方向,需要以下3步:windows+R打开"运行",输入devmgmt.msc,再打开"设备管理器" 找到"鼠标和其他指针设备",右键选择"属性",留意选中的这串值 回到"运行",输入regedit,打开注册编辑器,找到"FilpFlopWheel",双击修改数值数据为"1"即可...

使用mybatis plus出现分页无效、自定义的sql查询报错问题_snowwithrain的博客-程序员秘密_mybatisplus分页查询无效

最近使用mybatis plus,出现几个小问题,在这里记录一下:1.自定义的sql查询方法无法正常执行的问题2022-01-13 20:58:22.582 ERROR 64652 --- [nio-8080-exec-1] c.c.s.w.s.a.AbstractRestExceptionHandler : handle [500] exception with error key[forbidden].org.apache.ibatis.binding.BindingException: Inv

开发中PG,PL,SE,PM都是什么意思_嵌入式小窝的博客-程序员秘密_程序员se是什么意思

项目最顶层是项目负责人,接下来项目会落实到pm(项目经理PM),项目经理将任务分成若干个子项目,每个项目由一个pl(项目组长)负责。在每个子项目中,由SE(系统工程师)带领pg(程序员)共同完成。其中,PM和PL一般为具有资深项目管理经验、长期开发实践和良好交流能力的高级技术人才。SE需要具有独立的设计和提案能力,具有长期开发实践经验和交流能力。一般又可分为三种类型:第

必备的20个电路分析_十月拾岸的博客-程序员秘密_电路分析

初级层次:是熟练记住这二十个电路,清楚这二十个电路的作用。只要是电子爱好者,只要是学习自动化、电子等电控类专业的人士都应该且能够记住这二十个基本模拟电路。   中级层次:是能分析这二十个电路中的关键元器件的作用,每个元器件出现故障时电路的功能受到什么影响,测量时参数的变化规律,掌握对故障元器件的处理方法;定性分析电路信号的流向,相位变化;定性分析信号波形的变化过程;定性了解电路输入输出阻抗的大

jenkins学习_weixin_30335353的博客-程序员秘密

转自:https://blog.csdn.net/u010585120/article/details/53502291这篇文章大概写于三个月前,当时写了个大纲列表,但是在CSDN上传资源实在不方便,有时上传了莫名审核不通过,如果以前有人上传过,也会导致上传失败。现在把之前工作中找到的好东西和各位分享。现在不搞这些了,也算是个归档吧。内容主要涉及Hudson/Jenkins的使用,维护,...

随便推点

linux ICONV字符GB2312转换UTF8_天经地义之经的博客-程序员秘密

http://blog.chinaunix.net/uid-25135004-id-2782730.html指令:  #iconv -f GB2312 -t UTF-8 gb1.txt >gb2.txt           将gb1里的编码从GB2312转化成UTF-8  并重定向到gb2.txt  除了iconv命令,我们在linux系统下的man page的第三节还

吴恩达深度学习学习笔记——C2W3——超参数调试、Batch正则化和程序框架——作业——Tensorflow入门及使用Tensorflow构建第一个神经网络_预见未来to50的博客-程序员秘密

这里主要梳理一下作业的主要内容和思路,完整作业文件可参考:https://github.com/pandenghuang/Andrew-Ng-Deep-Learning-notes/tree/master/assignments/C2W3作业完整截图,参考本文结尾:作业完整截图。TensorFlow Tutorial (Tensorflow教程)Welcome to this week's programming assignment. Until now, you've always.

海航往事_yidiancaijing的博客-程序员秘密

当旧路和新路都难以走通,海航的命运又将驶向何方?作者/ 韩 东编辑/ 刘 煜2020年2月29日,三元桥附近的住户感受着“异样”的冷清。这里原是交通的中枢,商务楼云集。特别是海航集团两栋写字楼:数以千计的员工进进出出,人头攒动,拥挤在东三环北路与霄云路狭长的甬道。可是转眼人影疏离,灯光阑珊,一切都变了模样。从2019年底,随着海南航空大厦的招牌被换成了“V...

多媒体计算机的扫描仪属于感觉媒体吗,多媒体计算机中的扫描仪属于感觉媒体吗?..._weixin_39702479的博客-程序员秘密

摘要:多媒体计算机中的扫描仪不属于感觉媒体,扫描仪只是一种捕获影像的装置,作为一种光机电一体化的电脑外设产品,并不是一个媒体,而是一种输入设备。多媒体计算机中的扫描仪不属于感...多媒体计算机中的扫描仪不属于感觉媒体,扫描仪只是一种捕获影像的装置,作为一种光机电一体化的电脑外设产品,并不是一个媒体,而是一种输入设备。多媒体计算机中的扫描仪不属于感觉媒体。感觉媒体是指能直接作用于人们的感觉器官,使人...

ebs r12.1 使用操作系统认证问题_congji3615的博客-程序员秘密

安装完oracle ebs以后,oracle用户的ORACLE_HOME 目录为-bash-3.2$ env |grep ORACLE_HOMEORACLE_HOME=/export/home2/oracle/VIS/db/...

不会被和谐的良心云端储存网盘? 试试MEGA吧!_王图思睿的博客-程序员秘密_不会被和谐的国外云盘

MEGA 简介空间大、流量多、速度快或者很安全,对于云端网盘,你最在乎哪方面?如果储存私人敏感信息,当然是安全和隐私最为重要了。MEGA 就是一款主打安全隐私的网盘,所有数据在上传时会通过密码和密钥自动加密,并且密码和密钥不储存在 MEGA 云端,所以非常安全。正因为如此,你一定要记住自己账号的密码和密钥,一旦遗失将无法找回,相当于失去所有储存数据。MEGA 为所有注册用户提供 50GB 免...