Skip to content

Commit 20fcd72

Browse files
committed
Site updated: 2025-06-09 21:23:13
1 parent f6ee7d7 commit 20fcd72

14 files changed

Lines changed: 59 additions & 10 deletions

File tree

38.9 KB
Loading
83.6 KB
Loading

2025/05/28/Decision Transformer学习笔记/index.html

Lines changed: 14 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -28,8 +28,10 @@
2828
<meta property="og:locale" content="zh_CN">
2929
<meta property="og:image" content="https://runsstudio.github.io/2025/05/28/Decision%20Transformer%E5%AD%A6%E4%B9%A0%E7%AC%94%E8%AE%B0/image.png">
3030
<meta property="og:image" content="https://runsstudio.github.io/2025/05/28/Decision%20Transformer%E5%AD%A6%E4%B9%A0%E7%AC%94%E8%AE%B0/image-1.png">
31+
<meta property="og:image" content="https://runsstudio.github.io/2025/05/28/Decision%20Transformer%E5%AD%A6%E4%B9%A0%E7%AC%94%E8%AE%B0/1280X1280.PNG">
32+
<meta property="og:image" content="https://runsstudio.github.io/2025/05/28/Decision%20Transformer%E5%AD%A6%E4%B9%A0%E7%AC%94%E8%AE%B0/1280X1280-1.PNG">
3133
<meta property="article:published_time" content="2025-05-28T12:30:17.000Z">
32-
<meta property="article:modified_time" content="2025-06-04T13:35:01.844Z">
34+
<meta property="article:modified_time" content="2025-06-09T13:19:54.952Z">
3335
<meta property="article:tag" content="交通">
3436
<meta name="twitter:card" content="summary_large_image">
3537
<meta name="twitter:image" content="https://runsstudio.github.io/2025/05/28/Decision%20Transformer%E5%AD%A6%E4%B9%A0%E7%AC%94%E8%AE%B0/image.png">
@@ -225,7 +227,7 @@
225227
<span class="post-meta mr-2">
226228
<i class="iconfont icon-chart"></i>
227229

228-
873
230+
1.1k
229231

230232
</span>
231233

@@ -236,7 +238,7 @@
236238

237239

238240

239-
8 分钟
241+
10 分钟
240242

241243
</span>
242244

@@ -290,7 +292,15 @@ <h3 id="2-3-回报设计"><a href="#2-3-回报设计" class="headerlink" title="
290292
<h2 id="3-模型伪代码"><a href="#3-模型伪代码" class="headerlink" title="3. 模型伪代码"></a>3. 模型伪代码</h2><p><img src="/2025/05/28/Decision%20Transformer%E5%AD%A6%E4%B9%A0%E7%AC%94%E8%AE%B0/image-1.png" srcset="/img/loading.gif" lazyload alt="伪代码"></p>
291293
<p>模型伪代码如图所示,基本上和上图结构一致。首先R S A送入各自的embedding,然后进行stack操作(类似concat,可以理解把三张表按照合并列的方式拼接)。随后送入transformer模型中,得到隐状态(hidden_state),并根据隐状态进行动作选择,最终得到预测动作并执行。</p>
292294
<p>在评价回合执行动作后,获取剩余奖励,减去RTG,和S A拼接成token送入模型继续预测下一个动作。</p>
293-
<h2 id="4-实验部分"><a href="#4-实验部分" class="headerlink" title="4. 实验部分"></a>4. 实验部分</h2><p>(待补充)</p>
295+
<h2 id="4-实验部分"><a href="#4-实验部分" class="headerlink" title="4. 实验部分"></a>4. 实验部分</h2><p>由于DT的思路就是学习(s,a,r)的轨迹,很自然的想到,这和模仿学习非常相似,区别就在于dt还多加了一个rtg。</p>
296+
<ol>
297+
<li><p>模型和行为模仿之间的比较<br>Decision Transformer跟最好的%BC表现相当,表明在训练了整个数据集之后,它可以在特定的子集上选择更优的行为。这里测评的都是各种游戏,目标是获得更高的奖励分数。对比的是使用多少百分比轨迹训练的BC。<br><img src="/2025/05/28/Decision%20Transformer%E5%AD%A6%E4%B9%A0%E7%AC%94%E8%AE%B0/1280X1280.PNG" srcset="/img/loading.gif" lazyload alt="文章指出DT取得了与使用更多轨迹BC相似的结果"></p>
298+
</li>
299+
<li><p>使用更长上下文的好处<br>DT是以序列的方式进行输入,我们很容易想到,序列里只放一个元素也可以进行预测,所以文章还测试了序列中序列上下文长度对预测效果的影响。结论是采用更长的序列进行预测可以获得更好的奖励。</p>
300+
</li>
301+
</ol>
302+
<p><img src="/2025/05/28/Decision%20Transformer%E5%AD%A6%E4%B9%A0%E7%AC%94%E8%AE%B0/1280X1280-1.PNG" srcset="/img/loading.gif" lazyload alt="长上下文评测结果"></p>
303+
<p>其他实验目的是证明当中的回报有效,就不再仔细展开了。</p>
294304
<h2 id="5-参考文献"><a href="#5-参考文献" class="headerlink" title="5. 参考文献"></a>5. 参考文献</h2><p><a target="_blank" rel="noopener" href="https://zhuanlan.zhihu.com/p/501117104">https://zhuanlan.zhihu.com/p/501117104</a></p>
295305

296306

2025/05/28/TransformerLight学习笔记/index.html

Lines changed: 43 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -26,10 +26,20 @@
2626
<meta property="og:site_name" content="Run&#39;s Studio">
2727
<meta property="og:description" content="TransformerLight - 学习笔记1. 文章摘要交通信号控制 (TSC) 仍然是交通领域最重要和最具挑战性的研究问题之一。在线强化学习 (RL) 在 TSC 中取得了巨大成功,但由于过多的试错学习过程,在实际应用中的学习成本非常高。离线 RL 是一种很有前途的降低学习成本的方法,然而,离线强化学习主要面对数据分布偏移问题,这些问题仍然悬而未决。为此,在本文中,我们将交通控制表述为一个序">
2828
<meta property="og:locale" content="zh_CN">
29+
<meta property="og:image" content="https://runsstudio.github.io/2025/05/28/TransformerLight%E5%AD%A6%E4%B9%A0%E7%AC%94%E8%AE%B0/%E6%97%A0%E6%A0%87%E9%A2%98.png">
30+
<meta property="og:image" content="https://runsstudio.github.io/2025/05/28/TransformerLight%E5%AD%A6%E4%B9%A0%E7%AC%94%E8%AE%B0/%E6%97%A0%E6%A0%87%E9%A2%98-1.png">
31+
<meta property="og:image" content="https://runsstudio.github.io/2025/05/28/TransformerLight%E5%AD%A6%E4%B9%A0%E7%AC%94%E8%AE%B0/%E6%97%A0%E6%A0%87%E9%A2%98-2.png">
32+
<meta property="og:image" content="https://runsstudio.github.io/2025/05/28/TransformerLight%E5%AD%A6%E4%B9%A0%E7%AC%94%E8%AE%B0/%E6%97%A0%E6%A0%87%E9%A2%98-3.png">
33+
<meta property="og:image" content="https://runsstudio.github.io/2025/05/28/TransformerLight%E5%AD%A6%E4%B9%A0%E7%AC%94%E8%AE%B0/%E6%97%A0%E6%A0%87%E9%A2%98-4.png">
34+
<meta property="og:image" content="https://runsstudio.github.io/2025/05/28/TransformerLight%E5%AD%A6%E4%B9%A0%E7%AC%94%E8%AE%B0/%E6%97%A0%E6%A0%87%E9%A2%98-5.png">
35+
<meta property="og:image" content="https://runsstudio.github.io/2025/05/28/TransformerLight%E5%AD%A6%E4%B9%A0%E7%AC%94%E8%AE%B0/%E6%97%A0%E6%A0%87%E9%A2%98-6.png">
36+
<meta property="og:image" content="https://runsstudio.github.io/2025/05/28/TransformerLight%E5%AD%A6%E4%B9%A0%E7%AC%94%E8%AE%B0/%E6%97%A0%E6%A0%87%E9%A2%98-7.png">
37+
<meta property="og:image" content="https://runsstudio.github.io/2025/05/28/TransformerLight%E5%AD%A6%E4%B9%A0%E7%AC%94%E8%AE%B0/%E6%97%A0%E6%A0%87%E9%A2%98-8.png">
2938
<meta property="article:published_time" content="2025-05-28T12:30:45.000Z">
30-
<meta property="article:modified_time" content="2025-05-28T13:05:28.896Z">
39+
<meta property="article:modified_time" content="2025-06-09T13:22:02.241Z">
3140
<meta property="article:tag" content="交通">
3241
<meta name="twitter:card" content="summary_large_image">
42+
<meta name="twitter:image" content="https://runsstudio.github.io/2025/05/28/TransformerLight%E5%AD%A6%E4%B9%A0%E7%AC%94%E8%AE%B0/%E6%97%A0%E6%A0%87%E9%A2%98.png">
3343

3444

3545

@@ -222,7 +232,7 @@
222232
<span class="post-meta mr-2">
223233
<i class="iconfont icon-chart"></i>
224234

225-
399
235+
1.5k
226236

227237
</span>
228238

@@ -233,7 +243,7 @@
233243

234244

235245

236-
4 分钟
246+
13 分钟
237247

238248
</span>
239249

@@ -278,7 +288,36 @@ <h1 id="seo-header">TransformerLight - 学习笔记</h1>
278288
<h1 id="TransformerLight-学习笔记"><a href="#TransformerLight-学习笔记" class="headerlink" title="TransformerLight - 学习笔记"></a>TransformerLight - 学习笔记</h1><h2 id="1-文章摘要"><a href="#1-文章摘要" class="headerlink" title="1. 文章摘要"></a>1. 文章摘要</h2><p>交通信号控制 (TSC) 仍然是交通领域最重要和最具挑战性的研究问题之一。在线强化学习 (RL) 在 TSC 中取得了巨大成功,但由于过多的试错学习过程,在实际应用中的学习成本非常高。离线 RL 是一种很有前途的降低学习成本的方法,然而,离线强化学习主要面对数据分布偏移问题,这些问题仍然悬而未决。为此,在本文中,我们将交通控制表述为一个序列建模问题,其中包含由交通环境中的<strong>状态、动作和奖励</strong>描述的马尔可夫决策过程序列。从而引入了一种新的框架,即 TransformerLight,它的目的不是通过平均所有可能的回报来拟合值函数(过往的模型常用方法,神经网络用于拟合RL中的V值或Q值),而是使用门控 Transformer 产生最佳动作。此外,TransformerLight 的学习过程通过用动态的引起的门控Transformer(Gated Transformer)块替换残差连接而更加稳定。通过对离线数据集的数值实验,证明了TransformerLight模型(1)无需动态规划即可构建高性能自适应的信号控制模型(2)与BCQ、CQL等离线强化学习模型相比展现了更好的性能(3)相比传统的离线强化学习,性能更加稳定。</p>
279289
<p>论文:<a target="_blank" rel="noopener" href="https://dl.acm.org/doi/10.1145/3580305.3599530">https://dl.acm.org/doi/10.1145/3580305.3599530</a></p>
280290
<p>代码:<a target="_blank" rel="noopener" href="https://github.com/Smart-Trafficlab/TransformerLight">https://github.com/Smart-Trafficlab/TransformerLight</a></p>
281-
<h2 id="2-模型结构"><a href="#2-模型结构" class="headerlink" title="2. 模型结构"></a>2. 模型结构</h2>
291+
<h2 id="2-模型结构"><a href="#2-模型结构" class="headerlink" title="2. 模型结构"></a>2. 模型结构</h2><p><img src="/2025/05/28/TransformerLight%E5%AD%A6%E4%B9%A0%E7%AC%94%E8%AE%B0/%E6%97%A0%E6%A0%87%E9%A2%98.png" srcset="/img/loading.gif" lazyload alt="模型结构"></p>
292+
<ol>
293+
<li>模型状态动作奖励的定义<br>由于和DT一样都是离线强化学习模型,这里输入都是(s,a,r)一样的轨迹,区别在于输入的状态变成了由多个特征组成的交通状态。这些状态的特征包括:车辆数 (NV), 排队长度 (QL), 有效流向压力 (一般就是进出口道的车辆数相减EP), 行驶中的车辆数 (ERV), 交通流向压力 (TMP), 以及更多指标.同时,奖励𝑟𝑡 包括了排队长度、交通流向压力和平均行程时间(ATT)三个指标。动作则是在给定的相位集中{ABCD}中选择一个相位。<br>需要指出的是原始的Decision Transformer模型中使用的是return-to-go,也就是未来剩余的回报,作为奖励的指引。但是在交通信号控制任务上,奖励是无穷无尽的,奖励的获取不会像玩游戏一样具有终止条件。基于此,文章将模型输入的奖励改为直接优化算法的指标,也就是最小化平均行程时间。</li>
294+
</ol>
295+
<p><img src="/2025/05/28/TransformerLight%E5%AD%A6%E4%B9%A0%E7%AC%94%E8%AE%B0/%E6%97%A0%E6%A0%87%E9%A2%98-1.png" srcset="/img/loading.gif" lazyload alt="优化目标"></p>
296+
<ol start="2">
297+
<li>网络结构</li>
298+
</ol>
299+
<p>TransformerLight的模型网络结构如图所示,可以看到和Decision Transformer的模型结构是非常相似的,其唯一的区别在于将DT中的Transformer模型替换成了门控Transformer模块(Gated Transformer Module)。</p>
300+
<p><img src="/2025/05/28/TransformerLight%E5%AD%A6%E4%B9%A0%E7%AC%94%E8%AE%B0/%E6%97%A0%E6%A0%87%E9%A2%98-2.png" srcset="/img/loading.gif" lazyload alt="网络结构"></p>
301+
<p>文章对于Transformer模块的改进如图所示</p>
302+
<p><img src="/2025/05/28/TransformerLight%E5%AD%A6%E4%B9%A0%E7%AC%94%E8%AE%B0/%E6%97%A0%E6%A0%87%E9%A2%98-3.png" srcset="/img/loading.gif" lazyload alt="改进部分"></p>
303+
<p>将原Transformer中的add操作 替换成了gated操作。<br>其中,多头注意力层替换后公式是:</p>
304+
<p><img src="/2025/05/28/TransformerLight%E5%AD%A6%E4%B9%A0%E7%AC%94%E8%AE%B0/%E6%97%A0%E6%A0%87%E9%A2%98-4.png" srcset="/img/loading.gif" lazyload alt="门控多头注意力公式"></p>
305+
<p>X是输入的embedding,根据状态、动作、奖励token序列进行嵌入和位置编码后的矩阵<br>FFN层替换后的公式是:</p>
306+
<p><img src="/2025/05/28/TransformerLight%E5%AD%A6%E4%B9%A0%E7%AC%94%E8%AE%B0/%E6%97%A0%E6%A0%87%E9%A2%98-5.png" srcset="/img/loading.gif" lazyload alt="门控FFN层公式"></p>
307+
<p>这里对应的是模型中的FFN层,把多头注意力的输出隐向量Z经过FFN,再来和原来的张量进行门控运算。</p>
308+
<p>门控运算可以用下面的公式表示,这个公式是一种门控融合函数,常见于神经网络中用于动态融合两种信息(如向量、特征等)。核心思想是通过门控机制自适应调节两个输入的权重,从而实现控制信息的保留与融合。</p>
309+
<p><img src="/2025/05/28/TransformerLight%E5%AD%A6%E4%B9%A0%E7%AC%94%E8%AE%B0/%E6%97%A0%E6%A0%87%E9%A2%98-6.png" srcset="/img/loading.gif" lazyload alt="门控运算"></p>
310+
<p>其中o和r表示两个待融合的输入向量,σ通常是sigmoid函数(输出范围是0,1),用于生成门信号。<br>通过σ的值,可以决定两个信号o和r之间的信息保留程度。</p>
311+
<ol start="3">
312+
<li>伪代码<br>模型伪代码如下图所示,伪代码用红框标记的两行的位置就是代码改进的地方,其实也就是把原来应该 X+attn(X)的地方替换成了门控的计算方式。</li>
313+
</ol>
314+
<p><img src="/2025/05/28/TransformerLight%E5%AD%A6%E4%B9%A0%E7%AC%94%E8%AE%B0/%E6%97%A0%E6%A0%87%E9%A2%98-7.png" srcset="/img/loading.gif" lazyload alt="伪代码"></p>
315+
<p>文章指出,这么做的好处是:<br>(1) 改进的梯度流向:我们的 GT 中的门控机制可在反向传播期间实现更好的梯度流。<br>(2) 增强的表现力:门控机制为 GT 提供了额外的表现力,使其能够学习更丰富、更复杂的表示。<br>(3) 更好的噪声处理:我们的 GT 可以通过选择性地抑制不相关的信息来更好地处理嘈杂的输入数据</p>
316+
<p>文章还指出,使用序列决策对信号控制算法进行建模的方式,好处在于:<br>(1) 获得更好的决策结果:序列建模模型已经证明它们能够做出可能与当前离线 RL 方法相匹配或优于的决策。我们的 TransformerLight 还可以在 TSC 中实现 SOTA 结果。<br>(2) 为了稳定的训练过程:研究表明,在高方差 RL 设置中,transformers 的训练更稳定。此外,大量成熟的研究对 transformer 模型的稳定训练技术进行了研究。<br>(3) 避免 OOD 问题:离线 RL 的 OOD 问题仍然悬而未决,而 TransformerLight 避免了目标的正则化或保守性需求,因为没有必要使用复杂的目标函数进行优化。</p>
317+
<h1 id="3-实验部分"><a href="#3-实验部分" class="headerlink" title="3.实验部分"></a>3.实验部分</h1><p>对比模型:<br>BC(Behavior Cloning (BC): We employ Behavior Cloning (BC) to provide the performance of a pure imitative method.)纯模仿学习的方法<br>Offline RL Methods: We apply the latest offline RL method CQL [16], TD3+BC [8] , and BEAR [15] for comparison.<br>Transformer-based Methods: We use Decision Transformer [4] , Trajectory Transformer [14], and Algorithm Distillation [17] to train on our historical trajectory dataset for final results of ATT.</p>
318+
<p>实验评测的数据集:济南3×4路网、杭州4×4路网,纽约路网,对比在线和离线等多个模型。</p>
319+
<p><img src="/2025/05/28/TransformerLight%E5%AD%A6%E4%B9%A0%E7%AC%94%E8%AE%B0/%E6%97%A0%E6%A0%87%E9%A2%98-8.png" srcset="/img/loading.gif" lazyload alt="对比实验"></p>
320+
282321

283322
</div>
284323

2.95 KB
Loading
54 KB
Loading
27.1 KB
Loading
7.14 KB
Loading
3.11 KB
Loading
3.58 KB
Loading

0 commit comments

Comments
 (0)