由于PPT上都是图,直接发打字比较好
PPT那么多页其实也就几段字,哪有那么多东西讲
mp4关键帧I帧抽取,抽取I帧至40帧,不足则在I帧之间补足40帧
2017vqa冠军的模型 faster rcnn
(1) 抽取36个物体,受限于IO效率,物体和帧之间以帧为重
(2) attribute特征,把输出bbox的属性词作为特征,一是无io压力,二是视频物体种类变化小,可依据该事实通过频率提高该特征信噪比
无效模型 densecap : image caption + action location
本想用它解决动作类问题,无奈句子不方便通过频率筛选,提高特征质量,以及他本身效果不算特别好
外加句子关键词太少prior mask
各类question答案词表分布很不一致,如颜色类问题,数量类问题
很容易想到希望对每一类问题针对性处理,可通过用一个prior mask实现,将该类问题可能回答出的词标1,否则标0,
sigmoid激活后与之相乘,避免常识性错误,以及免去类间干扰(question类别)
如此实现了特征共享,但每类问题针对性处理,且可自由扩展类别数量
question类别用最易于区分的关键字作为类,如what color ,how many 以及or类问题的or两边的词很容易有下面的改进方法(我没去做,感兴趣试试)
(1) 以2中抽取的视频attribute作为视频关键信息,通过这个抽取视频先验词表改进prior mask
(2) 减小类内干扰,如深红,浅红,细粒度分类无论在nlp还是cv都是个较难的任务,
但是不用细粒度即可答对,干脆放弃细粒度分类
这个问题可以抽象为用尽可能少的答案覆盖该类问题所有答案问答框架
多问多答,可变长输入
问题不足五个重复补足- 免去冗余的五次io
- 带来上下文信息
劣势是偏固定的采样方式使他分数若不使用上下文信息会劣于一般训练方式
改进方法:用0补,重复会让特征信号加强,然后loss梯度权重加倍。。。
用0补的话是常量无信息,输出时可配合mask把梯度屏蔽掉
针对分镜问题的数据增强方案
找俩视频,各取一半帧数,时间轴拼接
问题的话随便取出5个
attribute各取频率最高的一半
一问一答,label直接取逻辑加其他数据增强
(1) 训练时抽来的40帧随机取16帧 (帧数取太少的话不会有效果的)
(2) 测试时隔帧各采16帧,做test aug模型
(1) 注意力使用MLB计算(其实啥注意力都差不多)
(2) 注意力集成机制:前几层question和video算出注意力权重后,各个问题生成的权重(16,1,1)取平均
与video(16,36,384)各帧相乘
(3) attribute 与 question直接算MLB加权平均
(4) encode用conv 11
用faster rcnn特征劣势是失去了空间局部依赖,又因此间接导致失去了物体级的时间局部依赖
rnn与cnn都不能用,采用self-attention+attention稀疏化解决跨时空依赖的想法
稀疏化方式 relu(w-(max(w)+min(w))/(1+λ)
经过调了半天λ,输出注意力矩阵后发现近乎为对角矩阵,退化为11conv,故直接用1*1conv
(6) video与question压成向量用co-attention(其实都差不多)
(7) 多问多答问答框架自带的上下文特征,其他question特征取平均与当前question拼接
(8) unit调到最小再调dropout(吐槽一下某人的0.95的dropout)
(9) 输入层bn + spatial dropout (bn在前,否则会有些shift)
分类层dropout,计算注意力前加spatial dropout
(10) focallossattention + loss 稀疏化(这部分我没用,分数不稳定,上限高下限低)
topk注意力,取权重前k名的取平均
loss稀疏化,loss最高的k个answer返回梯度,其他不反回
词表太小,loss稀疏化没效果,语言模型如word2vec这种词表近万或过万的有较大效果
可能物体仍然太少,所以不值得稀疏化
参数也不算特别好,经验上关键的地方动了一下,其他没管
以前不混天池
未来几个月可能在这边待一会儿
希望各位大佬发车的时候带上我
如上