卷积神经网络

版权声明:本文为博主原创文章,未经博主允许不得转载。 https://blog.csdn.net/yingfengfeixiang/article/details/79944824

(本文并不能完全彻底介绍卷积神经网络,只是根据自己的理解来进行记录,其实是为了加深自己的印象以及为以后复习提供支持;若要深刻理解见参考博文)

从神经网络到卷积神经网络

为什么?
1.对于人工神经网络,如果输入数据维度较高、神经元较多、隐藏层较多这些都会导致参数过多,而参数的过多会导致模型训练速度慢。
2.人工神经网络随着层数的不断增加,如果层数过多容易产生过拟合。
卷积神经网络是让神经元进行部分学习,然后在合成。其实是一种分布式思想。
每一层的神经元,其实只和上一层里某些小区域进行连接,而不是和上一层每个神经元全连接。

卷积神经网络的结构

卷积神经网络主要的的3层:

  • 卷积层
  • Pooling层
  • 全连接层

具体来说:

  • 输入层(Input层)
  • 卷积层(CONV层)
  • 激励层
    激励函数有Sigmoid、Tanh、ReLU、Leaky ReLU、ELU、Maxout。

    激励函数在实际应用的使用:
    1.不要用Sigmoid
    2.首先尝试ReLU,速度快,但要做观测,避免挂掉
    3.如果2失效,用Leaky ReLU或Maxout
  • 池化层(Pooling层)
    池化方法:Max pooling 和 average pooling。池化层主要是进行下采样,达到数据压缩的目的。
    下图为采用max pooling方法得到结果。
  • 全连接层(FC层)

结构示例 (针对图像)
我们继续拿CIFAR-10数据集举例,一个典型的该数据集上的卷积神经网络分类器应该有[INPUT - CONV - RELU - POOL - FC]的结构,具体说来是这样的:

  • INPUT[32*32*3]包含原始图片数据中的全部像素,长宽都是32,有RGB 3个颜色通道。
  • CONV卷积层中,没个神经元会和上一层的若干小区域连接,计算权重和小区域像素的内积,举个例子可能产出的结果数据是[32*32*12]的。
  • RELU层,就是神经元激励层,主要的计算就是max(0,x),结果数据依旧是[32*32*12]。
  • POOLing层做的事情,可以理解成一个下采样,可能得到的结果维度就变为[16*16*12]了。
  • 全连接层一般用于最后计算类别得分,得到的结果为[1*1*10]的,其中的10对应10个不同的类别。和名字一样,这一层的所有神经元会和上一层的所有神经元有连接。

总结一下:

  • 一个卷积神经网络由多种不同类型的层(卷几层/全连接层/RELU层/POOLing层等)叠加而成。
  • 每一层的输入结构是3维的数据,计算完输出依旧是3维的数据。
  • 卷积层和全连接层包含训练参数,RELU和POOLing层不包含。
  • 卷积层,全连接层和POOLing层包含超参数,RELU层没有。
卷积神经网络的优缺点

优点:

  • 共享卷积核,对高维数据处理无压力
  • 无需手动选取特征,训练好权重,即得特征
  • 分类效果好

缺点:

  • 需要调参、需要大样本量,训练最好用GPU
  • 物理含义不明确
典型的CNN
  • LEnet
  • AlexNet——用的较多,深度适中
  • ZFNet
  • VGG——较深,人脸识别效果好
神经网络常用框架

1.caffe
Model Zoo中有大量预训练好的模型供使用。
2.Mxnet
对显存利用率非常高;
定义网络层简单。
3.TensorFlow
可视化方便,实时监控;
数据和模型并行化好,速度快。
4.另外:theano、Keras、Torch
参考:https://blog.csdn.net/han_xiaoyang/article/details/50542880

阅读更多
想对作者说点什么?

博主推荐

换一批

没有更多推荐了,返回首页