在神经网络中,卷积神经网络(ConvNets或CNN)是进行图像识别,图像分类的主要类别之一。 物体检测,识别面部等是CNN广泛使用的一些领域。
CNN图像分类会获取输入图像,对其进行处理并将其分类为某些类别(例如,狗,猫,老虎,狮子)。 计算机将输入图像视为像素阵列,它取决于图像分辨率。 基于图像分辨率,它将看到h xw x d(h =高度,w =宽度,d =尺寸)。 例如,一个RGB矩阵的6 x 6 x 3阵列的图像(3表示RGB值)和一个灰度图像矩阵的4 x 4 x 1阵列的图像。
从技术上讲,深度学习的CNN模型用于训练和测试,每个输入图像都将通过一系列带有滤波器(内核),池化,完全连接层(FC)的卷积层并应用Softmax函数对概率值为0之间的对象进行分类 1.下图是CNN处理输入图像并基于值对对象进行分类的完整流程。
卷积层
卷积是从输入图像提取特征的第一层。 卷积通过使用输入数据的小方块学习图像特征来保留像素之间的关系。 这是一种数学运算,需要两个输入,例如图像矩阵和滤波器或内核。
考虑一个5 x 5,其图像像素值为0、1和滤波器矩阵3 x 3,如下所示
然后,将5 x 5图像矩阵的卷积与3 x 3滤波器矩阵相乘,这称为“特征图”,如下所示
使用不同的滤镜对图像进行卷积可以通过应用滤镜来执行诸如边缘检测,模糊和锐化的操作。 以下示例显示了应用不同类型的滤镜(内核)后的各种卷积图像。
步
步幅是输入矩阵上的像素移位数。 当跨度为1时,我们一次将滤镜移动到1个像素。 当跨度为2时,我们一次将滤镜移动到2个像素,依此类推。 下图显示了卷积可以以2的步幅运行。
填充
有时,过滤器无法完全适合输入图像。我们有两个选择:
用零填充图片(零填充)以使其适合
删除图像中滤镜不适合的部分。这称为有效填充,仅保留图像的有效部分。
非线性度(ReLU)
ReLU代表用于非线性操作的整流线性单元。输出为ƒ(x)= max(0,x)。
为什么ReLU很重要:ReLU的目的是在我们的ConvNet中引入非线性。因为,现实世界中的数据将希望我们的ConvNet学习到的是非负线性值。
还有其他一些非线性函数(例如tanh或Sigmoid)也可以代替ReLU使用。大多数数据科学家都使用ReLU,因为在性能方面ReLU比其他两个要好。
池化层
当图像太大时,“合并层”部分将减少参数的数量。空间池化也称为子采样或下采样,可降低每个地图的维数,但保留重要信息。空间池可以具有不同的类型:
最大池
平均池化
汇总池
最大池化从校正后的特征图中获取最大的元素。占用最大元素也可以占用平均池。要素地图中所有元素的总和称为总和池。
全连接层
我们称其为FC层的那一层,我们将矩阵展平为向量,然后将其馈入神经网络等完全连接的层。
在上图中,特征图矩阵将转换为向量(x1,x2,x3,…)。通过完全连接的层,我们将这些功能组合在一起以创建模型。最后,我们具有激活功能,例如softmax或Sigmoid,可将输出分类为猫,狗,汽车,卡车等,
总结
提供输入图像到卷积层
选择参数,大步应用过滤器,如果需要,使用填充。在图像上执行卷积并将ReLU激活应用于矩阵。
需要合并以减小维数大小
添加尽可能多的卷积层直到满意
展平输出并馈入完全连接的层(FC层)
使用激活函数(带成本函数的Logistic回归)输出类并分类图像。