人工神经网络是一个硬件和/或软件系统,模仿神经元在人类大脑中的运转方式。卷积神经网络 (CNN) 通常会在多个全连接或池化的卷积层中应用多层感知器(对视觉输入内容进行分类的算法)的变体。
CNN 的学习方式与人类相同。人类出生时并不知道猫或鸟长什么样。随着我们长大成熟,我们学到了某些形状和颜色对应某些元素,而这些元素共同构成了一种元素。学习了爪子和喙的样子后,我们就能更好地区分猫和鸟。
神经网络的工作原理基本也是这样。通过处理标记图像的训练集,机器能够学习识别元素,即图像中对象的特征。
CNN 是颇受欢迎的深度学习算法类型之一。卷积是将滤波器应用于输入内容的简单过程,会带来以数值形式表示的激活。通过对图像反复应用同一滤波器,会生成名为特征图的激活图。这表示检测到的特征的位置和强度。
卷积是一种线性运算,需要将一组权重与输入相乘,以生成称为滤波器的二维权重数组。如果调整滤波器以检测输入中的特定特征类型,则在整个输入图像中重复使用该滤波器可以发现图像中任意位置的特征。
例如,一个滤波器用于检测特定形状的曲线,另一个滤波器用于检测垂直线,第三个滤波器用于检测水平线。其他滤波器可以检测颜色、边缘和光线强度。连接多个滤波器的输出,即可以表示与训练数据中的已知元素匹配的复杂形状。
CNN 通常由三层组成:1) 输入层、2) 输出层和 3) 包含多个卷积层的隐藏层,其中隐藏层为池化层、全连接层和标准化层。
第一层通常用于捕捉边缘、颜色、梯度方向和基本几何形状等基本特征。添加层后,此模型会填充高级特征,这些特征会逐渐确定一个大型棕色图块,首先是车辆,然后是汽车,然后是别克。
池化层会逐渐缩小表示的空间的大小,提高计算效率。池化层会单独对每个特征图进行运算。池化层中常用的方法是最大池化,即捕捉数组的最大值,从而减少计算所需的值的数量。堆叠卷积层允许将输入分解为其基本元素。
标准化层会对数据进行正则化处理,以改善神经网络的性能和稳定性。标准化层通过将所有输入都转换为均值为 0 且方差为 1,从而使每个层的输入更便于管理。
全连接层用于将一层中的各个神经元与另一层中的所有神经元相连。