【深度学习】 卷积神经网络中的相关知识

卷积神经网络

卷积神经网络(Convolutional neural network),经典的多层感知机是有一系列的全连接层组成,卷积神经网络中除了全连接层以外,还有卷积层和池化层(pooling)。

为什么需要卷积层

多层感知机中的全连接层会导致庞大的参数量,这会有很高的过拟合风险。卷积是局部连接、共享参数版本的全连接层。这样就使参数量大大降低。

卷积层中的权值常常称作滤波器(filter)或卷积核(Convolution kernel)。

preview

局部连接

在全连接层中,每个输出通过权值(weigh)和所有的输入相连。而在视觉识别中,关键性的图像特征、边缘、角点等只占据了图像的一部分,图像中的相距很远的两个像素之间的相互影响的可能性很小。

因此,在卷积层中,每个神经元在通道方向上保持全连接,而在空间方向上只和一小部分输入神经元相连。

共享参数

如果一组权值可以在图像中某个区域提取出有效的表示,那么它们也能在图像的另外区域中提取出有效的表示。也就是说,如果一个模式(pattern)出现在图像中的某个区域,那么它们也可以出现在图像中的其他任何区域。因此,卷积层不同空间位置的神经元共享权值,用于发现图像中不同空间位置的模式。共享参数是深度学习一个重要的思想,其在减少网络参数的同时仍然能保持很高的网络容量(capacity)。卷积层在空间方向共享参数,而循环神经网络(recurrent neural network)在时间上共享参数。

卷积层的作用

通过卷积,我们可以捕获图像的局部信息。通过多层卷积的堆叠,各层提取到特征逐渐由边缘、纹理、方向等低层特征过渡到文字、车轮、人脸等高级层级特征。

卷积层中的卷积核数学教材中的卷积有什么关系 

这里的卷积核数学教材中的卷积基本上没有关系。卷积层中的卷积实质是输入和权值互相关(cross-correlation)函数,而不是数学教材中的卷积。

描述卷积的四个量

一个卷积层的配置由四个量确定:

(1)滤波器的个数:使用一个滤波器对输入进行卷积会得到一个二维特征图(feature map)。我们可以同时使用多个滤波器对输入进行卷积,以得到多个特征图。

(2)感受野(F,receptive field):即滤波器空间局部连接大小。

(3)零填充(P,zero-padding):随着卷积的进行,图像会缩小,图像的边缘信息丢失。零填充可以控制输出图像的大小。

(4)步长(S,stride):滤波器在输入每移动S个位置,进行一次神经元输出。

使用TensorFlow进行卷积运算:

卷积操作的实现

有如下几种思路

(1)快速傅里叶变换(FFT)。通过变换到频域,卷积运算将变为普通矩阵乘法。实际中,当滤波器尺寸大时效果好,而对于通常使用的1×1和3×3卷积,加速不明显。

(2)im2col(image to column)。im2col将与每个输出神经元相连的局部输入区域展成一个列向量,并将所有得到的向量拼接成一个矩阵。这样卷积运算可以用矩阵乘法实现。im2col的优点是可以利用矩阵乘法的高效实现,而弊端是会占用很大存储,因为输入元素会在生成的矩阵中多次出现。此外,Strassen矩阵乘法和Winograd也常被使用。现有的计算库如MKL和cuDNN,会根据滤波器大小选择合适的算法。

应该使用多大的滤波器

猜你喜欢

转载自blog.csdn.net/plSong_CSDN/article/details/88591574
今日推荐