【论文阅读笔记 + 思考 + 总结】MoMask: Generative Masked Modeling of 3D Human Motions

创新点:

  1. VQ-VAE 👉 Residual VQ-VAE,对每个 motion sequence 输出一组 base motion tokens 和 v 组 residual motion tokens
  2. bidirectional 的 Masked transformer 用来生成 base motion tokens
  3. Residual Transformer 对 residual motion tokens 进行建模

 

1. Residual VQ-VAE

VQ 0:就是和 T2M-GPT 一样的 codebook(T2M-GPT 的 VQ-VAE 只有这一级) 👉 base motion tokens

VQ 1:就是把 Encoder 的 output - VQ 0 codebook 的 embedding,对 residual(差值)的结果建立一个 codebook 👉 residual motion tokens

VQ V:(以此类推) 👉 residual motion tokens

decode 的时候,把每个层级的 token embedding 加起来,得到一个 embedding,送入 Decoder 里。

训练

这里和 T2M-GPT 的 VQ-VAE (下面这个公式)有一点区别:

T2M-GPT 的 loss 由三部分组成,对比 MoMask 里 RVQ 只有 T2M-GPT 里 VQ 的 commit loss,不包含 embed loss

MoMask 里 RVQ 的 b 是编码过后,codebook 里的 embedding;T2M-GPT 的 Z 是进入 codebook 前的 embedding

sg 里的是 codebook 里的 embedding

效果

这个是 T2M-GPT 里 VQ 的结果,FID 在 0.07 左右

这个是 MoMask 里 RVQ 的结果:

1. 不用 Residual(w/o RQ)就是单层级的 VQ(和 T2M-GPT 里 VQ 类似),FID 在 0.091 左右,比 T2M-GPT 里 VQ 稍微差一点(估计的 reconstruction loss 少了那一部分的原因?)

2. 用了多层级 motion tokens 后,也就是 with residual(MoMask)后,FID 是 0.019,提升蛮多。说明 residual 多层级 motion tokens 影响还蛮大的。

注意

作者不希望 residual motion tokens 削弱 base motion tokens 的表达能力,还是希望 base motion tokens 能存储尽可能多的信息。所以在训练的时候还提出了一个 Quantization Dropout 的策略,即 randomly disables the last 0 to V layers with probability q ∈ [0, 1] during training.

Implementation Details

q = 0.2;V = 5

 

2. Masked transformer

1. 随机替换掉序列中占比 mask ratio 这么多的 motion tokens,替换为 a special [MASK] token

2. 在给定 text embedding(用 CLIP 提取)和 the sequence after masking 的情况下,去预测 masked tokens

注意

训练时,mask ratio 是变化的,取值范围在 0-1.

训练过程中用了 BERT 的 remasking 策略:如果某个 token 要被 mask,那它有:(1)80% 的可能被替换为 [MASK] token;(2)10% 的可能被随机替换为其他 tokens;(3)10% 的可能不变。

预测

First,所有的 tokens 都是被 mask 的。给定 text embedding,预测所有 tokens.

Next,保留置信度大的 tokens,mask 住置信度小的 tokens,预测被 mask 的 tokens.

让 Masked transformer 预测 L 次(L = 10),得到最终的 base motion tokens

 

3. Residual transformer

结构和 Mask Transformer 类似,区别在 Residual transformer 有 V 个不同的 token embedding layers

训练时,随机选择一个层级 j 进行学习:该层级之前所有层级(0 到 j-1)的 tokens 会经过各自的 token embedding layers,得到对应的 embedding,然后相加,作为当前层级的 input token embedding。

那么,当前层级 j 的学习任务就为:给定(1)当前层级的 input token embedding、(2)text embedding,和 (3)层级 id,目标是去预测(predict)当前层级 j 的 residual motion tokens

注意:为了高效训练,第 j 个层级的 token predicting layers 和 第 j+1 个层级的 token embedding layers 共享参数。

整体推理流程

此外,他们还采用了 classifier-free guidance (CFG),即

在训练时,10% 的时候,不给 text embedding

推理时,推理两遍:一遍不给 text embedding,一遍给 text embedding。两遍的 final linear projection layer before softmax 的输出值按如下公式加和,得到最终的 logits.

 

limitations

  1. diversity 不高。
  2. 生成 motion 的时候,需要 motion 的序列长度。
  3. 面对这类 fast-changing root motions, such as spinning 的动作,生成还是会有一些问题(VQ 普遍存在的问题)。
### 生成式代理(Generative Agents)的概念及其在模拟人类行为方面的应用 #### 定义与背景 生成式代理是一种基于人工智能的技术框架,旨在通过复杂的多智能体系统(multi-agent systems)来模拟真实世界中的人类行为模式。这种技术的核心目标是创建能够表现出可信、动态且具有适应性的个体化行为的虚拟实体[^1]。 #### 关键特性 生成式代理的设计融入了多种高级功能模块,其中包括但不限于规划、记忆管理以及工具使用等方面的功能实现: - **规划(Planning)**: 智能体具备任务分解和自我反省的能力,这使得它们可以制定并调整短期与长期的行为策略。例如,在特定场景下,智能体会依据当前环境状态和个人历史数据重新安排每日活动计划[^5]。 - **记忆(Memory)**: 记忆机制对于维持连贯性和情境感知至关重要。它不仅存储过去发生的事件细节,还支持快速检索最相关的过往经历以指导当下决策过程。具体而言,采用最大内积搜索(MIPS)算法优化信息提取效率[^4]。 - **工具使用(Tool Use)**: 此外,这些代理还能有效运用外部资源或服务完成复杂操作——像调用自然语言处理API生成对话内容或者分析科学研究资料等案例展示了其灵活性。 #### 应用领域及效果评价 为了验证上述理论构想的实际可行性,研究者们开展了多项实验测试: - 技术层面考察单个独立运行时的表现质量;同时也关注多个相互作用下的整体生态系统稳定性. - 方法上采取了“采访”形式获取关于知识水平、行动逻辑等方面的反馈意见,并对比不同条件下(如限制访问某些核心组件)的效果差异. 结果显示,完整的架构配置显著提升了仿真精度,减少了诸如无关记忆干扰、不恰当措辞等问题的发生频率[^3]。 #### 实现流程概览 以下是构建此类系统的典型步骤说明(注意这里仅作概括介绍而非详尽指南): ```python def create_generative_agent(name, description, birth_location): agent = { 'name': name, 'description': description, 'location': birth_location, 'memory': [], 'tools': [] } def plan(): # Generate hourly schedule based on current date pass def execute_plan(): nearby_agents = get_nearby_agents(agent['location']) interact_with(nearby_agents) update_schedule() rank_memories_by_importance() return {'agent': agent, 'functions': [plan, execute_plan]} ``` 此代码片段示意如何初始化一个基础版的生成型代理对象,并定义了一些基本的操作函数用于后续扩展开发工作。 ---
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值