单神经元解决XOR问题

有两个输入的单个神经元的使用得到的决策边界是输入空间的一条直线。在这条直线的一边的所有的点,神经元输出1;而在这条直线的另一边的点,神经元输出0。在输入空间中,这条直线的位置和方向有两个输入节点相连的神经元的突触权值和它的偏置决定。由于输入模式(0,0)和(1,1)是位于单位正方形相对的两个角,输入模式(0,1)和(1,0)也一样,很明显不能做出这样一条直线作为决策边界可以使(0,0)和(1,1)在一个区域而(0,1)和(1,0)在另一个区域。换句话说,通常一个基本单层感知器不能解决XOR问题,也就是说原始Rosenblatt感知器不能解决XOR问题,所以可以采用多层感知器通过隐藏层来进行维度分块来解决XOR问题。

下面是构造的一个使用一层有两个神经元的隐藏层来解决异或问题,假设

每个神经元都由一个McCulloch-Pitts模型表示,使用阈值函数作为他的激活函数。

比特符号0和1分别有水平0和+1表示。

网络结构和信号流图如下:

其中神经元1,神经元2,和神经元1 2共同构造的边界如下图:

第二种方式是采用非线性映射(高斯函数)解决线性映射模式不可分问题(不增加空间维度)。同时依然保持单个神经元的网络结构。

要求建立一个模式分类产生二值输出相应,(1,1)(0,0)->0 (1,0)(0,1)->1,因此在此输入空间中依Hamming距离最近的点映射到输出空间中最大分离的区域,一个序列的Hamming距离定义为二值序列中从符号1变为符号0的个数,反之亦然。因此,11和00的Hamming距离是0,01和10的Hamming距离是1。

定义一对高斯函数如下:

结果如下:

Tip:cover定理:

将低维线性不可分问题,非线性的投射到高维(甚至同维)空间,使其更容易线性可分(这个以后细说)。

神经网络与机器学习 笔记—单神经元解决XOR问题的更多相关文章

  1. 神经网络与机器学习 笔记—LMS(最小均方算法)和学习率退火

    神经网络与机器学习 笔记-LMS(最小均方算法)和学习率退火 LMS算法和Rosenblatt感知器算法非常想,唯独就是去掉了神经元的压制函数,Rosenblatt用的Sgn压制函数,LMS不需要压制 ...

  2. 神经网络与机器学习 笔记—卷积神经网络(CNN)

    卷积神经网络 之前的一些都是考虑多层感知器算法设计相关的问题,这次是说一个多层感知器结构布局相关的问题.来总结卷积神经网络.对于模式分类非常合适.网络的提出所隐含的思想收到了神经生物学的启发. 第一个 ...

  3. 神经网络与机器学习 笔记—多层感知器(MLP)

    多层感知器(MLP) Rosenblatt感知器和LMS算法,都是单层的并且是单个神经元构造的神经网络,他们的局限性是只能解决线性可分问题,例如Rosenblatt感知器一直没办法处理简单异或问题.然 ...

  4. 神经网络与机器学习 笔记—Rosenblatt感知器收敛算法C++实现

    Rosenblatt感知器收敛算法C++实现 算法概述 自己用C++实现了下,测试的例子和模式用的都是双月分类模型,关于双月分类相关看之前的那个笔记: https://blog.csdn.net/u0 ...

  5. 神经网络与机器学习 笔记—Rosenblatt感知机

    Rosenblatt感知机器 感知器在神经网络发展的历史上占据着特殊位置:它是第一个从算法上完整描述的神经网络.它的发明者Rosenblatt是一位心里学家,在20世纪60年代和70年代,感知器的启发 ...

  6. 神经网络与机器学习 笔记—支持向量机(SVM)(上)

    支持向量机(SVM)的主要思想: 给定训练样本,支持向量机建立一个超平面作为决策曲面,使得正例和反例之间的隔离边缘被最大化. 线性可分模式的最优超平面 训练样本{(xi,di)}^N i=1 ,其中x ...

  7. 神经网络与机器学习 笔记—反向传播算法(BP)

    先看下面信号流图,L=2和M0=M1=M2=M3=3的情况,上面是前向通过,下面部分是反向通过. 1.初始化.假设没有先验知识可用,可以以一个一致分布来随机的挑选突触权值和阈值,这个分布选择为均值等于 ...

  8. Python机器学习笔记:卷积神经网络最终笔记

    这已经是我的第四篇博客学习卷积神经网络了.之前的文章分别是: 1,Keras深度学习之卷积神经网络(CNN),这是开始学习Keras,了解到CNN,其实不懂的还是有点多,当然第一次笔记主要是给自己心中 ...

  9. PID控制器开发笔记之十三:单神经元PID控制器的实现

    神经网络是模拟人脑思维方式的数学模型.神经网络是智能控制的一个重要分支,人们针对控制过程提供了各种实现方式,在本节我们主要讨论一下采用单神经元实现PID控制器的方式. 1.单神经元的基本原理 单神经元 ...

随机推荐

  1. 如何使用jQuery $.post() 方法实现前后台数据传递

    基础方法为 $.post(URL,data,callback); 参数介绍: 1.URL 参数规定您希望请求的 URL. 2.data 参数规定连同请求发送的数据. 3.callback 参数是请求成 ...

  2. vue全家桶和react全家桶

    vue全家桶:vue  +  vuex (状态管理)  + vue-router (路由) + vue-resource +axios +elementui react全家桶 : react + re ...

  3. Cookie实现记住密码、自动登录

    前端代码 <form id="form" action="xxx" method="post"> <div> < ...

  4. 循环3n加1问题

    package 第二章; import java.util.Scanner; //int 32位整数 /*  * 猜想:对于任意大于一的自然数n,若n为奇数,则将n变为3n+1,否则变为n的一半 经过 ...

  5. Java中的映射Map - 入门篇

    前言 大家好啊,我是汤圆,今天给大家带来的是<Java中的映射Map - 入门篇>,希望对大家有帮助,谢谢 简介 前面介绍了集合List,这里开始简单介绍下映射Map,相关类如下图所示 正 ...

  6. FFMPEG编译问题记录

    一.ffmpeg下载与配置 下载地址 FFmpeg/FFmpeg (https://github.com/FFmpeg/FFmpeg) ~$ git clone https://github.com/ ...

  7. Java程序中的代理作用和应用场景及实现

    body { margin: 0 auto; font: 13px / 1 Helvetica, Arial, sans-serif; color: rgba(68, 68, 68, 1); padd ...

  8. 为了效率,我们可以用的招数 之 strlen

    如果要你写一个计算字符串长度的函数 strlen,应该怎么写?相信你很容易写出如下实现: 1 int strlen_1(const char* str) { 2 int cnt = 0; 3 4 if ...

  9. react项目运行安装依赖报错:Error: pngquant failed to build, make sure that libpng-dev is installed

    安装报错之后.但是安装libpng-dev.发现找不到.通过多方查找.准备重新安装pngquant.命令如下: npm install --save-dev pngquant安装成功并运行成功

  10. (七)Struts2Action访问Servlet API

    第一种方式: Struts2提供了一个ServletActionContext对象可以访问ServletAPI. 例如 HttpServletRequest request=ServletAction ...