美文网首页神经网络
神经网络(二)

神经网络(二)

作者: Daily_Note | 来源:发表于2018-11-21 19:00 被阅读210次

神经网络

1. 神经网络基础

2. MNIST数据集浅层神经网络分析

3. 卷积神经网络

4. 卷积神经网络MNIST数字图片识别


3. 卷积神经网络

深度的神经网络

  • 深度神经网络与更常见的单一隐藏层神经网络的区别在于深度,深度学习网络中,每一个节点层在前一层输出的基础上识别一组特定的特征。随着神经网络深度增加,节点所能识别的特征也就越来越复杂。
  1. 卷积神经网络与简单全连接神经网络的比较
    • 全连接神经网络的缺点
      • 参数太多
      • 没有利用像素之间位置信息
      • 层数限制
  2. 卷积神经网络的发展历史
  • 卷积神经网络的表现:


    CNN错误率.png

    在10和11年时,错误率很高,12年时,卷积神经网络的出现,错误率下降了很多,接下来的几年错误率一直在降低,在15年已经超过了人类水平。

  • 1989年,LeCun发明了卷积神经网络的雏形LeNet,将LeNet改造之后,AlexNet有了历史性的突破,准确率直线上升,各种各样的神经网络都出现了。


    卷积神经网络.png
  1. 神经网络的结构分析
  • 神经网络的基本组成包括输入层、隐藏层、输出层。而卷积神经网络的特点在于隐藏层分为卷积层和池化层(又叫下采样层)。
    - 卷积层:通过在原始图像上平移来提取特征
    - 池化层:通过特征后稀疏参数来减少学习的参数,降低网络的复杂度,(最大池化和平均池化)
    • CNN的结构:
      1. 卷积层过滤器(相当于观察窗口,里面有权重,移动来观察)

        • 个数
        • 大小(一般为奇数1 * 1、3 * 3、5 * 5)
        • 步长(移动的像素数量),太大观察的太粗略,一般为1
          • 移动过程中越过图片大小:
            • 不越过,直接停止观看
            • 就直接超过,用0填充周围
        • 零填充:卷积核在提取特征映射时的动作称之为padding(零填充),由于移动步长不一定能整除整张图的像素宽度。其中有两种方式,SAME和VALID
          • SAME:越过边缘取样,取出的面积和输入图像的像素宽度一致。
          • VALID:不越过边缘取样,取样的面积小于输入的图像的像素宽度。
        • 卷积层输出深度、输出宽度
          • 深度由过滤器个数决定
          • 宽度:
            • 输入体积大小H1 * W1 * D1
            • 四个超参数:
              • Filter数量K
              • Filter大小F
              • 步长S
              • 零填充大小P
            • 输出体积大小H2 * W2 * D2
              • H2 = (H1-F+2P)/S+1
              • W2 = (W1-F+2P)/S+1
              • D2 = K
        • 卷积计算过程(一个通道一个Filter一个步长):


          image.png
        • 从最左上方开始计算,filter覆盖3*3的方块大小,进行卷积计算(对应的位置相乘在相加),得出的数填在红色方块的一个块里,依次移动计算填入红色方块。
        • 当步长为2时:


          image.png
      2. 激活函数

        • Relu函数:
        f(x) = max(0,x)
        
        • sigmoid函数的缺点:
          • 采用sigmoid等函数,反向传播求误差梯度时,计算量相对大,而采用Relu激活函数,整个过程的计算量节省很多。
          • 对于深度网络,sigmoid函数反向传播时,很容易就会出现梯度消失的情况(求不出权重和偏置)。
        • 激活函数API:
          • tf.nn.rule(features,name=None)
            • features:卷积后加上偏置的结果
            • return:结果
      3. 池化(Pooling)层

        • Pooling层主要作用是特征提取,通过去掉Feature Map中不重要 的样本,进一步减少参数的数量。Pooling的方法有很多种,最常用的是Max Pooling。Max Pooling的计算方法与卷积层计算法类似,也是用一个小的filter,只不过是选择方框中最大的值,填入最后的结果表中。图下图所示:


          image.png
        • 池化API

          • tf.nn.max_pool(value,ksize=,strides=,padding=,name=None)输入上执行最大池数
            • value:4-D Tensor形状[batch,height,width,channels]
            • ksize:池化窗口大小[1,ksize,ksize,1]
            • strides:步长大小,[1,strides,strides,1]
            • padding:"SAME","VALID",使用的填充算法的类型,使用“SAME”。
      4. 全连接层

        • 前面的卷积和池化相当于做特征工程,后面的全连接相当于做特征加权。最后的全连接层在整个卷积神经网络中起到“分类器”的作用。
  1. 卷积网络API介绍
    • tf.nn.conv2d(input, filter,strides=,padding=,name=None)计算给定4-Dinput和fileter张量的2维卷积
      • input:给定的输入张量,具有[batch,height,width,channel],类型为float32, 64。
      • filter:指定过滤器的大小,[filter_height,filter_width, in_channels, out_channels]
      • strides:strides=[1, stride,stride, 1]步长
      • padding:“SAME”,“VALID”,使用的填充算法的类型,使用“SAME”。其中“VALID”表示滑动超出部分舍弃,“SAME”表示填充,使得变化后height,width一样大。

相关文章

  • 人工神经网络综述

    文章主要分为:一、人工神经网络的概念;二、人工神经网络的发展历史;三、人工神经网络的特点;四、人工神经网络的结构。...

  • 神经网络CNN的简单实现

    (一)神经网络图解和算法的推导(二)神经网络代码的实现

  • 神经网络(四):应用示例之分类

    一、 传统分类模型的局限 在之前的文章中(《神经网络(一)》、《神经网络(二)》和《神经网络(三)》),我们...

  • 二维卷积运算

    卷积神经网络是含有卷积层(convolutional layer)的神经网络。本章中卷积神经网络均使用最常见的二维...

  • 二、浅层神经网络

    二、浅层神经网络 1.神经网络 神经网络是机器学习中的一种模型,是一种模仿动物神经网络行为特征,进行分布式并行信息...

  • 神经网络(三):神经网络

    一、 神经元到神经网络 在之前的文章中(《神经网络(一)》和《神经网络(二)》),我们讨论了如何为神经元搭建...

  • 神经网络(三):神经网络

    一、 神经元到神经网络 在之前的文章中(《神经网络(一)》和《神经网络(二)》),我们讨论了如何为神经元搭建...

  • 卷积神经网络学习(一)滤波器意义

    作者:荔枝boy 一. 卷积神经网络的发展 二. 卷积神经网络的重要性 三. 卷积神经网络与图像识别 四. 滤波器...

  • 学习笔记第三章第二部分: 深度学习入门:基于 Python 的理

    chapter3 第二部分神经网络 3.1 三层神经网络的实现 我们将以 numpy 数组完成一个三层神经网络, ...

  • 卷积神经网络结构

    卷积神经网络是一个多层的神经网络,每层由多个二维平面组成,而每个平面由多个独立神经元组成。 图:卷积神经网络的概念...

网友评论

    本文标题:神经网络(二)

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