概述
前一节的内容对卷积网络的padding,stride等概念有了介绍,这一节会需要回顾一下其中重要的几个概念包括池化(Pooling)、过采样(upsample)以及激活函数ReLU。首先我们根据一张经典的LeNet5网络来了解下降维也就是下采样。
可以看到,两个subsampling层将原来输入的28*28的图像数据见魏晨了14*14和5*5;
那么下采样是怎么实现的呢,实际上这个操作的执行就是池化,如上图所示,池化主要分为两种average个Max,在这里我们的卷积核大小设置为2*2,步长stride=2,所以原始输入的4*4的图像会被下采样成一个2*2的图像,这样就会有2*2一共4个元素,那么区别开卷积操作,池化是一个二次采样的过程,并不会有一个权值矩阵进行矩阵的乘法。所以分别对应的两种采样的方式是对原来kernel size大小的观察域里取均值或者是最大值,这样降低了维度也一定程度上保留了原来图像包含的信息。
这张图是stride=1的情况。下边举个例子看下对一张单通道黑白图片的采样过程可以看到结果,均值的情况结果是一张灰度的图,max的话则是把那一块偏向于白色(255)的值进行了最大程度的表征。
由此我们回到LeNet-5网络结构,看看其具体的代码实现过程;
说完了下采样,那一定有上采样,也就是维数的扩展,这里举个例子示例下
这个例子就是对邻近的一个维度进行等值的复制填充,从而从2*2扩展到4*4的纬度。具体的代码如下图所示
上采样和下采样介绍完了,这里看下激活函数ReLU,作为一个我们熟知的非线性激活函数有效的解决了sigmoid的梯度弥散和爆炸问题,我萌康康他的效果
最后
以上就是平常大树为你收集整理的Tensorflow 卷积神经网络(三)池化与采样的全部内容,希望文章能够帮你解决Tensorflow 卷积神经网络(三)池化与采样所遇到的程序开发问题。
如果觉得靠谱客网站的内容还不错,欢迎将靠谱客网站推荐给程序员好友。
发表评论 取消回复