2月16日卷积神经网络由多层人工神经元组成
人工神经元是对其生物学对应物的粗略模仿,是计算多个输入的加权和并输出激活值的数学函数。每个神经元的行为由其权重定义。当输入像素值时,CNN 的人工神经元会挑选出各种视觉特征。
当您将图像输入到 ConvNet 时,它的每一层都会生成多个激活图。激活图突出了图像的相关特征。每个神经元将一块像素作为输入,将它们的颜色值乘以其权重,将它们相加,然后通过激活函数运行它们。
CNN 的第一层(或底层)通常检测基本特征,例如水平、垂直和对角线边缘。第一层的输出作为下一层的输入,提取更复杂的特征,例如角和边的组合。随着您深入卷积神经网络,这些层开始检测更高级别的特征,例如对象、面部等。
将像素值乘以权重并将它们相加的操作称为“卷积”(因此称为卷积神经网络)。一个 CNN 通常由几个卷积层组成,但它也包含其他组件。CNN 的最后一层是分类层,它将最终卷积层的输出作为输入(请记住,较高的卷积层检测复杂对象)。
基于最终卷积层的激活图,分类层输出一组置信度分数(0 到 1 之间的值),指定图像属于“类”的可能性。例如,如果您有一个检测猫、狗和马的 ConvNet,则最后一层的输出是输入图像包含任何这些动物的可能性。
训练卷积神经网络
开发 CNN 的一大挑战是调整单个神经元的权重以从图像中提取正确的特征。调整这些权重的过程称为“训练”神经网络。
一开始,CNN 从随机权重开始。在训练期间,开发人员为神经网络提供了一个大型图像数据集,并用相应的类别(猫、狗、马等)进行了注释。ConvNet 使用其随机值处理每个图像,然后将其输出与图像的正确标签进行比较。如果网络的输出与标签不匹配(很可能在训练过程开始时出现这种情况),它会对其神经元的权重进行小幅调整,以便下次看到相同的图像时,其输出将是更接近正确答案。
校正是通过一种称为反向传播(或反向传播)的技术进行的。从本质上讲,反向传播优化了调整过程,使网络更容易决定调整哪些单元,而不是进行随机修正。
整个训练数据集的每次运行都称为一个“epoch”。ConvNet 在训练期间经历了几个 epoch,少量调整了它的权重。在每个 epoch 之后,神经网络在对训练图像进行分类方面会变得更好一些。随着 CNN 的改进,它对权重所做的调整变得越来越小。在某些时候,网络会“融合”,这意味着它基本上会变得尽可能好。
在训练 CNN 之后,开发人员使用测试数据集来验证其准确性。测试数据集是一组不属于训练过程的标记图像。每个图像都通过 ConvNet 运行,并将输出与图像的实际标签进行比较。从本质上讲,测试数据集评估了神经网络在分类之前从未见过的图像方面的表现。
如果 CNN 在其训练数据上得分高,但在测试数据上得分低,则称其为“过度拟合”。这通常发生在训练数据种类不够多或 ConvNet 在训练数据集上经历了太多 epoch 时。
卷积神经网络的成功很大程度上归功于过去十年开发的巨大图像数据集的可用性。本文开头提到的竞赛 ImageNet 的名称来自一个包含超过 1400 万张标记图像的同名数据集。还有其他更专业的数据集,例如 MNIST,一个包含 70,000 张手写数字图像的数据库。
但是,您不需要在数百万张图像上训练每个卷积神经网络。在许多情况下,您可以使用预训练模型,例如 AlexNet 或 Microsoft 的 ResNet,并针对另一个更专业的应用程序对其进行微调。这个过程被称为迁移学习,其中一个训练好的神经网络被重新训练一组更小的新例子。