DDPM中建模的$q(\mathbf{x}_{t-1} \vert \mathbf{x}_t, \mathbf{x}_0)$满足正态分布, $$ q(\mathbf{x}_{t-1} \vert \mathbf{x}_t, \mathbf{x}_0) = \mathcal{N}(\mathbf{x}_{t-1}; \tilde{\boldsymbol{\mu}}(\mathbf{x}_t, \mathbf{x}_0), \tilde{\beta}_t \mathbf{I}) \\ \tilde{\beta}_t = \frac{1 - \bar{\alpha}_{t-1}}{1 - \bar{\alpha}_t} \cdot \beta_t $$ DDIM中建模的$q_\sigma(\mathbf{x}_{t-1} \vert \mathbf{x}_t, \mathbf{x}_0)$如下,第一个等式二三步用到了重参数技巧和多个独立高斯分布的等价形式, $$ \begin{aligned} \mathbf{x}_{t-1} &= \sqrt{\bar{\alpha}_{t-1}
ALBEF paper : http://arxiv.org/abs/2107.07651 BLIP paper : http://arxiv.org/abs/2201.12086 BLIP code : https://github.com/salesforce/BLIP ALBEF 网络结构如下,这篇算得上BLIP/BLIP2的前身了,其三个Loss一直延续至今(当然MLM变成了LM)。具体三个Loss的介绍可以看BLIP2 - JJJYmmm Blog,有以下几个特别点: ITC Loss采用了MOCO的形式,即通过一个momentum encoder来扩大负样本的数量,这也是多了一个momentum model的原因。论文还从模型蒸馏的角度对momentum model做了进一步改进,例如在计算ITC和MLM时引入了伪标签 这里对于文本理解任务,采用的是MLM而不是LM,可能是因为MLM任务相比于LM任务更简单,因为模型只需要预测被mask的单词即可 在计算ITC时得到的Image-Text Similarity可以挑选出hard negatives,专门去做ITM;这个方法
Repository:https://github.com/salesforce/LAVIS/tree/main/projects/blip2 预训练结构 第一阶段 网络结构如下图。 对于图像特征,采用DETR类似的思路,使用Learned Queries作为输入,Image Features作为cross attention的KVs,希望通过可学习的参数来抽取与文本更相关的视觉特征 对于文本特征,采用传统的Bert Encoder思路 对于多模态特征的融合,与双流模型不同,这里两个Encoder的self attention层是共享参数的,当然与单流模型也不同,因为FFN不共享参数,且视觉特征提取时还会走cross attention层 训练采用的三个Loss函数(ITG/ITM/ITC)主要参考之前的ALBEF工作。 Image-Text Contrastive : 这部分的目的主要是对齐图像特征和文本特征的单模态特征,计算方法类似CLIP。与ALBEF不同的是,这里的negative pairs直接采用in-batc方式得到,并没有像ALBEF那样借鉴MOCO得到一个较大
最近写的一个Multi-task框架~ 项目地址:https://github.com/JJJYmmm/Pix2SeqV2-Pytorch Simple PyTorch implementation of Pix2SeqV2. This project references moein-shariatnia's Pix2Seq and the paper A Unified Sequence Interface for Vision Tasks. Introduction Pix2Seq is a generalized framework for solving visual tasks proposed by Google. Essentially it treats visual tasks as language tasks, generating sequences of tokens by auto-regression, and obtaining the output of many visual tasks(e.g., object detection, seg
pix2seq implement by Pytorch source code : moein-shariatnia/Pix2Seq paper : http://arxiv.org/abs/2109.10852 这次解析的源码是非官方实现的Pix2Seq,项目地址如上。教程直接看作者的Readme或者Object Detection w/ Transformers Pix2Seq in Pytorch | Towards AI,总体还是比较详细的。 模型即训练源码基本没什么问题,不过推荐先看完原始论文,不然可能在一些细节方面卡住。代码问题主要出现在测试文件中,问题如下。 Issue 1 2023.8.30 Tokenizer类的max_len参数用于限制单张图片的Obejct个数 labels = labels.astype('int')[:self.max_len] bboxes = self.quantize(bboxes)[:self.max_len] 而get_loaders中的collate_fn,把max_len作为输入序列的最大长度,这两处地方出现了矛盾(
Axuanz
Updating as per fate.