| 逻辑门 | 含义 | 布尔表达式 | 输出为 1 的条件 | 真值表 (x₁,x₂→输出) |
|---|---|---|---|---|
| AND | 与门:两者都为真 | $(x_1x_2)$ | 仅当 x₁=1 且 x₂=1 | 00→0 01→0 10→0 11→1 |
| OR | 或门:至少一个为真 | $(x_1 + x_2)$ | 任意一个为 1 | 00→0 01→1 10→1 11→1 |
| NAND | 与非门:AND 取反 | $(x_1x_2)'$ | 除了 11 都为真 | 00→1 01→1 10→1 11→0 |
| NOR | 或非门:OR 取反 | $(x_1 + x_2)'$ | 仅当 00 为真 | 00→1 01→0 10→0 11→0 |
| XOR | 异或:不同为真 | $(x_1'x_2 + x_1x_2')$ | 01 或 10 | 00→0 01→1 10→1 11→0 |
| XNOR | 同或:相同为真 | $(x_1x_2 + x_1'x_2')$ | 00 或 11 | 00→1 01→0 10→0 11→1 |
| NOT (单输入) | 非门:取反 | $(x_1')$ | 当 x₁=0 时输出1 | 0→1 1→0 |
| BUF (单输入) | 缓冲器:原样输出 | $(x_1)$ | 当 x₁=1 时输出1 | 0→0 1→1 |
| 逻辑门 | 布尔表达式 | 感知机形式 (f(x)=w_1x_1+w_2x_2+b) | 参数示例 | 可线性分吗? |
|---|---|---|---|---|
| AND | $(x_1x_2) $ | $ (f(x)=x_1+x_2-1.5) $ | $(w_1=1,\ w_2=1,\ b=-1.5) $ | ✅ |
| OR | $(x_1+x_2) $ | $(f(x)=x_1+x_2-0.5) $ | $ (w_1=1,\ w_2=1,\ b=-0.5) $ | ✅ |
| NAND | $(x_1x_2)' $ | $(f(x)=-x_1-x_2+1.5) $ | $ (w_1=-1,\ w_2=-1,\ b=1.5)$ | ✅ |
| NOR | $(x_1+x_2)'$ | $(f(x)=-x_1-x_2+0.5) $ | $ (w_1=-1,\ w_2=-1,\ b=0.5)$ | ✅ |
| XOR | $(x_1'x_2+x_1x_2')$ | ❌ 单层不可分 (需两层感知机组合) | — | ❌ |
| XNOR | $(x_1x_2+x_1'x_2') $ | ❌ 单层不可分 (XOR 的反) | — | ❌ |
| NOT (单输入) | $(x_1') $ | $(f(x)=-x_1+0.5) $ | $(w_1=-1,\ b=0.5) $ | ✅ |
| BUF (单输入) | $(x_1) $ | $(f(x)=x_1-0.5) $ | $(w_1=1,\ b=-0.5)$ | ✅ |
$$
\begin{aligned}
& \text{XNOR 是 XOR 的反函数。}
\\
& \text{XOR 定义为:} \quad
& x_1 \oplus x_2 &= x_1'x_2 + x_1x_2' \\
& \text{XNOR 就是它的反:} \quad
& (x_1 \oplus x_2)' &= (x_1'x_2 + x_1x_2')' \\
& \text{对这个式子应用德摩根律:} \quad
& (x_1'x_2 + x_1x_2')' &= (x_1'x_2)'(x_1x_2')' \\
& \text{再用德摩根律展开每个括号:} \quad
& &= (x_1'' + x_2')(x_1' + x_2'') \\
& \text{化简双否定:} \quad
& &= (x_1 + x_2')(x_1' + x_2) \\
& \text{再展开:} \quad
& &= x_1x_1' + x_1x_2 + x_1'x_2' + x_2x_2' \\
& \text{根据互补律 } (x_1x_1' = 0,\ x_2x_2' = 0),\text{去掉它们:}
& &= x_1x_2 + x_1'x_2'
& \end{aligned}
$$
0️⃣ 约定与激活函数🔗
- 输入取
{0,1}:False = 0,True = 1。 - 感知机(或输出单元)使用阶跃函数 $$ H(z) = \mathbf{1}[z \ge 0] $$
- 输出形式为 $$ y = H(\mathbf{w}^\top \mathbf{x} + b) $$
1️⃣ 单个感知机实现 OR(m 输入)🔗
✅ 无取反(纯 OR)🔗
$$ y = H\Big(\sum_{i=1}^m x_i - 0.5\Big) $$
等价于权重与偏置: $$ w_i = 1, \quad b = -0.5 $$ 只要有一个 $x_i = 1$,就有 $\sum x_i \ge 1 \Rightarrow y = 1$。
✅ 含取反的 OR(有 k 个输入被取反)🔗
设某个子句为:
$$
(\underbrace{x_{i_1} \vee \dots \vee x_{i_s}}_{\text{正文字 } s \text{ 个}}
\vee
\underbrace{\neg x_{j_1} \vee \dots \vee \neg x_{j_k}}_{\text{负文字 } k \text{ 个}})
$$
则权重定义为:
$$
\begin{aligned}
w_i =
\begin{cases}
+1, & x_i \text{ 以正文字出现}
\\
-1, & x_i \text{ 以负文字出现(即 } \neg x_i)
\\
0, & x_i \text{ 不在该子句中}
\\
\end{cases}
\qquad
b = k - 0.5
\end{aligned}
$$
于是感知机为: $$ y = H!\Big(\sum_{\text{正}} x_i - \sum_{\text{负}} x_i + (k - 0.5)\Big) $$
解释:负文字“$\neg x$”满足时 $x=0$,通过“$-x$ + 常数偏置”实现逻辑。
2️⃣ 单个感知机实现 AND(n 输入)🔗
要所有输入都为 1 才输出 1: $$ y = H\Big(\sum_{i=1}^n x_i - (n - 0.5)\Big) $$
等价于: $$ w_i = 1, \quad b = -(n - 0.5) $$
✅ 小结🔗
| 功能 | 感知机表达式 | 权重设置 | 偏置 |
|---|---|---|---|
| OR(纯) | $H(\sum x_i - 0.5)$ | $w_i=1$ | $b=-0.5$ |
| OR(含取反) | $H(\sum_{\text{正}} x_i - \sum_{\text{负}} x_i + k - 0.5)$ | 正=+1,负=-1 | $b=k-0.5$ |
| AND | $H(\sum x_i - (n-0.5))$ | $w_i=1$ | $b=-(n-0.5)$ |
💡 提示:
- “−0.5” 的阈值是为了防止模糊临界点。
- 若激活函数定义为严格大于(>),阈值可改为 0 或 1。
- 这些权重方案是可直接用于实现 CNF 网络的基础模块。