OpenMMLab AI 实战营 Day 2 笔记

今天的课程主要讲图像分类算法。

图像分类算法的目标,就是构建图到物体类别的对应。

如果以传统的(统计)机器学习的方法出发,我最先想到的就是先提取特征,然后做Clustering & Classifying,但是毕竟,传统的对矩阵提取特征的方法(PCA,RDA等)容易丢失太多信息,而且大部分聚类还是离不开距离或者传统的概率模型,往往还要各种调参,不能适应多变的现实需求。

所以首先从特征提取开始,CNN本身提供了很有利的特征提取方法,使得信息能够最大限度保留。在此过程中也可以不断改进细节,比如Self attention mechanism。然后就是熟悉的Data Science环节了!

就课程给出和模型学习:supervised learning,还是离不开传统的概率模型。所以我们的重点仍然是以CNN和Transformer为基础的模型设计。

几个代表性的模型:

AlexNet,最先找到了一个比较合适的层数和参数数量的方案,看起来很朴素的算法

VGG,是把n*n的大尺寸卷积拆成3*3的卷积(颇有点像拆置换w,输出不变但参数变少),再填充1的边缘,然后每隔几层倍增通道数,减半分辨率,保证降低的精度在可控范围内。

GoogLeNet,引入了一个整合了卷积层,池化层,拼接和softmax的大模块inception,感觉非常的fancy,大大减少了参数数量(不是很清楚是大量实验下的最优还是有什么数学原理)

Resnet,终于到了熟悉的地方,因为常常浅层和深层网络并不是简单的比例关系,传统的迭代函数的方法难以找到最优,所以做拟合能产生明显更好的效果,而且不增加参数,也减少了计算量。后面对残差模块又有更多的具体改进。

至于NASNet,Transformer,ConvNeXt等,就更加fancy了。后面讲到transformer的具体实施,感觉和NLP下的区别还是非常明显的。

然后是降低模型参数量和计算量的方法:

根据参数量的计算公式,可以降低通道数C和C‘(Resnet用1*1卷积核压缩通道数),也可以减小卷积核的尺寸K(GoogLeNet用不同大小的卷积核)

可分离卷积:常规卷积划分为逐层+逐点->分组卷积(逐点卷积按通道分组)

Transformer:变化了卷积核为输入的权重(attention),减少无效的输入的权重。

模型学习部分就不多赘述,我相对而言对这部分比较熟悉。

你可能感兴趣的:(人工智能,算法)