赞
踩
卷积神经网络的各层中的神经元是3维排列的:宽度、高度和深度。卷积神经网络主要由输入层、卷积层,ReLU层、池化(Pooling)层和全连接层(全连接层和常规神经网络中的一样)构成。在实际应用中往往将卷积层与ReLU层共同称之为卷积层,所以卷积层经过卷积操作也是要经过激活函数的
在单层神经网络时,我们使用的激活函数是sgn函数。到了两层神经网络时,我们使用的最多的是sigmoid函数。而到了多层神经网络时,研究发现ReLU函数在训练多层神经网络时,更容易收敛,并且预测性能更好。因此,目前在深度学习中,最流行的非线性函数是ReLU函数。ReLU函数是分段线性函数。其表达式为y=max(x,0)。简而言之,在x大于0,输出就是输入,而在x小于0时,输出就保持为0。
卷积层的作用类似滤波器,卷积核(kernel)/滤波器(filter)在空间上(宽度和高度)都比较小,但是深度和输入数据一致。
单次的卷积运算,即为左边红色框内的数字与卷积核(kernel)/过滤器(filter)中对应位置的数字相乘再求和,其结果为右边红色框内示出的值(0)。可以看到,框的大小,即卷积核的大小是人为设定的,直观地,可以将卷积核的大小与“时间分辨率”类比,卷积核越大,分辨率越低。
然后,将红色框向右移动一个单位(即滑动步长stride=1),再次进行卷积运算,这个过程如下图所示:
然后不断重复以上过程(向右移动到末端之后,回到起始位置,再向下移动同样的stride,再重复以上过程即可),可以得到最终结果:
由以上卷积过程可以看到,卷积运算可能导致“图像”减小,可以采用填充(padding)的方式来处理。
如下图所示,为了使得大小为6*6的图像(N2)经卷积运算后大小不变,可以事先填充,将其变为8*8的图像(这里用0填充),经过卷积运算可以得到6*6的图像(N3)。称这种图像经卷积运算后大小不变的填充方式为same(在许多CNN的模型如VGG-16中都会用到same方式的卷积运算)。
通常在连续的卷积层之间会周期性地插入一个池化层,以减少运算量。如下图所示,选择3*3的区域(红色框),最大池化即为从中选取最大值(这里是2)。步长stride=3(图中用s表示),因此可以得到四个池化后的值。
在实际应用中,CNN中往往用到多个通道的情形,以三个通道的情形为例,卷积运算过程如下图所示:
一般用立方体的形式表示以上过程,且往往卷积核数目为多个,如下图所示:
与常规神经网络一样,它们的激活可以先用矩阵乘法,再加上偏差。
Copyright © 2003-2013 www.wpsshop.cn 版权所有,并保留所有权利。