机器学习笔记 - 卷积神经网络备忘清单

一、概述

        传统 CNN 的架构卷积神经网络,也称为 CNN,是一种特定类型的神经网络,通常由以下层组成:

二、层的主要类型

1、Convolution layer (CONV)

        卷积层 (CONV) 在扫描输入I的维度时使用执行卷积操作的过滤器。它的超参数包括滤波器大小 F 和步幅 S。 生成的输出 O 称为特征图或激活图。

        备注:卷积步骤也可以推广到 1D 和 3D 情况。 

2、Pooling (POOL)

        池化层(POOL)是一种下采样操作,通常在卷积层之后应用,它具有一定的空间不变性。 特别是,最大和平均池是特殊类型的池,分别取最大值和平均值。

        最大池化:每次池化操作选择当前视图的最大值

        平均池化:每个池化操作平均当前视图的值

3、Fully Connected (FC)

        全连接层 (FC) 在扁平化输入上运行,其中每个输入都连接到所有神经元。 如果存在,FC 层通常出现在 CNN 架构的末尾,可用于优化目标,例如类分数。

 三、过滤超参数

        卷积层包含过滤器,了解其超参数背后的含义很重要。

1、Dimensions of a filter

        一个大小为 F\times F 的滤波器应用于包含 C 通道的输入是一个 F \times F \times C 体积,它对大小为 I \times I \times C 的输入执行卷积 并生成大小为O \times O \times 1 的输出特征图(也称为激活图)。

         备注:大小为 F\times FK 滤波器的应用导致输出大小为 O \times O \times K 的特征图。

2、Stride

        对于卷积或池化操作,步幅S表示每次操作后窗口移动的像素数。

3、Zero-padding

        零填充表示将 P 零添加到输入边界的每一侧的过程。 该值可以手动指定,也可以通过下面详述的三种模式之一自动设置:

 四、调整超参数

1、卷积层中的参数兼容性

        通过注意 I输入体积大小的长度,F 滤波器的长度,P 零填充量,S 步幅,然后特征图沿该维度的输出大小 O 由下式给出:

 2、了解模型的复杂性

        为了评估模型的复杂性,确定其架构将具有的参数数量通常很有用。 在卷积神经网络的给定层中,它是按如下方式完成的:

 3、感受野

        第 k 层的感受野是表示为R_k \times R_k的区域,第 k个激活图的每个像素可以“看到”的输入的。 通过调用 F_jj的过滤器大小和 S_ii的步幅值并使用约定 S_0 = 1,可以使用以下公式计算层k 的感受野:

         在下面的例子里,F_1 = F_2 = 3S_1 = S_2 = 1R^2 =1+2\cdot 1+2\cdot 1=5

 五、常用的激活函数

(1)Rectified Linear Unit

        整流线性单元层 (ReLU) 是一个激活函数 g,用于体积的所有元素。 它旨在将非线性引入网络。 下表总结了其变体:

(2)Softmax

        softmax 步骤可以看作是一个广义的逻辑函数,它将分数向量 x\in\mathbb{R}^n作为输入,并输出一个输出概率向量 p∈ R  通过架构末尾的 softmax 函数。 定义如下:

        \boxed{p=\begin{pmatrix}p_1\\\vdots\\p_n\end{pmatrix}}\quad\textrm{where}\quad\boxed{p_i=\frac{e^{ x_i}}{\displaystyle\sum_{j=1}^ne^{x_j}}}

六、Object detection

(1)模型类型

        有 3 种主要类型的对象识别算法,其预测的性质不同。 它们在下表中描述:

(2)Detection

        在对象检测的上下文中,根据我们是只想定位对象还是检测图像中更复杂的形状,使用不同的方法。 下表总结了两个主要的:

(3)Intersection over Union(IOU)

        联合上的交集,也称为IoU,是一个量化预测边界框 B_p 与实际边界框B_a 的正确定位程度的函数。 它被定义为:
        \boxed{\textrm{IoU}(B_p,B_a)=\frac{B_p\cap B_a}{B_p\cup B_a}}

        备注:我们总是有IoU∈[0,1]。 按照惯例,如果 \textrm{IoU}(B_p,B_a)\geqslant0.5,则预测的边界框 B_p 被认为是相当好的。

 (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,其形式如下:

        \boxed{y=\big[\underbrace{p_c,b_x,b_y,b_h,b_w,c_1,c_2,...,c_p}_{\textrm{repeated }k\textrm{ times}},...\big]^T\in\mathbb{R}^{G\times G\times k\times(5+p)}}

        其中 p_c 是检测到对象的概率,b_x,b_y,b_h,b_w 是检测到的边界框的属性,c_1,...,c_p 是检测到哪些 p 类的 one-hot 表示,k 是锚框的数量。

        第 3 步:运行非最大抑制算法以删除任何潜在的重复重叠边界框。

(7)R-CNN

        具有卷积神经网络的区域 (R-CNN) 是一种对象检测算法,它首先对图像进行分割以找到潜在的相关边界框,然后运行检测算法以在这些边界框中找到最可能的对象。

         备注:虽然原始算法计算量大且速度慢,但较新的架构使算法运行得更快,例如 Fast R-CNN 和 Faster R-CNN。

七、人脸验证和识别

(1)模型类型

        下表总结了两种主要的模型类型:

(2)One Shot Learning

        One Shot Learning 是一种人脸验证算法,它使用有限的训练集来学习相似度函数,该函数可以量化两个给定图像的不同程度。 应用于两幅图像的相似度函数通常记为 d(\textrm{image 1}, \textrm{image 2})

(3)Siamese Network

        Siamese Networks 旨在学习如何对图像进行编码,然后量化两个图像的不同之处。 对于给定的输入图像 x^{(i)},编码输出通常记为f(x^{(i)})

(4)Triplet loss

        三元组损失 \ell是基于图像 A(锚)、P(正)和 N(负)的三元组的嵌入表示计算的损失函数。 锚点和正例属于同一类,而负例属于另一类。 通过调用 \alpha\in\mathbb{R}^+ 边距参数,这个损失定义如下:
        \boxed{\ell(A,P,N)=\max\left(d(A,P)-d(A,N)+\alpha,0\right)}

八、神经风格迁移

(1)Motivation

        神经风格迁移的目标是根据给定的内容 C 和给定的风格 S 生成图像 G。

(2)Activation

        在给定的层 l中,激活记为 a^{[l]} 并且是维度 n_H\times n_w\times n_c

(3)Content cost function

        内容成本函数 J_{\textrm{content}}(C,G) 用于确定生成的图像 G 与原始内容图像 C 的区别。 定义如下:

        \boxed{J_{\textrm{content}}(C,G)=\frac{1}{2}||a^{[l](C)}-a^{[l](G)}|| ^2}

(4)Style matrix

        给定层 l的样式矩阵 G^{[l]}是一个 Gram 矩阵,其中每个元素 G_{kk'}^{[l]}量化了通道 k 和 k' 的相关性。 它关于激活 a^{[l]} 定义如下:
        \boxed{G_{kk'}^{[l]}=\sum_{i=1}^{n_H^{[l]}}\sum_{j=1}^{n_w^{[l]}}a_ {ijk}^{[l]}a_{ijk'}^{[l]}}

        备注:风格图像和生成图像的风格矩阵分别记为 G^{[l](S)}G^{[l](G)}

(5)Style cost function

        样式成本函数 J_{\textrm{style}}(S,G)用于确定生成的图像 G 与样式 S 的区别。 定义如下:

\boxed{J_{\textrm{style}}^{[l]}(S,G)=\frac{1}{(2n_Hn_wn_c)^2}||G^{[l](S)}-G^{[l](G)}||_F^2=\frac{1}{(2n_Hn_wn_c)^2}\sum_{k,k'=1}^{n_c}\Big(G_{kk'}^{[l](S)}-G_{kk'}^{[l](G)}\Big)^2}

(6)Overall cost function

         整体成本函数定义为内容和风格成本函数的组合,由参数α,β 加权,如下所示:

        \boxed{J(G)=\alpha J_{\textrm{content}}(C,G)+\beta J_{\textrm{style}}(S,G)}

        备注:较高的α值会使模型更关心内容,而较高的β值会使模型更关心style。

九、使用计算技巧的架构

(1)Generative Adversarial Network

        生成对抗网络,也称为 GAN,由生成模型和判别模型组成,其中生成模型旨在生成最真实的输出,该输出将被馈送到旨在区分生成图像和真实图像的判别模型中。

         备注:使用 GAN 变体的用例包括文本到图像、音乐生成和合成。

(2)ResNet

        ResNet 残差网络架构(也称为 ResNet)使用具有大量层的残差块,旨在减少训练误差。 残差块具有以下特征方程:

        \boxed{a^{[l+2]}=g(a^{[l]}+z^{[l+2]})}

(3)Inception Network

        该架构使用初始模块,旨在尝试不同的卷积,以通过特征多样化来提高其性能。 特别是,它使用1\times1 卷积技巧来限制计算负担。

猜你喜欢

转载自blog.csdn.net/bashendixie5/article/details/125200914