首页
常用链接
关于
Search
1
Pytorch DDP
2,429 阅读
2
Pytorch 常见问题
1,479 阅读
3
视频时序切分
1,273 阅读
4
2022年微信大数据比赛(多模态短视频分类)总结
991 阅读
5
中文场景下的CLIP图文预训练
972 阅读
分布式训练
AIGC
多模态理解
阅读
论文阅读
算法基础
C++
Python
LeetCode
Shell
Pytorch
Segmentation
其他
广告
购房/投资
职场经验复盘
广告基础知识
推荐算法
创意优选
默认分类
AI论文速读
AIGC论文
Search
标签搜索
AIGC
论文速读
人工智能
DiT
ai
视频生成
扩散模型
深度解读
专题调研
python
推理加速
图像编辑
多模态
图像生成
diffusion
transformer
Pandas
稀疏注意力
llm
蒸馏
Jefxiong
累计撰写
67
篇文章
累计收到
8
条评论
首页
栏目
分布式训练
AIGC
多模态理解
阅读
论文阅读
算法基础
C++
Python
LeetCode
Shell
Pytorch
Segmentation
其他
广告
购房/投资
职场经验复盘
广告基础知识
推荐算法
创意优选
默认分类
AI论文速读
AIGC论文
页面
常用链接
关于
搜索到
27
篇与
AIGC
的结果
2022-09-17
2022年微信大数据比赛(多模态短视频分类)总结
写在前面 今天(2022.09.17), 微信大数据比赛进行了现场决赛答辩。由于工作内容和比赛比较相关,所以一直有关注。简单总结下听完线上现场答辩直播后的一些感受。近年来随着短视频的发展,多模态视频分类任务变得越来越火,多模态分类算法方案从最开始的: 多模态特征提取后简单concat拼接的baseline方案,演进到目前主流采用在大规模数据下进行预训练方式,来充分利用无标注数据获取更好的特征表示和将不同模态特征对齐,参赛选手都是基于预训练+Finetune方式来做的,但答辩现场给我影响最深刻的就是,评委张正友老师谈到的: 选手针对赛题本身问题做的优化太少。我们在做算法优化的时候,应该优先去做哪些算法优化点, 我相信这也是算法工程师经常遇到的问题。本文主要围绕这个谈谈个人的想法,最后总结下比赛中多模态分类里的一些上分优化点。 从数据分析问题出发还是“无脑堆好模型”? 这道赛题的难点如果去做数据分析,我们大概率会发现是这些问题:1) 数据类别分布不均衡;2) ASR/OCR/Title文本数据存在噪声(识别不准确 + 标签党视频文本不匹配等等),直接做对视频/文本对比学习可能噪声大;3)ASR/OCR相比较于标题而言噪声更大,如何区分处理不同类型的文本;4)标签体系是层次的,包括一级分类和二级分类,做层次分类可能对比模型精度能够有提升 5)标注数据GT是有噪声的, 如何做带噪学习训练,和标签数据清洗等方面。6) 如何利用大量无标注数据。这类问题每个都能找到很多论文来解决,但到底最后能对最终的评测指标能有多少提升却很难准确预估。 比赛的第一名GDY的方案,最大的不同的地方是利用单流/双流等差异性足够大的模型做集成,最后再利用模型蒸馏的想法将未标注的数据集利用起来。想法其实也很简单,利用好而不同的模型集成和模型蒸馏也是教科书里面会涉及的知识点,但就是这拉开了和其他选手之间的比分差距。对于数据分析能表现出来的问题,没有在最终方案中体现出来。比如数据不均衡问题,第一名没有做特殊处理优化,只是简单地使用了训练数据类别重采样,和利用蒸馏得到的伪标签样本进行类别平衡。 所以,这就引发我思考: 我们在做算法优化的时候,应该优先去做哪些算法优化。基于数据分析问题出发,还是直接无脑把先各种最好的模型堆叠起来,去快速不断尝试刷新指标。如果基于数据分析到的问题来解决问题,我们可能会采取以下一些方案: 比如标注数据GT带噪,可能最无脑的方式是顾一大批人,来人工把数据智能清洗一遍(有钱好办事) 更高效一点的方式,是利用聚类算法,基于规则对数据进行清洗 偏学术的做法,基于带噪训练的框架, 选择对噪声更鲁邦的损失函数等 这些针对具体问题出发的解决方法和“选择一个更好的模型”,那个应该优先做?对于选手来说,在限定时间的比赛阶段来看,能够快速做模型迭代是很重要的。对在岗工程师而言,如果抓不住主要矛盾,而导致项目不能在deadline前完成也不好交差。 一些想法(欢迎留言讨论) 我觉得 数据分析 + 堆好模型两个都很重要,在不同的时期,需要给两者分配不同的权重 1.项目初期: 数据分析很重要,把事情做对而不是做最好。在工业界做算法开发,不像参加比赛,已经有人给我们准备好了训练和测试集。这些都需要我们自己构建(或外包标注团队),标注数据很可能有错标/缺失的问题,这个时候我们需要结合数据分析把数据做对,而不是疯狂堆好模型。不同的模型在有问题的数据上的测试结果可能就是随机数,不可信。 2.项目中期: 抓住主要矛盾,优先做最大投入产出比的事。 这个时候不能陷入到细节中,要有大局意识,找到投入产出比最大的方面进行优化。但如何找到主要矛盾也是门学问,我觉得主要依赖两点: 足够的经验积累和有效的数据分析。在比赛中,我们无法通过数据分析提前知道模型蒸馏是不是投入产出比最大的优化点,这部分只能试,但试的前提的有自己的insight,知道为什么试这个方案,这个方案预期能带来哪些增益,这就依赖于我们历史积累的经验和读过的论文来大致估计这部分的增益。数据分析也是项目中期需要特别关心的。包括混淆矩阵/PR指标/具体badcase归类等。 3.项目后期: 问题针对性优化,到这个时候已经基本满足业务需求了,基本是精益求精的时候,就更需要结合具体问题逐个击破(对于业务而言,这个时候再做任何模型优化,可能投入产出比并不大~) 多模态分类算法优化点总结 下面主要从数据处理、模型选取、优化tricks、模型集成等方面归纳总结下方案 1.数据处理: 视频抽帧在训练阶段随机采样,增加训练的多样性 文本可以采用分词而不是分字的方式,缓解文本长度过长问题,roberta-base-word-chinese-cluecorpussmall 2.模型选取: 模型选取,能选large就不选base,选择预训练数据集大和模型规模大的模型(clip-large) R2D2 参考BEIT3等 3.优化tricks防止过拟合: EMA模型平均,这个按经验一般有1%左右提升 FGM 文本对抗训练 Finetune时加预训练任务防止过拟合 RDrop: 一致性约束 4.模型集成: 好而不同,选择差异性大的好模型进行集成(单流&双流), 有利于模型蒸馏; 只用单个模型预测的伪标签,自己学自己,提升效果可能不理想 5.模型加速 TensorRT量化,可用选择对backbone模型进行量化,具体的分类模型在量化后的特征上进行训练,以保证精度不降的情况下提升模型推理效率 FasterTransformer Fp16推理 6.预训练任务选择 选手基本都是基于后验评测指标来综合考虑是否加mlm/mfm/vtm等预训练任务 参考链接 复赛结束后微信群内参赛选手讨论内容
2022年09月17日
991 阅读
1 评论
4 点赞
2022-02-03
Video Understanding Dataset
1. 视频理解数据集概览 2. 数据集详情介绍 SoccerNet HVU ICCV 2019, tag list THUMOS14 THUMOS Challenge 2014 训练集:UCF101,101种动作类别,共13320剪辑的视频片段;验证集:1010未剪辑视频,其中200个有时序标注(3007个行为段,包含20类行为);测试集:1574未剪辑视频,其中213个有时序标注(3358个行为段)。 ActivityNet CVPR2015 包含分类、检测任务,包含200个动作类别,20000多视频(训练10024+验证4926+测试5044)。 Charades 2016 主要包含9848个未剪辑的室内视频(训练7985+1863测试),包含157个类别及267不同的人物,每段视频大约30秒。 AVA 2018 包含430个15分钟电影剪辑片段及标注80类动作。有386,000个标记的片段,614,000个标记的边界框和81,000条人迹。 总共有158万个带有标签的动作,每个人经常有多个标签。 MovieNet ECCV2020 Moments-in-time ICCV2019 Opps CVPR2020 异常动作时间定位数据集 3. 参考文献 视频理解公开数据集
2022年02月03日
335 阅读
0 评论
0 点赞
2021-06-09
视频时序切分
将视频在时序维度(镜头 + 场景)进行理解, 相关公开数据集和benchmark:SoccerNet-v2、 Kinetics-GEBD、MovieNet ViTT-AACL2020 1. 镜头分割(Shot Boundray Segmentation) 镜头切分benchmark: ClipShots、TRECVID、SoccerNet-v2 1.1 TransNet 1.2 TransNet V2 1.3 DSBD 2. 场景分割(Scene Boundray Segmentation) 2.1 SceneSeg A Local-to-Global Approach to Multi-modal Movie Scene Segmentation [CVPR 2020] 论文简介:提出一个场景切分数据集MovieNet(380个电影),此外提出了一个局部到全局的场景切分算法 Github Code 算法整体流程: 镜头切分,公开的源代码采用了传统方法做镜头切分,可以考虑用深度学习方法做优化,如TransNet等 对每个镜头提取多个模态特征(动作、地点、语音等维度) 进行局部到全局的特征聚合,利用BNet(boundary Network)实现局部的特征融合 a. Clip-level: BNet由两个部分构成: 通过内积建模镜头之间(4个镜头)的差异,通过temporal conv + max pooling建模镜头之间的联系,二者concat b. Segment-level: 通过bi-LSTM实现序列到序列的功能,其中序列长度选取10(远小于镜头数目,为了减少内存消耗) c. global optimal grouping: 通过过动态规划,实现后处理优化(优点:考虑了所有镜头特征,考虑了长时的上下文依赖,缺点: 没有能够实现端到端的优化,与前面的模型时独立的), 具体细节参考StoryGraph 2.2 Shot Type Classification A Unified Framework for Shot Type Classification Based on Subject Centric Lens[ECCV2020] 镜头拍摄风格识别 Deep Relationship Analysis in Video with Multimodal Feature Fusion [ACM MM 2020] 多模态场景理解 2.3 自监督预训练 Shot Contrastive Self-Supervised Learning for Scene Boundary Detection [CVPR2021] Amazon BaSSL: Boundary-aware Self-supervised Learning for Video Scene Segmentation UBoCo : Unsupervised Boundary Contrastive Learning for Generic Event Boundary Detection Scene Consistency Representation Learning for Video Scene Segmentation 3. 事件分割(Event Segmentation) Generic Event Boundary Detection: A Benchmark for Event Segmentation 提出了一种新的边界切分定义,包括: 环境、物体、镜头发生变化。 A Benchmark for Multi-shot Temporal Event Localization Temporal Perceiver: A General Architecture for Arbitrary Boundary Detection Progressive Attention on Multi-Level Dense Difference Maps for Generic Event Boundary Detection
2021年06月09日
1,273 阅读
1 评论
0 点赞
1
2
3
粤ICP备2021042327号