卷积神经网络基础介绍1
Posted xiaowa
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了卷积神经网络基础介绍1相关的知识,希望对你有一定的参考价值。
1.了解卷积神经网络的发展历程:
1962年提出Hubel-Wiesel模型,其中涉及简单细胞对应卷积层,复杂细胞对应池化层;
1984年出现神经认知机(卷积神经网络的雏形);
1989年Lecun提出多层卷积神经网络LeNet用于手写数字识别,1994年诞生LeNet5;此后二十年不断进行深层结构优化与训练学习方法的改进;
2012年Hinton团队搭建八层卷积神经网络AlexNet(五层卷积三层全连接),在两个GPU上运行,极大地降低了ImageNet的错误率,自此迎来深度学习热潮;
2014年牛津计算机视觉组提出16-19层的VGGNet,谷歌提出22层Google Inception Net网络,都得到了良好的图像分类与定位效果;
2015年微软研究院使用残差学习单元提出152层的ResNet残差神经网络。
2.提升卷积神经网络性能的技术手段:
(1)增加神经网络层数;
(2)加大样本训练的数量,增大数据集规模(数据扩增--即对原始图片施行各种变换,得到更多的数据,比如讲原始图片旋转一个小角度,添加随机噪声,带弹性的形变,截取原始图片的一部分)
(3)改进训练学习算法;
LRN层:对局部神经元的活动创建竞争机制,使得其中响应比较大的值变得相对更大,并抑制其他反馈较小的神经元,增强模型的泛化能力;
正则化防止过拟合(通过约束参数的范数使其不要过大,降低模型的复杂度,从而减少噪声输入的扰动)L2正则化使用权重衰减的方法;
Dropout防止过拟合,训练半数网络,每一个半数网络都给出一个分类结果,神经网络将其平均或集成;(dropconnect,maxout)
激活函数relu通过简单的阈值化的激活对参数进行稀疏化;若训练学习设置过高,可能导致达百分之四十网络处于“死亡”中,这部分神经元在整个训练过程中从未被激活过;(LRelu,PRelu)
Batch Normalization通过预处理操作,让每个隐层的所有节点的激活输入分布归一化到均值为0,方差为1的标准正态分布;
3.卷积神经网络的应用:图像分类,目标检测,图像语义分割,图片标题生成,人脸识别,行人再识别,图像超分辨率,人体动作识别,图像检索。
CNN演化历史:
关于卷积神经网络在tensorflow应用上的几个知识点:
1.softmax函数:神经网络反向传播的过程就是讲权值调整最优化的过程,使得通过这一套权值有很强的证据表明该图像属于属于哪一些标签;softmax通过像素权值可以得到最有力的证据对应最大的概率值,以获取很好的分类效果(将证据转换为概率)
概率y=softmax(evidence) 证据就是卷积网络的输出值;
2.tensorflow常用的API:
tf.nn 提供神经网络相关操作的支持(卷积,池化,归一化等)
tf.layers 提供高层的神经网络操作,主要和卷积相关,tf.nn更篇底层
tf.contrib 提供计算图中的网络层,正则化摘要操作,是构建图的高级操作;
3.卷积权重初始化:我们需要的是一组较小的正数,一般使用正态分布或截断的正态分布,可以最好的获得想要的权重初始化结果(通常截断的正太分布效果更佳,它抛弃了超出2倍方差的值,可以将取值更多的分布在靠近0的范围内),注意,不要使用一组相同的数(神经网络不能学习到哪些特征是重要的)或者过小的值(权重更新不明显)进行初始化;还有其他的初始化方式如均匀分布,xavier,msra等;
4.batch normalization:在卷积神经网络的每一个卷积层加入批归一化操作可以有效降低深度神经网络中对weight初始化的依赖;通过一定的规范手段,将每层神经网络任意神经元这个输入的分布强行拉回到均值为0,方差为一的标准正态分布,它的目的是获取更大的梯度(学习收敛速度更快),避免产生梯度消失的问题;
以上是关于卷积神经网络基础介绍1的主要内容,如果未能解决你的问题,请参考以下文章