- 博客(165)
- 收藏
- 关注
原创 Classifier guidance与Classifier free diffusion的简单理解
参考:Classifier Guidance 和 Classifier Free Guidance,一堆公式不如两行代码 - 蓟梗的文章 - 知乎Classifier Guidance和Classifier-free Guidance 总结 - 走遍山水路的文章 - 知乎场景:首先,有一个训好的diffusion模型,可以从高斯分布的噪声生成图片。现在,你希望对生成的图片加以控制,让它生成你想要的图片。
2024-05-06 14:35:26 2641 1
原创 Monkey: Image Resolution and Text Label Are Important Things for Large Multi-modal Models
paper :github:两点:(1)增大图像分辨率(2)丰富图像caption看起来都是很简单的方法,但是真正做的时候就会遇到各种问题。
2023-12-20 22:32:37 1160
原创 Prefix tuning-->Attention中的矩阵拆解问题
其中,f(x)是为了将K1, K2拆开成两个softmax时产生的标量,详见TOWARDS A UNIFIED VIEW OF PARAMETER-EFFICIENT TRANSFER LEARNING (ICLR 2022)由下图中可以看出,[K1, K2].T与[V1, V2]相乘==K1.T * V1 + K2.T * V2。加上原本attention的softmax的话就是。我们首先把Attention(Q, K, V)根据矩阵乘法的结合律可以等效为。为pytorch中的矩阵乘法。
2023-04-28 20:32:29 357 1
原创 Swap分区扩容
https://blog.csdn.net/qq_36758914/article/details/107117169 改为600权限。https://blog.csdn.net/qq_53850321/article/details/121235918 设备忙。两个扩容操作,几乎一样的,对比着加深理解。
2022-11-03 20:46:22 241
原创 BEIT-3杂谈
论文中没有给具体的预训练方法图,大概就参考上面这张Beit的图吧,Beit-3就是变成了多模态输入。跟MAE很像,主要区别在他不是还原像素、text,而是。因为MLM方法不一定需要图像-文本对,所以可以利用现有的标注较好的公开数据集,而CLIP的数据由网络采集,难免很多噪声。看到这篇的人应该都知道这篇文章的多任务SOTA结果了,我就不放那张披萨图了。至于token是怎么来的,还得再看两篇文章,等我后面再补。(2)token重建或许比原始data重建更好?...
2022-08-30 17:18:36 933
原创 What makes training multi-modal classification networks hard?
起因是作者发现在视频分类任务上,多模态模型反而不如单模态模型如上图,A是Audio,OF是光流(optical flow)。用的模型都是差不多的,举个例子,A+RGB就是在单RGB的基础上加了Audio的Encoder,然后把两个feature concat在一起,通过分类器分类。而单RGB就是直接RGB过encoder,然后过分类器分类。话说这里似乎没有在concat后增加transformer用来fuse?fuse模块或许可以一定程度上解决这个问题?...
2022-08-08 16:51:26 1074
原创 Improving Multimodal Accuracy Through Modality Pre-training and Attention
paper:发现多模态模型不同模态的收敛速度不一致,于是各自单独预训练,再用attention(非self-attn)得到不同模态的权重,乘上权重后concat->FC->logits首先讲一下这里的attention。不是self-attention那种Q*K的机制,而是直接把三个模态的feature concat后,过FC得到权重:H为三个模态(v, a, t)的feature,shape为(3,m)。输出三个模态的权重根据作者观察发现,直接训多模态模型,不同模态的Loss下降速度不一致(收敛速度
2022-07-06 11:07:38 171
原创 Balanced Multimodal Learning via On-the-fly Gradient Modulation(CVPR2022 oral)
paper: https://arxiv.org/pdf/2203.15332.pdf一句话总结:解决多模态训练时主导模态训得太快导致辅助模态没训充分的问题交叉熵损失函数:其中,f(x)为解耦一下:其中,a表示audio模态,v表示visual模态,f(x)为softmax前的两个模态联合输出的logits。在这个任务中a为主导模态,即对于gt类别,a模态输出的logits更大以WaW^aWa为例,L对WaW^aWa求导:可以看到,根据链式求导法则,φa\varphi^aφa是与a模态相
2022-07-05 19:43:31 537
原创 Contrastive learning of Class-agnostic Activation Map for Weakly Supervised Object Localization and
paper: Contrastive learning of Class-agnostic Activation Map for Weakly Supervised Object Localization and Semantic Segmentation一句话总结: 认为前景和背景feature天然相似度较低,且相同纹理的前/背景feature相似度高,因此直接在feature后接分割头预测前背景分数,与feature相乘取出前/背景feature。在一个batch内降低前-背景pair的相似度,提高前景
2022-06-28 18:59:41 801
原创 似然函数的意义
什么是似然函数?一般说似然函数,是指某一参数的似然函数,比如某分布的参数θ\thetaθ的似然函数。它是给定样本值下,关于参数θ\thetaθ的函数:左边是给定x,关于θ\thetaθ的函数。右边是给定θ\thetaθ,x的概率密度函数。结合极大似然估计,这里似然函数实际上和该参数下取到已有样本x的概率相等。根据极大似然估计,某参数下,取到已有样本的概率越大,我们越认为这参数为真实的参数。所以似然函数意思是这个参数的真实度回顾一下极大似然估计,实际上是右边,argmaxθf(x∣θ)\math
2022-06-06 11:57:56 1080
原创 Dreaming to distill(Deep Inversion, data free distill)
文章链接:https://arxiv.org/abs/1912.08795CVPR2020上做data-free蒸馏的。什么是Data-free=》就是没有数据,只能自己生成数据一提到生成数据,就想到GAN:输入噪声,过GAN生成数据,数据过Teacher得到结果,求损失来训练GAN,使得GAN能生成和原数据集分布一致的数据,然后就可以去训student了。什么样的loss能使得GAN生成和原数据集分布一致的数据呢?经过观察发现:(图像先验)1、生成图的方差小2、生成图的L2范数小因.
2022-05-20 16:15:25 320 1
原创 DN-DETR
主要是引入了去噪(class、bbox重建)的辅助任务在Decoder部分,除了anchor的embedding,还加入了带噪声的bbox和class,比如gt_bbox是(x, y, h, w),加噪声可以有很多种方式,比如变成(x+Δx,y+Δy,h+Δh,w+Δw)(x+\Delta{x}, y+\Delta{y}, h+\Delta{h}, w+\Delta{w})(x+Δx,y+Δy,h+Δh,w+Δw),label加噪声的话就是随机变成别的class label,要求Decoder输出对
2022-05-16 16:59:25 1189
原创 DAB-DETR深入理解
文章链接:https://arxiv.org/abs/2201.12329最大的贡献是把DETR的Object Query定义为可学习的AnchorAnchor-based DETR来临了(还有点争议,说是Anchor-based,这Anchor又不是预定义的,说是Anchor-free,这Anchor也不是由image feature end-to-end预测来的)首先是一个实验,为啥DETR收敛这么慢?首先排除backbone的原因,因为是预训练好的,那就只能是Decoder的原因。其中.
2022-05-15 23:57:20 5947 3
原创 梯度下降法的原理
之前一直就只知道朝着负梯度的方向走就能降Loss,却不知道是为什么,今天看了人工智能的课才明白了。首先假设损失函数f(x)f(x)f(x),下一步xxx的移动方向与距离Δx\Delta{x}Δx,则有移动后的损失f(x+Δx)f(x+\Delta{x})f(x+Δx),我们来思考怎样能让损失降低,也就是使得f(x+Δx)<f(x)f(x+\Delta{x})<f(x)f(x+Δx)<f(x)首先对f(x+Δx)f(x+\Delta{x})f(x+Δx)泰勒展开:将f(x)f(x)f
2022-05-04 23:20:53 510
原创 矩阵乘法的计算复杂度
结论:A∗B=(i,m)∗(m,j)A*B=(i, m)*(m, j)A∗B=(i,m)∗(m,j)的计算复杂度为O(i∗j∗m)O(i*j*m)O(i∗j∗m)怎么来的:输出矩阵C为(i,j)(i, j)(i,j),遍历输出矩阵,C矩阵中的每个元素由A,B矩阵中对应的m对数字相乘相加而来,遍历m对数做相乘相加的复杂度为O(m)O(m)O(m),所以总共三轮循环,复杂度为O(i∗j∗m)O(i*j*m)O(i∗j∗m)实际实现:a = [[1, 2, 3], [4, 5, 6]]b
2022-05-01 19:54:56 2688
原创 MLP三部曲——其二:gMLP
gMLP论文链接:https://arxiv.org/pdf/2105.08050.pdf与其说是去掉了self-attn,不如说是另一种形式的self-attn我们先回一下self-attn是啥?在Transformer里面,Q*K后得到Attn矩阵,再乘上V,相当于将所有token混合,每个token都由所有token线性表出(突然感觉大学线代里学到的这个词用在这里十分合理),其中,线性表出的矩阵就是Attn矩阵。所以self-attn实际上就是attn矩阵*V,这个attn矩阵可以由Q*
2022-04-30 23:59:53 2623 1
原创 MLP三部曲(MLP-Mixer -> gMLP -> MAXIM)——其一
其一:MLP-Mixer参考一文教你彻底理解Google MLP-Mixer(附代码) - 月球上的人的文章 - 知乎https://zhuanlan.zhihu.com/p/372692759论文链接:https://arxiv.org/abs/2105.01601先看总体结构:乍一看和Vit特别像,先把图片分Patch,然后拉平过全连接变成Embedding。...
2022-04-30 00:11:46 2831
原创 CV中的LN与NLP中的BN
CV中的BN:(N, C, H, W),以(N, H, W)为单位求均值与方差CV中的LN:由于在LN初始化的时候需要输入参数normalized_shape,即规范化的单位(目的是为了给单位内部的所有element设置不同的gamma和beta,详情参见我的上一篇文章),因此如果按照图中的这种做法:normalized_shape=[C,H,W]eg.>>> # Image Example>>> N, C, H, W = 20, 5, 10, 10&g
2022-04-13 22:17:00 968
原创 LN与BN实现上的巨大差异
参考https://ugirc.blog.csdn.net/article/details/121877901做规范化的目的减均值,除方差,实际上就是压缩原数据的分布,使得均值为0,方差为1,差不多全集中在(-1,1)之间这样有几个好处:(1)如果激活函数是Sigmoid的话,如果值稍微大一点或者小一点都会变成-1或1,导致”饱和“,即很多值过激活函数后都变成了相同的值,规范化之后可以减轻这种”饱和“的情况。(2)使得每一层的特征分布都差不多,有利于收敛#待补充规范化公式都是一样的,减均.
2022-04-13 21:51:46 309
原创 EM算法原理
参考人人都懂EM算法 - August的文章 - 知乎https://zhuanlan.zhihu.com/p/36331115EM算法与极大似然估计已知:(1)一堆数据(2)数据的概率密度函数的形式未知:概率密度函数的参数eg. 高斯分布的均值和方差此时可以用极大似然估计求解概率密度函数的参数eg.似然函数=每个样本出现的概率的乘积为了方便计算一般会取一个对数转换成求和形式(称为对数似然函数):最大似然估计实际上就是求argmax似然函数,从而求得变量θ\thetaθ.
2022-04-08 15:55:38 783
原创 Layer Norm
参考ConvNeXt中的Layer Normalization(LN) - 海斌的文章 - 知乎https://zhuanlan.zhihu.com/p/481901798Layer Norm本来是一个样本norm自己,如图所示:也就是说,在[C,H,W]维进行归一化而ConvNeXt中是这样:也就是在C的维度归一化,即单一像素的所有channel做归一化。两者实现方式上有所不同。可以用F.layer_norm实现,也可以用nn.layer_norm实现,这里选用F.layer_nor.
2022-04-07 17:37:05 4912
原创 ResNeXt与分组卷积
ResNeXt两点:(1)Inception v4的所有分支结构统一(2)inception block前后增加shortcut分支分支结构统一与shortcut左边是Inception结构,不同分支用不同的结构。右边是ResNeXt的Block,每个分支都是1x1,3x3,1x1的BottleNeck结构,所以叫统一分支。(1)为什么要统一分支?因为左边的结构是人为设计的,所以想用稍微自然一点的结构。(有ablation study吗?)增加shortcut发现效果更好具体实现看右边的
2022-03-20 22:10:53 3177
原创 用知识量解释知识蒸馏
Explaining Knowledge Distillation by Quantifying the Knowledge用上篇文章提到的知识量的方法来解释知识蒸馏,主要是探讨通过知识蒸馏学出来的student network比通过train from scratch学出来的baseline的优点,以下Teacher, Student, Baseline分别用T,S,B代替。先从本文提出的假设之一入手吧(后面会一一论证)假设1:S学到的有效Visual Concept(视觉概念)比B多一、什么.
2022-01-05 19:29:36 1686
原创 Towards a Deep and Unified Understanding of Deep Neural Models in NLP
这篇文章比较难,需要较多的概率论和信息论知识,论文中公式推导给的不是特别多,有些过程并没有做推导,因此不是太能理解,不过大概意思是能懂的。论文提出了一种知识量计算方法,通过计算每个输入的知识量,来表征每个输入的重要程度总的想法非常简单,就是对每个输入加一个可学习的扰动,通过Loss函数来使得这个扰动大小能代表对应输入的重要程度这是输出的hidden state:S和输入X的互信息,不过其实这个公式在这里没啥用,作者主要是要引出后面这个条件熵条件熵H(X∣S)H(X|S)H(X∣S),就是知道输出
2022-01-04 20:54:11 798
原创 FitNets: Hints for Thin Deep Nets:feature map蒸馏
这篇就比较简单了,就是从中间选一层feature map出来,T和S做个Loss来训S,训好了再用KD再训一遍S这里有个问题,文中用的S和T的宽度不一样(输出feature map的channel不一样),因此第一阶段还需要在S的feature map后加一个卷积层调channel和size。论文里好像就是用的普通的卷积,也没提到padding操作,这样的话就要求N_g>N_h了,也就是S的feature size>T的feature size?二阶段第一阶段训上面的这个featur.
2022-01-03 23:38:00 1319 2
原创 A Gift from Knowledge Distillation:relation蒸馏
使用relation的蒸馏代替传统的feature map或者logits蒸馏如何建模relation?就是feature map的内积比如两个residual block,输出的feature map大小相等,但channel数可能不同,比如F1:(h,w,m),F2:(h,w,n),输出relation:(m,n),其实就是F1的m个channel和F2的n个channel之间的关系。F1的m个channel分别和F2的n个channel相乘,每次会得到一个值,最后就得到了(m,n)的矩阵如
2022-01-03 22:57:30 1155
原创 Information Bottleneck信息瓶颈理论
可以理解为一个损失函数信息瓶颈理论把神经网络理解为一个编码器和一个解码器,编码器将输入x编码成Z,解码器将Z解码成输出y而信息瓶颈理论的目标则是RIB(θ)R_{IB}(\theta)RIB(θ)就是信息瓶颈,θ\thetaθ是网络的参数,也是要优化的东西I(Z,Y;θ)I(Z,Y;\theta)I(Z,Y;θ)就是输出Y和中间feature Z的互信息I(Z,X;θ)I(Z,X;\theta)I(Z,X;θ)是输入X和中间feature Z的互信息互信息参考互信息的定义在决策树的C4.5
2021-12-23 19:56:53 6956
原创 联合分布,边缘分布,条件分布,互信息
注意:分布和概率有时候会混乱,有时候P(X)表示X的分布,有时候用F(X),有时候用p(X),具体的直接看作者说它是啥就是啥吧分布函数要求F(X)F(X)F(X),实际上是FX(x)=P{X<x}F_X(x)=P\{X<x\}FX(x)=P{X<x}联合分布P(X,Y)P(X,Y)P(X,Y),表示X,Y同时发生的概率的分布边缘分布P(X)=P(X,Y=∞)P(X) = P(X,Y=\infty)P(X)=P(X,Y=∞)即当Y可以取所有值时,或者说不考虑Y的取值时,X的概
2021-12-22 21:56:05 3156 2
原创 熵,交叉熵,KL散度,条件熵
参考理解熵与交叉熵 - 九号的文章 - 知乎https://zhuanlan.zhihu.com/p/389293738熵计算公式:H(a)=−log(p(a))H(a) = -log(p(a))H(a)=−log(p(a))就是信息量,对于一个事件A,的一种情况的信息量,由情况a_i发生的概率决定举个例子:明天的天气有3种情况,分别是阴,晴,雨。发生的概率分别为1/10,2/10,7/10。那么,假如上帝告诉你“明天一定会下雨”,则这句话的信息量为−log(1/10)-log(1/10)−.
2021-12-22 21:00:07 735
原创 基于决策树的神经网络规则提取
什么是规则就是IF…THEN…eg.IF age=youth AND student=yes THEN buys_computer=yes决策树->规则参考https://blog.csdn.net/DQ_DM/article/details/38345753如何从决策树中提取规则?对于一个决策树,有多少叶子节点就可以提取多少规则。从根结点到叶子节点自然形成一条规则。决策树生成:ID3和C4.5算法看https://blog.csdn.net/lt1103725556/artic
2021-12-21 20:15:16 2298
原创 决策树ID3、C4.5、CART算法
参考【机器学习】决策树(上)——ID3、C4.5、CART(非常详细) - 阿泽的文章 - 知乎https://zhuanlan.zhihu.com/p/85731206算法的目的都是为了构建决策树,即每一层应该用什么特征用于分支。比如第一层用性别,性别男或女,第二层用年龄等等。ID3算法根据信息增益选择特征。信息增益=数据集原本的信息熵−使用某一特征后的条件熵信息增益=数据集原本的信息熵-使用某一特征后的条件熵信息增益=数据集原本的信息熵−使用某一特征后的条件熵信息熵如何计算?可看交叉熵计.
2021-12-09 18:22:57 672
原创 python做视频拼接
需求:将两个视频上下or左右拼接,用来做直观对比应该可以读入视频,遍历帧,每帧当做np对象直接concate,加padding的,不过已经有现成的包了,实现应该更加高效,就不造轮子了用到的包:moviepy文档:https://zulko.github.io/moviepy/getting_started/compositing.html用法:from moviepy.editor import VideoFileClip, clips_arrayclip1 = VideoFileCli
2021-11-29 11:22:12 1864 1
原创 matplotlib画动态轨迹图
参考https://blog.csdn.net/suzyu12345/article/details/78338091函数from matplotlib.animation import FuncAnimationanim = animation.funcanimation(fig, animate, init_func=init, frames=100, interval=20, blit=true)# fig: 是我们创建的画布# animat: 是重点,是我们每个时刻要更新图形对象的函数,.
2021-11-16 17:01:06 1876
原创 Attribute-aware Pedestrian Detection in a Crow
APD,citypersons的SOTA,主要解决重叠目标的问题普通NMS流程:对于最后输出的所有框(1)找到预测置信度最大的框M(2)计算其他同类框和M的IOU(3)将IOU大于阈值N_t的框的置信度置0普通NMS的问题:两(多)个同类物体的IOU特别大的时候,其中一个人的预测框会在最后被NMS掉那么,有没有可能知道两个框是否属于同一个identity呢?=》给每个框预测一个属性向量,负责标记其identity如果是属于同一个identity,则其向量相近,若不属于同一个ident
2021-11-12 19:52:53 1710
原创 np.arctan2(y,x)
补充知识:向量与坐标向量的坐标:一个二维向量,一般就用两个数字表示,比如[1,3]看起来像一个坐标,可以称之为向量的坐标实际上,向量的坐标=向量的尾坐标—向量的首坐标np.arctran2(y, x)则是计算向量[x,y]与向量[1,0]的角度当然,以(0,0)为起点,坐标(x,y)为终点的向量,向量的坐标=向量的尾坐标否则,向量的坐标=[(x2-x1),(y2-y1)]此外,np.arctan2是可以批量计算角度的即输入y = [3,5,7],x=[2,4,8]时,会批量计算向量[2,3
2021-10-29 11:30:43 5930
原创 python趣事
一个无语的bug:某源码中:class a(object): m = ['1','2','3'] n = [a+b for a in m for b in m] def __init__(self): pass执行时,会报错:name “m” is not defined,然而列表生成式的语法是没有问题的同时,在这里执行[a for a in m]也是没有问题的,手动for循环也是没有问题的,多层loop的列表生成式就报错只需要把上面那段代码剪切到__init__里就可以执行了,无语
2021-10-28 12:05:42 129
原创 Eye movements predict personality traits眼动预测性格特征
1、眼动数据采集对象:50个学生任务:校园里逛一逛然后买个东西回来异常数据排除:(1)注视方向超过仪器可观测范围的150%认为为异常数据,一个人的异常数据超过50%则被排除。(2)注视方向长期不变则被排除剩余42个学生的数据。2、眼动数据特征提取(1)时间滑动窗口选取眼动数据,同时排除无效的window无效window: 超过50%的异常数据异常数据:注视方向超过可观测范围的150%或者丢失数据(2)特征提取<1>眼动事件定义:fixation: 长期注视,需要定义注
2021-10-21 21:05:27 338
原创 Deep Learning for Depression Recognition with Audiovisual Cues: A Review
抑郁症识别的深度学习方法综述数据集分语音、单张图片、视频、语音+视频多模态方法都比较简单,主要是CNN/LSTM+各种attention等来提高准确率,这里主要记录数据处理和一些典型Audio:初始数据为wav格式的音频数据,用MFCC(Mel-Frequency Cepstral Coefficents)即梅尔频率倒谱分析,即转换到梅尔频率并做倒谱分析,倒谱分析即做傅里叶变换和反傅里叶变换,具体原理暂且不深究。(补充知识:傅里叶变换可以把信号从时域转换到频域)输入:wav格式音频数据输出:M
2021-10-20 17:17:55 603
原创 Deep Multi-task Learning for Depression Detection and Prediction in Longitudinal Data(多任务抑郁症检测)
链接:https://arxiv.org/pdf/2012.02950.pdf模型:LSTM输入:7x762的矩阵(7: 7次问卷调查, 762:1次问卷调查的所有答案concat在一起)输出:分类结果(抑郁 or not)数据集:the Longitudinal Study of Australian Child(LSAC)提出的数据集包括7波问卷调查,每隔两年来一波,调查人群中一部分在第6、7波检查出抑郁,一部分正常LSTM优点:能接收时序数据,相比SVM只能接收一波的数据多任务:加了两
2021-10-15 11:14:57 1116
原创 眼球运动类型
参考:https://mp.weixin.qq.com/s?__biz=MzI0NDUyNjY3MQ==&mid=2247484727&idx=1&sn=10688eb94fef1b86a1884ca6291f8044&chksm=e95d3e17de2ab70107a145d234fc27a83be9c135610e751ce48b59cfee8ea7bfd827a1024d07&scene=21#wechat_redirect这里介绍几个比较常见的:(1).
2021-10-14 20:12:39 938
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人