卷积神经网络与典型结构

一、神经网络与卷积神经网络

  0.DNN能用到计算机视觉上吗?为什么需要CNN?

   卷积神经网络和人工神经网络的差异在哪?

  1.层级结构

    (1)保持了层级的网络结构

    (2)不同的层次有不同形式的(运算)与功能

    (3)主要是以下的层次:

      数据输入层/input layer

      卷积计算层 /CONV layer

      激励层   /Activation layer

      池化层 /Pooling layer

      全连接层/FC layer

      Batch Normalization 层(可能有)

    (4)数据输入层/input layer:

      三种常见的数据处理方式:

        去均值:把输入数据各个维度都中心化到0

        归一化:幅度归一化到同样的范围

        PCA(主成分分析)/白化:用PCA降维

            白化是对数据每个特征轴上的幅度归一化

    (5)卷积计算层/CONV layer

      局部关联。每个神经元都看做一个filter,或者叫做kernal

      窗口(receptive field)滑动,filter对局部数据进行计算

      涉及概念:

        深度/depth:第二层神经元的个数,有多少个filter/kernal就有多少个depth

        步长/stride 比如一个3x3的滑窗,每次向右滑动2格,这个格数就叫做stride

        填充值/zero-padding

      参数共享机制:假设每个神经元连接窗口的权重是固定的

      固定每个神经元连接权重,可以看做模板

      每个神经元只关注一个特性  

      需要估算的权重个数减少:一层1亿=>3.5w

      一组固定的权重和不同窗口的数据做内积:卷积

    (6)激励层:把卷积层输出结果做非线性映射

      CNN慎用sigmoid

      首先试RELU,因为快,但是要小心

      如果RELU失效,请用Leaky RELU或者Maxout

      某些情况下tanh倒是有不错的结果,但是很少

    (7)池化层/Pooling layer

      夹在连续的卷积层中间

      压缩数据和参数的量,减小过拟合

      Max pooling最大池化

      average pooling平均池化 

    (8)全连接层/FC layer

      两层之间所有的神经元都有权重连接

      通常全连接层在卷积神经网络尾部

    (9)典型的CNN结构为
      INPUT

      [[CONV -> RELU]*N ->POOL?]*M

      [FC ->RELU]*K

      FC    

    (10)卷积神经网络卷积层可视化理解

    (11)卷积神经网络训练算法

      通一般机器学习算法,先定义Loss function,衡量和实际结果之间的差距

      找到最小化损失函数的W和b,CNN中的算法是SGD

      SGD需要计算W和b的偏导

      BP算法就是计算偏导用的

      BP算法的核心是求导链式法则

      BP算法利用链式求导法则,逐级相乘直到求解出dW和db

      利用SGD/随机梯度下降,迭代和更新W和b

    (12)卷积神经网络的优缺点  

      优点:

        共享卷积核,优化计算量

        无需手动选取特征,训练好权重,即得特征

        深层次的网络抽取图像信息丰富,表达效果好

      缺点:

        需要调参,需要大量样本,GPU等硬件资源

        物理含义不明确

  2.数据处理

  3.训练算法

二、正则化与Dropout

  1.正则化与Dropout处理

    (1)神经网络学习能力强可能会过拟合

    (2)Dropout(随机失活)正则化:别一次开启所有的学习单元

     

  2.Droupout理解

    (1)防止过拟合的第一种理解方式:

    (2)防止过拟合的第二种理解方式:

      

三、典型结构与训练

  1.典型CNN

    (1)Lenet

    (2)AlexNet

    (3)ZFNet

    (4)VGG

    (5)GoogLeNet

    (6)ResNet

  2.训练与调优

  3.卷积神经网络优缺点:

    (1)优点:共享卷积核,优化计算量

        无需手动选择特征,驯良好权重,即得特征

        深层次的网络抽取图像信息丰富,表达效果好

     缺点:需要调参,需要大量样本,GPU等硬件依赖

        物理含义不明确

posted @ 2019-01-15 21:07  stone1234567890  阅读(378)  评论(0编辑  收藏  举报