| |
|
开发:
C++知识库
Java知识库
JavaScript
Python
PHP知识库
人工智能
区块链
大数据
移动开发
嵌入式
开发工具
数据结构与算法
开发测试
游戏开发
网络协议
系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程 数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁 |
-> 人工智能 -> seed+transformer+finetune+图文融合+VLP+Prompt Learning -> 正文阅读 |
|
[人工智能]seed+transformer+finetune+图文融合+VLP+Prompt Learning |
1.Seed在神经网络中,参数默认是进行随机初始化的。不同的初始化参数往往会导致不同的结果,如果不设置的话每次训练时的初始化都是随机的,导致结果不确定。当得到比较好的结果时我们通常希望这个结果是可以复现的,如果设置初始化,则每次初始化都是固定的,在pytorch中,通过设置随机数种子也可以达到这么目的。 #固定随机种子 args.seed=SEED(SEED之前已经设置初值,如31)
从每堆种子里选出来的数都是不会变的,从不同的堆里选随机种子每次都不一样,若想每次都能得到相同的随机数,每次产生随机数之前,都需要调用一次seed()。 个人小结:
参考 2.Transfomer注意力机制考虑随意线索 Transformer是一个纯使用注意力的编码-解码器,类似Seq2Seq 图像做Transfomer可以吗?->图像标注与监督问题 图片转token PS:VAE即Variational Autoencoders,是一种去压缩数据抽取核心特征的技巧,可以将复杂高维度的数据简化。Autoencoders通常由编码器和解码器两部分组成。Encoder一般就是几层神经网络(可以是全连接或者是卷积)组成的,它负责压缩输入数据,获得输入数据紧凑低维度的表达形式,我们一般把它的结果称为bottleneck; 这个网络的最后步骤就是比较重构后的输入与原始输入的区别,计算reconstruction loss用于训练。 VAE 与 autoencoder 的区别在于,autoencoder 的重构目标是固定的结果向量本身,而 VAE的目标则是输入的分布状况。 VAE 的loss通常由两部分组成: z = μ + σ ⊙ ε, ε ~ Normal(0,1) 这样就可以计算μ和σ的梯度,epsilon的值我们不需要在意, 把它固定看成正态分布就可以了。 3.Finetune微调指导事项 2.使用较小的学习率来训练网络。由于我们预计预先训练的权重相对于随机初始化的权重已经相当不错,我们不想过快地扭曲它们太多。通常的做法是使初始学习率比用于从头开始训练(Training from scratch )的初始学习率小10倍。 3.如果数据集数量过少,我们进来只训练最后一-层 ,如果数据集数量中等,冻结预训练网络的前几层的权重也是一种常见做法。这是因为前几个图层捕捉了与我们的新问题相关的通用特征,如曲线和边。我们希望保持这些权重不变。相反,我们会让网络专注于学习后续深层中特定于数据集的特征。 不同数据集下使用微调 数据集2 -数据量少,数据相似度低.在这种情况下,我们可以冻结预训练模型的初始层(比如k层),并再次训练剩余的( n-k )层。由于新数据集的相似度较低,因此根据新数据集对较高层进行重新训练具有重要意义。 数据集3 -数据量大,数据相似度低-在这种情况下,由于我们有一个大的数据集 ,我们的神经网络训练将会很有效。但是,由于我们的数据与用于训练我们的预训练模型的数据相比有很大不同。使用预训练模型进行的预测不会有效。因此,最好根据你的数据从头开始训练神经网络( Training from scatch )。 数据集4 -数据量大,数据相似度高-这是理想情况。在这种情况下,预训练模型应该是最有效的。使用模型的最好方法是保留模型的体系结构和模型的初始权重。然后,我们可以使用在预先训练的模型中的权重来重新训练该模型 4.如何评价FAIR最新研究ViT-based Mask R-CNN? 来自知乎5.图文融合的趋势,来自知乎 王宁的回复(1)多模态任务主要分为Align和Fuse两大派系。也有称为light fusion和heavy fusion (2)先给结论,我个人推荐ALBEF和BLIP,原因两点:端到端模型,单塔和双塔统一。 趋势是端到端训练(比如CVPR 2021的oral论文SOHO [7]),另外便是单塔和双塔模型的统一。在上一个回答中我感觉先做好双塔模型的对齐,再做好单塔的特征融合可能是一种趋势。不久后,我就看到这篇"align before fuse" [10],不禁感慨大佬做得真早。论文的主要思想就是利用双塔结构,visual encoder+text encoder(BERT前6层)使用contrastive loss进行对齐,然后再利用BERT的后6层初始化一个单塔模型,进行多模态信息融合,因此该算法可以以双塔形式快速地img-text检索,上面的单塔模型可以做各种VL任务如captioning和VQA。最近这位大佬继续发力,扩展出了BLIP算法 [11]。贴上流程图: 视觉部分是ViT模型, 可以端到端训练。text encoder部分是一个BERT模型,作者巧妙地设计了一个局部模块共享和非共享的策略。当不插入cross-attention模块时,这个BERT模型就充当纯粹的text encoder,因而可以和ViT分支组合成双塔模型,也就是说,上图的前两个分支可组合成一个CLIP的结构。当插入cross-attention模块后,BERT模型就可以以一种相对heavy fusion的方式融合图像和文本特征,可以实现生成等任务,比如image captioning。作者多种任务联合训练,并使用不同的special token来区分不同任务。 6.VLPVLP模型的预训练任务可以分为两类:图像-文本对比学习任务和基于语言建模任务 E2E-VLP【目标检测和图像字幕生成,自然语言视觉推理、跨模态检索】Before:主要采用两步训练过程,即首先使用预训练的目标检测器提取基于区域的视觉特征,然后将图像表示和文本嵌入串联起来作为Transformer的输入进行训练 。 Disadvantage:视觉表示泛化能力弱【目标检测知识受限,限制模型性能 】、以及二阶段pipeline计算效率低下【目标检测提取区域特征非常耗时额外约束模型】 E2E-VLP可以灵活地应用于基于编码器模块的视觉语言理解任务 和基于编码器-解码器模块的视觉语言生成任务 。 图像表示 跨模态的编码器预训练 视觉增强解码器 Joint Training:用所有编码器和解码器的预训练任务(即掩蔽语言建模、图文匹配、目标检测、图像字幕)联合对E2E-VLP进行预训练,最小化以下四个损失函数。 优点: 异议的点:
FILIP【细粒度交互式语言-图像预训练】Before:要不然是通过每个模态全局相似度(ROI感兴趣区域)对跨模态交互建模,but缺乏充足信息;或者使用基于视觉和文本token的交叉/自注意力对跨模态(细粒度)交互建模。然而,交叉/自注意力在训练和推理过程中效率低下。 也就是单双塔模型,双塔交互程度低,模型参数集中在各模态编码器中,Efficent,灵活部署在下游任务上,不过是全局特征(整句话和图)对齐。单塔细粒度对齐带来笨重低效。 在本文中,引入一种大规模细粒度交互语言-图像预训练,灵活且高效,通过一种跨模态后交互机制实现更加细粒度的对齐,该机制使用图像patch和文本token之间token最大相似度指导对比目标->来自ColBert。(类似CLIP相似度矩阵,十个文本promt,zeroshot predict) SOHO和SimVLM,试图通过视觉字典或PrefixLM消除这目标检测器可扩展性较低这一负担。 遵循双流方案保证灵活且高效推理的同时,进一步提出了一种新的多模态交互机制用于捕捉细粒度表示。 ImageEncoder:ViT;TextEncoder:根据CLIP使用49408大小的小写Byte Pair Encoding,BPE,序列以[BOS]开始,以[EOS]结束。和GPT2相同,在word embedding层之后,token嵌入被送到仅解码器的Transformer模型中。在图像和文本编码器之上,文本token和视觉token的表示线性投影到多模态公共(语义)空间,并分别进行L2归一化。 细粒度对比学习:效果比预测表征学习好,图文对正样本,其余负样本 Efficient Trick
prompt template<-由于预训练过程中的多义性和不一致的问题 图像和文本增强,预训练数据集,预训练细节:自动混合精度和梯度检查点 未来工作 近年来,由于基于Transformer的视觉-语言模型的发展,联合文本-图像嵌入得到了显著的改善。尽管有这些进步,我们仍然需要更好地理解这些模型产生的表示。在本文中,我们在视觉、语言和多模态水平上比较了预训练和微调的表征。为此,我们使用了一组探测任务来评估最先进的视觉语言模型的性能,并引入了专门用于多模态探测的新数据集。这些数据集经过精心设计,以处理一系列多模态功能,同时最大限度地减少模型依赖偏差的可能性。虽然结果证实了视觉语言模型在多模态水平上理解颜色的能力,但模型似乎更倾向于依赖文本数据中物体的位置和大小的偏差。在语义对抗的例子中,我们发现这些模型能够精确地指出细粒度的多模态差异。最后,我们还注意到,在多模态任务上对视觉-语言模型进行微调并不一定能提高其多模态能力。我们提供所有的数据集和代码来复制实验。 7.Prompt Learning1.Prompt-tuning,Prefix-tuning,P-tuning也许Prompting Tuning会成为Feature Engineering问题,设计合理的Prompts将会很有意思 prompting 更加依赖先验,而 fine-tuning 更加依赖后验。 Fine-tune(110亿)需要为每个下游任务都存下整个预训练模型的副本,并且推理必须在单独的批次中执行。 cloze prompt([z]在句中)。适合使用掩码 (Mask) LM 解决的任务。 answer 工程的目的是搜索一个 answer 空间 Z 和一个到原始输出 Y 的映射,从而得到更细粒度的预测模型。 Prefix-Tuning:提出任务特定的trainable前缀prefix,这样直接为不同任务保存不同的前缀即可。因此实现上只需要存储一个大型transformer模型和多个学习的任务特定的prefix参数。 对于自回归模型,加入前缀后的模型输入表示:z = [ P R E F I X ; x ; y ] z=[PREFIX;x;y]z=[PREFIX;x;y] “GPT Understands, Too“ P-tuning V1首次提出了用连续空间搜索的 embedding 做 prompt。不关心模版长什么样, 只需要知道模版由哪些 token 组成,该插入到哪里,插入后能不能完成我们的下游任务,输出的候选空间是什么就可以了。即不关心模版的“自然语言”要求,它只是为了更好地实现“一致性”但不是必须的。 连续的Prefix-Tuning和P-tuning 放弃了“模版由自然语言构成”这一要求,从而将其变成了可以简单梯度下降求解的连续参数问题,效果还更好。 多模态预训练中的Prompt(MAnTiS,ActionCLIP,CPT,CoOp,ALPRO,Frozen)Multimodal Conditionality for Natural Language Generation ActionCLIP: A New Paradigm for Video Action RecognitionPrompt用于Action Recognition动作识别问题。 CPT:Colorful Prompt Tuning for Pre-Training Vision-Language ModelsPrompt用于Visual Grounding视觉定位问题。在图像和文本中使用共同的颜色来标识,以将视觉定位问题变成填空问题来解决跨模态差异。 Learning to Prompt for Vision-Language ModelsCLIP中用到Prompt的地方也是它处理句子-图像对的方式,CoOp实际是在CLIP(图文匹配的双流分支)的基础上进一步进行的改进。不过它受到了AutoPrompt的启发会更多一些,是一个learnable context 1.在class的前后都插入learnable context,以增加prompt的灵活性。 Align and Prompt: Video-and-Language Pre-training with Entity PromptsALPRO模型(Align and Prompt),即对齐模态同时给细粒度提示,结合Prompt和对比学习来实施目标软标签。新增视频文本对比损失VTC,和提示实体建模PEM。其中,VTC强调捕获视频文本对的实例级对齐,PEM鼓励模型将局部视频区域与文本实体对齐。 Multimodal Few-Shot Learning with Frozen Language Models Prompting as Multimodal Fusing在上一篇的基础上解耦提取特征和对齐空间,即把visual encoder也固定,和Language Model一样只理解图像特征,而对齐空间则由prompt向量来做。 总结单模型主要改进BERT的输入,双模型主要做co/cross的BERT。 异议的点prompt你到底行不行 |
|
|
上一篇文章 下一篇文章 查看所有文章 |
|
开发:
C++知识库
Java知识库
JavaScript
Python
PHP知识库
人工智能
区块链
大数据
移动开发
嵌入式
开发工具
数据结构与算法
开发测试
游戏开发
网络协议
系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程 数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁 |
360图书馆 购物 三丰科技 阅读网 日历 万年历 2024年11日历 | -2024/11/26 7:44:47- |
|
网站联系: qq:121756557 email:121756557@qq.com IT数码 |