智客公社

标题: 深度学习笔记:图像识别和卷积网络 [打印本页]

作者: 897799893    时间: 2018-12-2 08:48
标题: 深度学习笔记:图像识别和卷积网络
图像识别和卷积网络

1.图像识别问题简介和经典数据集

2.卷积神经网络
[attach]80607[/attach]

分类的卷积网络由一下5种结构组成:

3. 卷积网络常用结构

3.1 卷积层

过滤器(filter)/卷积核(kernel): 将当前层网络上的一个子节点矩阵化为下一层神经网络上的一个单位节点矩阵。
[attach]80608[/attach]

单位节点矩阵: 长宽都为1,深度不限的节点矩阵。

如上图所示,过滤器的前向传播过程就是通过左侧小矩阵中的节点计算出右侧单位矩阵中节点的过程。
[attach]80609[/attach]

卷积层的参数个数只和过滤器尺寸、深度和当前层节点深度有关。[5,5,3,16]表示尺寸5x5x3 的深度为16的过滤器。

在卷积网络中,每个卷积层使用的过滤器参数都是一样的。共享过滤器参数可以使得图像内容不受位置的影响,还可以减小网络参数。

Tensorflow实现卷积层
import tensorflow as tf# 通过tf.get_variable的方式创建过滤器的权重变量和偏置项变量。# 卷积层的参数个数只和过滤器尺寸、深度和当前层节点深度有关# 当前声明变量为4维矩阵,前两维度表示过滤器尺寸,第三个维度:当前层的深度# 第四个维度:过滤器的深度filter_weight = tf.get_variable( 'weights', [5, 5, 3, 16], initializer=tf.truncated_normal_initializer(stddev=0.1))# 偏置项也共享,本例中过滤器深度16,也是下一层节点矩阵的深度biases = tf.get_variable('biases', [16], initializer=tf.constant_initializer(0.1))# tf.nn.conv2d实现卷积前向传播计算。# 第一个参数:当前层的节点矩阵# 第二个参数:卷积层的权重# 第三个参数:不同维度上的步长,长度为4数组,但1,4维一定为1# 第四个参数:填充(padding),SAME:全0填充 VALID:不添加conv = tf.nn.conv2d( input, filter_weight, strides=[1, 1, 1, 1], padding='SAME')# tf.nn.bias_add函数给每一个节点加上偏置项。bias = tf.nn.bias_add(conv, biases)# 将计算结果通过RELU激活函数进行去线性化actived_conv = tf.nn.relu(bias)
3.2 池化层

有效缩小矩阵尺寸,较少全连接层参数,加快计算速度,防止过拟合。
[attach]80610[/attach]

池化层前向传播过程通过移动一个类似过滤器的结构完成,采用最大值或平均值运算。主要有两种:

卷积层过滤器横跨整个深度,池化层过滤器只影响一个深度上的节点

TensorFlow实现池化层(max pooling)
# tf.nn.max_pool实现了池化层前向传播的过程,参数和conv2d类似# 第一个参数:当前层的节点矩阵,四维# ksize:过滤器尺寸, 第一维和最后一维必须为1# strides:步长,第一维和最后一维必须为1# padding:是否全0填充pool = tf.nn.max_pool(actived_conv, ksize=[1, 3, 3, 1], strides=[1, 2, 2, 1], padding='SAME')
池化层过滤器常用尺寸为[1, 2, 2, 1]或者[1, 3, 3, 1]

平均池化层: tf.nn.avg_pooling()函数,参数同上。

4. 经典卷积网络模型

4.1 LeNet-5模型
[attach]80611[/attach]

第一层,卷积层

第二层,池化层

第三层,卷积层

第四层,池化层

第五层,全连接层

第六层,全连接层

第七层,全连接层

Tensorflow实现LeNet-5模型,解决MNIST

LeNet-5无法很好处理类似ImageNet的较大图像数据集

经典用于图片分类问题的卷积网络架构

输入层—>(卷积层+ —> 池化层?)+ —> 全连接层+

VGGNet 卷积网络架构参考
[attach]80612[/attach]


4.2 Inception -v3模型

Inception -v3模型中的inception结构是将不同的卷积层通过并联的方式结合在一起

一个卷积层可用边长为1、3、5的过滤器,选哪个?Inception模块的方案是:同时使用所有不同尺寸的过滤器,将得到的矩阵拼接起来。示意图如下:
[attach]80613[/attach]


作者: 劳追居何    时间: 2018-12-2 08:48
转发了
作者: 疯了的老李    时间: 2018-12-2 08:49
转发了
作者: 鈊在    时间: 2018-12-3 14:22
锄禾日当午,发帖真辛苦。谁知坛中餐,帖帖皆辛苦!
作者: mszh2005    时间: 2018-12-4 15:07
路过的帮顶




欢迎光临 智客公社 (http://bbs.cnaiplus.com/) Powered by Discuz! X3.4