TensorFlow笔记八

TensorFlow笔记八

++@Author:LF
@Date:2018-1-21++

1卷积神经网络

之前的Mnist数字识别问题使用的是简单的全连接神经网络,图片的输入数据时二维的28*28,即无色彩的单通道图片,使用各种优化方法,识别的正确率可以达到98.5%左右,然而很多情况下图片都是彩色且大小很大,那么全连接神经网络就会显得有点鸡肋,由于图片的复杂程度变大,从而使得Input_Node的数量变多,在时间和效率上已经无法达到比较满意的结果。因此就出现了卷积神经网络。

卷积神经网络的结构和全连接神经网络类似,都是由输入层、隐藏层和输出层构成,训练的过程一如出一辙,唯一不同的是隐藏层中将会在全连接层之前加入卷积层和池化层以达到降低参数数量,提高正确率和效率的目的。

1.1卷积层

表示由于在数学上还没学到卷积,所以并没有对卷积的原理深究,大概理解了一下,卷积的作用是将图片的深度加深。即对于图片的某一部分进行抽象,更深入的研究其特征。当然对于卷积过程,因为数学比较烂所以不准备花过多时间理解。对于每一个卷积层,都需要人工定义一个过滤器,过滤器在图片上进行移动卷积,从而达到改变图片深度,抽象出更具体的特征的目的。卷积层和全连接层的一个区别就在于,卷积层的连接方式。对于全连接层是每个节点的输入数据都是前一层的所有输出数据,而卷积层是每个节点的输入数据只是前一层的部分输出数据。

1.2池化层

池化层本质上和卷积层没有区别,也是由过滤器在图片上移动。和卷积层不同的是,池化层的目的是缩小图片大小,且不改变其深度。从宏观上理解,其实就是将图片的长宽变小,从而降低参数数量,也就是降低图片分辨率的过程。

1.3 TensorFlow对卷积层的支持

从MNIST的实战中可以看出,在定义全连接层时候首先要定义InputNodes、Weights、baise,然后输出。卷积层的过程和此类似:

 ①:设置卷积层的基本参数
 tf.nn.conv2d(input_Node(输入数据),
    filter_weight(卷积层的权重定义,即过滤器的定义),
    Strides=[ 1,1,1,1 ](步长定义)
    Padding=’SAME’(填充方式,SAME全0填充,VALID不填充))
 ②:tf.nn.bias_add(conv,biases)    添加偏置项,同全连接层。
 ③:tf.nn.relu()激活函数去线性化 

1.4 TensorFlow对池化层的支持

池化层的定义与卷积层相同

tf.nn.max_pool(actived_conv,
    ksize=[1,3,3,1],
    strides[1,2,2,1],
    padding=’SAME’)

2 经典的卷积网络模型

现在对于卷积神经网络处理图像已经有了很多非常经典且正确率很高的模型,书中举了两个例子。

2.1 LeNet-5模型。

LeNet-5模型有七层
卷积层->池化层->卷积层->池化层->全连接层->全连接层->全连接层
这个模型对于MNIST的识别正确率达到了99.4%
这里有一个公式来说明一般情况下对于图像识别分类的卷积神经网络架构:
输入层->(卷积层+->池化层?)+->全连接层+
简单来说就是一到多个卷积层加上一个或没有池化层加上全连接层的结构。这种结构和前面的神经网络其实都比较相似。

2.2Inception-v3模型

很有意思的是,Inception-V3模型和之前学到的所有模型结构都不一样,之前的都是串联在一起数据从头到位,而Inception-v3模型的中间层是并联+串联的形式组合在一起的。感觉比较复杂,这个模型一共有46层,分成了11个模块,模块之间串联,模块之中的每一层是并联。由于这个模型的确比较复杂。。所以并不打算深入研究。以后再说好了T T。

3、迁移学习

之前一直听过迁移学习,其实迁移学习就是把别人已经训练好的模型拿来改一改用于解决自己手上的实际问题。毕竟训练一个模型以及数据集的标注收集都会花费比较长的时间。其实在一个神经网络中,真正给出最后分类答案的只是最后一层,而之前的所有层都可以将其理解为将一个图片抽象其特征的过程,根据研究证明,将一个模型的所有卷积层参数保留,只是替换最后一层全连接层依旧可以达到很好的训练效果。因此,在很多情况下,解决实际问题时可以利用已经成熟的模型框架的瓶颈层加上一层全连接层构成一个神经网络。当然一般情况下迁移学习的效果不如重新训练的效果,但是却很节省时间。

4 总结

今天主要学习了卷积神经网络的结构以及实现思路,顺带思考了一下项目中图像识别的思路,虽然对于卷积的数学原理并不熟悉,但是感觉应该不影响使用。接下来准备实战一下今天学习到卷积网络模型和迁移学习的方法,加深一下自己的理解。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值