Progressive Attention Memory Network for Movie Story Question Answering心得体会

本文介绍了Progressive Attention Memory Network (PAMN)在电影故事问答中的应用,该模型解决了长视频中定位相关时间和多模态信息融合的挑战。PAMN包含渐进式注意力机制、动态模态融合和信念校正答案方案,通过在MovieQA和TVQA基准上的实验,验证了其有效性和先进性。

这周研读了一篇文章,题目是《Progressive Attention Memory Network for Movie Story Question Answering》,这篇文章发表于CVPR2019,发表机构是 Korea Advanced Institute of Science and Technology 和Samsung Research。文章链接如下: Progressive Attention Memory Network for Movie Story Question Answering
一、文章引入
人类具有先天的认知能力,可以从不同的感觉输入中推断出5W和1H的问题,这些问题涉及who,what,when,where,why以及how,在机器上复制这种能力一直是人类的追求。 近年来,关于问题回答(QA)的研究已成功地受益于深度神经网络,并显示出对textQA,imageQA,videoQA的显着改进。 本文考虑了电影故事QA ,旨在通过观察与时间对齐的视频和字幕后回答有关电影内容和故事情节的问题,来共同理解视觉和语言。 与VQA相比,电影故事质量检查在以下两个方面具有挑战性:(1)很难确定与问题相关的时间部分,因为电影通常长于一个小时;(2)在需要不同问题的地方同时具有视频和字幕 不同的方式来推断答案。
为了解决上述挑战,本文提出了一种针对电影故事QA的渐进式注意力存储网络(PAMN)。 PAMN包含三个主要功能: (1)渐进式注意力机制,用于精确定位所需的时间部分;(2)动态模态融合,以自适应地融合以问题为条件的模态;以及(3)信念校正答案方案,依次修正每个候选答案的预测分数。渐进式注意力机制利用问题和答案中的线索来修剪每个记忆的不相关的时间部分。在迭代地询问问题和答案以产生时间注意力时,会逐渐更新内存以累积提示,以找到用于回答问题的相关时间部分。与堆叠式注意力相比,渐进式注意力在单个框架中考虑了多个来源(例如Q和A)和多个目标(例如视频和字幕记忆)。动态模态融合通过自适应确定每种模态的贡献来汇总每个内存的输出。在当前问题的条件下,贡献是通过软注意力机制获得的。通过双线性运算融合多模态数据通常需要大量计算或大量参数。动态模态融合通过从不必要的模态中丢弃毫无价值的信息来有效地集成视频和字幕模态。信念校正答案方案依次校正每个候选答案的预测分数。当人类解决问题时,他们通常以迭代的方式阅读内容,提问和回答多次。这种观察是通过信念校正回答方案来建模的。与现有的采用单步回答方案的回答方案相比,本文所指的预测得分(logit)同样可能被初始化和相继更正。

计算每种模态的贡献中使用到的 Soft Attention:
传统的Attention Mechanism就是Soft Attention,即通过确定性的得分计算来得到attended之后的编码隐状态。Soft Attention是参数化的(Parameterization),因此可导,可以被嵌入到模型中去,直接训练。梯度可以经过Attention Mechanism模块,反向传播到模型其他部分。 也有称作TOP-down Attention。
二、文章精读
Figure 1. Illustration of the proposed PAMN
上图显示了

## 软件功能详细介绍 1. **文本片段管理**:可以添加、编辑、删除常用文本片段,方便快速调用 2. **分组管理**:支持创建多个分组,不同类型的文本片段可以分类存储 3. **热键绑定**:为每个文本片段绑定自定义热键,实现一键粘贴 4. **窗口置顶**:支持窗口置顶功能,方便在其他应用程序上直接使用 5. **自动隐藏**:可以设置自动隐藏,减少桌面占用空间 6. **数据持久化**:所有配置和文本片段会自动保存,下次启动时自动加载 ## 软件使用技巧说明 1. **快速添加文本**:在文本输入框中输入内容后,点击"添加内容"按钮即可快速添加 2. **批量管理**:可以同时编辑多个文本片段,提高管理效率 3. **热键冲突处理**:如果设置的热键与系统或其他软件冲突,会自动提示 4. **分组切换**:使用分组按钮可以快速切换不同类别的文本片段 5. **文本格式化**:支持在文本片段中使用换行符和制表符等格式 ## 软件操作方法指南 1. **启动软件**:双击"大飞哥软件自习室——快捷粘贴工具.exe"文件即可启动 2. **添加文本片段**: - 在主界面的文本输入框中输入要保存的内容 - 点击"添加内容"按钮 - 在弹出的对话框中设置热键和分组 - 点击"确定"保存 3. **使用热键粘贴**: - 确保软件处于运行状态 - 在需要粘贴的位置按下设置的热键 - 文本片段会自动粘贴到当前位置 4. **编辑文本片段**: - 选中要编辑的文本片段 - 点击"编辑"按钮 - 修改内容或热键设置 - 点击"确定"保存修改 5. **删除文本片段**: - 选中要删除的文本片段 - 点击"删除"按钮 - 在确认对话框中点击"确定"即可删除
在使用 Unity 的 Progressive Lightmapper 时,遇到“Material render job skipped out of system memory”错误通常表明系统内存不足以完成当前的光照烘焙任务。为了解决这一问题,可以采取以下措施: 1. **优化材质与纹理**:减少材质的复杂度,例如合并相似材质、降低纹理分辨率、使用压缩纹理格式等。这些操作可以显著降低内存占用[^1]。 2. **调整 Progressive Lightmapper 设置**:可以通过降低分辨率、减少采样数、关闭不必要的光照特性(如高动态范围、间接光照等)来减少内存需求[^1]。 3. **增加系统内存**:如果条件允许,可以考虑升级硬件,增加物理内存。此外,确保操作系统和 Unity 使用的是 64 位版本,以便能够访问更多的内存资源[^1]。 4. **分批次烘焙**:将场景划分为多个部分,逐个部分进行烘焙,而不是一次性烘焙整个场景。这种方法可以有效减少单次烘焙时的内存占用[^1]。 5. **使用 Lightmap Parameters**:通过调整 Lightmap Parameters,可以控制每个物体的光照烘焙设置。例如,对于不需要高精度光照的物体,可以降低其 Lightmap 分辨率或关闭间接光照[^1]。 6. **清理不必要的资源**:确保场景中没有未使用的资源或对象。这些资源可能会占用不必要的内存,并影响烘焙性能[^1]。 7. **使用 Lightmap Baking 的调试工具**:Unity 提供了多种调试工具,可以帮助识别内存瓶颈。例如,可以使用 Unity Profiler 来监控内存使用情况,并找出占用内存最多的资源[^1]。 ### 示例代码 以下是一个简单的脚本示例,用于动态调整材质的渲染状态,以减少内存占用: ```csharp using UnityEngine; public class MaterialOptimizer : MonoBehaviour { public Material[] materials; void Start() { foreach (Material material in materials) { // 降低材质的纹理分辨率 Texture mainTexture = material.mainTexture; if (mainTexture != null) { // 设置纹理为较低分辨率 // 注意:实际应用中可能需要重新导入纹理并调整其导入设置 Debug.Log("Optimizing texture: " + mainTexture.name); } // 关闭不必要的光照特性 material.DisableKeyword("_EMISSION"); material.DisableKeyword("_METALLICGLOSSMAP"); } } } ``` ### 相关问题 1. 如何优化 Unity 场景中的光照烘焙性能? 2. 有哪些常见的 Unity Progressive Lightmapper 错误及其解决方案? 3. 如何减少 Unity 场景中材质的内存占用? 4. 如何使用 Unity Profiler 监控内存使用情况? 5. 如何分批次烘焙 Unity 场景中的光照?
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值