使用单层感知器求解 XOR

2024-03-14

我一直听说 XOR 问题不能通过单层感知器(不使用隐藏层)来解决,因为它不是线性可分的。我知道没有线性函数可以区分类别。

但是,如果我们使用像 sin() 或 cos() 这样的非单调激活函数,情况仍然如此吗?我想这些类型的函数可能能够将它们分开。


Yes,具有非单调激活函数的单层神经网络can解决异或问题。更具体地说,周期函数会多次切割 XY 平面。甚至一个Abs http://hsmazumdar.net/single_layer_neural_net.htm or 激活函数会将其削减两倍。

自己尝试一下:W1 = W2 = 100,Wb = -100,激活 = exp(-(Wx)^2)

  • exp(-(100 * 0 + 100 * 0 - 100 * 1)^2) = ~0
  • exp(-(100 * 0 + 100 * 1 - 100 * 1)^2) = 1
  • exp(-(100 * 1 + 100 * 0 - 100 * 1)^2) = 1
  • exp(-(100 * 1 + 100 * 1 - 100 * 1)^2) = ~0

或者使用abs激活:W1 = -1,W2 = 1,Wb = 0(是的,即使没有偏差也可以解决它)

  • 绝对值(-1 * 0 + 1 * 0) = 0
  • 绝对值(-1 * 0 + 1 * 1) = 1
  • 绝对值(-1 * 1 + 1 * 0) = 1
  • 绝对值(-1 * 1 + 1 * 1) = 0

或使用正弦:W1 = W2 = -PI/2, Wb = -PI

  • sin(-PI/2 * 0 - PI/2 * 0 - PI * 1) = 0
  • sin(-PI/2 * 0 - PI/2 * 1 - PI * 1) = 1
  • sin(-PI/2 * 1 - PI/2 * 0 - PI * 1) = 1
  • sin(-PI/2 * 1 - PI/2 * 1 - PI * 1) = 0
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

使用单层感知器求解 XOR 的相关文章

  • 使用强化学习训练神经网络

    我了解前馈神经网络的基础知识 以及如何使用反向传播算法训练它们 但我正在寻找一种可以用于通过强化学习在线训练 ANN 的算法 例如 车杆向上摆动 http www google com search q cart 20pole 20swin
  • ScikitLearn 的 MLPClasssifier 在输出层使用什么样的激活?

    我目前正在处理给定类标签 0 和 1 的分类任务 为此 我使用 ScikitLearnMLPClassifier为每个训练示例提供 0 或 1 的输出 但是 我找不到任何文档 说明 MLPClassifier 的输出层到底在做什么 哪个激活
  • 如何在prototxt文件中写注释?

    我找不到如何写评论prototxt files 有没有办法在 prototxt 文件中添加注释 如何 Thanks 您可以通过添加评论 char 之后的行中的所有内容都是注释 layer name aLayerWithComments I
  • 增加或减少添加神经元或权重的学习率?

    我有一个卷积神经网络 我修改了它的架构 我没有时间重新训练和执行交叉验证 对最佳参数进行网格搜索 我想要直观地调整学习率 我是不是该increase or decrease我的 RMS 基于 SGD 优化器的学习率 如果 I add mor
  • 如何计算 CRC 中使用的 XOR 余数?

    我试图记住如何计算循环冗余检查中的 XOR 算法的剩余部分以验证网络消息的剩余位 我不应该扔掉那本教科书 这在代码中很容易完成 但是如何手动计算出来呢 我知道它看起来像标准除法算法 但我不记得从那里去哪里获得余数 1010 10110100
  • 如何在 CAFFE 的新网络中重复使用同一网络两次

    我有一个预训练的网络 我们称之为N 我想在新网络中使用两次 有人知道如何复制吗 然后我想为每个副本分配不同的学习率 例如 N1是第一个副本N N2是第二个副本N 新网络可能如下所示 N1 gt joint ip N2 gt layer 我知
  • XOR 加密有什么问题?

    我编写了一个简短的 C 程序来对文件进行 XOR 加密 我可以将其用于一些个人文件 如果它被破解 那没什么大不了的 我只是防止临时查看者 基本上 我采用 ASCII 密码并重复将密码与文件中的数据进行异或 但现在我很好奇 如果有人想破解这个
  • 输入数据集如何输入神经网络?

    如果我的数据集中有 1000 个观测值 其中包含 15 个特征和 1 个标签 那么输入神经元中的数据如何用于前向传播和反向传播 是逐行馈送 1000 个观测值 一次一个 并根据每个观测值馈送更新权重 还是以输入矩阵形式给出完整数据 然后根据
  • word2vec中单词的向量代表什么?

    word2vec https code google com p word2vec 是 Google 的开源工具 它为每个单词提供一个浮点值向量 它们到底代表什么 还有一篇论文关于段落向量 http cs stanford edu quoc
  • BatchNorm 动量约定 PyTorch

    Is the 批归一化动量约定 http pytorch org docs master modules torch nn modules batchnorm html 默认 0 1 与其他库一样正确 例如Tensorflow默认情况下似乎
  • 如何计算 CNN 第一个线性层的维度

    目前 我正在使用 CNN 其中附加了一个完全连接的层 并且我正在使用尺寸为 32x32 的 3 通道图像 我想知道是否有一个一致的公式可以用来计算第一个线性层的输入尺寸和最后一个卷积 最大池层的输入 我希望能够计算第一个线性层的尺寸 仅给出
  • Tensorflow Inception 多 GPU 训练损失未求和?

    我正在尝试检查多个 GPU 在一台机器上 的 Tensorflow 初始代码 我很困惑 因为据我所知 我们从不同的塔 又名 GPU 中得到了多次损失 但是loss评估的变量似乎只是最后一个塔的变量 而不是所有塔的损失之和 for step
  • Prolog 实现 and/2、or/2、nand/2、nor/2、xor/2 [关闭]

    Closed 这个问题需要多问focused help closed questions 目前不接受答案 我想在序言中实现以下谓词并将它们用于真值表 and 2 or 2 nand 2 nor 2 xor 2 也许有人可以告诉我如何实现和
  • 如何修复:AttributeError:模块“neat”没有属性“config”

    我正在浏览使用发现的 NEAT 神经网络 API 玩 flappybird 的 AI 的指南 当我运行从 Github 下载的代码时 出现错误 Traceback most recent call last File test py lin
  • 十六进制数的按位异或

    我们如何在 Python 中对十六进制数进行异或 例如 我想要异或 ABCD and 12EF 答案应该是 B922 我使用了下面的代码 但它给出了错误的结果 xor two strings of different lengths def
  • 用于神经网络模型预测的数据的缺失值

    我目前有大量数据将用于训练预测神经网络 美国主要机场的千兆字节天气数据 我几乎每天都有数据 但有些机场的数据中存在缺失值 例如 机场在 1995 年之前可能不存在 因此在此之前我没有该特定位置的数据 此外 有些还缺少整年 可能跨度为 199
  • keras 层教程和示例

    我正在尝试编码和学习不同的神经网络模型 我对输入维度有很多复杂性 我正在寻找一些教程 显示层的差异以及如何设置每个层的输入和输出 Keras 文档 https keras io layers core 向您展示所有input shape每层
  • 如何组织循环神经网络?

    我想模拟以下内容 y t F x t 1 x t 2 x t k 或者说一个函数 其当前输出取决于最后 k 个输入 1 我知道一种方法是使用一个经典的神经网络 其中 k 个输入为 x t 1 x t 2 x t k 对于每个y t 并训练它
  • 如何使用 pybrain 黑盒优化训练神经网络来处理监督数据集?

    我玩了一下 pybrain 了解如何生成具有自定义架构的神经网络 并使用反向传播算法将它们训练为监督数据集 然而 我对优化算法以及任务 学习代理和环境的概念感到困惑 例如 我将如何实现一个神经网络 例如 1 以使用 pybrain 遗传算法
  • 如何使用一个模型中间层的输出作为另一个模型的输入?

    我训练一个模型A并尝试使用中间层的输出name layer x 作为模型的附加输入B 我尝试像 Keras 文档一样使用中间层的输出https keras io getting started faq how can i obtain th

随机推荐