目录
- 0 引言
- 1 强化学习核心概念
-
- 1.1 基本框架:智能体与环境的交互
- 1.2 数学建模:马尔可夫决策过程(MDP)
- 2 核心公式与算法基础
-
- 2.1 价值函数与贝尔曼方程
-
- 2.1.1 贝尔曼期望方程
- 2.1.2 贝尔曼最优方程
- 2.2 基础算法分类
-
- 2.2.1 基于价值的方法(Value-based)
- 2.2.2 基于策略的方法(Policy-based)
- 2.2.3 演员 - 评论家(Actor-Critic)
- 3 从理论到实践:简单示例(基于 JAX)
-
- 3.1 环境与智能体定义
- 3.2 训练循环(类比策略迭代)
- 3.3 结果分析
- 4 强化学习的应用与挑战
-
- 4.1 典型应用场景
- 4.2 关键挑战
0 引言
在人工智能的广阔领域中,强化学习(Reinforcement Learning,RL)凭借其独特的 “试错学习” 模式,成为解决序贯决策问题的关键技术。从游戏 AI 战胜人类冠军,到机器人精准执行复杂任务,强化学习正不断拓展智能系统的边界。本文将从基础概念出发,结合数学建模与实际代码示例,介绍强化学习的基础入门级理论与实践。
1 强化学习核心概念
1.1 基本框架:智能体与环境的交互
强化学习的核心是 智能体(Agent)与环境(Environment) 的持续交互。智能体通过执行动作(Action)影响环境,环境则以状态(State)和奖励(Reward)反馈智能体,智能体的目标是学习最优策略(Policy),以最大化长期累积奖励。
- 智能体(Agent):决策的主体,如游戏中的 AI 角色、工业机器人控制器。
- 环境(Environment):智能体所处的外部场景,可抽象为状态集合、动作集合、状态转移规则与奖励规则。
- 状态(State, sss):描述环境某一时刻的特征,如游戏角色的位置坐标、机器人传感器数据。
- 动作(Action, aaa):智能体可执行的操作,如 “前进”“抓取”,需与环境状态适配。
- 奖励(Reward, rrr):环境对动作的即时反馈,引导智能体学习(如游戏得分、碰撞惩罚)。
- 策略(Policy, πππ):智能体的行为规则,定义状态到动作的映射(如π(a∣s)π(a∣s)π(a∣s)表示状态sss下选择动作aaa的概率)。
- 价值函数(Value Function):评估状态 / 动作的长期价值,包括:
- 状态价值函数Vπ(s)V_π(s)Vπ(s):策略πππ下,从状态sss出发的期望累积奖励。
- Vπ(s)=Eπ[Gt∣st=s]V_\pi(s) = \mathbb{E}_\pi\left[ G_t \mid s_t = s \right]Vπ(s)=Eπ[Gt∣st=s]
- 其中,回报GtG_tGt的定义为:Gt=∑k=0∞γkrt+1+kG_t = \sum_{k=0}^{\infty} \gamma^k r_{t+1+k}Gt=∑k=0∞γkrt+1+k
- 动作价值函数Qπ(s,a)Q_π(s,a)Qπ(s,a):策略πππ下,状态sss执行动作aaa后的期望累积奖励。
- Qπ(s,a)=Eπ[Gt∣st=s,at=a]Q_\pi(s,a) = \mathbb{E}_\pi\left[ G_t \mid s_t = s, a_t = a \right]Qπ(s,a)=Eπ[Gt∣st=s,at=a]
- 状态价值函数Vπ(s)V_π(s)Vπ(s):策略πππ下,从状态sss出发的期望累积奖励。
- 折扣因子(Discount Factor, γγγ):平衡即时与未来奖励的权重(0≤γ<10≤γ<10≤γ<1),γγγ越接近 1,越重视长期收益。
1.2 数学建模:马尔可夫决策过程(MDP)
强化学习的理论基石是马尔可夫决策过程(Markov Decision Process, MDP),用五元组(S,A,P,R,γ)(S,A,P,R,γ)(S,A,P,R,γ)描述:
- SSS:状态集合
- AAA:动作集合
- P(s′∣s,a)P(s^′∣s,a)P(s′∣s,a):状态转移概率(状态sss执行动作aaa后转移到s′s^′s′的概率)
- R(s,a,s′)R(s,a,s^′)R(s,a,s′):奖励函数(状态sss执行动作aaa转移到s′s^′s′的即时奖励)
- γγγ:折扣因子
马尔可夫性是关键假设:未来状态仅依赖当前状态与动作,与历史无关,简化了问题建模。
2 核心公式与算法基础
2.1 价值函数与贝尔曼方程
价值函数的递归关系由 贝尔曼方程 (Bellman Equation)刻画,分为期望方程(针对任意策略)与最优方程(针对最优策略)。
2.1.1 贝尔曼期望方程
- 状态价值函数
Vπ(s)=∑a∈Aπ(a∣s)[∑s′∈SP(s′∣s,a)(R(s,a,s′)+γVπ(s′))]V_\pi(s) = \sum_{a \in A} \pi(a|s) \left[ \sum_{s' \in S} P(s'|s,a) \left( R(s,a,s') + \gamma V_\pi(s') \right) \right]Vπ(s)=a∈A∑π(a∣s)[s′∈S∑P(s′∣s,a)(R(s,a,s′)+γVπ(s′))]
含义:状态sss的价值等于 “选择动作的概率 ×(即时奖励 + 折扣后下一状态价值的期望)”。
- 动作价值函数
Qπ(s,a)=∑s′∈SP(s′∣s,a)(R(s,a,s′)+γ∑a′∈Aπ(a′∣s′)Qπ(s′,a′))Q_\pi(s,a) = \sum_{s' \in S} P(s'|s,a) \left( R(s,a,s') + \gamma \sum_{a' \in A} \pi(a'|s') Q_\pi(s',a') \right)Qπ(s,a)=s′∈S∑P(s′∣s,a)(R(s,a,s′)+γa′∈A∑π(a′∣s′)Qπ(s′,a′))
含义:动作(s,a)(s,a)(s,a)的价值等于 “即时奖励 + 折扣后下一状态所有动作价值的期望”。
2.1.2 贝尔曼最优方程
当策略πππ为最优策略π∗π^∗π∗(最大化所有状态的长期奖励)时,价值函数满足:
最优状态价值:
V∗(s)=maxaQ∗(s,a)V^*(s) = \max_{a} Q^*(s,a)V∗(s)=amaxQ∗(s,a)最优动作价值:
Q∗(s,a)=∑s′∈SP(s′∣s,a)(R(s,a,s′)+γV∗(s′))Q^*(s,a) = \sum_{s' \in S} P(s'|s,a) \left( R(s,a,s') + \gamma V^*(s') \right)Q∗(s,a)=s′∈S∑P(s′∣s,a)(R(s,a,s′)+γV∗(s′))
核心逻辑:最优策略下,选择的动作需最大化后续长期价值。
2.2 基础算法分类
强化学习算法可按 “学习目标” 与 “环境模型依赖” 分类,典型方法如下:
2.2.1 基于价值的方法(Value-based)
目标:学习最优动作价值函数Q∗(s,a)Q^∗(s,a)Q∗(s,a),推导最优策略。
- Q-Learning(异策略)
更新公式:
Q(s,a)←Q(s,a)+α[r+γmaxa′Q(s′,a′)−Q(s,a)]Q(s,a) \leftarrow Q(s,a) + \alpha \left[ r + \gamma \max_{a'} Q(s',a') - Q(s,a) \right]Q(s,a)←Q(s,a)+α[r+γa′maxQ(s′,a′)−Q(s,a)]
特点:学习最优策略,与执行策略分离(异策略),适合探索环境。
- SARSA(同策略)
更新公式:
Q(s,a)←Q(s,a)+α[r+γQ(s′,a′)−Q(s,a)]Q(s,a) \leftarrow Q(s,a) + \alpha \left[ r + \gamma Q(s',a') - Q(s,a) \right]Q(s,a)←Q(s,a)+α[r+γQ(s′,a′)−Q(s,a)]
特点:依赖实际执行的下一个动作(同策略),学习与执行策略一致。
2.2.2 基于策略的方法(Policy-based)
目标:直接优化策略πθ(a∣s)π_θ(a∣s)πθ(a∣s)(用参数θθθ表示,如神经网络),最大化累积奖励。
- 策略梯度(Policy Gradient)
梯度公式:
∇θJ(θ)=Eπ[∇θlogπθ(a∣s)⋅Gt]\nabla_\theta J(\theta) = \mathbb{E}_\pi \left[ \nabla_\theta \log \pi_\theta(a|s) \cdot G_t \right]∇θJ(θ)=Eπ[∇θlogπθ(a∣s)⋅Gt]
特点:通过奖励引导策略更新,适合高维动作空间,但收敛稳定性较弱。
2.2.3 演员 - 评论家(Actor-Critic)
结合价值与策略方法:
- 演员(Actor):学习策略πθ(a∣s)π_θ(a∣s)πθ(a∣s),负责动作选择;
- 评论家(Critic):学习价值函数Vϕ(s)V_ϕ(s)Vϕ(s)或Qϕ(s,a)Q_ϕ(s,a)Qϕ(s,a),评估演员表现并提供梯度。
- 优势:比纯策略梯度稳定,比纯价值方法高效,典型算法如 A2C、A3C。
3 从理论到实践:简单示例(基于 JAX)
以下用线性回归场景演示强化学习思路,实际强化学习任务需适配环境交互流程。
3.1 环境与智能体定义
假设环境为线性系统y=3x−1+noisey=3x−1+noisey=3x−1+noise,智能体目标是学习参数θ=[w,b]θ=[w,b]θ=[w,b]拟合该关系(类比策略学习)。
import jax
import jax.numpy as jnp
import numpy as np
import matplotlib.pyplot as plt
# 生成数据(模拟环境)
xs = np.random.normal(size=(100,))
noise = np.random.normal(scale=0.1, size=(100,))
ys = xs * 3 - 1 + noise
# 智能体模型(线性策略)
def model(theta, x):
w, b = theta
return w * x + b
# 损失函数(奖励的反向,需最小化)
def loss_fn(theta, x, y):
prediction = model(theta, x)
return jnp.mean((prediction - y) ** 2)
# 策略更新(梯度下降,类比强化学习优化)
def update(theta, x, y, lr=0.1):
grad = jax.grad(loss_fn)(theta, x, y)
return theta - lr * grad
3.2 训练循环(类比策略迭代)
# 初始化参数(策略初始化)
theta = jnp.array([1.0, 1.0])
# 训练迭代(类比与环境交互学习)
loss_history = []
for i in range(100):
theta = update(theta, xs, ys)
current_loss = loss_fn(theta, xs, ys)
loss_history.append(current_loss)
# 结果可视化
plt.scatter(xs, ys, label='Data')
plt.plot(xs, model(theta, xs), color='red', label='Fitted Model')
plt.legend()
plt.show()
# 输出训练后参数
w, b = theta
print(f"Learned w: {w:.2f}, b: {b:.2f}")
3.3 结果分析
训练后参数接近w=3, b=-1,验证了通过 “优化策略(参数)以最小化损失(最大化奖励反向)” 的强化学习思路。实际强化学习任务中,环境交互更复杂(如状态转移、延迟奖励),但核心逻辑一致:通过与环境交互,优化策略以最大化长期累积奖励。
4 强化学习的应用与挑战
4.1 典型应用场景
- 游戏领域:AlphaGo(围棋)、OpenAI Five(DOTA2),通过强化学习实现超人类表现。
- 机器人控制:机械臂抓取、自动驾驶,学习复杂环境下的动作序列。
- 推荐系统:动态调整推荐策略,最大化用户长期留存与收益。
- 金融与资源调度:算法交易、数据中心能耗优化,平衡风险与收益。
4.2 关键挑战
- 探索与利用权衡:智能体需平衡 “探索新动作” 与 “利用已知高奖励动作”,常见方法如
ϵϵϵ- 贪婪、UCB。 - 高维状态 / 动作空间:传统方法难以处理图像、自然语言等高维输入,需结合深度学习(深度强化学习)。
- 延迟奖励:长期任务中,奖励反馈滞后,需设计有效价值函数或引入信用分配机制(如时序差分学习)。