博文

目前显示的是 三月, 2026的博文

名词解释

  Embedding 的中文名字 它的标准中文翻译是 “嵌入” 或 “向量嵌入”。 在深度学习语境下,你可以把它理解为 “特征升维映射”。 形象比喻:就像把一个平面上的“点”(低维数据),嵌入到一个巨大的、多维的“果冻”里(高维空间)。在这个果冻里,原本孤立的点有了上下左右、前后等 128 个方向的联系,这让模型能通过计算向量之间的距离和角度,读懂数据背后的“深意”。 num_heads=4 是一个非常合理且平衡的设置,尤其是配合你目前的 EMBED_DIM = 128 和 RTX 3070 显卡。 在 Transformer 中, EMBED_DIM 必须能被 num_heads 整除。 $128 / 4 = 32$ 。 这意味着每个“头”拥有 32 维 的独立空间去寻找变量间的关系。32 维足够承载一个复杂的约束逻辑(比如:变量 $x_1$ 与 $x_5$ 是否属于同一个并集约束组)。 性能上的考量: RTX 3070 的优势 :多头计算在 GPU 上是 完全并行 的。增加头数通常不会显著增加训练时间,但会消耗更多显存。 对于只有 60 个变量的问题,4 个头已经足够覆盖问题的复杂性,而不会像 16 个头那样产生过多的“冗余信息”。 我们可以把它拆解为三个动作: 1. TSPModel(...) :搭建实验室 这就像是根据蓝图(类定义)组装一台精密的机器。 参数传递 :你把 embed_dim=128 和 num_heads=4 传进去。 内部发生的事 :模型开始在内存中创建成千上万个权重矩阵( $W_q, W_k, W_v$ 等)。此时,这些矩阵里的数字都是 随机生成 的。 黑箱初现 :这台机器现在空有 4 个头和 128 维的深度,但它还没见过任何数据,处于“无知”状态。 2. .to(device) :搬运到 RTX 3070 这是最关键的一步,也是你昨晚死磕环境的原因。 逻辑 :默认情况下,模型是创建在 CPU 和 系统内存 里的。 执行 : .to(device) (这里 device 是 "cuda" )会将这成千上万个权重矩阵,从你的内存一并搬运到 RTX 3070 的 8GB 显存 中。 意义 :只有模型在显存里,接下来的矩阵乘法才能调用显卡上的几千个 CUDA 核心。如果没有这一步,你的 3070 ...

Reinforce 是强化学习(RL)中最经典、最基础的算法之一

  你可以把它理解为强化学习家族里的“入门基石”。如果把强化学习比作一个大类(比如“球类运动”),那么 Reinforce 就是其中的“羽毛球”(规则简单,但非常核心)。 为了让你研究 drl_tsp.py 时更清晰,我们可以从以下三个维度来拆解它: 1. 强化学习的三个流派 强化学习主要分三条路,Reinforce 属于最直观的那条: 基于价值 (Value-based) :比如 Q-Learning。它像是在算账,计算每个动作值多少钱。 基于策略 (Policy-based) : 这就是 Reinforce 所在的流派。 它不计算动作的分数,而是直接学习“在什么情况下该做什么动作”的 概率 。 Actor-Critic :结合了上面两者。 2. Reinforce 算法的绰号:蒙特卡洛策略梯度 李宏毅老师在视频里讲 Transformer 是如何生成一个序列的,而 Reinforce 负责告诉这个 Transformer 生成得好不好。 蒙特卡洛(Monte Carlo) :意思就是“不撞南墙不回头”。它必须等 Transformer 把 60 个节点的路径全部选完,直到看到终点,才计算总奖励(Reward)。它不能像某些算法那样走一步算一步。 策略(Policy) :就是你的 Transformer 模型。 梯度(Gradient) :就是利用微积分让模型进化的方法。 Transformer 是目前最先进的强化学习架构吗? 这是一个非常有深度的问题。准确的回答是:Transformer 是目前处理“复杂序列决策”和“大规模组合优化”最先进的骨干网络(Backbone)。 在强化学习(RL)领域,架构的演进经历了三个阶段: 第一阶段:MLP(多层感知机) 特点:全连接层。 局限:它没有“眼光”,看不出变量之间的顺序和结构关系。处理 10 个变量还行,60 个就彻底乱了。 第二阶段:RNN / LSTM(循环神经网络) 特点:像人类读书一样,一个变量一个变量地看。 局限:它有“遗忘症”,看到第 60 个变量时,已经忘了第 1 个变量长啥样了。 第三阶段:Transformer(注意力机制) 为什么它最先进? 全局视野(Global Reception):李宏毅老师讲过,Self-Attention 允许第 60 个变量直接和第 1 个变量“对话”。在你...