CNN

本文最后更新于:2 年前

CNN模型的理解

  CNN全名为Convolutional Neural Network卷积神经网络.它有以下几个部分组成:

  • 卷积层
  • 激活函数
  • 池化层
  • 全连接

卷积层

卷积层是用来识别图像的特征,它是通过卷积核(kernel,filter,neuron)来寻找图像的特征.
图片输入进来的时候,机器会将其的分辨率及其通道转换为数组,如32*32*3,然后根据训练好的多个卷积核如5*5*3(Height,Width,Depth)对其进行特征寻找.需要注意的是kernel的depth需要与输入的depth一致.然后便输出一张激活图(此例卷积步长为1,激活图大小为28*28*n(kernel数量)).激活图(activation map/feature map)之后会作为下一层的输入

激活函数

激活函数(activation function)是用于完成数据的非线性变换,解决线性模型的表达、分类能力不足的问题.根据网上所说,若是在net中全是线性变换,则可以通过矩阵变换将所谓的多层网络转换成一层网络.因此需要通过激活函数使得网络的多层有意义,故需要对数据进行非线性变换
常用的激活函数有:

  • ReLU

y={0,x<0x,x0y=\begin{cases}0,\quad &x\lt0 \\ x,\quad &x\ge0 \end{cases}

  • Sigmoid

y=11+exy=\frac{ 1 }{ 1+e^{ -x } }

  • tanh

y=exexex+exy=\frac{e^x - e^{-x}}{e^x+ e^{-x}}

根据AlexNet的文章我们可以知道,ReLU相较于传统的激活函数可以提高训练速度,减缓梯度衰减的趋势,同时省去了归一化的开销.

池化层

池化层降低了输入的激活图的维度,对其进行了稀疏处理,减少了数据运算量,也缓解了卷积层对位置的过渡敏感性.池化层也是通过kernel来进行维度处理.
池化通常有两种方式:

  • 最大池化
  • 平均池化
    根据名字可以看出,一个是取kernel里最大的值作为输出的激活图的新位置的值,一个是取平均.一般的池化都是stride==kernel的尺寸

全连接层

如图像分类,我们最后期望的结果是可能是识别类别的总数的概率,即输出一个N维向量,里面的值代表每一个识别类别的概率,然后进行输出.(此例采用的是softmax此激活函数)

针对过拟合问题:

在网络中,我们若是模型参数多,但是样本又少,那么训练出来的模型就会存在过拟合的问题,即在train的时候模型精确率还可以,但是test和inference就惨不忍睹,那就是因为模型中的参数权重等被量身定做了.
对于过拟合问题,可以采用Dropout以使得过拟合问题得到一定解决.
Dropout的主要原理就是根据Bernoulli原理生成概率向量[1,0,…,1],然后与输入序列相乘,之后进行forward propagation,backpropagation,这样就相当于集成算法中的Bagging一样,生成了多个子网络,那么多个子网络的平均表达结果就可以规避掉过度耦合的关系.
Dropout有两种版本:

  • Vanilla Dropout
  • Inverted Dropout
    两者的区别在于放缩的顺序,一个是在inference的时候进行放缩,一个是在train的时候放缩.后者相较于前者的优势在于不必在predict的时候频繁调整结果(要放缩).
    Inverted版本需要在输入序列与概率序列相乘后进行放缩,设p为丢弃概率,则需对相乘后的序列乘上 $ \frac{1}{1-p} $ ,而这个放缩后的序列也会体现在反向传播的梯度中.
    之所以要进行放缩,是因为此刻我丢弃了p%的数据,那么整体的规模缩小了(1-p)%,则需要放大 $ \frac{1}{1-p} $ 倍.

一些名词解释

  • SGD stochastic gradient descent 随机梯度下降:GD的话需要计算所有向量以计算梯度值,随机取的话可以减少计算量,但存在陷入局部最优的可能
  • top1 error rate:top1错误率,即分类问题中正确标签不是最佳概率的总数/样本总数
  • top5 error rate:top5错误率,即分类问题中正确标签不是前五个较大概率的可能结果的总数/样本总数

以下论文还没看完

Pose-guided Feature Disentangling for Occluded Person Re-identification Based on Transformer

  本文名词解释:

  • ViT(Vision Transformer 用于抽取小片特征的视觉Transformer)
  • PFD(Pose-guided Feature Disentangling 姿态引导的特征分离)
  • Re-ID(Re-identification 再识别)
  • PFA(Pose-guided Feature Aggregation 姿态引导的特征聚合[含匹配和分配机制])
  • PVM(Pose-View Matching 姿态视图匹配 匹配身体的可见部分,把遮挡的部分分离)
  • Post-guided Push Loss 特征值,用于强调身体的可见部分

本博客所有文章除特别声明外,均采用 CC BY-SA 4.0 协议 ,转载请注明出处!