TensorFlow实战-TensorFlow实现卷积神经网络CNN-第5章

第5章-TensorFlow实现卷积神经网络CNN

5.1 卷积神经网络简介

卷积神经网络CNN最初是为了解决图像识别等问题设计的,当然现在的应用已经不限于图像和视频,也可以用于时间序列信号,比如音频信号、文本数据等。

在深度学习出现之前,必须借助SIFT、HoG等算法提取出有效而丰富的特征,再集合SVM等机器学习算法进行图像识别。

CNN作为一个深度学习架构被提出来最初的诉求是降低对图像数据预处理的要求,以及避免复杂的特征工程。CNN最大的特点是在于卷积的权值共享结构,可以大幅减少神经网络的参数量,方式过拟合的同时又降低了神经网络模型的复杂度。

卷积神经网络的历史
感受野 —> 神经认知机(S-cells/C-cells)

卷积神经网络可以利用空间结构关系减少需要学习的参数量,从而提高方向传播算法的训练效率。在卷积神经网络中,第一个卷积层直接接受图像像素的输入,每一个卷积操作只处理一小块图像,进行卷积变化后再传到后面的网络,每一层卷积都会提取数据中最有效的特征。这种方法可以提取到图像中最基本的特征,而后再进行组合和抽象形成更高阶的特征。

一般卷积神经网络由多个卷积层构成,每个卷积层中通常会进行如下几个操作。

  1. 图像通过多个不同的卷积核的滤波,并加偏置,提取出局部特征,每一个卷积核会映射出一个新的2D图像
  2. 将前面卷积核的滤波输出结果,进行非线性的激活函数处理。目前最常见的是使用ReLUctant函数,而以前sigmoid函数用的比较多。
  3. 再激活函数的结果再进行池化操作(即降采样),目前一般是使用最大池化,保留最显著的特征,并提高模型的畸变容忍能力。
    这几个步骤构成了最常见的卷积层,当然也可以加上一个LRN(局部响应归一化层)层,目前非常流程的trick还有batch normalization等。

一个卷积层中可以有多个不同的卷积核,而每一个卷积核都对应一个滤波后映射的新图像,同一个新图像中每一个像素都来自完全相同的卷积核,这就是卷积核的权值共享。我们为什么要共享卷积核的权值参数呢?答案很简单,降低模型复杂度,减轻过拟合并降低计算量。

每一个卷积核滤波得到的图像就是一类特征的映射,即一个Feature map。
参数量和隐含节点个数或者图片大小无关,只跟卷积核的大小有关,这就是所谓的权值共享。

总结一下就是,卷积神经网络的要点就是局部连接、权值共享、池化层中的降采样。

LeNet5

LeNet5是最早的深层卷积神经网络之一
LeNet5特性有如下几点:

  • 每个卷积层包含三部分,卷积、池化和非线性激活函数
  • 使用卷积提取空间特征
  • 降采样的平均池化层
  • 双曲正切tanh或者s型sigmoid的激活函数
  • MLP多层感知机作为最后的分类器
  • 层与层之间的稀疏连接减少计算复杂度

LeNet5结构图如下所示:

5.2 TensorFlow实现简单的卷积网络

原文地址:https://www.cnblogs.com/LearnFromNow/p/9349636.html

时间: 2024-10-29 21:25:47

TensorFlow实战-TensorFlow实现卷积神经网络CNN-第5章的相关文章

深度学习之卷积神经网络CNN及tensorflow代码实现示例

一.CNN的引入 在人工的全连接神经网络中,每相邻两层之间的每个神经元之间都是有边相连的.当输入层的特征维度变得很高时,这时全连接网络需要训练的参数就会增大很多,计算速度就会变得很慢,例如一张黑白的 28×28 的手写数字图片,输入层的神经元就有784个,如下图所示: 若在中间只使用一层隐藏层,参数 w 就有 784×15=11760 多个:若输入的是28×28 带有颜色的RGB格式的手写数字图片,输入神经元就有28×28×3=2352 个-- .这很容易看出使用全连接神经网络处理图像中的需要训

《神经网络与深度学习》(五) 卷积神经网络CNN及tensorflow代码实现示例

转自:http://blog.csdn.net/cxmscb/article/details/71023576 一.CNN的引入 在人工的全连接神经网络中,每相邻两层之间的每个神经元之间都是有边相连的.当输入层的特征维度变得很高时,这时全连接网络需要训练的参数就会增大很多,计算速度就会变得很慢,例如一张黑白的 28×28 的手写数字图片,输入层的神经元就有784个,如下图所示: 若在中间只使用一层隐藏层,参数 w 就有 784×15=11760 多个:若输入的是28×28 带有颜色的RGB格式的

卷积神经网络CNN总结

从神经网络到卷积神经网络(CNN)我们知道神经网络的结构是这样的: 那卷积神经网络跟它是什么关系呢?其实卷积神经网络依旧是层级网络,只是层的功能和形式做了变化,可以说是传统神经网络的一个改进.比如下图中就多了许多传统神经网络没有的层次. 卷积神经网络的层级结构      ? 数据输入层/ Input layer ? 卷积计算层/ CONV layer ? ReLU激励层 / ReLU layer ? 池化层 / Pooling layer ? 全连接层 / FC layer 1.数据输入层该层要

深度学习(一) 卷积神经网络CNN

Contents 图像数据集基础 全连接神经网络解决图片问题的弊端(前世) 卷积神经网络的今生 网络结构 卷积操作 池化操作 小结 图像数据集基础 数字图像划分为彩色图像.灰度图像.二值图像和索引图像几种.其中,像素是构成图像的基本单位,例如一张28×28像素的图片,即表示横向有28个像素点,纵向有28个像素点. 最常用的彩色图像和灰度图像: 彩色图像:每个像素由RGB三个分量来表示,即红绿蓝.每个分量介于(0,255).那么,对于一个28×28的彩色图像,便可以由三个表示RGB颜色分量的28×

人工智能之卷积神经网络(CNN)

前言:人工智能机器学习有关算法内容,请参见公众号“科技优化生活”之前相关文章.人工智能之机器学习主要有三大类:1)分类;2)回归;3)聚类.今天我们重点探讨一下卷积神经网络(CNN)算法. ^_^ 20世纪60年代,Hubel和Wiesel在研究猫脑皮层中用于局部敏感和方向选择的神经元时发现其独特的网络结构可以有效地降低反馈神经网络的复杂性,继而提出了卷积神经网络CNN(Convolutional Neural Networks). 1980年,K.Fukushima提出的新识别机是卷积神经网络

卷积神经网络(CNN)的简单实现(MNIST)

卷积神经网络(CNN)的基础介绍见http://blog.csdn.net/fengbingchun/article/details/50529500,这里主要以代码实现为主. CNN是一个多层的神经网络,每层由多个二维平面组成,而每个平面由多个独立神经元组成. 以MNIST作为数据库,仿照LeNet-5和tiny-cnn( http://blog.csdn.net/fengbingchun/article/details/50573841 ) 设计一个简单的7层CNN结构如下: 输入层Inpu

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

卷积神经网络(CNN)学习笔记1:基础入门 Posted on 2016-03-01   |   In Machine Learning  |   9 Comments  |   14935  Views 概述 卷积神经网络(Convolutional Neural Network, CNN)是深度学习技术中极具代表的网络结构之一,在图像处理领域取得了很大的成功,在国际标准的ImageNet数据集上,许多成功的模型都是基于CNN的.CNN相较于传统的图像处理算法的优点之一在于,避免了对图像复杂的

卷积神经网络(CNN)模型结构

卷积神经网络(CNN)模型结构 转载:http://www.cnblogs.com/pinard/p/6483207.html 看到的一片不错的文章,先转过来留着,怕以后博主删了.哈哈哈 在前面我们讲述了DNN的模型与前向反向传播算法.而在DNN大类中,卷积神经网络(Convolutional Neural Networks,以下简称CNN)是最为成功的DNN特例之一.CNN广泛的应用于图像识别,当然现在也应用于NLP等其他领域,本文我们就对CNN的模型结构做一个总结. 在学习CNN前,推荐大家

tensorflow学习笔记五:mnist实例--卷积神经网络(CNN)

mnist的卷积神经网络例子和上一篇博文中的神经网络例子大部分是相同的.但是CNN层数要多一些,网络模型需要自己来构建. 程序比较复杂,我就分成几个部分来叙述. 首先,下载并加载数据: import tensorflow as tf import tensorflow.examples.tutorials.mnist.input_data as input_data mnist = input_data.read_data_sets("MNIST_data/", one_hot=Tru