Q-learning 算法学习

Q-learning是一种经典的无模型、基于价值的算法,它通过迭代更新状态-动作对的Q值,最终找到最优策略。

一 Q-learning的核心思想

1.1目标

学习一个状态-动作价值函数 $Q(s,a)$ ,表示在状态 s 下执行动作 a 并遵循最优策略后的最大累积奖励。

$Q(s, a)$ 的核心目标是为智能体(Agent)在复杂的动态环境中提供数据驱动的决策依据,使得它能够通过量化的方式评估每个动作的长期价值,进而逐步逼近最优策略

Q值像一张“价值地图”,指导每一步的最佳方向。

1.2核心特征

(1)离线策略(Off-policy):更新Q值时使用最大预期奖励(最优策略),而实际行动可能采用探索策略(如ε-greedy:贪婪策略)。

探索策略:智能体在训练过程中主动尝试未知或低价值状态-动作对的策略,目的是打破当前对环境的认知局限,发现潜在的更高回报路径。可以避免局部最优和应对非平稳环境。

ε-greedy(贪婪策略):以概率 $\epsilon$ 随机选择一个动作(探索),以概率 $1-\epsilon$ 选择当前最高Q值的动作(利用)。初始时 $\epsilon$ 较大,鼓励充分探索未知区域,随着训练逐步降低  $\epsilon$ ,后期倾向于利用学到的知识。

def epsilon_greedy(Q, state, epsilon):
    if np.random.rand() < epsilon:
        action = np.random.choice(possible_actions)  # 随机探索
    else:
        action = np.argmax(Q[state])  # 选择最优动作
    return action

(2)表格方法:适用于离散、有限的状态和动作空间,通过表格记录所有$Q(s,a)$

二 算法原理

贝尔曼方程与Q值更新

Q-learning的目标是使Q值收敛到贝尔曼最优方程:

$ Q^*(s, a) = \mathbb{E}\left[ r + \gamma \max_{a'} Q^*(s', a') \mid s, a \right] $

在每次交互中,通过时序差分(TD)学习逐步逼近最优Q值:

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

$\alpha$ :学习率(控制更新步长,通常0 < α ≤ 1)

$\gamma$ :折扣因子(权衡即时奖励与未来奖励,通常0 ≤ γ < 1)

新Q值=旧Q值+α⋅(TD目标−旧Q值) 

 TD目标结合了当前奖励和对未来奖励的最优估计,推动Q值向更优方向调整。

三 算法流程

输入:环境(状态集合 S,动作集合 A),学习率α,折扣率γ,探索率ϵ。

输出:最优Q值表  $Q(s,a)$

初始化Q表为全零或随机值
for episode in 1 to Max_Episodes:
    初始化状态s
    while 状态s非终止状态:
        # 选择动作(平衡探索与利用)
        if random() < ε:
            随机选择动作a
        else:
            a = argmax_a Q(s, a)
        
        # 执行动作,获得奖励和新状态
        s', r, done = env.step(a)
        
        # 更新Q值
        Q(s, a) = Q(s, a) + α * [r + γ * max(Q(s', a')) - Q(s, a)]
        
        # 进入下一状态
        s = s'
    
    # 可选:逐步降低ε(如ε = ε * 0.99)

四 参数设置

参数作用典型值/策略
学习率α控制Q值更新步长初期较高(如0.1~0.5),后期降低(如0.01)
折扣因子γ设定未来奖励的重要性接近1(长期考虑,如0.9~0.99)
探索率ε平衡探索与利用初始高值(如1.0),逐步衰减至0.01~0.1

收敛条件

(1)每个状态-动作对被无限次访问(充分覆盖)

 (2)学习率需满足: $ \sum \alpha = \infty, \sum \alpha^2 < \infty $

五 DQN(Deep Q-Network):Q-learning+深度学习

Q-learning的局限性:

传统Q-learning基于表格存储Q值,不适用于高维或连续状态空间(如视频游戏画面)的复杂任务。

深度神经网络的引入:

使用神经网络参数化Q值函数:$Q(s, a; \theta)$ ,输入状态 s ,输出所有动作的 Q 值。神经网络能够拟合复杂状态表示。

稳定性挑战:

直接更新Q网络会导致目标值频繁变化(Q值依赖自身参数),造成训练震荡。DQN通过以下两个关键技术解决这一问题:

(1)目标网络(Target Network):使用独立的目标网络计算目标Q值,参数定期同步,降低相关性。

(2)经验回放(Experience Replay):将交互数据存入经验池,随机采样训练,打破样本间相关性。

特性Q-learningDQN
Q值存储方式表格深度神经网络拟合
状态空间适应性仅限离散、低维可处理高维、连续状态(如图像输入)
稳定性增强技术经验回放 + 目标网络
应用场景简单环境(如网格世界)复杂环境(如Atari游戏、机器人控制)

六 应用场景 

(1)简单游戏AI(如棋牌类、迷宫导航)。

(2)库存管理(优化补货策略)。

(3)交通信号灯控制(平衡车辆通行效率)。

Q-learning作为强化学习的基石,通过贝尔曼最优方程不断优化动作价值,适用于小规模离散问题。尽管在复杂场景中被深度方法(如DQN)取代,理解Q-learning仍是掌握先进算法(如DQN、Actor-Critic)的重要前提。对于实际应用,需根据问题规模选择Q-learning或升级至深度版本。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值