zoukankan      html  css  js  c++  java
  • 机器学习-单层感知器不能实现异或运算的原因

    模拟逻辑运算时,感知器的公式是这样的:

    [y(x1,x2)=f(ω1∗x1+ω2∗x2−θ) ]

    其中x是输入的值只能取0或1
    ω是对应的权值
    θ是偏移量
    y是输出,y>=0为真,小于0为假

    也就是说,这个感知器通过学习ω1,ω2,θ的值来学习逻辑运算。

    如果我们要这个感知器进行异或运算,就需要它在x1,x2相同时y小于0,不相同时大于等于0;
    也就是符合以下方程组:

    [ω1 + ω2 - θ < 0 ]

    [ω1 + 0 - θ ≥ 0 ]

    [0 + 0 - θ < 0 ]

    [0 + ω2 - θ ≥ 0 ]

    整理得到:
    ω2 ≥ θ
    0 < θ
    ω1 ≥ θ
    ω1+ω2<0

    再整理:
    0 > ω1+ω2 ≥ 2θ > 0

    很明显这个式子不成立,ω1+ω2和θ都不能即大于0又小于0

    所以这个函数是不能模拟异或运算的,那么采用这个函数的感知器自然也不能模拟异或运算。

    文有疏漏,请大家批评指正!
  • 相关阅读:
    2018.6.8 现代企业管理复习总结
    写时复制
    字符串类示例
    信号量示例
    对象赋值的语义
    对象复制的语义
    无用单元和悬挂引用
    初始化
    静态数据成员,静态成员函数
    同时找出最大数和最小数
  • 原文地址:https://www.cnblogs.com/trialley/p/11248916.html
Copyright © 2011-2022 走看看