Openmmlab AI实战营打卡-第2课

因为昨天刚刚回到学校,收拾了很久东西,基本上课的时候全程都在收拾东西,所以今天决定先重听一下昨晚的课程。昨天的课程按我的回忆,应该是讲述了resnet网络,无监督学习等。

图像,分辨率,像素数组
如何使这些像素数组直接呈现出一定的关联

机器学习算法善于处理低维,分布相对简单的数据
图像数据常常在异类之间会有一些接近,同类之间比较远

对于图像,需要设计一些特征向量,能够极大简化数据表达,保留内容相关信息,使它可以处理图像分类问题

深度学习相对于传统工程来讲,有了一个新的东西叫做特征学习。传统处理是手工设计算法,算出一些新的东西,是对图像的新的表达,然后对新的特征进行一些统计,使其能够表达更简单。这个过程可能会丢失信息。
能不能让这个过程的信息减少丢失呢,因此深度学习从原本只是使表达变得更加简单,变成了可学习的特征提取。不仅让机器学习如何分类,而且让机器学习如何产生这种特征。多个简单特征变换复合构成一个复杂的端到端的分类器。

通过卷积实现一步特征提取(卷积神经网络)
也可以通过多头注意力Multihead进行。

首先对模型进行设计,(找到合适的网络,设计好的函数)

第一个大规模图像模型:Alexnet,使用了Relu来替换Sigmoid。第一个在GPU上进行的。
VGG:将大尺寸的卷积拆解为多层3x3的卷积,相同的感受野,更少的参数量,更多的层数和表达能力。
3x3的卷积堆叠两层也是5x5的感受野(这个很好理解),但是用了更少的参数。
1551 = 25
2
331 = 18(这样算的?
不同层次的特征在尺寸上有简单的比例关系。

感受野 (Receptive
Field)是指神经网络中单个单元对输入数据的影响范围。也就是说,感受野描述了每个单元对于输入数据的"感知"范围。 在卷积神经网络
(Convolutional Neural Network, CNN)
中,每个单元的感受野可以理解为其卷积核的形状和大小,它指定了该单元对输入数据的哪一部分进行计算。

GoogleNet:使用Inception模块堆叠形成。

模型层数增加到一定的数量时,有可能会退化。可能是卷积层退化为了恒等映射,此时深层网络与浅层网络相同。

提出新的学习:残差学习(ResNet)
浅层网络已经做得好的,拿出来。出现差异的,通过卷积层进行拟合。
通过增加跨层连接。
使用bottleneck模块替换Basick模块,进一步增加每级中残差模块的个数

Basic模块是一种简单的残差模块,其中包含一个普通的卷积层和一个批量归一化层。

而Bottleneck模块是一种更加高效的残差模块,其中包含三个卷积层:一个1x1的卷积层,一个3x3的卷积层,和一个再次使用1x1卷积层的降维层。

在许多卷积神经网络架构中,使用Bottleneck模块可以提高网络的效率,并允许在相同的计算成本下获得更深的网络。替换基础模块并增加每个级别中的残差模块的数量可以提高网络的复杂度,从而提高网络的泛化能力。

其实就是减少了计算量

ResNet是深浅模型的集成。
在Loss函数中增加残差网络里面的残差模块,使得损失曲面更加平滑。

因为它将一个简单的残差模块的输出与模型的激活值相加,从而避免了误差的累积,使得损失曲面更加平滑。因此,使用残差链接的模型更容易被优化器有效地训练,并能获得更好的泛化能力。

后面进行了一些改进:卷积变为分组卷积,降低参数量;通道维度引入注意力机制

更强的图像分类模型:
神经结构搜索(强化学习,预测网络结构)
ViT
ConvNeXt:把SwinTransformer中的模型元素迁移到卷积网络中,性能反超Transformer。

轻量级卷积神经网络:

对于卷积层: 参数数量 = 卷积核数量 * 卷积核大小 * 输入通道数 + 偏置数量

对于池化层: 参数数量 = 0

对于全连接层: 参数数量 = 输入单元数量 * 输出单元数量 + 偏置数量

卷积参数量计算
计算量应该
C = ( W − K + 2 P ) 2 S × N × K 2 C= \frac{(W - K + 2P)^2}{S} \times N \times K^2 C=S(WK+2P)2×N×K2

其中:

C C C 表示卷积的计算量
W W W 表示输入数据的长和宽
K K K 表示卷积核的长和宽
N N N 表示卷积核的数量
S S S 表示步长
P P P 表示边距 (在卷积时对输入数据添加的空白像素)

卷积的计算量是由输入数据的尺寸、卷积核的尺寸、卷积核的数量、步长和边距等因素决定的。

卷积的计算量
GoogleNet:在同一层中混合使用不同尺寸的特征减少参数量
ResNet:使用1x1卷积压缩通道数
可分离卷积:卷积核分成通道组,将传统卷积分解为逐层卷积和逐点卷积
分组卷积:

它将输入通道分为多组,每组使用一组不同的过滤器分别进行卷积。与传统卷积法相比,这导致了计算量的减少和模型效率的提高。分组卷积也可用于通道式操作,每组对应于输入的一个通道。通过对通道进行分组,可以更好地利用可用的资源,也可以在模型中引入更大的表现力。

接着对模型进行学习来求解一组好的参数。(监督学习,自监督学习)

接着就是关于模型求解的事情。首先是大家基本在用监督学习,但是监督学习对数据集的标注非常的麻烦,因此很多人开始使用无监督学习(通过设计辅助任务学习到更好的数据特征,再把数据放到一个比较小的标注好了的数据集上进行训练分类
然后介绍了一下监督学习的流程,损失函数的问题,介绍Cross-entropy(用在分类上的损失函数)SGD, momentom,saddle point之类的东西。
非常不错的图片

然后讲了一下训练技巧的事情。

这就是trick么.jpg
训练技巧
learning rate以及优化器策略
首先是权重初始化,初始化W和b。kaiming方法等。
学习率和损失函数是有关的
策略:退火 annealing
学习率退火
升温Warmup:从0渐渐达到预设值,逐渐上升,到了预定的值后开始退火。
linear scaling rule:batch size提高,学习率也有应该提高,才应该有一个相近的效果。(实践,复现的时候用到似乎)
自适应梯度算法:自适应调整学习率
Weight decay权重衰减:加入正则化避免过拟合
Weight Decay
模型权重平均,

数据增强

扩充数据集,降低over fitting
组合数据增强AutoAugment RandAugment
组合图像Mixup & CutMix
Mixup:逐像素混合图像
CutMix:遮盖原图并用其他填充
标签平滑:引入平滑参数,有可能类别标注错误不准确

自监督学习

基于代理任务:
Relative location
基于掩码学习:
扣掉一些图像中的位置,Transformer的一个结构。
基于掩码学习举例
基于对比学习:同样的数据进行不同样的数据增强。需要阶对异类和同类之间的区分的loss。
基于对比学习距离
今天基本就这样结束了,晚上的时候还有一节课,下午的时候还需要把超算给安排好,

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值