zoukankan      html  css  js  c++  java
  • 卷积神经网络与典型结构

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

      0.DNN(MLP多层感知器)能用到计算机视觉上吗?为什么需要CNN

        DNN可以用在计算机视觉上,

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

        

        为什么需要卷积神经网络。下面是一个32x32x3的图片,隐层一般为1024或者4096的维度。输入维度是4k左右,隐层在1024维度。这会导致过拟合和太大的计算量

      2.层级结构

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

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

        (3)主要有以下层次

          数据输入层/Input layer

            有3中常见的数据处理方式:

              去均值:把输入数据各个维度第中心化到0,必做,AlexNet,VGG,在RGB上取均值。

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

              PCA/白化:用PCA降维;白化是对数据每个特征轴上的幅度归一化

              下图一是原始数据,数据不要随着每次的变化偏移越来越大或者说有越来越大的偏移度,所以需要去均值,将数据各个维度中心化到0

               如下图,使用PCA降维,找到一些正交的轴,然后将数据投影到轴上,是一个去相关的操作。白化是做完PCA之后,把数据归一化到一个范围之内。

          图像处理:resize()===>sub mean(去均值)

          卷积计算层/CONV layer   第一层

            卷积核(kernel,filter):第二层用于数据处理,用于数据计算的神经元.

            每个神经元和前一层的所有输入都去进行连接,而且 每一个连接都要给一个权重w,这个时候参数量就会很大,

            局部关联。每个神经元看做一个filter

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

            涉及概念:

              深度/depth,第二层神经元的个数,有多少个kernel(filter)这个depth值就是多少

              步长/stride,滑窗每次滑动的格数

              填充值/zero-padding,在周边补0的圈数

          滑窗滑到每个位置的计算。用滑窗和对应位置做乘积,然后将所有的乘积加在一起。每到一个位置都是做这样的处理,

          参数共享机制

          假设每个神经元连接数据窗的权重是固定的;假定每个神经院连接权重,可以看做模板,每个神经元只关注一个特性。需要估算的权重格数减少:一层1亿=》3.5w

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

          激励层/Activation layer:把卷积层输出的结果做非线性映射

            Sigmoid:

            Tanh(双曲正切)

            ReLU

            Leaky ReLU

            ELU

            Maxout

          池化层(下采样层)/Pooling layer

            夹在连续的卷积层中间

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

            

      

          全连接层/FC layer

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

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

          典型CNN结构为:

          

          Batch Normalization层(可能有)  2015年google提出

          CNN慎用sigmoid!

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

          如果2失败,请用Leaky RELU或者Maxout

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

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

          CONV Layer 2

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

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

          SGD需要计算W和b的偏导

          BP算法就是计算偏导用的

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

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

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

        (6)卷积神经网络优缺点:

          优点:

            共享卷积核,优化计算量

            无序手动选择特征,训练好权重,即得特征

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

          缺点:

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

            物理含义不明确    

      3.数据处理

      4.训练算法

      5.优缺点

    二、正则化与Droupout

      0.神经网络学习能力强可能会过拟合

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

        

      1.正则化与Droupout处理

      2.Droupout理解

    三、典型结构与训练

      1.典型CNN

      2.训练与优化

  • 相关阅读:
    如果你想开发一个应用(1-17)
    如果你想开发一个应用(1-16)
    如果你想开发一个应用(1-15)
    0079 Ehcache 3.x应用入门及通过JCache与Spring整合
    0078 Java与MySQL时间戳传递/存储/协调问题--userLegacyDatetimeCode--userTimezone--serverTimezone
    0077 web.xml中配置Spring MVC时,Servlet-name上报Servlet should have a mapping的错误
    0076 判断回文串
    0075 字符串的反转
    0074 几道面试题
    0073 javacTask: 源发行版 1.8 需要目标发行版 1.8
  • 原文地址:https://www.cnblogs.com/bigdata-stone/p/10324933.html
Copyright © 2011-2022 走看看