1.卷积神经网络简介
卷积神经网络网络(CNN)最初是为解决图像识别等问题设计的。在深度学习之前,主要借助SIFT。HoG等算法提取图像的特征,再结合SVM等机器学习算法进行图像识别。CNN被作为一个深度学习的架构降低了对图像数据预处理的要求,避免了复杂的特征工程,CNN可以直接使用图像的原始像素作为输入,在训练时自动提取最有效的特证。
在卷积神经网络中,第一个卷积层会直接接受图像像素级的输入,每一个卷积操作只处理一小块图像,进行卷积变化后再传到后面的网络,每一层卷积(即每一个滤波器)都会提取数据中最基础的特征,而后进行组合和抽象形成高阶特征。
一般卷积神经网络由多个卷积层组成,每个卷积层中通常会进行以下几个操作:
(1)图像通过多个不同的卷积核的滤波,并加偏置提取出局部特征,每一个卷积核会映射出一个新的2D图像。
(2)将前面卷积核的滤波输出结果,进行非线性的激活函数处理
(3)对激活函数的结果再进行池化操作(即降维采样,比如将2*
2将为1*
1的图片),目前一般使用最大池化,保留最显著的特征。
一个卷积层中可以有多个不同的卷积核,而每一个卷积核都对应一个滤波后映射出的新图像,新图像的每一个像素都来自同一个卷积核,这就是卷积核的权值共享。
上图是传统的神经网络结构图,对于一个1000*
1000的输入图像而言,如果下一个隐藏层的节点数为100,神经网络采用全连接需要1000*
1000*
100=1000万个权值参数。卷积神经网络使用10*
10的滤波器进行卷积(局部连接),那么需要10*
10*
100=1万的权值参数。
1.1 卷积层
卷积:卷积操作