网吧网站怎么做的,网站建设实验后体会,网站后台查找软件,济阳做网站多少钱CNN基本原理详解 卷积神经网络#xff08;Convolutional Neural Network#xff0c;简称CNN#xff09;#xff0c;是一种前馈神经网络#xff0c;人工神经元可以响应周围单元#xff0c;可以进行大型图像处理。卷积神经网络包括卷积层和池化层。 卷积神经网络是受…CNN基本原理详解 卷积神经网络Convolutional Neural Network简称CNN是一种前馈神经网络人工神经元可以响应周围单元可以进行大型图像处理。卷积神经网络包括卷积层和池化层。 卷积神经网络是受到生物思考方式启发的MLPs多层感知器它有着不同的类别层次并且各层的工作方式和作用也不同。这里提供一个较好的CNN教程http://cs231n.github.io/convolutional-networks/。文章中详细介绍了CNN的计算方式和数据的流动过程这里只做简单的介绍。
传统神经网络如下图所示 CNN网络结构 如图所示CNN网络工作时会伴随着卷积并且不断转换着这些卷积。
Keras–基于python的深度学习框架 Keras是一个高层神经网络APIKeras由纯Python编写而成并基Tensorflow、Theano以及CNTK后端。Keras 为支持快速实验而生能够把你的idea迅速转换为结果如果你有如下需求请选择Keras
简易和快速的原型设计keras具有高度模块化极简和可扩充特性支持CNN和RNN或二者的结合无缝CPU和GPU切换 keras适用于python2.7-3.6 安装需要执行 pip install keras 即可。
CNN基本原理
注本文主要介绍CNN的基本原理不会细说传统神经网络和神经元的知识假定你已经了解这些。
1 CNN网络层级结构 CNN网络一共有5个层级结构
输入层卷积层激活层池化层全连接FC层
输入层 与传统神经网络/机器学习一样模型需要输入的进行预处理操作常见的3中预处理方式有
去均值归一化PCA/SVD降维等
卷积层 局部感知人的大脑识别图片的过程中并不是一下子整张图同时识别而是对于图片中的每一个特征首先局部感知然后更高层次对局部进行综合操作从而得到全局信息。 卷积层使用“**卷积核”**进行局部感知。举个例子来讲一个32×32×3的RGB图经过一层5×5×3的卷积后变成了一个28×28×1的特征图那么输入层共有32×32×33072个神经元第一层隐层会有28×28784个神经元这784个神经元对原输入层的神经元只是局部连接如下图所示 通过局部感知特性大大减少了模型的计算参数。但是仅仅这样还是依然会有很多参数。这就有了权值共享机制 在上面的局部感知中假设有1m的隐层神经元每个神经元1010的连接这样就会有1m10*10个参数。实际上对于每一层来讲所有神经元对应的权值应该是相等的也就是说第一个神经元的参数向量为[w1,w2,…,w100]那么其他同层的神经元也是[w1,w2,…,w100]这就是权值共享。 为什么需要权值共享呢同一层下的神经元的连接参数只与特征提取的有关而与具体的位置无关因此可以保证同一层中所有位置的连接是权值共享的。例如第一层隐层是一般用边缘检测第二层是对第一层学到的边缘曲线组合得到一些特征比如角度、线形等第三层会学到更加复杂的特征比如眼睛、眉毛等。对于同一层来说他们提取特征的方式是一样的第三层的神经元都是用来提取“眼睛”的特征因此需要计算的参数是一样的。 激励层
所谓激励实际上是对卷积层的输出结果做一次非线性映射。 如果不用激励函数其实就相当于激励函数是f(x)x这种情况下每一层的输出都是上一层输入的线性函数。容易得出无论有多少神经网络层输出都是输入的线性组合与没有隐层的效果是一样的这就是最原始的感知机了。 常用的激励函数有
Sigmoid函数Tanh函数ReLULeaky ReLUELUMaxout 激励层建议首先ReLU因为迭代速度快但是有可能效果不加。如果ReLU失效的情况下考虑使用Leaky ReLU或者Maxout此时一般情况都可以解决。Tanh函数在文本和音频处理有比较好的效果。
池化层
池化Pooling也称为欠采样或下采样。主要用于特征降维压缩数据和参数的数量减小过拟合同时提高模型的容错性。主要有
Max Pooling最大池化Average Pooling平均池化 通过池化层使得原本44的特征图压缩成了22从而降低了特征维度。 虽然人不太容易分辨出池化后的特征图但是没关系机器还是可以识别的。
输出层
经过前面若干次卷积激励池化后终于来到了输出层模型会将学到的一个高质量的特征图片全连接层。其实在全连接层之前如果神经元数目过大学习能力强有可能出现过拟合。因此可以引入dropout操作来随机删除神经网络中的部分神经元来解决此问题。还可以进行局部归一化LRN、数据增强等操作来增加鲁棒性这里不做介绍。 当来到了全连接层之后可以理解为一个简单的多分类神经网络如BP神经网络通过softmax函数得到最终的输出。整个模型训练完毕。 下图展示了一个含有多个卷积层激励层池化层的过程