1.为什么需要做特征归一化、标准化?
-
使不同量纲的特征处于同一数值量级,减少方差大的特征的影响,使模型更准确
-
加快学习算法的收敛速度
2.常用的归一化和标准化的方法有哪些?
线性归一化(min-max标准化)
x’ = (x-min(x)) / (max(x)-min(x)),其中 max 是样本数据的最大值,min是样本数据的最小值适用于数值比较集中的情况,可使用经验值常量来来代替max,min
标准差归一化(z-score 0均值标准化)x’=(x-μ) / σ,其中μ为所有样本的均值,σ为所有样本的标准差经过处理后符合标准正态分布,即均值为0,标准差为1
非线性归一化 使用非线性函数log、指数、正切等,如y = 1-e^(-x),在x∈[0,6]变化较明显,用在数据分化比较大的场景

3.介绍一下空洞卷积的原理和作用
空洞卷积(Atrous Convolution)也叫做膨胀卷积、扩张卷积,最初的提出是为了解决图像分割在用下采样(池化、卷积)增加感受野时带来的特征图缩小,后再上采样回去时造成的精度上的损失。
空洞卷积通过引入了一个扩张率的超参数,该参数定义了卷积核处理数据时各值的间距。

可以在增加感受野的同时保持特征图的尺寸不变,从而代替下采样和上采样,通过调整扩张率得到不同的感受野不大小:
-
a.是普通的卷积过程(dilation rate = 1),卷积后的感受野为3
-
b.是 dilation rate = 2的空洞卷积,卷积后的感受野为5
-
c.是 dilation rate = 3的空洞卷积,卷积后的感受野为8可以这么说,普通卷积是空洞卷积的一种特殊情况
4.怎么判断模型是否过拟合,有哪些防止过拟合的策略?
在构建模型的过程中,通常会划分训练集、测试集。
当模型在训练集上精度很高,在测试集上精度很差时,模型过拟合;
当模型在训练集和测试集上精度都很差时,模型欠拟合。
预防过拟合策略:
-
增加训练数据:获取更多数据,也可以使用图像增强、增样等;
-
使用合适的模型:适当减少网络的层数、降低网络参数量;
-
Dropout:随机抑制网络中一部分神经元,使的每次训练都有一批神经元不参与模型训练;
-
L1、L2正则化:训练时限制权值的大小,增加惩罚机制,使得网络更稀疏;
-
数据清洗:去除问题数据、错误标签和噪声数据;
-
限制网络训练时间:在训练时将训练集和验证集损失分别输出,当训练集损失持续下降,而验证集损失不再下降时,网络就开始出现过拟合现象,此时就可以停止训练了;
-
在网络中使用BN层(Batch Normalization)也可以一定程度上防止过拟合。
5.除了SGD和 Adam之外,你还知道哪些优化算法?
主要有三大类:
-
a.基本梯度下降法,包括GD,BGD,SGD;
-
b.动量优化法,包括Momentum,NAG等;
-
c.自适应学习率优化法,包括Adam,AdaGrad,RMSProp等。
6.上采样的原理和常用方式
在卷积神经网络中,由于输入图像通过卷积神经网络(CNN)提取特征后,输出的尺寸往往会变小,而有时我们需要将图像恢复到原来的尺寸以便进行进一步的计算(如图像的语义分割),这个使图像由小分辨率映射到大分辨率的操作,叫做上采样,它的实现一般有三种方式:
-
a.插值,一般使用的是双线性插值,因为效果最好,虽然计算上比其他插值方式复杂,但是相对于卷积计算可以说不值一提,其他插值方式还有最近邻插值、三线性插值等;
-
b.转置卷积又或是说反卷积,通过对输入feature map间隔填充0,再进行标准的卷积计算,可以使得输出feature map 的尺寸比输入更大;
-
c. Max Unpooling,在对称的max pooling位置记录最大值的索引位置,然后在unpooling阶段时将对应的值放置到原先最大值位置,其余位置补0。
7.下采样的作用是什么?通常有哪些方式?
下采样层有两个作用,一是减少计算量,防止过拟合;二是增大感受野,使得后面的卷积核能够学到更加全局的信息。
下采样的方式主要有两种:
-
a.采用stride为2的池化层,如 Max-pooling和 Average-pooling,目前通常使用Max-pooling,因为他计算简单而且能够更好的保留纹理特征;
-
b.采用stride为2的卷积层,下采样的过程是一个信息损失的过程,而池化层是不可学习的,用stride为2的可学习卷积层来代替pooling可以得到更好的效果,当然同时也增加了一定的计算量。
8.模型的参数量指的是什么?怎么计算?
参数量指的是网络中可学习变量的数量,包括卷积核的权重weights,批归一化(BN)的缩放系数γ,偏移系数β,有些没有BN 的层可能有偏置bias,这些都是可学习的参数,即在模型训练开始前被赋予初值,在训练过程根据链式法则不断迭代更新,整个模型的参数量主要是由卷积核的权重weights的数量决定,参数量越大,则该结构对平台运行的内存要求越高。
参数量的计算方式:
Kh x Kw x Cin x Cout (Conv卷积网络)
Cin x Cout (FC全连接网络)
9.深度可分离卷积的概念和作用
深度可分离卷积将传统的卷积分两步进行,分别是 depthwise和 pointwise。首先按照通道进行计算按位相乘的计算,深度可分离卷积中的卷积核都是单通道的,输出不能改变featuremap 的通道数,此时通道数不变;然后依然得到将第一步的结果,使用1*1的卷积核进行传统的卷积运算,此时通道数可以进行改变。

计算量的前后对比:
Kh x Kw x Cin x Cout x H × w
变成了
Kh x Kw x Cin x H x W + 1×1 x Cin x Cout x Hx w