一、概述
传统 CNN 的架构卷积神经网络,也称为 CNN,是一种特定类型的神经网络,通常由以下层组成:
二、层的主要类型
1、Convolution layer (CONV)
卷积层 (CONV) 在扫描输入的维度时使用执行卷积操作的过滤器。它的超参数包括滤波器大小
和步幅
。 生成的输出
称为特征图或激活图。
备注:卷积步骤也可以推广到 1D 和 3D 情况。
2、Pooling (POOL)
池化层(POOL)是一种下采样操作,通常在卷积层之后应用,它具有一定的空间不变性。 特别是,最大和平均池是特殊类型的池,分别取最大值和平均值。
最大池化:每次池化操作选择当前视图的最大值
平均池化:每个池化操作平均当前视图的值
3、Fully Connected (FC)
全连接层 (FC) 在扁平化输入上运行,其中每个输入都连接到所有神经元。 如果存在,FC 层通常出现在 CNN 架构的末尾,可用于优化目标,例如类分数。
三、过滤超参数
卷积层包含过滤器,了解其超参数背后的含义很重要。
1、Dimensions of a filter
一个大小为 的滤波器应用于包含
通道的输入是一个
体积,它对大小为
的输入执行卷积 并生成大小为
的输出特征图(也称为激活图)。
备注:大小为 的
滤波器的应用导致输出大小为
的特征图。
2、Stride
对于卷积或池化操作,步幅表示每次操作后窗口移动的像素数。
3、Zero-padding
零填充表示将 零添加到输入边界的每一侧的过程。 该值可以手动指定,也可以通过下面详述的三种模式之一自动设置:
四、调整超参数
1、卷积层中的参数兼容性
通过注意 输入体积大小的长度,
滤波器的长度,
零填充量,
步幅,然后特征图沿该维度的输出大小
由下式给出:
2、了解模型的复杂性
为了评估模型的复杂性,确定其架构将具有的参数数量通常很有用。 在卷积神经网络的给定层中,它是按如下方式完成的:
3、感受野
第 层的感受野是表示为
的区域,第
个激活图的每个像素可以“看到”的输入的。 通过调用
层
的过滤器大小和
层
的步幅值并使用约定
,可以使用以下公式计算层
的感受野:
在下面的例子里,,
,
五、常用的激活函数
(1)Rectified Linear Unit
整流线性单元层 (ReLU) 是一个激活函数 ,用于体积的所有元素。 它旨在将非线性引入网络。 下表总结了其变体:
(2)Softmax
softmax 步骤可以看作是一个广义的逻辑函数,它将分数向量 作为输入,并输出一个输出概率向量 p∈ R 通过架构末尾的 softmax 函数。 定义如下:
六、Object detection
(1)模型类型
有 3 种主要类型的对象识别算法,其预测的性质不同。 它们在下表中描述:
(2)Detection
在对象检测的上下文中,根据我们是只想定位对象还是检测图像中更复杂的形状,使用不同的方法。 下表总结了两个主要的:
(3)Intersection over Union(IOU)
联合上的交集,也称为IoU,是一个量化预测边界框 与实际边界框
的正确定位程度的函数。 它被定义为:
备注:我们总是有IoU∈[0,1]。 按照惯例,如果 ,则预测的边界框
被认为是相当好的。
(4)Anchor boxes
锚框是一种用于预测重叠边界框的技术。 在实践中,允许网络同时预测多个框,其中每个框预测都被限制为具有一组给定的几何属性。 例如,第一个预测可能是给定形状的矩形框,而第二个预测可能是另一个不同几何形状的矩形框。
(5)Non-max suppression
非最大抑制技术旨在通过选择最具代表性的边界框来去除同一对象的重复重叠边界框。 在移除所有概率预测低于 0.6 的框后,在剩余框的情况下重复以下步骤:
对于给定的类,
• 步骤1:选择具有最大预测概率的框。
• 步骤2:丢弃任何具有IoU⩾0.5 的框与前一个框。
(6)YOLO
You Only Look Once (YOLO) 是一种执行以下步骤的对象检测算法:
步骤1:将输入图像划分为G×G 网格。
第 2 步:对于每个网格单元,运行一个预测 yy 的 CNN,其形式如下:
其中 是检测到对象的概率,
,
,
,
是检测到的边界框的属性,
,...,
是检测到哪些
类的 one-hot 表示,
是锚框的数量。
第 3 步:运行非最大抑制算法以删除任何潜在的重复重叠边界框。
(7)R-CNN
具有卷积神经网络的区域 (R-CNN) 是一种对象检测算法,它首先对图像进行分割以找到潜在的相关边界框,然后运行检测算法以在这些边界框中找到最可能的对象。
备注:虽然原始算法计算量大且速度慢,但较新的架构使算法运行得更快,例如 Fast R-CNN 和 Faster R-CNN。
七、人脸验证和识别
(1)模型类型
下表总结了两种主要的模型类型:
(2)One Shot Learning
One Shot Learning 是一种人脸验证算法,它使用有限的训练集来学习相似度函数,该函数可以量化两个给定图像的不同程度。 应用于两幅图像的相似度函数通常记为 。
(3)Siamese Network
Siamese Networks 旨在学习如何对图像进行编码,然后量化两个图像的不同之处。 对于给定的输入图像 ,编码输出通常记为
。
(4)Triplet loss
三元组损失 是基于图像 A(锚)、P(正)和 N(负)的三元组的嵌入表示计算的损失函数。 锚点和正例属于同一类,而负例属于另一类。 通过调用
边距参数,这个损失定义如下:
八、神经风格迁移
(1)Motivation
神经风格迁移的目标是根据给定的内容 C 和给定的风格 S 生成图像 G。
(2)Activation
在给定的层 中,激活记为
并且是维度
(3)Content cost function
内容成本函数 用于确定生成的图像 G 与原始内容图像 C 的区别。 定义如下:
(4)Style matrix
给定层 的样式矩阵
是一个 Gram 矩阵,其中每个元素
量化了通道 k 和 k' 的相关性。 它关于激活
定义如下:
备注:风格图像和生成图像的风格矩阵分别记为 和
。
(5)Style cost function
样式成本函数 用于确定生成的图像 G 与样式 S 的区别。 定义如下:
(6)Overall cost function
整体成本函数定义为内容和风格成本函数的组合,由参数α,β 加权,如下所示:
备注:较高的α值会使模型更关心内容,而较高的β值会使模型更关心style。
九、使用计算技巧的架构
(1)Generative Adversarial Network
生成对抗网络,也称为 GAN,由生成模型和判别模型组成,其中生成模型旨在生成最真实的输出,该输出将被馈送到旨在区分生成图像和真实图像的判别模型中。
备注:使用 GAN 变体的用例包括文本到图像、音乐生成和合成。
(2)ResNet
ResNet 残差网络架构(也称为 ResNet)使用具有大量层的残差块,旨在减少训练误差。 残差块具有以下特征方程:
(3)Inception Network
该架构使用初始模块,旨在尝试不同的卷积,以通过特征多样化来提高其性能。 特别是,它使用 卷积技巧来限制计算负担。