《深度学习平台与应用》学习笔记

第二讲 线性分类器

图像分类的挑战分类:语义鸿沟、视角差异、光照变化、杂乱的背景、遮挡、形变、类内差异、类间相似、语义干扰。

K-NN 最近邻分类器 超参数设置问题

终于理解了为什么要分成训练集、验证集、测试集三部分。

线性分类器

模板角度认识线性分类器!第一次这么理解!

关于权重W的另一个解释是它的每一行对应着一个分类的模板。一张图像对应不同分类的得分,是通过使用内积来比较图像和模板,然后找到和哪个模板最相似。从这个角度来看,线性分类器就是在利用学习到的模板,针对图像做模板匹配。从另一个角度来看,可以认为还是在高效地使用k-NN,不同的是我们没有使用所有的训练集的图像来比较,而是每个类别只用了一张图片(这张图片是我们学习到的,而不是训练集中的某一张),而且我们会使用(负)内积来计算向量间的距离,而不是使用L1或者L2距离。

SVM Loss(hinge loss)

要会算啊!简单说就是留出1的gap算距离

Softmax Loss(cross-entropy loss)

同上,要知道怎么算的!

Todo:这和KL散度、交叉熵有啥关系?

取指数归一化后的概率分布,对正确分类的one-hot编码作为概率分布,其KL散度正是Li

交叉熵则是在这个基础上加上H(p),即

H(P,Q)=H(p)+DKL(P||Q)

2024.9.21:草,这一天我才知道这些内容都是cs231n的

第三讲 正则化与优化

L2 正则化偏好分散权重
L1 正则化偏好稀疏权重

SGD的具体操作
local optimum和saddle point的问题
Loss landscape 可视化 值得学习的研究:https://zhuanlan.zhihu.com/p/598666180

不同优化器

  • SGD + Momentum

  • RMSProp (Root Mean Squared Propagation)

  • AdaGrad (Adaptive Gradient Algorithm)

  • Adam (Adaptive Moment Estimation)

  • AdamW

  • 随时间改变的学习率

  • 一阶优化

  • 牛顿优化(求Hessian矩阵的逆的近似解)

第四讲 神经网络与反向传播

又是模板角度!对神经网络的新理解。

输出层一般不加激活函数但是常会加一个softmax函数归一化分类结果。

这个反向传播的演示是真的形象。

一个有趣的现象是在多数情况下,反向传播中的梯度可以被很直观地解释。例如神经网络中最常用的加法、乘法和取最大值这三个门单元,它们在反向传播过程中的行为都有非常简单的解释。

PPT中还有一个copy gate,感觉不太好理解啊
查到一个笔记是这么解释的:
gradients add at branches
在反向传播过程中,当涉及多个上游节点的梯度汇聚到同一个下游节点时,需要将所有上游节点的梯度相加作为这个本地节点的总上游梯度。这可以解释为:因为在前向传播计算函数值时,这个本地节点的取值会影响与之相连的之后所有节点,因而在反向传播的过程中,之后所有节点的梯度也都会反过来影响这个本地节点的梯度取值。

这里的计算图其实是pytorch用到的重要概念

详见:https://blog.csdn.net/sinat_35907936/article/details/105537692

算法的实现过程就是张量进行各种运算的过程,而计算图(Computational Graph)就是记录这些运算过程的有向无环图,比如前向传播时输入张量经过加、减、乘、除得到输出张量,那么计算图就会记录输入输出张量、加减乘除运算和一些中间变量,这是进行反向传播的前提。自动求导是很重要的方法,有这样的机制,可以让我们在设计模型的时候避免去写繁琐的梯度计算代码。

细节:前向传播过程中可能需要缓存一些值供反向传播使用

向量函数的反向传播

本质没什么变化,主要是计算细节的问题

第五章 卷积神经网路

特征提取

涨知识了:由于人眼对绿色的敏感最高,对蓝色敏感最低,因此,对RGB三分量进行加权平均能得到较合理的灰度图像。

  • 图像分类版的词袋

卷积神经网络

卷积核是参数不是给定的。还有关于多通道处理的理解。比如卷积核在不同通道有不同的参数。还有不同层的卷积核一般不相同。这都属于常见误区。

算参数量的时候别忘了bias哦。

Padding的取值经常让特征图尺寸不变?

1x1卷积核 负责改变深度
3x3卷积核 负责改变特征图尺寸
它俩配合,代价最小,参数最少

关于明明是点积为什么非得叫卷积的疑问
https://cloud.tencent.com/developer/article/2127881

关于感受野的理解。这解释了我们为什么要引入池化层等下采样方式。其实就是为了简化。
感受野的计算也要会。
不懂:为啥和stride无关???【已解决】

各种CNN的骚操作

【博客】卷积神经网络中十大拍案叫绝的操作

  • 反卷积
    见 《数学建模》学习笔记
    为什么说转置卷积只能还原shape而不能还原value?
  • 空洞卷积
    扩大感受野
  • 分组卷积
    每个卷积核只考虑部分通道

【博客】

  • 可分离卷积
    空间可分离卷积(卷积核拆分成小卷积核的乘积)、深度可分离卷积(这不就是特殊的分组卷积)
  • 可变形卷积
    在原来的过滤器前面再加一层过滤器,这层过滤器学习的是下一层卷积核的位置偏移量(offset)

第六章 卷积神经网络架构

批归一化层
model.eval() 在测试和训练的时候BN层、Dropout层的操作都是不一样的。所以要提前设置模型的状态。
BN层,在训练时从minibatch中估计;在测试时使用从训练集中估计的参数(移动平均)

第七章 神经网络的训练

正则化:dropout

在模型训练的每次向前传播计算中,将一些神经元随机设置为零
可以看作一种模型集成?
注意测试的时候输出要乘以dropout的概率,以近似模型输出的期望

正则化:数据增强

超参数选择

参数搜索方法:Grid Layout / Random Layout

第八章 循环神经网络

一、RNN

我们希望不止能处理一对一输入输出的模型
RNN一个很酷的应用:【论文】DRAW: A Recurrent Neural Network For Image Generation(2015)

核心思想ht=fW(ht1,xt)
对于Vanilla Recurrent Neural Network为

ht=tanh(Whhht1+Wxhxt)

yt=Whyht

其中三个W是三个可训练参数矩阵,下标代表矩阵尺寸
上面那个式子的两个W其实可以合成一个,然后把ht1,xt拼接即可

可以用于多对一(不定长输入),也可以用于一对多(不定长输出)

疑问:一对多不定长输出?那输出什么时候停止呢?

Sequence to Sequence Model
即多对一编码器+一对多解码器

思考:这是合理的。多对多的一个网络意味着一一对应关系,但很多功能比如句子翻译其实并不是一个词对应一个词的?

例子:Character-level Language Model
有个小细节是,输出不是输出得分最高的,而是按softmax按概率输出结果

当序列变长的时候,前向传播和反向传播都会变得非常缓慢
解决办法:Truncated BP through time,比较好理解,是反向传播梯度计算的一个近似

这里CS231n还提到了一个有趣的研究,去观察隐层向量蕴含的语义信息。发现这网络中的很多单元有提取结构的功能,还是很神奇的。

【论文】Visualizing and Understanding Recurrent Networks(2016)

另一个有趣的研究则是给定图片生成描述的Image Captioning问题。不细讲。
不过这个研究同时涉及到了我前面的疑问(把结束End当成一个词汇)、概率分布采样得到结果等想法。
这里还提到了Attention的概念。

使用的数据集: COCO数据集。微软的一个大型的物体检测分割和Caption数据集。

类似的问题还有Visual Question Answering,暂略

Multilayer RNNs

【博客】循环神经网络及反向过程推导

梯度消失/爆炸问题

对于梯度爆炸,经常采用梯度截断(Gradient Clipping)的方式。

为了解决梯度消失的问题,我们采用LSTM

疑问:为什么用tanh作为激活函数?

二、LSTM

【论文】Long Short-Term Memory(1997)

ct,ht为两个状态
i,f,o,g四个门

第九章 注意力机制与Transformer

给定Target中的某个元素Query,通过计算Query和各个Key的相似性或相关性,得到每个Key对应Value的权重系数,然后对Value进行加权求和,即得到最终的Attention数值。

  • Self-Attention
  • Cross-Attention

CNN中的注意力机制可以根据其关注的维度进行分类:

  • 通道注意力:关注不同特征通道的重要性,如Squeeze-and-Excitation (SE)模块。
  • 空间注意力:关注图像不同空间区域的重要性,如Gather-Excite Network (GENet)和Point-wise Spatial Attention Network (PSANet)。
  • 混合注意力:结合多种注意力机制,如同时使用空间和通道注意力的卷积块注意力模块(CBAM)。

【综述论文】Attention Mechanisms in Computer Vision: A Survey

Attention机制最早在视觉领域提出,2014年Google Mind发表了《Recurrent Models of Visual Attention》,使Attention机制流行起来,这篇论文采用了RNN模型,并加入了Attention机制来进行图像的分类。
2015年,Bahdanau等人在论文《Neural Machine Translation by Jointly Learning to Align and Translate》中,将attention机制首次应用在nlp领域,其采用Seq2Seq+Attention模型来进行机器翻译,并且得到了效果的提升,Seq2Seq With Attention中进行了介绍。
2017 年,Google 机器翻译团队发表的《Attention is All You Need》中,完全抛弃了RNN和CNN等网络结构,而仅仅采用Attention机制来进行机器翻译任务,并且取得了很好的效果,注意力机制也成为了大家近期的研究热点。

  • 软(确定性)注意力
    使用所有键的加权平均值来构建上下文向量。对于软注意力,注意力模块相对于输入是可微的,因此整个系统仍然可以通过标准的反向传播方法进行训练
  • 硬(随机)注意力
    上下文向量是根据随机采样的键计算的

CS231n

AlexNet 2012
GoogleNet & VGG 2014
都是在Batch Normalization出现之前的网络
GoogleNet & VGG 比较深,却没有用BN,所以需要一些额外技巧来收敛

关于ResNet,几句话就讲到核心了,讲的真好。
如果添加正则项,参数趋于0,对于ResNet来说就是G(x)=x+F(x)=x,也就是丢掉了不需要的卷积层F(x)
还可以联系到梯度传递中的加法门概念

SVM loss中的Δ为什么是1?因为后面有正则化,Δ的值便不再重要。

考前冲刺

期末占比50%
不考代码
可以携带计算器

作业一

  1. 最早的CNN?谁提出的?贡献?
    LeCun提出的LeNet(1998)
  • 将反向传播算法引入卷积神经网络
  • 成功应用于手写字体识别系统
  • 与现代神经网络非常相似
  1. 尺寸计算

  2. 感受野计算
    那个全面的公式!老师上课演示了

  3. 卷积计算复杂度
    wcnm把偏置忘了

作业二

  1. Transformer结构中encoder和decoder的区别有哪些
  • 功能:Encoder接收输入序列,提取输入的特征并对其进行编码,Decoder生成输出序列,它
    依赖于编码器的输出以及已生成的输出部分。
  • 输入:Encoder通常能看到完整的序列,Decoder通常是自回归形式看到当前及以前的序列,
    不能看见未来的。
  • 注意力机制:Encoder使用自注意力,由自己产生,Decoder在自注意力机制之后还有
    交叉注意力部分,交叉注意力的K、V来自于Encoder,Q则来源于自己。

作业三

  1. 风格迁移和快速风格迁移的区别?
  • 风格迁移本质是最小化一个损失函数,该损失函数由内容损失、风格损失两部分组成,要通过 VGG 进行多次向前/向后传播。由于每次都需要进行优化计算,所以这种风格迁移的速度较慢,不适合实时应用。
  • 快速风格迁移则使用预训练的 CNN,计算与以前相同的损失。具体来说,训练阶段使用大量的图像对(原图和风格迁移后的图)来训练网络,这样对于新的输入图像,网络只使用单次前向传播即可对图像进行风格迁移,速度更快。

01 绪论

  1. AI领域名词的包含/交叉关系
    记住图。话说这图里NLP居然和机器人不交叉。

  2. 好的表示

  • 同样大小的向量可以表示更多信息
  • 包含更高层的语义信息(使后续的学习任务变得简单)
  • 任务或领域独立的(可迁移)
  • 学习好的表示:深度!
  1. 对数据集的了解

ImageNet 1000类 1M张 (2009)

  1. 深度学习历史节点
  • 第一个现代深度卷积网络 AlexNet (2012)
    【端到端、GPU并行、ReLU+Dropout+数据增强等技术】
  1. 深度学习不同任务间的共性(P53)
  • 输入和输出之间具有非常复杂的关系(浅层学习难以处理)
  • 但输入和输出都遵循一定的规则(可以通过深度学习处理)

02 线性分类器

  1. 语义鸿沟?
    计算机内容和人眼看到的内容的区别

  2. 计算机视觉的各种挑战
    (1+2+3+2+1)
    语义鸿沟、视角差异、光照变化、杂乱的背景、遮挡、形变、类内差异、类间相似、语义干扰。

  3. KNN
    KNN的时间复杂度暴力搜索: O(m×n×d) 训练过程不需计算但要存储整个数据集
    (最快可以O(m×(logn+k)×d))
    K越小对离群点越敏感(过拟合)
    超参数的选择 K折交叉验证

  4. 线性分类器
    f(x,W)=Wx+b
    三个视角理解线性分类器:代数、视觉(模板)、几何(超平面)
    低维线性不可分怎么办:非线性变换映射到高维空间
    SVM Loss(hinge) 及 PPT上问题(记住相等也得有1个损失,预测对必须有超过1的自信。正常是sum。)
    Softmax Loss 及 PPT上问题
    如果预测得分 s𝒋 发生轻微扰动, 𝑳𝒊 会发生什么?我对这个问题本来的理解是得分统一加减一个值,L结果不变。但可能老师不是这个意思。

https://cs231n.github.io/linear-classify/#softmax
https://zhuanlan.zhihu.com/p/629054400

03 正则化与优化

  1. 正则化:避免模型过拟合训练数据
    λ 正则化强度的超参数
    其他正则化方法:Dropout,Batch normalization,Stochastic depth, fractional pooling,了解即可

  2. 为什么使用正则化

  • 表达对模型参数的偏好
  • 使模型简单,使其适用于测试数据
  • 改进模型优化
  1. L1正则化和L2正则化的区别

L1正则化项为λj=1n|wj|,L2正则化项为λj=1nwj2
主要区别是,L1正则化偏好稀疏权重,L2正则化偏好分散权重。
L1正则化适用于特征数量大于样本数量的情况,具有一定的特征选择功能(部分权重趋向于零);L2正则化适用于特征数量不大的情况,能较好地防止过拟合。

  1. 梯度方向:函数值最大增长的方向
    梯度值:函数在这个方向上的增长率

  2. SGD流程很重要 (P43)

  3. 不同优化器的不同效果(具体做了什么不是很重要)

Momentum:将连续梯度平均在一起,从而得到更好的方向。

RMSProp (Root Mean Squared Propagation):对每个维度的梯度大小进行“归一化”,解决学习率难以调整的问题。这样沿着“陡峭”方向的优化变慢,沿着“平缓”方向的优化加快。

AdaGrad:为每个参数计算一个单独的学习率,通过累积所有历史梯度的平方和来调整学习率,由于不断在分母中快速累计梯度,学习率会随着时间的推移而降低。因此需要在学习率快速衰减之前找到最优值。更适合解决凸优化问题。相比之下RMSProp通过引入指数衰减平均来保持过去梯度的影响,使得学习率不会过早变得很小。通常能保持较快的收敛速度。更适合深度学习(以及大多数非凸问题)

Adam 结合了Momentum(动量)和RMSProp的优点,加速梯度更新的同时根据每个维度的梯度值历史平方和进行梯度缩放。既可以帮助加速SGD在相关方向上的收敛,又可以抑制振荡。

Adam的主要超参数:

  • 学习率α
  • 一阶矩指数衰减率β1
  • 二阶矩指数衰减率β2
  • 权重衰减Weight Decay(对于AdamW)
  1. 局部最优值和鞍点
    局部最优值是该点周围的函数值都大于等于(或小于等于)该点的函数值,鞍点则是指该点在某些方向上是局部最小值而在其他方向上是局部最大值。
    如果Hessian 矩阵的特征值全部为正或全部为负,那么这个点是局部最小值。如果 Hessian 矩阵的特征值既有正的也有负的,那么这个点是鞍点。
    局部最优值实际不可怕(参数量变大、大模型局部最优一般够优),鞍点通常为关键点。

  2. 学习率的作用?(P69)
    看图

  3. 二阶优化(P80、P81)
    牛顿法 时间复杂度(On^3) 因为求逆矩阵。。。
    拟牛顿法 只求 Hessian 矩阵的逆的近似解(O(𝒏𝟐))

04 神经网络与反向传播

  1. 为什么我们需要非线性?
    线性分类器只能创建线性的决策边界,而很多问题是线性不可分的

  2. LeakyReLU还是要知道一下
    max(0.1x,x)

  3. 计算图+反向传播很重要 不用矩阵形式 P62的形式 结合梯度流中的基本计算模式就很好算了
    现在看还是很ez的,计算图要会画。

  4. 向量的导数 P94P95

  5. 向量反向传播 不会让你算 要知道向量形状(考的可能性不大)

05 卷积神经网络

  1. 滤波器的深度始终与输入的深度相同
    废话。但学这门课之前我还真不知道。

  2. 尺寸非常重要
    NCHW!

  3. P57 batch的问题
    就是那个N。一个Batch中的不同图像一起通过一组滤波器。

  4. 第一层卷积滤波器学到了什么?
    局部图像模板(通常学习边缘、颜色等纹理)

  5. 尺寸计算非常非常重要 P84开始的
    再熟悉不过了

  6. 参数量 P92
    记得加bias,即滤波器的个数

  7. 感受野的计算(注意区分在前一层上的感受野、在输入图像上的感受野)
    主要看作业

  8. 参数量 P98
    主要看作业

  9. 池化层的相关计算 P110
    主要看作业

  10. 1x1卷积的作用:通道/尺寸 非线性 效率
    1x1卷积核 负责改变深度
    3x3卷积核 负责改变特征图尺寸
    它俩配合,代价最小,参数最少

  11. 奇奇怪怪的卷积

  • 反卷积/转置卷积
    只能还原shape而不能还原value。用于超分。
  • 空洞卷积
    空洞卷积通过在卷积核元素之间插入空洞(即跳过一些像素),从而扩大感受野而不增加参数量。

更通俗地说,就是让卷积核不再纯实心

  • 分组卷积
    每个卷积核只算部分通道(不影响尺寸变化)
  • 可分离卷积
    空间可分离卷积(卷积核拆分成小卷积核的乘积)、深度可分离卷积(就是特殊的分组卷积,这二者会大大减少参数量、计算量)
  • 可变形卷积
    在原来的过滤器前面再加一层过滤器,这层过滤器学习的是下一层卷积核的位置偏移量(offset)

06 卷积神经网络架构

  1. BN层非常重要是为了解决什么问题?计算公式?好处?
    4个问题。2种讨厌的输入。
    4个公式。记住是逐通道计算。记住训练和测试不同。
    4个额外的好处。
    【详见啃骨头】

  2. AlexNet的贡献?
    5个。

  • GPU并行计算
  • ReLU
  • dropout
  • 使用LRN层(局部响应归一化,现在不常用)
  • 大量使用数据增强
  1. VGGNet的贡献?
  • 更小的滤波器,更深的网络
  • 只使用了3个东西:3x3 Conv(步长1)、2x2 Max Pooling(步长2)、FC
  • 为什么只使用3x3 Conv相同的感受野更少的参数量、更深更多的非线性变换
  1. VGGNet16的参数量、Memory计算?二者瓶颈?【P39】
    注意使用的是float存储,即每个单位4bytes.
    VGG后面的数字是卷积层数+全连接层数。
    显存占用瓶颈是浅层Cov
    参数量瓶颈是FC层
    这个24M是怎么算出来的???

  2. GoogLeNet贡献
    更深的网络,更高的计算效率(参数少)
    简单的Inception模块:并联多个不同的算子,但有两个问题(计算量参数量、通道数变大)
    解决方案:使用 1x1 Conv瓶颈层
    其他:没有 FC 隐藏层

  3. ResNet贡献 解决了什么问题(P60)
    P61的内容要记住
    Bottleneck 提升计算效率

  4. 理解P64的总结
    CNN可以用于CV
    深度
    宽度
    优于人类

  5. SENet的改进?
    为ResNet加上通道注意力 对每个通道缩放scale

  6. 迁移学习? P70、P73
    将在分类任务上训练好的网络迁移到其他网络,原因:

  • 分类任务数据量大,标注难度低,标注成本低
  • 其他任务数据量小,标注难度高,标注成本高
  • 直接在小数据上训练网络,性能很差

数据集大,就可以训练更多层;数据集小,可以冻结更多层。

07 训练神经网络

  1. 激活函数特性不会考!

  2. 数据预处理现在最常用的方法?
    输入图像减去每个通道的均值([1, 1, 3]),除以每个通道的标准差([1, 1, 3])【注意和BN区分,这个是针对一张图片的数据预处理,BN是对minibatch而言的】

  3. dropout 测试时,将输出乘以 dropout 概率在测试时,所有神经元始终处于激活状态,我们必须缩放激活,原因?

  4. 数据增强也是一种正则化

08 循环神经网络

  1. RNN公式?
    记住是先更新隐态,再在隐态上求输出

  2. RNN优缺点?
    4+2
    可以处理任何长度的输入
    步骤t的计算(理论上)可以使用之前许多步骤的信息
    输入时间越长,模型尺寸就越大
    每个时间步都使用了相同的权重

循环计算速度慢
在实践中,很难从多个步骤中获取信息(遗忘)

  1. RNN梯度相关计算?(P59开始)

  2. LSTM公式?流程图?(P85)

  3. LSTM的评价 P88

  • LSTM 架构使 RNN 更容易在多个时间步长内保存信息
  • LSTM不能保证没有消失/爆炸梯度,但它确实为模型学习长距离依赖关系提供了一种更简单的方法
  1. 总结 P97
  • RNN在架构设计中提供了很大的灵活性
  • Vanilla RNN很简单,但效果不太好,RNN 中梯度的反向流动可能会爆炸或消失
  • 常用 LSTM 或 GRU:它们改善了梯度流

09 注意力机制与 Transformer

  1. 类型 P13
    记得空间注意力和通道注意力那俩圈就行
    (CBAM: Convolutional Block Attention Module)

  2. 作用 P17
    处理变长的向量序列

  3. 公式非常重要 P19
    注意根号下Dk

  4. 多头 了解基本概念 P61

  5. transformer结构要记住 P26

  6. ViT结构图要记住 P92

Encoder结构和transformer的略有差异
ViT的位置编码通常是可学习的网络,这一点和transformer也不相同

10 目标检测与图像分割

  1. 语义分割-滑窗计算
    语义分割就是涂色题。滑窗计算就是对单个像素分类。问题:没有语义信息,很难正确分类单个像素。

  2. 语义分割-全卷积
    解决的问题:感知像素周围的语义,帮助正确分类
    新的问题:原图尺寸上的卷积操作的计算量/显存占用非常大
    解决方案:先逐步下采样(大步长池化卷积)降低计算量,然后逐步上采样恢复图像分辨率(Unpooling、转置卷积)

  3. 目标检测-Region Proposals
    目标检测任务就是画框框。
    Selective Search 在 CPU 上运行。

  4. R-CNN流程?调整大小是在干什么?还有什么问题?

1)候选区域生成 使用选择性搜索(Selective Search)算法(基于颜色纹理大小和形状兼容计算相似区域的分层分组)从图像中生成一组潜在的候选区域,这些区域可能包含目标。
2)对每个候选区域进行缩放,调整到固定尺寸(如227*227)。对每个图像区域使用经过ImageNet预训练的CNN提取特征(如通过AlexNet CNN获取4096维的特征)
3)分类与微调 使用支持向量机(SVM)对提取的特征进行分类,判断每个候选区域属于哪个类别。最后再使用线性回归器对位置进行微调,得到更加准确的边界框。(Bbox reg)

候选区域缩放是为了batch批量处理。CPU并行计算。

问题是同一块区域仍会被反复计算。

  1. Fast R-CNN?
    改进
    ①直接对整幅图像进行卷积操作,提取全图的Feature Map。区域特征在全图特征图上进行提取,而不需要对每个候选区域单独计算特征。
    ①Fast R-CNN引入了ROI Pooling,用于将特征图中不同大小的候选区域统一映射到固定尺寸的区域特征。
    【RoI Pooling的细节不考】

  2. Faster R-CNN?联合训练哪四个损失?
    使用CNN预测Proposal
    具体来说请理解P53,锚框概念

损失:RPN 分类损失(是否存在物体)、RPN 回归损失(矩形框)、检测分类损失(物体类别)、检测回归损失(矩形框)

  1. 特征金字塔的理解 P60
    本质是图像特征的结构化层次化表示

  2. 实例分割不太重要
    任务特点是要输出实例。
    主要模型是Mask R-CNN。

11 视频理解

  1. 视频分类模型比较

• 单帧 CNN 训练普通的 2D CNN 独立对每一个视频帧进行单独分类。 特点是无法捕捉到视频中跨帧的时间动态变化。
• Early Fusion 在特征提取就将不同时间点的数据融合在一起,然后通过一个统一的模型进行处理。即用一个2D卷积处理所有信息。 相比单帧CNN能够更早地融合时间层面的信息,有助于模型学习到更加综合的特征表示。
• Late Fusion 首先为每帧图像独立地训练一个CNN,之后再将这些模型提取的特征组合起来,并联之后送入 MLP进行分类。 相比Early Fusion,Late Fusion是在提取各帧特征之后再融合信息。但同样难以捕捉帧之间 的 low-level motion。
• 3D CNN 在时间维度上也进行卷积,从而能够直接从连续几帧视频中提取时空特征。 相比2D卷积神经网络更加能捕捉动作随时间变化的信息,但与此同时参数量更大,计算复杂度也更高。

  1. Two-Stream Networks是什么意思 P40
    Spatial stream CNN处理Appearance。
    Temporal Stream CNN处理motion。

  2. Recurrent Convolutional Network的基本概念 P52

12 可视化

  1. 格拉姆矩阵的定义和作用?
  • 图像的 HW 个向量之间两两的内积所组成的矩阵
  • 在风格迁移中,Gram矩阵用于捕捉和表示图像的风格特征。它通过计算特征图的内积来衡量不同特征之间的相互关系,从而提取图像的纹理和风格信息。可以通过对Gram矩阵进行加权平均,从多幅图像中混合风格。另一方面,在风格迁移的过程中,通常会定义一个风格损失函数,它基于目标风格图像与生成图像之间的Gram矩阵差异。通过最小化这个损失,可以使得生成图像更加接近于目标风格。

13 自监督学习

  1. Pretext Task和Downstream Task的基本概念
  • Pretext Task:根据数据本身定义任务、无需标注的无监督任务
  • Downstream Task:想要应用的任务、没有大规模数据集、数据集有标注
  1. 如何评估自监督学习方法 P6
    2+2+1=5点
  • Pretext Task 性能
  • 特征质量:线性分类效果、聚类、t-SNE 可视化
  • 迁移学习和 Downstream Task 性能
  • 鲁棒性和泛化性:不同数据集和不同变化
  • 计算效率:训练时间和训练所需资源
  1. Pretext Task大概有哪些类型
  • 预测图像块的相对位置(Jigsaw Puzzle)
    输入:图1、图2
    输出:图二相对于图一的位置(左上?正右?)
  • 预测图像的颜色(Colorization)
  • 预测图像旋转的角度(Rotation Prediction)
  1. P37的理解

  2. 对比学习的形式化定义 P43
    这个提了的话应该还是很重要的
    关键是记住一个正样本,其他都是负样本

14 视觉-语言模型

  1. 模型预训练方式 P16

全监督、图像对比学习、语言-图像对比学习(CLIP)、掩蔽自编码器

  1. 全监督学习 P17

很容易理解,最简单的就是ImageNet预训练的模型

  • 将图像映射到与视觉概念相关的离散标签
  • 人工标注很昂贵,标签也可能有限
  1. 语言-图像对比学习的基本概念 P19
  • 从海量的图像文本对中学习
  • 简单的对比学习训练方式,但关键是数据海量
  1. CLIP 的基本概念?关键设计结构图?
  • CLIP即 Contrastive Language-Image Pre-training
  • P21的结构图要会画
  • CLIP模型使用余弦相似度
  1. 通用视觉模型的尝试 P55
  • 从封闭训练集到开放世界认知
  • 从专用模型到通用模型
  1. 视觉与语言的联系 P59的理解
  • 语言特征空间存在共享信息,尝试零样本迁移
  • 统一不同粒度
  • 提供prompt减少歧义
  1. P65的总结
    分割任务分为Generic segmentation和Referring segmentation (根据特定的文本短语分割图像)
    方法:
    CLIP 初始化 v.s. 从头训练
    弱监督训练 v.s. 全监督训练
    两阶段训练 v.s. 端到端训练

  2. 不同的任务粒度和统一 P79
    不同粒度

  • 图像级: image recognition, image-text retrieval, image captioning, visual question answering, 等等
  • 区域级: object detection, dense caption, phrase grounding, 等等
  • 像素级: generic segmentation, referring segmentation, 等等

两种统一的方式:

  • 输出统一(+模型统一):将所有任务的输出都转换为序列 tokens(输出的格式相同)
  • 模型统一(输出不统一):不同粒度的任务共享模型(输出的格式不同)
posted @   藤君  阅读(30)  评论(0编辑  收藏  举报
相关博文:
阅读排行:
· 微软正式发布.NET 10 Preview 1:开启下一代开发框架新篇章
· 没有源码,如何修改代码逻辑?
· DeepSeek R1 简明指南:架构、训练、本地部署及硬件要求
· NetPad:一个.NET开源、跨平台的C#编辑器
· PowerShell开发游戏 · 打蜜蜂
点击右上角即可分享
微信分享提示