CNN

作者: thqby | 来源:发表于2020-11-24 13:51 被阅读0次

    本文将从以下几个方面介绍CNN:

    1.CNN的产生背景

        CNN是卷积神经网络的简称,它是将人类观察事物的规律特点用于算法,解决图片识别问题的一种神经网络算法。

    2.CNN的特点

        CNN有如下几个特点:

        2.1.卷积层参数共享

        在卷积层中的每个神经元所连接的数据窗的权重是固定的,每个神经元只观察一个特征,神经元就是图像处理的滤波器。

        2.2.局部感受野

    3.CNN的网络模型

        卷积神经网络包括如下几个模块:卷积层、激活函数、池化层、全连接层、损失函数。主要用途有两个,特征提取和决策推断。

        3.1.卷积层

        卷积的作用是特征提取,因为一次卷积可能提取的特征比较粗糙,所以多次卷积,以及层层纵深卷积,层层提取特征(层层卷积不等于同一层多次卷积)。为什么要层层卷积,每层还要多次卷积呢?这里我们以相亲为例,假设我们第一次见到相亲对象,看第一眼,先看到对方的眼睛,发现细长有神;再看对方的眉毛,发现长长的;再看对方的鼻子,整体顺眼,没有鹰钩鼻之类的不好鼻型;好,本层多次卷积特征提取完毕。然后边聊天边喝咖啡,又注意到对方的嘴巴也很性感;说话声音也很富有磁性性感;又观察到对方今天有刮胡子;好,第二层的多次卷积特征提取完毕,然后对方不经意撩了下自己的头发,又观察到对方的头发长短适中,和自己的爱豆一样的发型,好,第三层的卷积特征提取完毕。然后得出结论,对方的外形符合自己的理想。总结下,人类在有限的视野范围内不可能一次将事物的特征完全提取,所以需要多次层层提取,然后得出结论。卷积神经网络正是利用人类的这一特点,进行特征提取和进一步的决策推断。

        3.2.激活函数

        Relu激活函数,激活函数的作用是将线性分布转化为非线性分布,更逼近我们的真实场景。之所以使用 Relu激活函数,而不是tan或者sigmod函数的激活函数,是因为这两种函数都无法解决梯度消失的问题。梯度消失问题详见:https://zhuanlan.zhihu.com/p/76772734,所以这里我们使用Relu激活函数。

        上图均为盗图。

        3.3.池化层

        池化层的作用是:减少输入矩阵的大小;提取主要特征,它的目的就说在后续操作时能降低运算。

        3.4.全连接层

         全连接层的作用:分类器角色,将特征映射到样本标记空间,本质是矩阵变换(affine)

        3.5.损失函数

        作用:计算损失函数,从而求出梯度grad。

        p_{i} =\frac{e^zi}{\sum_{j=1}^k }

        其中z_{i} 是要计算的类别 i 的网络输出,分母是网络输出所有类别之和(共有k个类别),p_{i}表示第 i 类的概率。

        交叉熵损失:

        J = - \frac{1}{N} \sum_{1}^N\sum_{i=1}^ky_{i}.log(p_{i} )

        其中,y_{i} 是类别 i  的真实标签,p_{i} 表示第 i 类的概率,N是样本总数,k是类别数。

        我们知道信息熵反应了事物的不确定性,这里损失函数的J值越大反应了事物分类属于哪类的不确定性越大。

        3.6.前向传播法

        前向传播包含卷积、激活函数、池化层、全连接层。主要是权重参数 w,b 的初始化,以及更新 w,b ,生成

        分类器模型。

        3.7.反向传播法

        反向传播法主要是利用损失函数的梯度下降法,反向计算dw,db的 值,激活函数逆变换,反池化,反全连接。

         3.8. 梯度下降

        作用,梯度下降法用来计算新的参数矩阵 w 。

        sgd公式为:x_{t+1} =  x_{t}  + \Delta x_{t} ,  \Delta x_{t} = -\eta g_{t} ,其中

         其中,η为学习率,gt为x在t时刻的梯度。 

        3.9. 算法的超参数说明

        一般我们是将整个数据集分成n个epoch,每个epoch再分成m个batch,每次更新都利用一个batch的数据,而非整个训练集。

        优点:batch的方法可以减少机器的压力,并且可以更快地收敛。

        缺点:其更新方向完全依赖于当前的batch,因而其更新十分不稳定。

    4.CNN的算法

    上图来自大神的图,做的很nice。本处只放图不说话...

    5.CNN的应用场景

        卷积神经网络的主要用途有两大类,数据预测和图片处理。图片处理主要包含有图像分类,检测,识别,以及分割方面的应用。

    图像分类:场景分类,目标分类

    图像检测:显著性检测,物体检测,语义检测等

    图像识别:人脸识别,字符识别,车牌识别,行为识别,步态识别等等。

    图像分割:前景分割,语义分割。

    7.参考文献

    相关文章

      网友评论

          本文标题:CNN

          本文链接:https://www.haomeiwen.com/subject/gutiiktx.html