产生式与强化学习

从CLIPS规则系统到马尔可夫决策与时序差分学习

Posted by CloudingYu on June 12, 2026

一、CLIPS 符号主义专家系统

1.1 CLIPS 基础语法

CLIPS(C Language Integrated Production System)是一个基于产生式规则的专家系统开发工具,采用前向推理机制。

基本数据类型

CLIPS 有四种基本数据类型(primitive data type):

  1. 整数(Integer)
  2. 浮点数(Float)
  3. 符号(Symbol):不能包含空格,多个单词可以用短横线连接,如 multi-word-symbol
  4. 字符串(String):可以包含空格,必须用双引号表示,如 "this is a string"

Symbol 和 String 的关键区别在于:Symbol 不能包含空格,而 String 可以包含空格且必须写在双引号中。

保留字

CLIPS 中有一些保留字用于定义模板、规则和事实操作,例如 deftemplatedefruleassertretract 等。

表达式格式

CLIPS 使用前缀表达式(prefix notation):

  • 中缀表达式:a + b
  • 前缀表达式:(+ a b)

复杂表达式示例:

  • 中缀:(a + b) * c
  • 前缀:(* (+ a b) c)

判断表达式示例:

  • 中缀:x >= 0
  • 前缀:(>= x 0)

前缀语法虽然与常见数学书写方式不同,但它可以把操作符与参数组织成统一的树形结构,便于解释器解析和执行。

1.2 变量与模式匹配

单值变量

? 开头表示单值变量,如 ?x?name?value。变量可以在模式匹配中绑定事实中的具体字段,使规则能够匹配一类结构相同、取值不同的事实。

例子

(defrule find-person
   (person (name ?n) (age ?a))
   =>
   (printout t "Found person: " ?n " age " ?a crlf))

多值变量

$? 开头表示多值变量(multifield variable),可以匹配零个或多个值。

例子

(defrule process-list
   (list $?items)
   =>
   (printout t "List contains: " $?items crlf))

变量机制是 CLIPS 规则表达能力的重要来源。借助单值变量和多值变量,规则可以在结构化事实上完成较复杂的匹配与绑定。

1.3 事实与模板

事实定义

事实(Fact)是对世界状态的描述,常见形式有两种:

  1. 有序事实(Ordered Fact):使用简单列表表示

    (student-name John)
    (age 20)
    
  2. 模板事实(Template Fact):使用预先定义的结构化模板表示

模板定义

使用 deftemplate 定义结构化数据模板:

(deftemplate person
   (slot name (type SYMBOL))
   (slot age (type INTEGER))
   (slot occupation (type STRING)))

定义模板后,可以通过 assert 创建事实实例:

(assert (person (name John) (age 25) (occupation "Engineer")))

模板事实比有序事实更适合表达结构化对象,因为每个字段都有明确的槽位名称与类型约束。

1.4 规则与产生式系统

规则定义格式

(defrule rule-name
   "optional comment"
   pattern-1
   pattern-2
   ...
   pattern-n
   =>
   action-1
   action-2
   ...
   action-m)
  • => 前面是条件部分(LHS, Left Hand Side)
  • => 后面是动作部分(RHS, Right Hand Side)

规则执行机制

产生式系统采用前向推理(Forward Chaining):

  1. 模式匹配:将当前事实与所有规则的条件部分进行匹配。
  2. 冲突解决:如果多条规则都满足条件,使用冲突解决策略选择一条规则。
  3. 执行动作:执行被选中规则的动作部分,可能新增、删除或修改事实。
  4. 重复推理:基于更新后的工作记忆继续匹配,直到没有规则可以触发。

产生式系统可以理解为一种不断推进状态的推理机制:事实描述当前状态,规则描述状态满足某些条件时应采取的动作,动作又会改变事实集合并触发新的推理。

1.5 RETE 算法与高效匹配

CLIPS 使用 RETE 算法实现高效模式匹配。RETE 使用网络结构保存部分匹配结果,避免每次事实变化后重新扫描所有事实与所有规则。

RETE 网络结构

RETE 网络通常包括:

  • 根节点:所有事实从这里进入网络。
  • α 节点:处理单个模式的匹配。
  • β 节点:处理多个模式之间的连接(join)。
  • 终端节点:对应某条规则的完整匹配结果。

工作原理

当一个事实进入系统时:

  1. 先通过 α 节点进行单模式匹配。
  2. 匹配成功的事实被挂接到相应节点。
  3. 在 β 节点中与其他已匹配事实进行组合匹配。
  4. 当某条规则的所有条件都满足时,该规则被激活。

RETE 算法的核心优势是增量式匹配。事实集合发生局部变化时,系统只需要更新受影响的匹配结果,而不必从零开始重新匹配全部规则。

1.6 规则编写优化原则

CLIPS 规则的条件部分通常按顺序匹配。为了减少中间结果集合的规模,应把约束更强、过滤能力更高的条件放在前面,把约束更宽松的条件放在后面。

这样可以尽早过滤掉不可能触发规则的事实,降低后续连接匹配的计算量。对于大型规则库,这种条件顺序会显著影响推理效率。

1.7 模块化设计

大型专家系统通常需要模块化设计,以减少规则之间的干扰,并便于维护。

三阶段故障诊断系统

设备故障诊断系统可以分为三个阶段:

  1. Detection(检测):根据传感器数据判断是否存在故障。
  2. Isolation(定位):确定故障发生的具体位置。
  3. Recovery(恢复):尝试使设备恢复正常运行。

模块化机制

  • 不同阶段的规则和事实可以定义在不同模块中。
  • 系统进入某个模块时,只导入该模块相关的事实与规则。
  • 模块隔离可以减少不同阶段规则之间的冲突。
  • 模块化结构有利于多人协作开发与系统扩展。

1.8 实例:猜动物专家系统

猜动物系统可以用 CLIPS 表示为基于决策树的专家系统。

知识表示:用决策树(Decision Tree)表示动物分类知识。

  • 叶节点:结论,即具体动物名称。
  • 中间节点:问题,用于根据特征继续分类。

例如,第一个问题可以是“这个动物是不是温血的?”:

  • 如果回答 yes,则进入下一层问题。
  • 如果回答 no,则沿另一条分支继续判断或直接得到答案。

决策树通过二叉分支逐步缩小候选范围,最终确定动物类别。

规则示例

(defrule ask-question
   (node (id ?id) (type question) (text ?text))
   (current-node ?id)
   =>
   (printout t ?text " (yes/no): ")
   (bind ?answer (read))
   (if (eq ?answer yes)
      then (assert (current-node ?left-child))
      else (assert (current-node ?right-child))))

(defrule identify-animal
   (node (id ?id) (type animal) (name ?name))
   (current-node ?id)
   =>
   (printout t "The animal is: " ?name crlf))

这个例子体现了符号主义方法的基本路径:用规则和显式知识表示问题结构,再通过逻辑匹配与推理得到结论。


二、强化学习基础

2.1 机器学习的三大类别

机器学习可以分为三类:

  1. 非监督学习(Unsupervised Learning)
    • 训练数据没有标签。
    • 目标是发现数据内部的结构或分布。
    • 常见任务包括聚类、降维。
    • 也称为知识发现(Knowledge Discovery)。
  2. 监督学习(Supervised Learning)
    • 训练数据带有标签。
    • 主要任务包括:
      • 回归(Regression):输出连续值。
      • 分类(Classification):输出离散标签。
  3. 强化学习(Reinforcement Learning)
    • 智能体通过与环境交互学习最优策略。
    • 学习目标不是预测标签,而是最大化长期累积回报。

2.2 强化学习的动机与迷宫例子

迷宫问题是理解强化学习的典型例子。把一只老鼠放入迷宫:

  • 环境(Environment):迷宫。
  • 智能体(Agent):老鼠。
  • 动作(Action):向左、向右、向上、向下移动;某些位置可能因墙阻挡而不可执行。
  • 状态(State):老鼠在迷宫中的位置。
  • 奖励(Reward):
    • 如果到达有奶酪的位置,获得即时奖励。
    • 大多数普通位置没有奖励,奖励为零。

强化学习的目标是:在给定状态下选择动作,使整个交互过程带来最大的未来期望回报。

系统建模通常包括三部分:

  1. 状态集合 $S$:所有可能的状态。
  2. 动作集合 $A$:所有可以采取的行为。
  3. 奖励 $R$:环境给出的反馈信号。

2.3 强化学习与监督学习的区别

强化学习与监督学习的关键差异包括:

  1. 反馈性质不同
    • 监督学习:每个样本有明确的正确答案。
    • 强化学习:只有奖励信号,无法直接知道某一步的“标准答案”。
  2. 时序依赖不同
    • 监督学习:样本通常被视为独立同分布。
    • 强化学习:动作之间存在时序依赖,当前动作会影响未来状态。
  3. 反馈可能延迟
    • 监督学习:预测后通常立刻能得到误差信号。
    • 强化学习:奖励可能在许多步之后才出现。

强化学习的核心难点之一是信用分配问题(Credit Assignment Problem):当最终获得奖励时,如何判断之前哪些动作贡献较大、哪些动作应被惩罚。

例如,老鼠走了很多步才找到奶酪,最后的正奖励应如何分配给前面的每一步移动,就是典型的信用分配问题。

2.4 强化学习的基本框架

交互模型

1
2
3
4
Agent <---> Environment
  |           |
  v           v
Action --> State + Reward

交互过程

  1. Agent 在状态 $s_t$ 对 environment 施加动作 $a_t$。
  2. Environment 转移到新状态 $s_{t+1}$,并返回奖励 $r_{t+1}$。
  3. Agent 根据新状态与奖励调整策略。
  4. 上述过程不断重复。

在迷宫例子中,老鼠在当前位置选择向左移动,环境返回新的位置和奖励信号。如果新位置有奶酪,则获得奖励;否则奖励可能为零。

策略

策略 $\pi$ 是强化学习要学习的核心对象。它定义为:给定状态后,动作的概率分布。

\[\pi(a|s) = P(a|s)\]

策略概念来自博弈论。在许多决策问题中,最优行为不一定是确定地选择某一个动作,也可以是在若干动作之间形成概率分布。强化学习中的 policy 描述的正是在某个状态下选择各个动作的概率。

最优策略是指按照该策略选择动作时,能够使未来期望回报最大化。

2.5 强化学习的核心要素

强化学习系统通常由以下要素构成:

  1. 智能体(Agent):学习和决策的主体。
  2. 环境(Environment):智能体所处的外部世界。
  3. 状态(State, $s$):环境当前状态。
  4. 动作(Action, $a$):智能体可以执行的操作。
  5. 奖励(Reward, $r$):环境对动作的反馈。
  6. 策略(Policy, $\pi$):从状态到动作分布的映射。

交互过程可以写为:

\[s_t \xrightarrow{a_t} r_{t+1}, s_{t+1} \xrightarrow{a_{t+1}} r_{t+2}, s_{t+2} \rightarrow \cdots\]

智能体在状态 $s_t$ 选择动作 $a_t$,环境返回奖励 $r_{t+1}$ 和新状态 $s_{t+1}$。强化学习的目标是学习一个好策略,使长期累积奖励最大化。

2.6 回合性任务与持续性任务

强化学习任务可分为两类。

回合性任务

回合性任务(Episodic Tasks)有明确的终止状态,任务会在有限时间内结束。

典型例子:

  • 下棋:达到胜、负或和棋状态后结束。
  • 有限关卡制游戏:关卡完成或失败后结束。

持续性任务

持续性任务(Continuing Tasks)没有明确终止状态,系统持续运行。

典型例子:

  • 无尽模式游戏。
  • 长期运行的控制系统。
  • 持续服务的调度与资源管理系统。

不同任务类型会影响回报定义、折扣因子设计和算法更新方式。

2.7 马尔可夫决策过程

马尔可夫决策过程(Markov Decision Process, MDP)是强化学习的基本数学框架。

MDP 定义

一个 MDP 由五元组 $(S, A, P, R, \gamma)$ 定义:

  • $S$:状态空间。
  • $A$:动作空间。
  • $P$:状态转移概率 $P(s'|s,a)$。
  • $R$:奖励函数 $R(s,a,s')$。
  • $\gamma$:折扣因子,$\gamma \in [0,1]$。

马尔可夫性质

\[P(s_{t+1} | s_t, a_t, s_{t-1}, a_{t-1}, \ldots, s_0, a_0) = P(s_{t+1} | s_t, a_t)\]

马尔可夫性质意味着:当前状态 $s_t$ 已经包含所有与未来转移相关的信息,下一状态只依赖于当前状态和当前动作,而不依赖更早的历史。

这是一个较强假设,但在许多问题中可以作为合理近似。

2.8 回报与价值函数

回报定义

从时刻 $t$ 开始的累积折扣回报(Return)定义为:

\[G_t = r_{t+1} + \gamma r_{t+2} + \gamma^2 r_{t+3} + \cdots = \sum_{k=0}^{\infty} \gamma^k r_{t+k+1}\]

之所以从当前时刻之后计算回报,是因为过去奖励已经发生,当前决策只能影响未来收益。

折扣因子的意义

\[\gamma \in [0,1]\]
  • $\gamma = 0$:只关心即时奖励,行为较短视。
  • $\gamma \rightarrow 1$:更重视长期奖励,行为更远视。

折扣因子体现了未来收益的时间折扣。越远的奖励权重越低,既能表达现实中的时间价值,也能保证无限序列回报在很多情形下收敛。

状态价值函数

状态价值函数 $V^\pi(s)$ 表示在策略 $\pi$ 下,从状态 $s$ 开始的期望回报:

\[V^\pi(s) = \mathbb{E}_\pi[G_t | s_t = s] = \mathbb{E}_\pi\left[\sum_{k=0}^{\infty} \gamma^k r_{t+k+1} \bigg| s_t = s\right]\]

动作价值函数

动作价值函数(Q 函数)$Q^\pi(s,a)$ 表示在状态 $s$ 执行动作 $a$,之后遵循策略 $\pi$ 的期望回报:

\[Q^\pi(s,a) = \mathbb{E}_\pi[G_t | s_t = s, a_t = a]\]

状态价值与动作价值的关系

\[V^\pi(s) = \sum_{a \in A} \pi(a|s) Q^\pi(s,a)\]

如果已知所有状态-动作对的 $Q(s,a)$,就可以选择 Q 值最大的动作:

\[a^* = \arg\max_a Q(s,a)\]

因此,Q 函数直接连接“状态评估”和“动作选择”,是强化学习中非常重要的价值表示。

2.9 贝尔曼方程

贝尔曼方程将当前状态价值与下一状态价值联系起来,是强化学习的递归基础。

状态价值函数的贝尔曼方程

\[V^\pi(s) = \sum_a \pi(a|s) \sum_{s'} P(s'|s,a)[R(s,a,s') + \gamma V^\pi(s')]\]

这个方程把当前状态价值分解为两部分:

  • 即时奖励。
  • 下一状态价值的折扣期望。

动作价值函数的贝尔曼方程

\[Q^\pi(s,a) = \sum_{s'} P(s'|s,a)[R(s,a,s') + \gamma \sum_{a'} \pi(a'|s') Q^\pi(s',a')]\]

最优贝尔曼方程

最优状态价值函数:

\[V^*(s) = \max_a \sum_{s'} P(s'|s,a)[R(s,a,s') + \gamma V^*(s')]\]

最优动作价值函数:

\[Q^*(s,a) = \sum_{s'} P(s'|s,a)[R(s,a,s') + \gamma \max_{a'} Q^*(s',a')]\]

最优贝尔曼方程表达了一个核心思想:当前最优价值等于在当前可选动作中,选择“即时奖励 + 下一状态最优价值折扣期望”最大的结果。


三、强化学习算法

3.1 动态规划方法

当环境模型已知,即 $P$ 和 $R$ 已知时,可以使用动态规划求解。

策略评估

策略评估(Policy Evaluation)是在给定策略 $\pi$ 的情况下,计算其价值函数 $V^\pi$。

迭代更新公式为:

\[V_{k+1}(s) = \sum_a \pi(a|s) \sum_{s'} P(s'|s,a)[R(s,a,s') + \gamma V_k(s')]\]

策略改进

策略改进(Policy Improvement)根据当前价值函数选择更优动作:

\[\pi'(s) = \arg\max_a \sum_{s'} P(s'|s,a)[R(s,a,s') + \gamma V^\pi(s')]\]

策略迭代

策略迭代(Policy Iteration)交替执行:

  1. 策略评估:计算当前策略的 $V^\pi$。
  2. 策略改进:基于价值函数得到更优策略 $\pi'$。
  3. 重复直到策略收敛。

价值迭代

价值迭代(Value Iteration)直接迭代最优价值函数:

\[V_{k+1}(s) = \max_a \sum_{s'} P(s'|s,a)[R(s,a,s') + \gamma V_k(s')]\]

动态规划方法理论清晰,但它要求完整环境模型。在许多实际问题中,状态转移概率和奖励函数无法直接获得,因此需要从采样经验中学习。

3.2 蒙特卡洛方法

当环境模型未知时,可以通过采样学习价值函数。

基本思想

蒙特卡洛方法(Monte Carlo, MC)通过完整的回合(episode)采样,用实际回报估计价值函数。

对于每个状态 $s$:

\[V(s) \approx \frac{1}{N}\sum_{i=1}^{N} G_i(s)\]

其中 $G_i(s)$ 表示第 $i$ 次访问状态 $s$ 后获得的实际回报。

优缺点

优点

  • 不需要环境模型。
  • 不需要 bootstrap,即不依赖其他状态的估计。
  • 在样本足够多时可以得到无偏估计。

缺点

  • 必须等到完整回合结束后才能更新。
  • 不适用于没有终止状态的持续性任务。
  • 估计方差较大。

蒙特卡洛方法使用真实回报,但更新延迟较长。为了边交互边学习,可以引入时序差分方法。

3.3 时序差分学习

时序差分学习(Temporal Difference Learning, TD)结合了动态规划和蒙特卡洛的特点:不需要完整环境模型,也不必等到回合结束后再更新。

TD(0) 算法

TD(0) 更新公式为:

\[V(s_t) \leftarrow V(s_t) + \alpha [r_{t+1} + \gamma V(s_{t+1}) - V(s_t)]\]

其中:

  • $\alpha$:学习率。
  • $r_{t+1} + \gamma V(s_{t+1})$:TD 目标。
  • $r_{t+1} + \gamma V(s_{t+1}) - V(s_t)$:TD 误差(TD error)。

TD 误差

\[\delta_t = r_{t+1} + \gamma V(s_{t+1}) - V(s_t)\]

TD 误差衡量的是:即时奖励加下一状态价值的折扣估计,与当前状态价值估计之间的差距。

  • 若 $\delta_t > 0$,说明当前状态价值被低估。
  • 若 $\delta_t < 0$,说明当前状态价值被高估。

TD 与 MC 的比较

蒙特卡洛更新:

\[V(s_t) \leftarrow V(s_t) + \alpha [G_t - V(s_t)]\]

它使用完整实际回报 $G_t$,估计无偏但方差较高。

时序差分更新:

\[V(s_t) \leftarrow V(s_t) + \alpha [r_{t+1} + \gamma V(s_{t+1}) - V(s_t)]\]

它使用一步奖励和下一状态估计值,存在 bootstrap 带来的偏差,但方差较低,并且可以每走一步就更新。

3.4 Q-learning 算法

Q-learning 是经典强化学习算法之一,用于直接学习最优动作价值函数。

更新公式

\[Q(s_t,a_t) \leftarrow Q(s_t,a_t) + \alpha [r_{t+1} + \gamma \max_{a'} Q(s_{t+1},a') - Q(s_t,a_t)]\]

算法特点

Q-learning 具有以下特点:

  1. off-policy:行为策略和目标策略可以不同。
  2. 行为策略常用 $\epsilon$-greedy,用于兼顾探索与利用。
  3. 目标策略是 greedy,即总是假设未来选择 Q 值最大的动作。
  4. 在适当条件下,Q-learning 可以收敛到最优 Q 函数。

$\epsilon$-greedy 策略可以写为:

\[a_t = \begin{cases} \arg\max_a Q(s_t,a) & \text{with probability } 1-\epsilon \\ \text{random action} & \text{with probability } \epsilon \end{cases}\]

Q-learning 伪代码

1
2
3
4
5
6
7
8
9
Initialize Q(s,a) arbitrarily
For each episode:
    Initialize s
    For each step:
        Choose a from s using policy derived from Q (e.g., epsilon-greedy)
        Take action a, observe r, s'
        Q(s,a) <- Q(s,a) + alpha [r + gamma max_a' Q(s',a') - Q(s,a)]
        s <- s'
    Until s is terminal

Q-learning 更新公式中的 $\max_{a'}$ 表明,它学习的是目标状态下的最优动作价值,而不一定使用实际行为策略的下一步动作。

3.5 SARSA 算法

SARSA(State-Action-Reward-State-Action)是另一种重要的 TD 控制算法。

更新公式

\[Q(s_t,a_t) \leftarrow Q(s_t,a_t) + \alpha [r_{t+1} + \gamma Q(s_{t+1},a_{t+1}) - Q(s_t,a_t)]\]

与 Q-learning 的区别

  • SARSA:使用实际执行的 $a_{t+1}$ 更新,因此是 on-policy。
  • Q-learning:使用 $\max_{a'} Q(s_{t+1},a')$ 更新,因此是 off-policy。

SARSA 学习的是当前行为策略本身的价值;Q-learning 则在执行探索行为的同时,学习贪心目标策略的价值。

SARSA 伪代码

1
2
3
4
5
6
7
8
9
10
Initialize Q(s,a) arbitrarily
For each episode:
    Initialize s
    Choose a from s using policy derived from Q (e.g., epsilon-greedy)
    For each step:
        Take action a, observe r, s'
        Choose a' from s' using policy derived from Q
        Q(s,a) <- Q(s,a) + alpha [r + gamma Q(s',a') - Q(s,a)]
        s <- s', a <- a'
    Until s is terminal

3.6 n-step TD 方法

TD(0) 只向前看一步,蒙特卡洛方法则向前看到回合终点。n-step TD 位于二者之间。

向前看 n 步

TD(0):向前看 1 步

\[G_t^{(1)} = r_{t+1} + \gamma V(s_{t+1})\]

TD(n):向前看 n 步

\[G_t^{(n)} = r_{t+1} + \gamma r_{t+2} + \cdots + \gamma^{n-1}r_{t+n} + \gamma^n V(s_{t+n})\]

蒙特卡洛:向前看到终点

\[G_t^{(\infty)} = r_{t+1} + \gamma r_{t+2} + \cdots + \gamma^{T-t-1}r_T\]

n 的选择权衡

  • n 较小
    • 更新更快。
    • 方差较小。
    • 依赖 bootstrap,偏差较大。
  • n 较大
    • 更新较慢。
    • 方差较大。
    • 更接近真实回报,偏差较小。

n-step TD 用步数参数在“快速但有偏”和“慢速但接近无偏”之间折中。

3.7 资格迹

资格迹(Eligibility Traces)提供了一种统一框架,用来在不同 n-step 方法之间加权折中。

基本思想

如果向前看 1 步、2 步、n 步各有优缺点,就可以对不同步数的回报进行加权平均,从而得到更平滑的估计。

λ-return

\[G_t^\lambda = (1-\lambda)\sum_{n=1}^{\infty} \lambda^{n-1}G_t^{(n)}\]

其中 $\lambda \in [0,1]$ 是衰减参数:

  • $\lambda = 0$:退化为 TD(0)。
  • $\lambda = 1$:退化为蒙特卡洛方法。

TD(λ) 算法

使用资格迹 $e_t(s)$ 记录每个状态的“资格”:

\[e_t(s) = \begin{cases} \gamma\lambda e_{t-1}(s) + 1 & \text{if } s = s_t \\ \gamma\lambda e_{t-1}(s) & \text{otherwise} \end{cases}\]

然后用 TD 误差更新所有状态:

\[V(s) \leftarrow V(s) + \alpha \delta_t e_t(s)\]

其中:

\[\delta_t = r_{t+1} + \gamma V(s_{t+1}) - V(s_t)\]

资格迹回答的是信用分配问题:当前获得的 TD 误差应在多大程度上传播给过去访问过的状态。

  • 最近访问的状态资格高,应获得较大更新。
  • 较久之前访问的状态资格低,更新幅度随时间衰减。

四、深度强化学习简介

4.1 传统强化学习的挑战

当状态空间或动作空间很大时,传统表格方法(tabular method)无法处理。

主要问题包括:

  • 状态空间巨大,无法为每个状态单独存储价值。
  • 动作空间巨大,无法枚举所有动作。
  • 高维观测(如图像、语音、传感器流)难以直接用离散表格表示。

解决思路是使用深度学习方法进行函数近似。

4.2 深度强化学习的核心思想

深度强化学习用神经网络把状态和动作表示为紧凑向量,并近似价值函数或策略函数。

关键技术包括:

  1. 状态表示:用神经网络将高维状态编码为 embedding。
  2. 动作表示:把动作空间也映射为可学习表示。
  3. 函数近似
    • 用神经网络近似 Q 函数:$Q(s,a;\theta)$。
    • 用神经网络近似策略:$\pi(a|s;\theta)$。

这种方法可以处理巨大状态空间、连续状态空间和连续动作空间,并利用深度学习的表征学习能力。

4.3 深度 Q 网络

深度 Q 网络(Deep Q-Network, DQN)将 Q-learning 与深度神经网络结合:

\[Q(s,a;\theta) \approx Q^*(s,a)\]

其中 $\theta$ 是神经网络参数。

DQN 的关键技术包括:

  • 经验回放(Experience Replay):将交互样本存入缓冲区,训练时随机抽样,降低样本相关性。
  • 目标网络(Target Network):用较慢更新的网络计算 TD 目标,提高训练稳定性。
  • 高维输入处理:可以直接处理图像等复杂状态表示。

4.4 深度强化学习的应用

深度强化学习常见应用包括:

  • AlphaGo:结合深度学习、搜索与强化学习的围棋系统。
  • RLHF(Reinforcement Learning from Human Feedback):用于大语言模型对齐。
  • 机器人控制。
  • 游戏 AI。
  • 自动驾驶与连续控制。

强化学习的关键价值在于:它把“智能决策”建模为智能体与环境的交互过程,并通过奖励信号学习长期收益最大化的策略。


五、符号主义与强化学习的联系

CLIPS 和强化学习看似属于两条不同技术路线,但它们都处理“如何让机器做决策”的问题。

  • 符号主义系统依赖显式规则、事实匹配与逻辑推理,适合表达结构化专家知识,优点是可解释、可追踪、样本效率高。
  • 强化学习系统依赖试错交互、奖励反馈与价值估计,适合处理规则难以完全写出的序贯决策问题,优点是能从环境反馈中学习策略。

符号主义在现代人工智能中仍然具有重要价值:

  1. 可解释性:规则明确,推理过程可追溯。
  2. 知识表示:适合表达结构化专家知识。
  3. 与神经网络结合:神经符号系统(Neuro-Symbolic AI)尝试结合符号推理和神经网络表征学习。

深度学习和强化学习擅长从数据与交互经验中学习复杂模式;符号主义擅长显式表达知识与推理结构。二者结合是构造更强智能系统的重要方向。