【问题标题】:Can an ANN (2-2-1 layers) be implemented to learn XOR using linear activation function?可以使用线性激活函数实现 ANN(2-2-1 层)来学习 XOR 吗?
【发布时间】:2015-11-07 11:31:48
【问题描述】:

如果是,怎么做?还有哪些可以使用线性激活函数实现的简单应用示例。

【问题讨论】:

    标签: c# neural-network xor multi-layer


    【解决方案1】:

    答案很简短:

    如果你使用线性激活函数,那么你的神经网络并不比一个简单的感知器强(缺少隐藏层)。

    换句话说使用带有线性激活函数的隐藏层是没有意义的

    【讨论】:

    • 如何使用线性激活函数进行 AND/OR?
    • 再次,对于线性可分问题,例如 AND/OR 你根本不需要隐藏层(你可以使用它,但它是多余的,并且显示缺乏了解机器学习的基础知识)。只是线性模型,例如 cl_AND(x1,x2) = sign(x1+x2-1.5), cl_OR(x1,x2) = sign(x1+x2-0.5)。
    • 示例 (AND):输入/权重 =>1/0.3 1/-0.4 偏差 => 1/0.3 使用线性函数的下一步是什么?你如何设置阈值?线性和步进的区别在哪里?
    • 您似乎将模型与某些训练方法混淆了。没有“下一步”之类的东西;我给了你最后的重量。对于 AND => 1(第一个输入神经元),1(第二个输入神经元),-1.5(偏差);因此在输出神经元(没有隐藏层)上 f(x1, x2) = x1 + x2 - 1.5。如果你坚持有隐藏层,只需放置一个隐藏神经元,权重为“1”以输出一个 - 它只会传递信号。
    • 我知道它必须是单个神经元。给我一个使用线性激活函数的简单示例。
    【解决方案2】:

    XOR 不能线性分离。如果您在 2D 平面上打印函数的输出,并且您试图找到一种将其线性分离的方法,您将找不到。那是 NN 一开始的崩溃,直到他们找到了不同的激活方法,允许像 sigmoid 函数一样非线性地分离点。

    a   b   a XOR b
    1   1      0
    0   1      1
    1   0      1
    0   0      0
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2017-06-02
      • 1970-01-01
      • 2018-07-15
      • 2022-01-16
      • 1970-01-01
      • 2021-03-19
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多