强化学习Q-Learning、DQN和多智能体QMix算法

一、 Q-learning

Q-learning 是一种经典的**无模型(model-free)强化学习算法,基于时序差分(Temporal Difference, TD)**方法,通过更新 Q 值函数来学习最优策略。以下是 Q-learning 的更新公式及其详细解释。

1. Q-learning 的核心思想

Q-learning 的目标是学习一个 Q 值函数 Q(s, a) ,表示在状态 s 下执行动作 a 后,未来累积奖励的期望值。通过不断更新 Q 值函数,智能体可以找到最优策略。

Q-learning 的特点是:

  • 离策略(off-policy):更新时使用最大 Q 值(贪婪策略),但实际动作选择可以是探索性的(如epsilon-贪婪策略)。
  • 无模型:不需要知道环境的转移概率和奖励函数。

2. Q-learning 的更新公式

Q-learning 的更新公式如下:
Q(St​,At​)←Q(St​,At​)+α[rt+1​+γmaxa​Q(St+1​,a)−Q(St​,At​)]

公式解析:
  1. Q(s_t, a_t) :

    • 当前状态 s_t 和动作 a_t 的 Q 值。
  2. alpha :

    • 学习率(learning rate),控制更新步长,取值范围为 [0, 1] 。
    • 较大的alpha 表示更快的学习,但可能导致不稳定;较小的alpha 表示更稳定的学习,但收敛速度较慢。
  3. r_t+1:

  • 智能体在状态 s_t 执行动作 a_t 后获得的即时奖励。
  1. gamma :

    • 折扣因子(discount factor),取值范围为 [0, 1] 。
    • 用于权衡当前奖励和未来奖励的重要性。gamma 越接近 1,表示越重视未来奖励。
  2. maxa’} Q(s_t+1, a’) :

    • 下一状态 s_t+1} 的最大 Q 值,表示对未来奖励的估计。
    • 这是 Q-learning 的离策略特性体现,直接使用最大 Q 值更新当前 Q 值。
  3. r_t+1 + gammamax_a’ Q(s_t+1, a’) :

    • 目标 Q 值,表示对当前 Q 值的估计目标。
  4. r_t+1 +gamma max_a’ Q(s_t+1, a’) - Q(s_t, a_t) :

  • 时序差分误差(TD Error),表示目标 Q 值与当前 Q 值之间的差距。
  1. 更新公式
    • 通过将当前 Q 值向目标 Q 值调整,逐步优化 Q 值函数。

3. Q-learning 的算法流程

以下是 Q-learning 的伪代码:

# 初始化 Q 值表
Q = defaultdict(lambda: np.zeros(env.action_space.n))

# 超参数
alpha = 0.1  # 学习率
gamma = 0.99  # 折扣因子
epsilon = 0.1  # 探索率

# 训练循环
for episode in range(num_episodes):
    state = env.reset()  # 初始化状态
    done = False

    while not done:
        # 选择动作(epsilon-贪婪策略)
        if np.random.rand() < epsilon:
            action = env.action_space.sample()  # 随机探索
        else:
            action = np.argmax(Q[state])  # 选择最优动作

        # 执行动作,获取环境反馈
        next_state, reward, done, info = env.step(action)

        # Q-learning 更新
        td_target = reward + gamma * np.max(Q[next_state])
        td_error = td_target - Q[state][action]
        Q[state][action] += alpha * td_error

        # 更新状态
        state = next_state

4. Q-learning 的直观理解

  • 探索与利用
    • 通过 epsilon-贪婪策略,智能体在探索(随机动作)和利用(选择最优动作)之间平衡。
  • 离策略更新
    • 更新时使用最大 Q 值(贪婪策略),但实际动作选择可以是探索性的。
  • 逐步优化
    • 通过不断更新 Q 值函数,智能体逐步逼近最优策略。

5. 总结

Q-learning 的更新公式其核心是通过时序差分误差(TD Error)逐步优化 Q 值函数,最终找到最优策略。Q-learning 是一种简单而强大的算法,适用于离散状态和动作空间的问题。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值