XOR问题

XOR问题在Rosenblatt单层感知机中已经对异或问题做了介绍,并论证说明了只适用于线性分类问题的Rosenblatt感知机无法对异或问题进行分类。然而非线性问题是普遍存在的,下面就使用带隐藏节点的神经网络来解决异或问题。异或问题:异或(XOR)问题可以看做是单位正方形的四个角,响应的输入模式为(0,0),(0,1),(1,1),(1,0)。第一个和第三个模式属于类0,即和…

大家好,又见面了,我是你们的朋友全栈君。

 在Rosenblatt单层感知机中已经对异或问题做了介绍,并论证说明了只适用于线性分类问题的Rosenblatt感知机无法对异或问题进行分类。然而非线性问题是普遍存在的,下面就使用带隐藏节点的神经网络来解决异或问题。

异或问题:

        异或(XOR)问题可以看做是单位正方形的四个角,响应的输入模式为(0,0),(0,1),(1,1),(1,0)。第一个和第三个模式属于类0,即

输入模式(0,0)和(1,1)是单位正方形的两个相对的角,但它们产生相同的结果是0。另一方面,输入模式(0,1)和(1,0)是单位正方形另一对相对的角,但是它们属于类1,即

      很显然,无法找出一条直线作为决策边界可以使(0,0)和(1,1)在一个区域,而(1,0)和(0,1)在另一个区域。然而,可以使用如下图所示的一层有两个隐藏神经元的隐藏层来解决异或问题。
                                
这里做如下假设:
1、每一个神经元都由一个McCulloch-Pitts模型(见第一讲)表示,使用阈值函数作为它的激活函数。
2、比特符号0和1,分别由0和+1表示。
隐藏层顶部的神经元标注为“Neuron 1”,有

该隐藏神经元构造的决策边界斜率等于-1,在下图最上面的图中给出器位置,隐藏层底部的神经元标注为“Neuron 2”,有

隐藏元构造的决策边界方向和位置由下图中间的图给出。
       输出层的神经元标注为“Neuron 3”,有

输出神经元的功能是对两个隐藏神经元形成的决策边界构造线性组合。这个计算结果由下图中最下面的图给出。底部隐藏神经元由一个兴奋(正)链接到输出神经元,而顶部隐藏神经元由一个更强的抑制(负)连接到输出神经元。当两个隐藏神经元都断开时,这种情况当输入信号(0,0)发生时,输出神经元保持断开。当两个隐藏神经元都接通时,这种情况当输入信号时(1,1)是发生,输出神经元也保持断开。当输入模式是(0,1)或(1,0)时,输出神经元是连通的,因为正的权值连向了底部隐藏神经元。
                                                 
——————— 
作者:不死的钟情 
来源:CSDN 
原文:https://blog.csdn.net/qq_18515405/article/details/42123697 
版权声明:本文为博主原创文章,转载请附上博文链接!

版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请联系我们举报,一经查实,本站将立刻删除。

发布者:全栈程序员-站长,转载请注明出处:https://javaforall.net/160197.html原文链接:https://javaforall.net

(0)
全栈程序员-站长的头像全栈程序员-站长


相关推荐

  • openCV人脸识别简单案例[通俗易懂]

    openCV人脸识别简单案例[通俗易懂]1基础我们使用机器学习的方法完成人脸检测,首先需要大量的正样本图像(面部图像)和负样本图像(不含面部的图像)来训练分类器。我们需要从其中提取特征。下图中的Haar特征会被使用,就像我们的卷积核,每一个特征是一个值,这个值等于黑色矩形中的像素值之后减去白色矩形中的像素值之和。Haar特征值反映了图像的灰度变化情况。例如:脸部的一些特征能由矩形特征简单的描述,眼睛要比脸颊颜色要深,鼻梁两侧比鼻梁颜色要深,嘴巴比周围颜色要深等。Haar特征可用于于图像任意位置,大小也可以任意改变,所以矩形特征值是

    2022年5月28日
    44
  • printf的题目

    以前学习于渊老师的《自己动手写操作系统》一书的时候,也自己实现过printf,不过那是比较简单的版本。最近看《程序员面试宝典》,做到这么一道题目:#include<stdio.h>int

    2021年12月25日
    38
  • 面试阿里,HashMap 这一篇就够了[通俗易懂]

    面试阿里,HashMap 这一篇就够了[通俗易懂]HashMap面试中可能问到的知识点,这边全都有

    2022年5月19日
    36
  • java 调用win32 api 学习总结

    java 调用win32 api 学习总结java使用JInvoke调用windowsAPI使用jinvoke调用windowsAPI。jna使用比较麻烦,需要写c代码和参数转换,jinvoke的使用就像jdk中的包一样。 官网使用参考:http://www.jinvoke.com/calling-the-win32-api-from-java 一个弹出框的例子(这种代码用于调用任何dll,不只是windows的

    2022年10月9日
    0
  • pip安装mysqlclient报错的解决

    pip安装mysqlclient报错的解决Windows环境下安装python包经常会有各种环境方面的问题及报错。最近在python36/37下升级安装mysqlclient包时产生了下面的错误,不论是百度还是StackOverflow上查找都没有真正的解决方案,于是写文章与大家一起分享下这类报错的解决方法。报错信息:Buildingwheelsforcollectedpackages:mysqlclientRunningsetup.pybdist_wheelformysqlclient…error

    2022年10月28日
    0
  • linux系统-tcpdump常用抓包命令_tcpdump循环抓包

    linux系统-tcpdump常用抓包命令_tcpdump循环抓包原标题:Linux抓包命令tcpdump命令图解tcpdump命令–>用来将网络中传送的数据包的”头”完全截获下来提供分析,常见的有Wireshark。在Linux中输入命令mantcpdump给出的定义如下所示:tcpdump-转储网络上的数据流是不是感觉很懵?我们用通俗、形象、学术的表达方式来全方位描述tcpdump:通俗的来说,tcpdump是一个抓包工具,用于抓取网络中传输的…

    2022年8月20日
    9

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注

关注全栈程序员社区公众号