深度学习相关知识

1.backbone:主干网络
2.head:head是获取网络输出内容的网络,利用之前提取的特征,head利用这些特征,做出预测。
3.neck:是放在backbone和head之间的,是为了更好的利用backbone提取的特征
4.bottleneck:瓶颈的意思,通常指的是网网络输入的数据维度和输出的维度不同,输出的维度比输入的小了许多,就像脖子一样,变细了。
5.Embedding: 深度学习方法都是利用使用线性和非线性转换对复杂的数据进行自动特征抽取,并将特征表示为“向量”(vector),这一过程一般也称为“嵌入”(embedding)
6.用于预训练的任务被称为前置/代理任务(pretext task),用于微调的任务被称为下游任务(downstream task)

因果模型

边缘填充padding

分为四类:零填充,常数填充,镜像填充,重复填充

padding操作,以保证图像输入输出前后的尺寸大小不变。例如,若卷积核大小为3x3,那么就应该设定padding=1,即填充1层边缘像素;若卷积核大小为7x7,那么就应该设定padding=3,填充3层边缘像素;也就是padding大小一般设定为核大小的一半。在pytorch的卷积层定义中,默认的padding为零填充。

模型训练技巧

大的batch_size往往建议可以相应取大点learning_rate, 因为梯度震荡小,大learning_rate可以加速收敛过程,也可以防止陷入到局部最小值,而小batch_size用小learning_rate迭代,防止错过最优点,一直上下震荡没法收敛
训练神经网络时batchsize扩大一倍的同时需要增加epoch数量吗?

六个策略改进神经网络设计

TO BRIDGE NEURAL NETWORK DESIGN AND REAL-WORLD PERFORMANCE: A BEHAVIOUR STUDY FOR NEURAL NETWORKS
MLSys 2021 | “进击”的神经网络行为分析,为设计和性能架起了一座桥梁

  • 增加卷积通道数一定会增加推理延迟吗?
  • 每个网络模块在不同平台上有相似的相对时延吗?
  • 激活函数对时延影响很小吗?
  • 用小卷积核可以极大减少时延吗?
  • 使用低数据精度会在保证模型精度可接受的情况下相应地减少时延吗?
  • 各个推理平台的横向比较是怎样的?

转置卷积

  • 转置卷积也可称为反卷积、逆卷积
  • 转置卷积会在生成的图像中造成棋盘效应(checkerboard artifacts).
  • 反卷积和转置卷积的真正区别:反卷积在数学含义上是可以还原输入信号的;但是转置卷积只能还原到原来输入的shape,其value值是不一样的。

上采样的3种方式

线性插值
亚像素卷积
反卷积(Deconvolution),也叫转置卷积Transposed Convolution

下采样方式

最大池化
跨步卷积strided convolution

深度可分离卷积

可以在大幅降低模型参数量的同时,保证模型的精度相似甚至更高。
Xception(Chollet,2017)、MobileNetv1(Howard等,2017)、MobileNetv2(Sandler等,2018)、MobileNetv3(Howard等,2019)、ShuffleNetv1(Zhang等,2018)、ShuffleNetv2(Ma等,2018)等多个神经网络中应用。

辅助分类器

1、作用是克服梯度消失与提供正则化。2、辅助分类器训练早期并没有提高收敛性,接近训练结束时,有辅助分支的网络开始超越没有任何辅助分支的网络的准确率

归一化层(BatchNorm、LayerNorm、InstanceNorm、GroupNorm)

1、BatchNorm:一个batch的单个特征层做归一化,算NHW的均值,对小batchsize效果不好;BN主要缺点是对batchsize的大小比较敏感,由于每次计算均值和方差是在一个batch上,所以如果batchsize太小,则计算的均值、方差不足以代表整个数据分布
2、LayerNorm:一个实例的所有特征层做归一化,算CHW的均值,主要对RNN作用明显;
3、InstanceNorm:一个实例的单个特征层做归一化,算HW的均值,用在风格化迁移;因为在图像风格化中,生成结果主要依赖于某个图像实例,所以对整个batch归一化不适合图像风格化。可以加速模型收敛,并且保持每个图像实例之间的独立。
4、GroupNorm:一个实例的部分特征层做归一化,算(C//G)HW的均值;这样与batchsize无关,不受其约束。
5、SwitchableNorm是将BN、LN、IN结合,赋予权重,让网络自己去学习归一化层应该使用什么方法。
深度学习相关知识_第1张图片
6、CrossNorm和SelfNorm增强训练数据的分布,减弱测试数据的分布。CrossNorm:图像的RGB均值和方差可以传递风格特征,通过对通道信息的调节,将不同域进行对齐,使得模型对外观的变化更加健壮。SelfNorm:在使用了增强的训练数据后,模型仍会遇到未遇见的数据,SelfNorm进行规范化测试数据的分布,减小训练数据和测试数据之间的差距。

度量学习&深度度量学习

经典识别网络有一个bug:必须提前设定好类别数。 这也就意味着,每增加一个新种类,就要重新定义网络模型,并从头训练一遍。比如我们要做一个门禁系统,每增加或减少一个员工(等于是一个新类别),就要修改识别网络并重新训练。

因此,Metric Learning作为经典识别网络的替代方案,可以很好地适应某些特定的图像识别场景。做法是丢弃经典神经网络最后的softmax层,改成直接输出一根feature vector,去特征库里面按照Metric Learning寻找最近邻的类别作为匹配项。目前,Metric Learning已被广泛运用于人脸识别的日常运用中。

  • 度量学习(metric learning)研究如何在一个特定的任务上学习一个距离函数,K-means、K近邻方法、SVM等算法。深度度量学习(deep metric learning)是度量学习的一种方法,它的目标是学习一个从原始特征到低维稠密的向量空间(称之为嵌入空间,embedding space)的映射,使得同类对象在嵌入空间上使用常用的距离函数(欧氏距离、cosine距离等)计算的距离比较近,而不同类的对象之间的距离则比较远。深度度量学习在计算机视觉领域取得了非常多的成功的应用,比如人脸识别、人脸验证、图像检索、签名验证、行人重识别等。
  • 度量学习和对比学习的思想是一样的,都是去拉近相似的样本,推开不相似的样本。但是对比学习是无监督或者自监督学习方法,而度量学习一般为有监督学习方法。
  • 表征学习(学习分界面)、度量学习(学习距离函数)

Low-level & High-level任务

  • Low-level任务:常见的包括 Super-Resolution,denoise, deblur, dehaz(去雾), low-light enhancement(低光照增强), deartifacts等。简单来说,是把特定降质下的图片还原成好看的图像,现在基本上用end-to-end的模型来学习这类 ill-posed问题的求解过程,客观指标主要是PSNR,SSIM,大家指标都刷的很高。目前面临以下几点问题:

    泛化性差,换个数据集,同种任务变现就很差
    客观指标与主观感受存在差距,指标刷很高,人眼观感不佳,用GAN可缓解
    落地的问题,SOTA模型运算量很(上百G Flops),但实际不可能这么用
    主要是为人眼服务,缺乏与High-level之间的联系

  • High-level任务:分类(classification),检测(detection),分割(segmentation)等。一般公开训练数据都是高品质的图像,当送入降质图像时,性能会有下降,即使网络已经经过大量的数据增强(形状,亮度,色度等变换)

    真实应用场景是不可能像训练集那样完美的,采集图像的过程中会面临各种降质问题,需要两者来结合。简单来说,结合的方式分为以下几种

    直接在降质图像上fine-tuning
    先经过low-level的增强网络,再送入High-level的模型,两者分开训练
    将增强网络和高层模型(如分类)联合训练

归一化

1、消除特征间单位和尺度差异的影响,以对每维特征同等看待。
2、原始特征下,因尺度差异,其损失函数的等高线图可能是椭圆形,梯度方向垂直于等高线,下降会走zigzag路线,而不是指向local minimum。通过对特征进行zero-mean and unit-variance变换后,其损失函数的等高线图更接近圆形,梯度下降的方向震荡更小,收敛更快
深度学习相关知识_第2张图片

需要归一化的情况:
1、涉及或隐含距离计算的算法,比如K-means、KNN、PCA、SVM等,一般需要feature scaling

不需要归一化的情况:
1、与距离计算无关的概率模型,不需要feature scaling,比如Naive Bayes
深入探讨:为什么要做特征归一化/标准化?

机器学习距离定义

距离定义
深度学习相关知识_第3张图片

标量积、向量积、张量积、元素积

数学中几种积:点积(数量积/标量积/内积)、叉积(叉乘/向量积)、外积(张量积/Kronecker积)、哈达玛积(元素积)

损失函数

  • L1_Loss、L2_Loss(MSE_Loss)、smooth_L1_Loss

深度学习相关知识_第4张图片

  • CrossEntropyLoss就是把Softmax、Log、NLLLoss合并成一步
  • L2正则化和权重衰减
    九浅一深理解L2正则化和权重衰减
    深度学习相关知识_第5张图片

3D可视化工具Zetane

上传ML模型,一键可视化,终于能看懂神经网络到底在干啥了
Zetane官网

你可能感兴趣的:(pytorch,人工智能,深度学习,计算机视觉,python)