OpenMMLab AI实战营第二天打卡笔记

计算机视觉分类基础

计算机视觉发展:

  • 传统方法(1990s至2000s):通过人工设计的算法,进行降维,将几十万维度降低至几千维度,再用传统机器学习进行分类。在2010年这样基于这种传统方法错误率依然有25%左右。
  • 深度学习方法(2012至今):2012年首次使用深度学习方法,将错误率将至15%左右。

模型设计

卷积神经网络:2012年实现大规模图像的模型,并且创新的用了ReLU激活函数,大幅提高收敛速度,并且在GPU上训练开始成为一种趋势。以下从2012年开始按照时间顺序介绍几个重要的模型。

  • AlexNet(2012):精度达到85%,包含5个卷积层,3个全连接层,60M个学习参数,由于使用ReLU激活函数,收敛效率得到提升。
  • VGG(2014):网络层数最高可到到19层,由于卷积可能会降低图像尺寸,对卷积之后的图像进行了边界填充,维持分辨率,并且不是每一次都减半分辨率,但是需要138M个参数。
  • GoogLeNet(2014):使用Inception模块堆叠形成,22个可学习层,这样做的好处就是减少了参数,只要70M。

卷积实验的反直觉:层数增加,精确度反而下降。由此引出残差学习。

  • ResNet(2015):运用了残差网络的概念,准确率可达94.4%。
  • 神经结果搜索(2016+):借助强化学习的方法。
  • Vision Transformers(2020+):在2020年创新性引入。
  • ConverNeXt(2022):太先进了,看不太懂。

此外还有轻量化卷积神经网络,神经结果搜索网络和Transformer。

分组卷积:不再对一幅图的全部部分进行卷积,而是分为卷积组进行卷积,这样可以降低模型计算量,公式为分为g组,计算量降为g分之1。不同的组之间不会相互影响。

注意力机制:太难了,也没听懂!

模型学习的范式

学习的流程:收集图像集,进行无放回采样,放入神经网络模型向前计算,得到损失,用损失进行反向计算得到参数梯度,用这个参数去更新可学习参数。在把参数梯度转化为可学习参数时就要选择优化的方式。

监督学习:

  • 损失函数:交叉熵损失
  • 优化方式:梯度随机下降(SGD),动量SGD

自监督学习:互联网数据海量,标注的代价过于昂贵。可以采用自监督学习。具体步骤都差不多,主要介绍几种自标注的方法。

  • 基于代理任务
  • 基于对比学习
  • 基于掩码学习

学习率:实时调整学习率,不然可能无法收敛。

Linear Scaling Rule:batch size扩大为原来的k倍时,学习率也应扩大为原来的k倍。

早停:损失函数几乎不下降了,就可以提前停下了,而不用按照原程序全部跑完,这样可以节约资源。

数据增强:样本太少时,可以采用遮挡,变形,改变色彩等,甚至谷歌还会把多张图片混合在一起。这样可以用较少的成本得到较大的数据。

标签平滑:使模型不要那么自信。

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