卷积神经网络介绍以及卷积层结构

动态观察视频http://playground.tensorflow.org/
一、深层的神经网络
深度学习网络与更常见的单一隐藏层神经网络的区别在于深度,深度学习网络中,每一个节点层在前一层输出的基础上学习识别一组特定的特征。随着神经网络深度增加,节点所能识别的特征也就越来越复杂。
二、卷积神经网络
(一)卷积神经网络与简单的全连接神经网络的比较
1、全连接神经网络的缺点
(1)参数太多,在cifar-10的数据集中,只有32323,就会
有这么多权重,如果说更大的图片,比如2002003就需
要120000多个,这完全是浪费
(2)没有利用像素之间位置信息,对于图像识别任务来说,
每个像素与周围的像素都是联系比较紧密的
(3)层数限制
(二)卷积神经网络的发展历史
卷积神经网络介绍以及卷积层结构
(三)卷积神经网络的结构分析
卷积神经网络介绍以及卷积层结构
卷积神经网络介绍以及卷积层结构
神经网络(neural networks)的基本组成包括输入层、隐藏层、
输出层。而卷积神经网络的特点在于隐藏层分为卷积层和池化层(pooling layer,又叫下采样层)。
**1、卷积层:**通过在原始图像上平移来提取特征,每一个特征
就是一个特征映射;
(1)定义过滤器(相当于一个观察窗口),过滤器大小一般取奇数(11,33,5*5),步长(移动的像素数量一般取1),领填充(移动越过图片大小)。
(2)卷积层的零填充
卷积核在提取特征映射时的动作称之为padding(零填充),由于移动步长不一定能整出整张图的像素宽度。其中有两种方式,SAME和VALID。
A、SAME:越过边缘取样,取样的面积和输入图像的像素宽度一致;
B、VALID:不越过边缘取样,取样的面积小于输入人的图像的像素宽度。
卷积神经网络介绍以及卷积层结构
(3)**函数(增加**函数相当于增加网络的非线性分割能力)
A、采用sigmoid等函数,反向传播求误差梯度时,计算量相对大,而采用Relu**函数,整个过程的计算量节省很多
B、对于深层网络,sigmoid函数反向传播时,很容易就会出现梯度消失的情况(求不出权重和偏置)
卷积神经网络介绍以及卷积层结构
**2、池化层:**通过特征后稀疏参数来减少学习的参数,降低
网络的复杂度,(最大池化和平均池化)。Pooling层主要的作用是特征提取,通过去掉Feature Map中不重要的样本,进一步减少参数数量。Pooling的方法很多,最常用的是Max Pooling。
卷积神经网络介绍以及卷积层结构
**3、Full Connected层:**前面的卷积和池化相当于做特征工程,后面的全连接相当于做特征加权。最后的全连接层在整个卷积神经网络中起到“分类器”的作用。

(四)卷积网络API介绍
卷积层:
tf.nn.conv2d(input, filter, strides=, padding=, name=None)
计算给定4-D input和filter张量的2维卷积
1、input:给定的输入张量,具有[batch,heigth,width,
channel],类型为float32,64
2、filter:指定过滤器的大小,[filter_height, filter_width,
in_channels, out_channels]
3、strides:strides = [1, stride, stride, 1],步长
4、padding:“SAME”, “VALID”,使用的填充算法的类型,
使用“SAME”。其中”VALID”表示滑动超出部分舍弃,
“SAME”表示填充,使得变化后height,width一样大。
**函数:
tf.nn.relu(features, name=None)
1、features:卷积后加上偏置的结果
2、return:结果
池化:
tf.nn.max_pool(value, ksize=, strides=, padding=,name=None)输入上执行最大池数
1、value:4-D Tensor形状[batch, height, width, channels]
2、ksize:池化窗口大小,[1, ksize, ksize, 1]
3、strides:步长大小,[1,strides,strides,1]
4、padding:“SAME”, “VALID”,使用的填充算法的类型,
使用“SAME”。