您的位置:首页 > 理论基础 > 计算机网络

卷积神经网络之一:基本慨念的理解笔记

2015-02-14 22:05 651 查看
CNN 特点:

局部感受野

权重共享

池化



上图左:全连接网络,对于1000x1000像素的图像,有1百万个隐层神经元,每个隐层神经元都连接图像的每一个像素点,就有1000x1000x1000000=10^12个连接,也就是10^12个权值参数。

上图右:局部连接网络,每一个节点与上层节点同位置10x10的窗口相连接,则1百万个隐层神经元就只有100w*100,即10^8个参数。其权值连接个数比原来减少了四个数量级。

我们知道,隐含层的每一个神经元都连接10x10个图像区域,也就是说每一个神经元存在10x10=100个连接权值参数。每个神经元这100个参数是相同,也就是说每个神经元用的是同一个卷积核去卷积图像。这样我们就只有多少个参数,只有100个参数。权重共享策略减少了需要训练的参数,相同的权重可以让过滤器不受图像位置的影响来检测图像的特性,使得训练出来的模型的泛华能力更强。

我们先要明确一点:每个层有多个FeatureMap,每个Feature Map通过一种卷积滤波器提取输入的一种特征,然后每个Feature Map有多个神经元。同一个map的所有神经单元共用一个卷积核(即权重),卷积核代表一个特征,比如某个卷积核代表一段弧,那么把这个卷积核在整个图片上滚一下,卷积值较大的区域就很有可能是一段弧。注意卷积核其实就是权重,我们并不需要单独去计算一个卷积,而是一个固定大小的权重矩阵去图像上匹配时,这个操作与卷积类似,因此我们称为卷积神经网络,实际上,BP也可以看做一种特殊的卷积神经网络,只是这个卷积核就是某层的所有权重,即感知区域是整个图像。

隐层的参数个数,只和滤波器的大小和滤波器种类的多少有关。隐层的神经元个数和原图像,也就是输入的大小(神经元个数)、滤波器的大小和滤波器在图像中的滑动步长都有关!例如,我的图像是1000x1000像素,而滤波器大小是10x10,假设滤波器没有重叠,也就是步长为10,这样隐层的神经元个数就是(1000x1000 )/ (10x10)=100x100个神经元了。 而这只是一个Feature Map的神经元个数。

卷积神经网络的另外一个步骤是池化(pooling),它把输入图像分割成不重叠的矩形,对于每个矩形取最大值(max pooling),另外一种池化方法叫做(mean pooling),它对每个矩形取平均值。池化的优势是(1)它降低了上层的计算复杂度(2)它提供了一种变换不变量的。对于第二种益处,我们可以假设把一个池化层和一个卷积层组合起来,对于单个像素,输入图像可以有8个方向的变换。如果共有最大层在2*2的窗口上面实现,这8个可能的配置中,有3个可以准确的产生和卷积层相同的结果。如果窗口变成3*3,则产生精确结果的概率变成5/8.可见,池化对位置信息提供了附加的鲁棒性,它以一种非常聪明的方式减少了中间表示的维度。下图就是简单的池化过程,右侧矩阵的每个值是左侧每个红色矩阵中元素的最大值(或平均值)。
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: 
相关文章推荐