🔗 三个感知机组装成 XOR
单个感知机做不了 XOR,但把三个组合起来就行:
NAND(负权重 -0.5):两个 1 时输出 0,其他输出 1
OR(正权重):天气好或有朋友有空 → 输出 1
AND:上面两个结果都输出 1 → 最终输出 1(出门)
这相当于:(天气不好或朋友没空)且(天气好或有朋友有空)才出门 = 天气和朋友状态不同才出门。
点击输入圆圈试试:
输入
(点击切换)
x₁
☁️ 不好
x₂
🚫 没空
隐藏层
NAND
OR
输出
AND

NAND: w₁=-0.5, w₂=-0.5, b=0.6  ·  OR: w₁=0.5, w₂=0.5, b=-0.3  ·  AND: w₁=0.5, w₂=0.5, b=-0.8

真值表验证

点击输入圆圈切换 x₁、x₂,验证所有四种输入组合:

(x₁=0, x₂=0)
NAND:   OR:   AND→
期望: 0
(x₁=0, x₂=1)
NAND:   OR:   AND→
期望: 1
(x₁=1, x₂=0)
NAND:   OR:   AND→
期望: 1
(x₁=1, x₂=1)
NAND:   OR:   AND→
期望: 0
📄 Python 代码
# 两层神经网络实现 XOR # 隐藏层:NAND + OR def nand(x1, x2): return 1 if -0.5*x1 + -0.5*x2 + 0.6 > 0 else 0 def or_gate(x1, x2): return 1 if 0.5*x1 + 0.5*x2 + -0.3 > 0 else 0 # 输出层:AND def xor(x1, x2): s1 = nand(x1, x2) s2 = or_gate(x1, x2) return 1 if 0.5*s1 + 0.5*s2 + -0.8 > 0 else 0 # 当前输入:x₁=0, x₂=0 → 输出: 0

💡 这就是神经网络的核心思想
单个感知机能力有限(线性),但组合成多层网络后就能解决复杂问题(非线性)。
你刚才搭建的其实就是一个两层神经网络——隐藏层(NAND+OR) → 输出层(AND),跟现代深度学习网络是同一个原理,只是规模大了几百万倍。