强化学习(Reinforcement Learning, RL)详解
1. 什么是强化学习?
强化学习(Reinforcement Learning, RL)是一种机器学习方法,通过**智能体(Agent)在 环境(Environment)中不断尝试不同的动作(Action),并根据环境给予的奖励(Reward)**来学习最优策略(Policy),从而最大化长期回报(Return)。
强化学习的核心思想:试错学习(Trial and Error)+ 奖励驱动(Reward-driven)。
2. 强化学习的基本概念
强化学习主要由以下几个关键组成部分:
术语 | 解释 |
---|---|
智能体(Agent) | 需要学习策略并与环境交互的主体,例如机器人、游戏 AI。 |
环境(Environment) | 智能体所在的世界,负责反馈状态和奖励,例如游戏世界、物理环境。 |
状态(State, s) | 环境的当前情况,Agent 需要根据状态做决策。 |
动作(Action, a) | Agent 可执行的操作,例如移动方向、调整参数。 |
奖励(Reward, r) | 执行动作后获得的反馈,决定策略优化方向。 |
策略(Policy, π) | Agent 选择动作的策略,可表示为 a = π ( s ) a = \pi(s) a=π(s)。 |
回报(Return, G) | 累积的奖励,一般使用折扣因子计算: G t = ∑ k = 0 ∞ γ k r t + k G_t = \sum_{k=0}^{\infty} \gamma^k r_{t+k} Gt=∑k=0∞γkrt+k。 |
值函数(Value Function, V) | 预测在某状态下未来可能获得的回报。 |
动作值函数(Q 值函数, Q) | 预测在某状态执行某动作后可能获得的回报。 |
强化学习的目标是找到最优策略,使得长期回报最大化。
3. 强化学习的数学建模:马尔可夫决策过程(MDP)
强化学习可以用**马尔可夫决策过程(Markov Decision Process, MDP)**建模:
M D P = ( S , A , P , R , γ ) MDP = (S, A, P, R, \gamma) MDP=(S,A,P,R,γ)
- S S S:状态集合
- A A A:动作集合
- P ( s ′ ∣ s , a ) P(s'|s,a) P(s′∣s,a):状态转移概率,表示在状态 s s s 采取动作 a a a 后转移到状态 s ′ s' s′ 的概率。
- R ( s , a ) R(s,a) R(s,a):奖励函数,表示在状态 s s s 执行动作 a a a 后获得的即时奖励。
- γ \gamma γ:折扣因子( 0 ≤ γ ≤ 1 0 \leq \gamma \leq 1 0≤γ≤1),决定未来奖励的重要性。
MDP 假设:
未来状态 s ′ s' s′ 只依赖于当前状态 s s s 和动作 a a a,而与过去的状态无关,即满足马尔可夫性(Markov Property)。
4. 强化学习的主要方法
强化学习主要有三种方法:
4.1 价值迭代方法(Value-based)
- 通过学习状态值函数 V ( s ) V(s) V(s) 或 动作值函数 Q ( s , a ) Q(s,a) Q(s,a) 来决定策略。
- 代表算法:Q-learning、Deep Q-Network (DQN)。
Q-learning 更新公式:
Q ( s , a ) ← Q ( s , a ) + α ( r + γ max a ′ Q ( s ′ , a ′ ) − Q ( s , a ) ) Q(s,a) \leftarrow Q(s,a) + \alpha \Big( r + \gamma \max_{a'} Q(s', a') - Q(s,a) \Big) Q(s,a)←Q(s,a)+α(r+γa′maxQ(s′,a′)−Q(s,a))
- α \alpha α 是学习率,控制更新步长。
- max a ′ Q ( s ′ , a ′ ) \max_{a'} Q(s', a') maxa′Q(s′,a′) 代表下一个状态的最大 Q 值。
4.2 策略优化方法(Policy-based)
- 直接学习策略 π ( a ∣ s ) \pi(a|s) π(a∣s),不依赖 Q 值。
- 代表算法:REINFORCE,Proximal Policy Optimization (PPO)。
策略梯度(Policy Gradient)方法:
∇ J ( θ ) = E [ ∇ θ log π θ ( a ∣ s ) G t ] \nabla J(\theta) = \mathbb{E} \Big[ \nabla_\theta \log \pi_\theta(a|s) G_t \Big] ∇J(θ)=E[∇θlogπθ(a∣s)Gt]
- 通过优化 J ( θ ) J(\theta) J(θ) 使得策略 π θ \pi_\theta πθ 逐步改进。
4.3 Actor-Critic 方法
- 结合 Value-based 和 Policy-based 方法。
- Actor 负责更新策略 π ( a ∣ s ) \pi(a|s) π(a∣s)。
- Critic 负责评估策略的价值函数 V ( s ) V(s) V(s)。
- 代表算法:A2C(Advantage Actor-Critic)、A3C、DDPG(Deep Deterministic Policy Gradient)。
5. 强化学习的应用
5.1 游戏 AI
- AlphaGo(围棋 AI)
- OpenAI Five(Dota 2 AI)
- DeepMind's AlphaStar(星际争霸 AI)
5.2 机器人控制
- 机械臂学习抓取物体
- 自主驾驶
5.3 金融交易
- 通过 RL 进行股票交易策略优化
- 量化投资
5.4 医疗诊断
- AI 进行自动化诊疗决策
6. PyTorch 强化学习示例(DQN)
python
import torch
import torch.nn as nn
import torch.optim as optim
import numpy as np
import random
class DQN(nn.Module):
def __init__(self, state_dim, action_dim):
super(DQN, self).__init__()
self.fc = nn.Sequential(
nn.Linear(state_dim, 128),
nn.ReLU(),
nn.Linear(128, 128),
nn.ReLU(),
nn.Linear(128, action_dim)
)
def forward(self, x):
return self.fc(x)
# 训练超参数
learning_rate = 0.001
state_dim = 4 # 例如 CartPole 环境
action_dim = 2
# 初始化 DQN 网络和优化器
q_network = DQN(state_dim, action_dim)
optimizer = optim.Adam(q_network.parameters(), lr=learning_rate)
7. 总结
✅ 强化学习是一种通过奖励和试错学习最优策略的方法。
✅ MDP 是强化学习的数学基础,包括状态、动作、奖励等要素。
✅ 主要方法包括 Q-learning(基于值)、Policy Gradient(基于策略)和 Actor-Critic(结合两者)。
✅ 广泛应用于游戏 AI、机器人控制、金融交易等领域。
✅ PyTorch 可用于实现 DQN、PPO 等强化学习算法。