一、CLIPS 符号主义专家系统
1.1 CLIPS 基础语法
CLIPS(C Language Integrated Production System)是一个基于产生式规则的专家系统开发工具,采用前向推理机制。
基本数据类型
CLIPS 有四种基本数据类型(primitive data type):
- 整数(Integer)
- 浮点数(Float)
- 符号(Symbol):不能包含空格,多个单词可以用短横线连接,如
multi-word-symbol - 字符串(String):可以包含空格,必须用双引号表示,如
"this is a string"
Symbol 和 String 的关键区别在于:Symbol 不能包含空格,而 String 可以包含空格且必须写在双引号中。
保留字
CLIPS 中有一些保留字用于定义模板、规则和事实操作,例如 deftemplate、defrule、assert、retract 等。
表达式格式
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)是对世界状态的描述,常见形式有两种:
-
有序事实(Ordered Fact):使用简单列表表示
(student-name John) (age 20) -
模板事实(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.5 RETE 算法与高效匹配
CLIPS 使用 RETE 算法实现高效模式匹配。RETE 使用网络结构保存部分匹配结果,避免每次事实变化后重新扫描所有事实与所有规则。
RETE 网络结构
RETE 网络通常包括:
- 根节点:所有事实从这里进入网络。
- α 节点:处理单个模式的匹配。
- β 节点:处理多个模式之间的连接(join)。
- 终端节点:对应某条规则的完整匹配结果。
工作原理
当一个事实进入系统时:
- 先通过 α 节点进行单模式匹配。
- 匹配成功的事实被挂接到相应节点。
- 在 β 节点中与其他已匹配事实进行组合匹配。
- 当某条规则的所有条件都满足时,该规则被激活。
RETE 算法的核心优势是增量式匹配。事实集合发生局部变化时,系统只需要更新受影响的匹配结果,而不必从零开始重新匹配全部规则。
1.6 规则编写优化原则
CLIPS 规则的条件部分通常按顺序匹配。为了减少中间结果集合的规模,应把约束更强、过滤能力更高的条件放在前面,把约束更宽松的条件放在后面。
这样可以尽早过滤掉不可能触发规则的事实,降低后续连接匹配的计算量。对于大型规则库,这种条件顺序会显著影响推理效率。
1.7 模块化设计
大型专家系统通常需要模块化设计,以减少规则之间的干扰,并便于维护。
三阶段故障诊断系统
设备故障诊断系统可以分为三个阶段:
- Detection(检测):根据传感器数据判断是否存在故障。
- Isolation(定位):确定故障发生的具体位置。
- 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 机器学习的三大类别
机器学习可以分为三类:
- 非监督学习(Unsupervised Learning)
- 训练数据没有标签。
- 目标是发现数据内部的结构或分布。
- 常见任务包括聚类、降维。
- 也称为知识发现(Knowledge Discovery)。
- 监督学习(Supervised Learning)
- 训练数据带有标签。
- 主要任务包括:
- 回归(Regression):输出连续值。
- 分类(Classification):输出离散标签。
- 强化学习(Reinforcement Learning)
- 智能体通过与环境交互学习最优策略。
- 学习目标不是预测标签,而是最大化长期累积回报。
2.2 强化学习的动机与迷宫例子
迷宫问题是理解强化学习的典型例子。把一只老鼠放入迷宫:
- 环境(Environment):迷宫。
- 智能体(Agent):老鼠。
- 动作(Action):向左、向右、向上、向下移动;某些位置可能因墙阻挡而不可执行。
- 状态(State):老鼠在迷宫中的位置。
- 奖励(Reward):
- 如果到达有奶酪的位置,获得即时奖励。
- 大多数普通位置没有奖励,奖励为零。
强化学习的目标是:在给定状态下选择动作,使整个交互过程带来最大的未来期望回报。
系统建模通常包括三部分:
- 状态集合 $S$:所有可能的状态。
- 动作集合 $A$:所有可以采取的行为。
- 奖励 $R$:环境给出的反馈信号。
2.3 强化学习与监督学习的区别
强化学习与监督学习的关键差异包括:
- 反馈性质不同
- 监督学习:每个样本有明确的正确答案。
- 强化学习:只有奖励信号,无法直接知道某一步的“标准答案”。
- 时序依赖不同
- 监督学习:样本通常被视为独立同分布。
- 强化学习:动作之间存在时序依赖,当前动作会影响未来状态。
- 反馈可能延迟
- 监督学习:预测后通常立刻能得到误差信号。
- 强化学习:奖励可能在许多步之后才出现。
强化学习的核心难点之一是信用分配问题(Credit Assignment Problem):当最终获得奖励时,如何判断之前哪些动作贡献较大、哪些动作应被惩罚。
例如,老鼠走了很多步才找到奶酪,最后的正奖励应如何分配给前面的每一步移动,就是典型的信用分配问题。
2.4 强化学习的基本框架
交互模型
1
2
3
4
Agent <---> Environment
| |
v v
Action --> State + Reward
交互过程:
- Agent 在状态 $s_t$ 对 environment 施加动作 $a_t$。
- Environment 转移到新状态 $s_{t+1}$,并返回奖励 $r_{t+1}$。
- Agent 根据新状态与奖励调整策略。
- 上述过程不断重复。
在迷宫例子中,老鼠在当前位置选择向左移动,环境返回新的位置和奖励信号。如果新位置有奶酪,则获得奖励;否则奖励可能为零。
策略
策略 $\pi$ 是强化学习要学习的核心对象。它定义为:给定状态后,动作的概率分布。
\[\pi(a|s) = P(a|s)\]策略概念来自博弈论。在许多决策问题中,最优行为不一定是确定地选择某一个动作,也可以是在若干动作之间形成概率分布。强化学习中的 policy 描述的正是在某个状态下选择各个动作的概率。
最优策略是指按照该策略选择动作时,能够使未来期望回报最大化。
2.5 强化学习的核心要素
强化学习系统通常由以下要素构成:
- 智能体(Agent):学习和决策的主体。
- 环境(Environment):智能体所处的外部世界。
- 状态(State, $s$):环境当前状态。
- 动作(Action, $a$):智能体可以执行的操作。
- 奖励(Reward, $r$):环境对动作的反馈。
- 策略(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)交替执行:
- 策略评估:计算当前策略的 $V^\pi$。
- 策略改进:基于价值函数得到更优策略 $\pi'$。
- 重复直到策略收敛。
价值迭代
价值迭代(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 具有以下特点:
- off-policy:行为策略和目标策略可以不同。
- 行为策略常用 $\epsilon$-greedy,用于兼顾探索与利用。
- 目标策略是 greedy,即总是假设未来选择 Q 值最大的动作。
- 在适当条件下,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 深度强化学习的核心思想
深度强化学习用神经网络把状态和动作表示为紧凑向量,并近似价值函数或策略函数。
关键技术包括:
- 状态表示:用神经网络将高维状态编码为 embedding。
- 动作表示:把动作空间也映射为可学习表示。
- 函数近似:
- 用神经网络近似 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 和强化学习看似属于两条不同技术路线,但它们都处理“如何让机器做决策”的问题。
- 符号主义系统依赖显式规则、事实匹配与逻辑推理,适合表达结构化专家知识,优点是可解释、可追踪、样本效率高。
- 强化学习系统依赖试错交互、奖励反馈与价值估计,适合处理规则难以完全写出的序贯决策问题,优点是能从环境反馈中学习策略。
符号主义在现代人工智能中仍然具有重要价值:
- 可解释性:规则明确,推理过程可追溯。
- 知识表示:适合表达结构化专家知识。
- 与神经网络结合:神经符号系统(Neuro-Symbolic AI)尝试结合符号推理和神经网络表征学习。
深度学习和强化学习擅长从数据与交互经验中学习复杂模式;符号主义擅长显式表达知识与推理结构。二者结合是构造更强智能系统的重要方向。