CNN初探

Posted liqiniuniu

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了CNN初探相关的知识,希望对你有一定的参考价值。

卷积神经网络结构:

技术图片

 

1、

  数据输入层:

    去均值:将平均值变为0

    归一化:将不同的特征,取值范围变为一致的

    PCA降维、白化

2、

  卷积计算层:

    每个神经元看做是一个过滤器(一个带权重的矩阵),过滤器对原数据进行卷积相关操作(内积),不同过滤器关注的特征不同

    局部连接:过滤器提取局部特征,然后再与后面的网络相连。

    参数共享:一个卷积核包含多个神经元,不同神经元的权重参数不同,但是一个神经元在原始数据上进行滑动提取局部特征,在这个工程中,参数是不变的。

              技术图片

3、

  激励层:

    上面的图中output是由input和filter由线性关系得到的。

    激励层的作用就是对output做一个非线性的变换、映射。

    激活函数一般采用relu函数或者tanh,尽量不要用sigmod。

    技术图片

      采用ReLu的原因

      第一,采用sigmoid等函数,算激活函数时(指数运算),计算量大,反向传播求误差梯度时,求导涉及除法,计算量相对大,而采用Relu激活函数,整个过程的计算量节省很多。

      第二,对于深层网络,sigmoid函数反向传播时,很容易就会出现 梯度消失 的情况(在sigmoid接近饱和区时,变换太缓慢,导数趋于0,这种情况会造成信息丢失),从而无法完成深层网络的训练。

      第三,ReLu会使一部分神经元的输出为0,这样就造成了 网络的稀疏性,并且减少了参数的相互依存关系,缓解了过拟合问题的发生。

4、

  池化层:

    用来压缩图像,提取局部主要特征,减小过拟合。

    特征不变性:一个狗的图片,压缩为一半之后仍能看出是一条狗,保留了主要特征。

    特征降维:提取主要特征,去除冗杂信息。

    最常用max polling,其次average polling。

    技术图片 技术图片

 

5、

  全连接层:

    和最后的输出层相连的,和传统神经网络一致。


 

CNN训练方法;

  定义损失函数,采用随机梯度下降(每次训练只采用部分训练样本来求取梯度),来求解过滤器的权重以及偏置bias。

 

以上是关于CNN初探的主要内容,如果未能解决你的问题,请参考以下文章

Tensorflow Serving 初探

初探 Bazel

初探AlarmManager:使用

初探Scapy

javascript 函数初探 --- 闭包初探#1

javascript 对象初探 --- call()和apply()初探