资 源 简 介
个人整理的CNN学习笔记,所有素材均来自于互联网。把经典的摘之以作备案,待整理好这份笔记后,发现对CNN也有了深入理解,希望对你也有帮助!LOCALLY CONNECTED NEURAL NETCONVOLUTIONAL NETSTATIONARI? Statisties issimilar at dif ferent locationsLearn multiple filters.Example: 1000x1000 image1M hidden unitsFilter size: 10x10E.g. 1000x1000 image100M parameters100 FiltersFilter size: 10x10u鴻網互聯EEIDEE下面的分析来源于:htp/ log csdn. net/zouxy09/ article/details,/8781543我们知道,隐含层的每一个神经元都连接10x10个图像区域,也就是说每一个神经元存在10x10=100个连接权值参数。那如果我们每个神经元这100个参教是相同的呢?也就是说每个神经元用的是同一个卷积核去卷积图像。这样我们就只有多少个参数??只有100个参数啊!!!亲!不管你隐层的神经元个数有多少,两层间的连接我只有100个参数啊!亲!这就是权值共享啊!亲!这就是卷积神经网络的主打卖点啊!亲!(有点烦了,呵呵)也许你会问,这样做靠谱吗?为什么可行呢?好了,你就会想,这样提取特征也忒不靠谱吧,这样你只提取了一种特征啊?对了,頁聪明,我们需要提取多种特征对不?假如一种滤波器,也就是一种卷积核就是提出图像的一种特征,例如某个方向的边缘。那么我们需要提取不同的特征,怎么办,加多几种滤波器不就行了吗?对∫。所以假设我们加到100种滤波器,每种滤波器的参数不一样,表示它提出输入图像的不同特征,例如不同的边缘。这样每种滤波器去卷积图像就得到对图像的不同特征的放映,我们称之为 Feature Map。所以100种卷积核就有100个 Feature Map。这100个 Feature Map就组成了一层神经元。到这个时候明了了吧。我们这一层有多少个参数了?100种卷积核x每种卷积核共享100个参数=100×100=10K,也就是1万个参数。才1万个参数啊!亲!(又来了,受不了了!)见上图右:不同的颜色表达不同的滤波器嘿哟,遗漏一个问题了。刚才说隐层的参数个数和隐层的神经元个数无关,只和滤波器的大小和滤波器种类的多少有关。那么隐层的神经元个数怎么确定呢?它和原图像,也就是输入的大小(神经元个数)、滤波器的大小和滤波器在图像中的滑动步长都有关!例如,我的图像是1000×1000像素,而滤波器大小是10×10,假设滤波器没有重叠,也就是步长为10,这样隐层的神经元个数就是(1000×1000y(10×10}=100×100个神经元了,假设步长是8,也就是卷积核会重叠两个像素,那么……我就不算了,思想懂了就好。注意了,这只是一种滤波器,也就是一个 Feature Map的神经元个数哦,如果100个 Feature Map就是100倍了。由此可见,图像越大,神经元个数和需要训练的权值参数个数的贫富差距就越大。CONV NETS: EXTENSIONSBypool ing"(e. g. max or average)filterresponses at different locations we gain Over the years. some new medes have proven to be veryrubustness to the exact spatial location effective when plugged inte corv-netsof featuresL2 PoolingU, kEN(x,r)Local Contrast normalizationhN(x y)iN(xvIRenato总之,卷积网络的核心思想是将:局部感受野、权值共享(或者权值复制)以及时间或空间亚采样这三种结构思想结合起来获得了某种程度的位移、尺度、形变不变性。23实例视觉皮层存在两类相关的细胞,S细胞( Simple Cel)和C( Complex Cell)细胞。S细胞在自身的感受野内最大限度地对图像中类似边缘模式的剌激做出响应,而C细胞具有更大的感受野,它可以对图像中产生刺激的模式的空间位置进行精准地定位C是卷积层,S是下采样层。参看这个两个网址,对理解CNN非常有帮助http://www.68idc.cn/help/buildlang/ask/20150705417730.htmlhttp://www.68idc.cn/help/buildlang/ask/20150705419299.html涵pC1s2c384江蘇鴻網互刷三 -TOLERc是卷积层,S是下采样层。输入的一幅图像,在C1层,通过和3个卷积模板做卷积运算,然后加上偏置值,再经过 sigmoid激活函数,得到3幅输出图像,在S2层,对C1层输出的3幅图像做下采样,假设采样因子是2,也就是图中每2*2的 patch中的4个像素进行求和,再加偏置,再通过激活函数,得到3张尺寸减小了的输出图像。同样的,再经过C3S4。将S4的输出拉成一个向量,输入传统的神经网络中,并得到输出24综合实例G1: feature maps8@28X28C3: f. mapInp ut20@10x1032×32S1: f. mapsS4: f. maps@14x1420@5x5C5:120Output: 9ConvolutionsSubsamplingSubsamplingconnectionConvolutions og. Csdn. n Convolutions 688图中的卷积网终Ⅰ作流程如下,输入层由32×32个感知节点组成,接收原始图像。然后,计算流程在卷积和子抽样之间交替进行,如下所述·第一隐藏层进行卷积,它由8个特征映射组成,每个特征映射由28×28个神经元组成,每个神经元指定一个5×5的接受域,这28×28个神经元共享5×5个权值参数,即卷积核第二隐藏层实现子抽样和局部平均,它同样由8个特征映射组成,但其每个特征映射由14×14个神经元组成。每个神经元具有一个2×2的接受域,一个可训练系数,一个可训练偏置和一个 sigmoid激活函数。可训练系数和偏置控制神经元的操作点;第三隐藏层进行第二次卷积,它由20个特征映射组成,每个特征映射由10×10个神经元组成。该隐藏层中的每个神经元可能具有和下一个隐藏层几个特征映射相连的突触连接,它以与第一个卷积层相似的方式操作。第四个隐藏层进行第二次子抽样和局部平均汁算。它由20个特征映射组成,但每个特征映射由5×5个神经元组成,它以与第一次抽样相似的方式操作。●第五个隐藏层实现卷积的最后阶段,它由120个神经元组成,每个神经元指定一个5×5的接受域。最后是个全连接层,得到输出向量。综合起来,如下图山辆入员/閩张38的圈像辆入|种特图到C28×28KD卷,:对应位遇相森再未和⊙如偏置每种图有个偏置a老积层f同治减函数6↑5的卷铝kC6个偏置值b输邶钟培钲图24X0mno:22域的值平均坐smle=2辆入6种征图列12|2k2个55的着核kKk22个偏置值b辆出12钟特钲图8×88×g年怦居D mean pooL斜样9=2s输出口钟特征图4x叶把S园輪出的特征图垣成一年向量入,维,:平4x×12=12F房入节点有2个192资接的神经刚络W1,09W参教W:20×192矩阵爹教bho0x1向量oh辆出节点有个,国为baby的度是o·上图中28如何变成24的?12如何变成8的?详情见这个网址:hto:/ud. stanfordedu/wki/ index. php/ Featureextractionusing convolution这个过程中,有这么几个参数:a.深度 depth:神经元个数,决定输出的dept厚度。同时代表滤波器个数。*b.步长 stride:决定滑动多少步可以到边缘。C.填充值zero- padding:在外围边缘补充若干圈0,方便从初始位置以步长为单位可以刚好滑倒末尾位置,通俗地讲就是为了总长能被步长整除。最左边一列是输入层,第二列是第一个滤波器(W0),第三列是第二个滤波器(W1),第四列是输出层。*该图有两个神经元,即 depth=2,意味着有两个滤波器数据窗口每次移动两个步长取3*3的局部数据,即stde=2。zero-padding=13cNN的激励层与池化层ReLU激励层不要用 sigmoid,因为它容易饱和、造成终止梯度传递,且没有0中心化ReLU的优点是收敛快,求梯度简单。·池化poo层池化,简言之,即取区域平均或最大,如下图所示Single depth slice1124Xmax pool with 2X2 filters5678 and stride 26832234304y参考文献:·htp:/ yann lecun. com/exdb/lenet/index. html( Yann securη实现的CNN演示,以动画的形式演示了位移、加噪、旋转、压缩等识别,最有价值的是把隐层用图像显示出来了,很生动形象)