博客园  :: 首页  :: 新随笔  :: 联系 :: 订阅 订阅  :: 管理

为什么线性模型无法学习异或函数?

Posted on 2026-08-07 10:18  steve.z  阅读(21)  评论(0)    收藏  举报

线性模型与异或函数的问题

线性模型无法学习异或函数,因为异或函数在特征空间中是线性不可分的。 这是一个经典的机器学习问题,也是深度学习出现的重要历史背景之一。


异或函数的特性

异或函数的真值表如下:

输入 x₁ 输入 x₂ XOR 输出
0 0 0
0 1 1
1 0 1
1 1 0

关键特点是:输出为1当且仅当两个输入不相同


为什么线性模型失败

线性可分性的要求

线性模型(如感知机、逻辑回归等)本质上是找一条直线(二维)、平面(三维)或超平面(高维)来分离两类数据。

超平面是指在 n 维空间中维数为 (n-1) 的线性子空间。 它是直线和平面这些概念在高维空间中的推广。

它尝试找到权重 \(w_1, w_2, b\) 使得决策边界满足:

\[w_1 x_1 + w_2 x_2 + b = 0 \]

几何上的不可分性

在二维平面上绘制异或函数的四个点:

  • 类别 0:(0,0) 和 (1,1)
  • 类别 1:(0,1) 和 (1,0)

无论如何绘制一条直线,都不能将这两类点完全分离。 类别0的点分别位于对角线两端,而类别1的点位于另外两个对角线位置,形成棋盘式的分布。这样的分布天然是线性不可分的。


非线性模型的解决方案

多层神经网络可以解决这个问题。 通过隐藏层中的非线性激活函数(如ReLU、Sigmoid等),网络能够对特征空间进行非线性变换,将原本线性不可分的数据映射到可分的高维空间。

一个最小的例子是两层神经网络

  • 输入层:2个神经元
  • 隐藏层:2个神经元 + 非线性激活
  • 输出层:1个神经元

这样的网络可以精确拟合异或函数。


历史意义

异或问题在20世纪60年代引发了对单层感知机局限性的认识(Minsky和Papert的著作),这直接导致了对深度神经网络的探索,最终推动了现代深度学习的发展。