关于强化学习小记

强化学习(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 等强化学习算法。

相关推荐
ice_junjun3 小时前
OpenCV Video 模块使用指南(Python 版)
人工智能·python·opencv
景联文科技4 小时前
景联文科技:以高质量数据标注推动人工智能领域创新与发展
人工智能·科技·数据标注
仙人掌_lz4 小时前
RAG(Retrieval-Augmented Generation)基建之PDF解析的“魔法”与“陷阱”
人工智能·深度学习·ai·pdf·rag
赛卡4 小时前
自动驾驶背后的数学:ReLU,Sigmoid, Leaky ReLU, PReLU,Swish等激活函数解析
人工智能·pytorch·python·神经网络·机器学习·数学建模·自动驾驶
訾博ZiBo4 小时前
AI日报 - 2025年3月25日
人工智能
小白的高手之路4 小时前
Pytorch中的数据加载
开发语言·人工智能·pytorch·python·深度学习·机器学习
Fansv5875 小时前
深度学习框架PyTorch——从入门到精通(6.2)自动微分机制
人工智能·pytorch·经验分享·python·深度学习·机器学习
墨绿色的摆渡人5 小时前
用 pytorch 从零开始创建大语言模型(六):对分类进行微调
人工智能·pytorch·python·深度学习·语言模型·embedding
猎人everest5 小时前
机器学习之概率论
人工智能·机器学习·概率论
豆芽8195 小时前
二项式分布(Binomial Distribution)
人工智能·python·机器学习·numpy·概率论