常见的多类别分类模型

今天给大家介绍两个多分类任务中的经典网络模型LeNet5和AlexNet。内容源来自“有三AI”,感兴趣的读者可以关注公众号“有三AI”。

首先要给大家普及以下网络深度和网络宽度的概念,强调一点,池化层是不算入网络深度的

网络的深度:最长路径的卷积层+全连接层的数量,这是深度学习最重要的属性。

如图,以简单的LeNet5网络为例,网络中包含3个卷积层,2个全连接层,所以网络深度等于5。

C1+C3+C5+F6+OUTPUT

常见的多类别分类模型_第1张图片

图1 LeNet5网络

网络的宽度:每一个网络层的通道数,以卷积网络层计算。LeNet5网络:C1(6),C3(16),

多类别图像分类的经典模型

一、LeNet网络

1. LeNet5模型结构

一共7层,3个卷积层,2个池化层,3个全连接层,输入图像大小为32*32(灰度图——单通道)。

  • C1:6个5*5的卷积核
  • C3:60个5*5的卷积核(为什么不是16*6个5*5的卷积核,下文会给出解释)
  • C5:120*16个5*5卷积核
  • 两个池化层S2和S4:都是2*2的平均池化,并添加了非线性映射
  • 第一个全连接层:84个神经元(为什么不是2的整数次幂,解释见下文)
  • 第二个全连接层:10个神经元

2. LeNet5的工程技巧

(1)  C3层与S2层之间非密集的特征图连接关系:打破对称性,同时减少计算量,共60组卷积核。

常见的多类别分类模型_第2张图片 图2 C3层特征图与S2层特征图之间的连接关系

(2)  全连接层的设计

倒数第2层维度不是常见的2的指数次幂的维度,而是84,为什么?

计算机中字符的编码是ASCII编码,这些图是用7*12大小的位图表示,84可以用于对每一个像素点的值进行估计。

二、AlexNet网络

1. AlexNet模型结构

常见的多类别分类模型_第3张图片

图3 AlexNet模型结构

一共8层,5个卷积层,3个全连接层,输入图像:224*224*3

  • C1:96*3个11*11卷积核
  • C2:256*96个5*5卷积核
  • C3:384*256个3*3卷积核
  • C4:384*384个3*3卷积核
  • C5:256*384个3*3卷积核
  • 全连接层F1,F2,Output神经元数量:4096,4096,1000

2. AlexNet工程技巧

  • 多GPU训练:尽量使用更多特征图,并减少计算量。除了将模型的神经元进行了并行,还使得通信被限制在了某些网络层。第三层卷积要使用第二层所有的特征图,但是第四层却只需要同一块GPU中的第三次的特征图。
  • ReLU激活函数:加快模型收敛。
  • LRN归一化:抑制反馈较小的神经元,放大反馈较大的神经元,增强模型泛化能力
  • Dropout正则化:防止过拟合,提高泛化能力。
  • 重叠池化:更有利于减轻过拟合。
  • 数据增强:提高模型泛化能力。
  • 测试时增强:指的是在推理(预测)阶段,将原始图片进行水平翻转、垂直翻转等数据增强操作,得到多张图分别进行推理,再对结果融合。

三、分类任务中存在的难题——类别不平衡问题

不同类别下的样本数目相差过大,从而导致分类模型的性能变差。

解决方案:

  • 基于数据层面的方法:ROS,RUS,采用预训练模型,动态采样
  • 基于算法层面的方法:修改损失函数、代价敏感学习、阈值移动
  • 基于数据和算法混合的方法:LMLE,DOS,难例挖局

提升样本法:

1. 对于类别数目较少的类别,从中随机选择一些图片进行复制并添加至该类别包含的图像内,知道这个类别的图片数目和最大数目类的个数相等为止。

2. 插值方法:

  • 第一步:定义好特征空间,将每个样本对应到特征空间中的某一点,根据样本不平衡比例确定好一个采样倍率N;
  • 第二步:对每一个少样本类样本(x,y),按欧氏距离找出k个最近邻样本,从中随机选取一个样本点,假设选择的近邻点为(x_{n},y_{n})。在特征空间中样本点与最近邻样本点的连线段上随机选取一点作为新的样本点,满足以下公式:

(x_{new},y_{new})=(x,y)+rand(0\sim 1)\times ((x_{n}-x),(y_{n}-y))

  • 第三步:重复以上的步骤,知道大、小样本数量平衡。

3. 动态采样:借鉴了提升样本的思想,根据训练结果对数据集进行调整。对结果较好的类别进行随机删除样本操作;对结果较差的类别进行随机复制操作。

4. 两阶段训练法

  • 第一步:根据数据集分布情况设置一个阈值N,通常为最少类别所包含的样例个数。
  • 第二步:对样例个数大于阈值的类别进行随机抽取,直到达到阈值。此时根据阈值抽取的数据集作为第一阶段的训练样本进行训练,并保存模型参数。
  • 第三步:采用第一阶段的模型作为预训练数据,再在整个数据集上进行训练,对最终的分类结果有了一定的提升。

5. 优化目标设计——提高少类的权重(可以根据经验设置,或者基于样本数量进行自适应加权)

6.样本量过少的解决方案

迁移学习:ImageNet预训练模型的通用性

如果模型的训练数据足够大,且与任务相匹配,该预训练模型所学到的特征具备一定的通用性。

数据增强:有监督方法和无监督方法

  • 有监督方法:平移、翻转、亮度、对比度、裁剪、缩放等
  • 无监督方法:通过GAN网络生成所需样本,然后再进行训练。

你可能感兴趣的:(神经网络,机器学习,深度学习,多分类)