Q-learning(自用)

一、 基础概念与矩阵维度

已知某强化学习环境的奖励矩阵 RRR 和采用标准方法初始化的Q矩阵 Q0Q_0Q0 如下:

Q0=0000000000000000000000000R=−111−1−11−1−111001−1−11−1−111−1100−1−1−1−1−1 Q_0 = \begin{bmatrix} 0 & 0 & 0 & 0 & 0 \\ 0 & 0 & 0 & 0 & 0 \\ 0 & 0 & 0 & 0 & 0 \\ 0 & 0 & 0 & 0 & 0 \\ 0 & 0 & 0 & 0 & 0 \end{bmatrix} \quad R = \begin{bmatrix} -1 & 1 & 1 & -1 & -1 \\ 1 & -1 & -1 & 1 & 100 \\ 1 & -1 & -1 & 1 & -1 \\ -1 & 1 & 1 & -1 & 100 \\ -1 & -1 & -1 & -1 & -1 \end{bmatrix} Q0= 0000000000000000000000000 R= −111−1−11−1−11−11−1−11−1−111−1−1−1100−1100−1

二、 Q值更新计算

计算参数与要求

  • 学习率 α=0.5\alpha = 0.5α=0.5,折扣因子 γ=0.8\gamma = 0.8γ=0.8
    Q(s,a)=R(s,a)+γ×max⁡a′Q(s′,a′)Q(s,a)←Q(s,a)+αR(s,a)+γmax⁡a′Q(s′,a′)−Q(s,a) \begin{aligned} Q(s, a) &= R(s, a) + \gamma \times \max_{a'} Q(s', a') \\0.3em Q(s,a) &\leftarrow Q(s,a) + \alpha \left R(s,a) + \\gamma \\max_{a'} Q(s',a') - Q(s,a) \\right \end{aligned} Q(s,a)Q(s,a)=R(s,a)+γ×a′maxQ(s′,a′)←Q(s,a)+αR(s,a)+γa′maxQ(s′,a′)−Q(s,a)
  • 仅针对 R(s,a)≠−1R(s,a) \neq -1R(s,a)=−1 的合法动作进行更新。
  • 来计算的时候从数学角度讲第1个式子的max部分相当于是对行取最大值

参考答案与逐步可视化解析

一、 基础概念与矩阵维度

1. 矩阵维度

两个矩阵均为 5行5列 (5×55 \times 55×5)。行代表当前状态 sss,列代表动作 aaa(即尝试转移到目标状态)。

2. 初始化与符号含义

  • Q0Q_0Q0 全零初始化:标准无偏初始化,表示智能体初始时对所有状态-动作对的价值一无所知,完全依赖环境反馈学习。
  • RRR 中 −1-1−1 的含义 :表示该状态转移为非法/不可达,更新时跳过这些位置。

⚠️ 重要说明 :在整个更新过程中,奖励矩阵 RRR 始终保持不变 。RRR 是环境的固有属性,不会随学习过程改变。以下可视化仅展示 QQQ 矩阵的逐步演化。

二、 Q值逐步更新与矩阵可视化求中的

📋 更新前初始状态

Q=0000000000000000000000000R=−111−1−11−1−111001−1−11−1−111−1100−1−1−1−1−1 Q = \begin{bmatrix} 0 & 0 & 0 & 0 & 0 \\ 0 & 0 & 0 & 0 & 0 \\ 0 & 0 & 0 & 0 & 0 \\ 0 & 0 & 0 & 0 & 0 \\ 0 & 0 & 0 & 0 & 0 \end{bmatrix} \quad R = \begin{bmatrix} -1 & 1 & 1 & -1 & -1 \\ 1 & -1 & -1 & 1 & 100 \\ 1 & -1 & -1 & 1 & -1 \\ -1 & 1 & 1 & -1 & 100 \\ -1 & -1 & -1 & -1 & -1 \end{bmatrix} Q= 0000000000000000000000000 R= −111−1−11−1−11−11−1−11−1−111−1−1−1100−1100−1


🔹 Step 1: 更新状态 1

初始状态是1

Q(s,a)=R(s,a)+γ×max⁡a′Q(s′,a′)Q(s,a)←Q(s,a)+αR(s,a)+γmax⁡a′Q(s′,a′)−Q(s,a) \begin{aligned} Q(s, a) &= R(s, a) + \gamma \times \max_{a'} Q(s', a') \\0.3em Q(s,a) &\leftarrow Q(s,a) + \alpha \left R(s,a) + \\gamma \\max_{a'} Q(s',a') - Q(s,a) \\right \end{aligned} Q(s,a)Q(s,a)=R(s,a)+γ×a′maxQ(s′,a′)←Q(s,a)+αR(s,a)+γa′maxQ(s′,a′)−Q(s,a)

合法动作:a=0,a=3,a=4a=0, a=3, a=4a=0,a=3,a=4

动作 计算过程 新Q值
1→01 \to 01→0 0+0.5×1+0.8×max⁡Q(0,:)−0=0.5×10 + 0.5 \times 1 + 0.8 \\times \\max Q(0,:) - 0 = 0.5 \times 10+0.5×1+0.8×maxQ(0,:)−0=0.5×1 0.5
1→31 \to 31→3 0+0.5×1+0.8×max⁡Q(3,:)−0=0.5×10 + 0.5 \times 1 + 0.8 \\times \\max Q(3,:) - 0 = 0.5 \times 10+0.5×1+0.8×maxQ(3,:)−0=0.5×1 0.5
1→41 \to 41→4 0+0.5×100+0.8×max⁡Q(4,:)−0=0.5×1000 + 0.5 \times 100 + 0.8 \\times \\max Q(4,:) - 0 = 0.5 \times 1000+0.5×100+0.8×maxQ(4,:)−0=0.5×100 50

📌 状态1更新完毕,max⁡Q(1,:)=50\max Q(1,:) = 50maxQ(1,:)=50

Step 1 后的 Q 矩阵:

Q=000000.5不可达不可达0.550000000000000000 Q = \begin{bmatrix} 0 & 0 & 0 & 0 & 0 \\ \mathbf{0.5} & 不可达& 不可达 & \mathbf{0.5} & \mathbf{50} \\ 0 & 0 & 0 & 0 & 0 \\ 0 & 0 & 0 & 0 & 0 \\ 0 & 0 & 0 & 0 & 0 \end{bmatrix} Q= 00.50000不可达0000不可达00000.5000050000


🔹 Step 2: 更新状态 2

合法动作:a=0,a=3a=0, a=3a=0,a=3

动作 计算过程 新Q值
2→02 \to 02→0 0+0.5×1+0.8×max⁡Q(0,:)−0=0.5×10 + 0.5 \times 1 + 0.8 \\times \\max Q(0,:) - 0 = 0.5 \times 10+0.5×1+0.8×maxQ(0,:)−0=0.5×1 0.5
2→32 \to 32→3 0+0.5×1+0.8×max⁡Q(3,:)−0=0.5×10 + 0.5 \times 1 + 0.8 \\times \\max Q(3,:) - 0 = 0.5 \times 10+0.5×1+0.8×maxQ(3,:)−0=0.5×1 0.5

📌 状态3尚未更新,max⁡Q(3,:)=0\max Q(3,:)=0maxQ(3,:)=0;状态2更新完毕,max⁡Q(2,:)=0.5\max Q(2,:)=0.5maxQ(2,:)=0.5

Step 2 后的 Q 矩阵:

Q=000000.5不可达不可达0.5500.5不可达不可达0.5000000播放来吃饭吧慢慢吃没事的时候过来我稍微吃吧那我以为是他来1顿饭可以做到的哇这可以啊哇这么多啊你看这个真不少你尝1个你先吃你尝1口第1次豆腐的味道这60块还吃不惯了还不如买肉吃去买的时候太累的话直接过了我自己也吃啊好甜这个芥末从阿姨家出来后我觉得我应该做点什么正好没有那种化妆我想1下拿1束花没事这不好意思这是深圳南山区人工最密度ThankyouThankyouThankyouThankyou00000 Q = \begin{bmatrix} 0 & 0 & 0 & 0 & 0 \\ 0.5 & 不可达 & 不可达 & 0.5 & 50 \\ \mathbf{0.5} & 不可达& 不可达& \mathbf{0.5} & 0 \\ 0 & 0 & 0 & 0 & 0 \\播放来吃饭吧慢慢吃没事的时候过来我稍微吃吧那我以为是他来1顿饭可以做到的哇这可以啊哇这么多啊你看这个真不少你尝1个你先吃你尝1口第1次豆腐的味道这60块还吃不惯了还不如买肉吃去买的时候太累的话直接过了我自己也吃啊好甜这个芥末从阿姨家出来后我觉得我应该做点什么正好没有那种化妆我想1下拿1束花没事这不好意思这是深圳南山区人工最密度Thank you Thank you Thank you Thank you 0 & 0 & 0 & 0 & 0 \end{bmatrix} Q= 00.50.50播放来吃饭吧慢慢吃没事的时候过来我稍微吃吧那我以为是他来1顿饭可以做到的哇这可以啊哇这么多啊你看这个真不少你尝1个你先吃你尝1口第1次豆腐的味道这60块还吃不惯了还不如买肉吃去买的时候太累的话直接过了我自己也吃啊好甜这个芥末从阿姨家出来后我觉得我应该做点什么正好没有那种化妆我想1下拿1束花没事这不好意思这是深圳南山区人工最密度ThankyouThankyouThankyouThankyou00不可达不可达000不可达不可达0000.50.500050000


🔹 Step 3: 更新状态 3 ⭐ 价值传播关键步

合法动作:a=1,a=2,a=4a=1, a=2, a=4a=1,a=2,a=4

动作 计算过程 新Q值
3→13 \to 13→1 0+0.5×1+0.8×50−0=0.5×410 + 0.5 \times 1 + 0.8 \\times \\mathbf{50} - 0 = 0.5 \times 410+0.5×1+0.8×50−0=0.5×41 20.5
3→23 \to 23→2 0+0.5×1+0.8×0.5−0=0.5×1.40 + 0.5 \times 1 + 0.8 \\times 0.5 - 0 = 0.5 \times 1.40+0.5×1+0.8×0.5−0=0.5×1.4 0.7
3→43 \to 43→4 0+0.5×100+0.8×0−0=0.5×1000 + 0.5 \times 100 + 0.8 \\times 0 - 0 = 0.5 \times 1000+0.5×100+0.8×0−0=0.5×100 50

📌 状态1已在Step 1更新,max⁡Q(1,:)=50\max Q(1,:)=50maxQ(1,:)=50 被吸收!状态3更新完毕,max⁡Q(3,:)=50\max Q(3,:)=50maxQ(3,:)=50

Step 3 后的 Q 矩阵:

Q=000000.5不可达不可达0.5500.5不可达不可达0.50不可达20.50.7不可达5000000 Q = \begin{bmatrix} 0 & 0 & 0 & 0 & 0 \\ 0.5 & 不可达 & 不可达 & 0.5 & 50 \\ 0.5 & 不可达 & 不可达 & 0.5 & 0 \\ 不可达 & \mathbf{20.5} & \mathbf{0.7} & 不可达 & \mathbf{50} \\ 0 & 0 & 0 & 0 & 0 \end{bmatrix} Q= 00.50.5不可达00不可达不可达20.500不可达不可达0.7000.50.5不可达00500500


##呢点数落市之我方正在占领地点a点已被敌方占领我刚正在这里c点播报1出攻占领地点我方确定获胜分数已经过半创造奇迹消灭了很多敌人继续打东方战赛占领了a点即将达成目标今天中午时间# 🔹 Step 4: 更新状态 4

所有 R(4,:)R(4,:)R(4,:) 均为 −1-1−1,无合法动作,跳过。Q矩阵不变。


🔹 Step 5: 更新状态 0 ⭐ 吸收已传播价值

合法动作:a=1,a=2a=1, a=2a=1,a=2

动作 计算过程 新Q值
0→10 \to 10→1 0+0.5×1+0.8×50−0=0.5×410 + 0.5 \times 1 + 0.8 \\times \\mathbf{50} - 0 = 0.5 \times 410+0.5×1+0.8×50−0=0.5×41 20.5
0→20 \to 20→2 0+0.5×1+0.8×0.5−0=0.5×1.40 + 0.5 \times 1 + 0.8 \\times 0.5 - 0 = 0.5 \times 1.40+0.5×1+0.8×0.5−0=0.5×1.4 0.7

📌 状态1的 max⁡=50\max=50max=50、状态2的 max⁡=0.5\max=0.5max=0.5 均已被吸收

Step 5 后的最终 Q₁ 矩阵:

状态 \ 动作 a=0 a=1 a=2 a=3 a=4
s=0 不可达 20.5 0.7 不可达 不可达
s=1 0.5 不可达 不可达 0.5 50
s=2 0.5 不可达 不可达 0.5 0
s=3 不可达 20.5 0.7 不可达 50
s=4 不可达 不可达 不可达 不可达 不可达

相关推荐
Python大数据分析@1 小时前
曝梁文锋称「一度不想维护C端用户,奈何赶不走」,DeepSeek真不需要C端用户吗?可能会有啥影响吗?
python
艾斯特_3 小时前
工作流与多Agent协作:LangGraph、MCP和A2A的应用分层
人工智能·python·ai
IT小盘3 小时前
04-大模型流式输出原理-SSE与Python实现
开发语言·网络·人工智能·python
我叫黑大帅3 小时前
add()和 __add__() 写法哪个更好呢?
后端·python·面试
不如语冰3 小时前
AI大模型入门-Python进阶-上下文管理与with语句
开发语言·数据结构·数据库·人工智能·pytorch·redis·python
柠檬味的Cat3 小时前
GEO优化系统哪个渠道商好
大数据·人工智能·python
韩师傅3 小时前
重生之我成为模型 第三篇 · 我从来只给可能性,答案是你们翻译的
深度学习·机器学习·计算机视觉
韩师傅3 小时前
重生之我成为模型 第二篇 · 看似千选一,其实每一分都有原理
深度学习·机器学习·计算机视觉
韩师傅3 小时前
重生之我成为模型 第一篇 · 原图我不吃的哈
深度学习·机器学习·计算机视觉