卷积神经网络
卷积神经网络(convolutional neural network,CNN)是一类包含卷积计算且具有深度结构的前馈神经网络,是深度学习的代表算法之一。卷积神经网络具有表征学习能力,能够按其阶层结构对输入信息进行平移不变分类。其隐含层内的卷积核参数共享和层间连接的稀疏性使得卷积神经网络能够以较小的计算量对格点化特征,例如像素和音频进行学习、有稳定的效果且对数据没有额外的特征工程要求。
网络结构
1.卷积层
由于输入图像通常很维数很高,例如,1000×1000大小的彩色图像对应于三百万维特征,因此,继续沿用多层感知机中的全连接层会导致庞大的参数量。大参数量需要繁重的计算,而更重要的是大参数量会有更高的过拟合风险。卷积是局部连接、共享参数版的全连接层,这两个特性使参数量大大降低。
局部连接:在全连接层中,每个输出通过权值(weight)和所有输入相连。在卷积层中,每个输出神经元在通道方向保持全连接,而在空间方向上只和小部分输入神经元相连。
共享参数:卷积层不同空间位置的神经元共享权值,用于发现图像中不同空间位置的模式。共享参数是深度学习一个重要的思想,其在减少网络参数的同时仍然能保持很高的网络容量(capacity)。
卷积层中的权值通常被称为滤波器(filter)或卷积核(convolution kernel)。卷积层由若干个卷积核构成,每层卷积层通过卷积核在图像上平移进行卷积运算来提取特征。卷积运算的目的是提取输入的不同特征,不同的卷积层提取的特征不同,浅层的卷积层只能提取一些低级的特征如边缘,线条等,深层的网络能从低级特征中迭代提取更复杂的特征。通过多层卷积层堆叠,各层提取到特征逐渐由边缘、纹理、方向等低层级特征过渡到文字、车轮、人脸等高层级特征。