关于数据集的介绍

top-N正确率指的是图像识别算法给出前N个答案中有一个是正确的概率。
在图像识别方面,基于卷积神经网络的图像识别算法给图像识别问题带来了质的飞跃,从2013年之后,基本上所有的研究都集中到了深度学习算法上。

卷积神经网络的结构

前面所介绍的神经网络的每两层之间的所有结点都是有边相连的,为了和卷积神经网络、循环神经网络区分,我们这种简单的神经网络结构为全连接神经网络。
对于卷积神经网络,相邻两层之间只有部分结点相连。卷积神经网络和全连接神经网络的唯一区别在于神经网络中相邻两层的连接方式。使用全连接神经网络处理图像的最大问题在于全连接层的参数太多。参数增多除了会导致计算速度减慢,还会导致过拟合的问题,所以需要一个更合理的神经网络结构来有效地减少神经网络中参数个数。卷神经网络就可以达到这个目的。

在卷积神经网络的额前几层中,每一层的结点都被组织成一个三维矩阵。例如处理Cifar数据集图片,可以将输入层组织层一个32323的矩阵。虚线部分展示了卷积神经网络的一个连接示意图,从中可以看出,卷积神经网络中前几层每一个结点只和上一层中部分的结点相连。

一个卷积神经网络主要由以下5个结构组成:

  1. 输入层。整个神经网络的输入,在处理图像的卷积神经网络中,它一般代表了一张图片的像素矩阵。从输入层开始,卷积神经网络通过不同的神经网络结构将上一层的三维矩阵转化为下一层的三维矩阵,直到最后的全连接。
  2. 卷积层。卷积层是一个卷积神经网络最为重要的部分。和传统全连接层不同,卷积层中每一个节点的输入只是上一层神经网络的一小块,这个小块通常有33或者55.卷积层试图将神经网络中的每一小块进行更加深入地分析从而得到抽象程度更高的特征。一般来说,通过卷积层处理过的节点矩阵会变的更深。
  3. 池化层。池化层神经网络不会改变三维矩阵的深度,但是它可以缩小矩阵的大小。池化操作可以认为是将一个分辨率高的图片转化为分辨率较低的图片。通过池化层,可以进一步缩小最后全连接层中节点的个数,从而达到减少整个神经网络中参数的目的。
  4. 全连接层。在经过多轮卷积层和池化层的处理之后,在卷积神经网络的最后一般回事由1到2个全连接层来给出最后的分类结果。经过几轮卷积层和池化层的处理之后,可以认为图像中的信息已经被抽象成了信息含量更好的特征。我们可以将卷积层和池化层看成自动图像特征提取的过程。在特征提取完成之后,任然需要使用全连接层来完成分类任务。
  5. Softmax层。和全连接神经网络一样,Softmax层主要用于分类问题。通过Softmax层,可以得到当前样例属于不同种类的概率分布情况。

卷积层

过滤器的尺寸值得是一个过滤器输入节点矩阵的大小,而深度指的是输出单位节点矩阵的深度。
过滤器的前向传播过程就是通过左侧小矩阵中的节点计算出右侧单位矩阵中节点的过程。
在卷积神经网络中,每一个卷积层使用的过滤器参数都是一样的。这是卷积神经网络一个非常重要的性质。直观上理解,共享过滤器的参数可以使得图像上的内容不容易位置的影响。
共享每一个卷积层中过滤器参数可以巨幅减少神经网络上的参数。而且卷积层的参数个数和图片的大小无关,它只和过滤器的尺寸、深度以及当前层节点矩阵的深度有关,这使得卷积神经网络可以很好地扩展到更大的图像数据上。

池化层

卷积层之间往往会加上一个池化层。池化层可以非常有效地缩小矩阵的尺寸,从而减少最后全连接层中的参数。使用池化层既可以加快计算速度也有防止过拟合问题的作用。
和卷积层类似,池化层前向传播的过程也是通过移动一个类似过滤器的结构完成的。不过池化层过滤器中的计算不是节点的加权和,而是采用更加简单的最大值或者平均值运算。使用最大值操作的池化层被称之为最大池化层(max poolin),这是被使用最多的池化层结构。使用平均值操作的池化层被称之为平均池化层(average pooling)。
池化层主要用于减小矩阵的长和宽。虽然池化层也可以减小矩阵的深度,但是实践中一般不这么干。
有研究指出池化层对模型效果的影响不大,但是目前主流的卷积神经网络模型中都含有池化层。

3. 卷积神经网络(CNN)的更多相关文章

  1. 卷积神经网络(CNN)前向传播算法

    在卷积神经网络(CNN)模型结构中,我们对CNN的模型结构做了总结,这里我们就在CNN的模型基础上,看看CNN的前向传播算法是什么样子的.重点会和传统的DNN比较讨论. 1. 回顾CNN的结构 在上一 ...

  2. 卷积神经网络(CNN)反向传播算法

    在卷积神经网络(CNN)前向传播算法中,我们对CNN的前向传播算法做了总结,基于CNN前向传播算法的基础,我们下面就对CNN的反向传播算法做一个总结.在阅读本文前,建议先研究DNN的反向传播算法:深度 ...

  3. 卷积神经网络CNN总结

    从神经网络到卷积神经网络(CNN)我们知道神经网络的结构是这样的: 那卷积神经网络跟它是什么关系呢?其实卷积神经网络依旧是层级网络,只是层的功能和形式做了变化,可以说是传统神经网络的一个改进.比如下图 ...

  4. 【深度学习系列】手写数字识别卷积神经--卷积神经网络CNN原理详解(一)

    上篇文章我们给出了用paddlepaddle来做手写数字识别的示例,并对网络结构进行到了调整,提高了识别的精度.有的同学表示不是很理解原理,为什么传统的机器学习算法,简单的神经网络(如多层感知机)都可 ...

  5. 深度学习之卷积神经网络(CNN)详解与代码实现(二)

    用Tensorflow实现卷积神经网络(CNN) 本文系作者原创,转载请注明出处:https://www.cnblogs.com/further-further-further/p/10737065. ...

  6. 深度学习之卷积神经网络(CNN)详解与代码实现(一)

    卷积神经网络(CNN)详解与代码实现 本文系作者原创,转载请注明出处:https://www.cnblogs.com/further-further-further/p/10430073.html 目 ...

  7. 【深度学习系列】卷积神经网络CNN原理详解(一)——基本原理

    上篇文章我们给出了用paddlepaddle来做手写数字识别的示例,并对网络结构进行到了调整,提高了识别的精度.有的同学表示不是很理解原理,为什么传统的机器学习算法,简单的神经网络(如多层感知机)都可 ...

  8. 卷积神经网络(CNN)学习笔记1:基础入门

    卷积神经网络(CNN)学习笔记1:基础入门 Posted on 2016-03-01   |   In Machine Learning  |   9 Comments  |   14935  Vie ...

  9. 深度学习方法(五):卷积神经网络CNN经典模型整理Lenet,Alexnet,Googlenet,VGG,Deep Residual Learning

    欢迎转载,转载请注明:本文出自Bin的专栏blog.csdn.net/xbinworld. 技术交流QQ群:433250724,欢迎对算法.技术感兴趣的同学加入. 关于卷积神经网络CNN,网络和文献中 ...

  10. 深度学习之卷积神经网络CNN

    转自:https://blog.csdn.net/cxmscb/article/details/71023576 一.CNN的引入 在人工的全连接神经网络中,每相邻两层之间的每个神经元之间都是有边相连 ...

随机推荐

  1. [知识点]最近公共祖先LCA

    UPDATE(20180822):重写部分代码. 1.前言 最近公共祖先(LCA),作为树上问题,应用非常广泛,而求解的方式也非常多,复杂度各有不同,这里对几种常用的方法汇一下总. 2.基本概念和暴力 ...

  2. ACE网络编程:IPC SAP、ACE_SOCKET和TCP/IP通信实例

    socket.TLI.STREAM管道和FIFO为访问局部和全局IPC机制提供广泛的接口.但是,有许多问题与这些不统一的接口有关联.比如类型安全的缺乏和多维度的复杂性会导致成问题的和易错的编程.ACE ...

  3. map、set 使用方法 | 1022 图书馆信息查询

    看了答案才知道了这题的各种骚操作,然后敲了一顿骚键盘,然后wa.调了很久,才发现要规格化打印……mdzz…… 注:加粗代码为傻逼规格化打印代码: #include <stdio.h> #i ...

  4. 第02组 Beta冲刺(3/4)

    队名:十一个憨批 组长博客 作业博客 组长黄智 过去两天完成的任务:了解整个游戏的流程 GitHub签入记录 接下来的计划:继续完成游戏 还剩下哪些任务:完成游戏 燃尽图 遇到的困难:没有美术比较好的 ...

  5. [学习笔记] 网络最大流的HLPP算法

    #define \(u\)的伴点集合 与\(u\)相隔一条边的且\(u\)能达到的点的集合 \(0x00~ {}~Preface\) \(HLPP(Highest~Label~Preflow~Push ...

  6. [LeetCode] 92. Reverse Linked List II 倒置链表之二

    Reverse a linked list from position m to n. Do it in one-pass. Note: 1 ≤ m ≤ n ≤ length of list. Exa ...

  7. 多模态数据联合Embedding的方法小结

    当模型需要接受多个模态的数据时,往往需要设计合适的方法让他们能进行信息的融合,Joint embedding是一种较为普遍的思路,即将他们映射到同一个向量空间中,再进行融合. 向量拼接.元素级相乘.做 ...

  8. [BAT脚本] 1、BAT脚本FOR循环操作文件和命令返回实例

    Wednesday, 31. October 2018 08:18PM - beautifulzzzz 一.需求 需要在windows上实现一个bat脚本解析json,将json转换为自己想要的key ...

  9. etcd v3 ssl 集群添加新节点

    集群搭建 下面只用同一台服务器进行三个成员节点的开启 节点1 ./etcd --name cd0 --initial-advertise-peer-urls http://127.0.0.1:2380 ...

  10. python多条插入问题

    多条插入用excutemany(listtuple) #coding=utf-8 import MySQLdb import traceback sqlstr= "insert into t ...