公关咨询公司,湖南有实力seo优化哪家好,企业网站备案还是不用备案,国外php网站源码引言
新手在学习深度学习或者在看深度学习论文的过程中#xff0c;有不少专业词汇#xff0c;软件翻译不出来#xff0c;就算是翻译出来也看不懂#xff0c;因为不少术语是借用其他学科的概念#xff0c;这里整理了一些在深度学习中常见的术语#xff0c;并对一些概念进…引言
新手在学习深度学习或者在看深度学习论文的过程中有不少专业词汇软件翻译不出来就算是翻译出来也看不懂因为不少术语是借用其他学科的概念这里整理了一些在深度学习中常见的术语并对一些概念进行解释。
这里先教大家一个查概念的方法比如我想查Ablation study这个中文翻译是消融实验这概念谁能明白呢咱们可以从根源去查消融实验的含义打开google直接搜what is xxx in deep learning,如下面的图所示 好下面开始总结博主这里按照概念英文首字母进行排序有部分概念为了方便对比也会放在一起总结不全或有错误之处请大家指出并多多包涵总结不易也请大家多多点赞收藏。
A--G
Ablation study(消融实验)
消融(ablation)是指去除人工智能系统的一个组件。 消融研究通过删除某些组件来研究人工智能系统的性能以了解该组件对整个系统的贡献。大白话就是说一个完整的框架去掉某个功能看看系统还能运行成什么样。
Activation layer/Activation Function(激活层/激活函数)
激活层(Activation Layer)负责对卷积层抽取的特征进行激活由于卷积操作是由输入矩阵与卷积核矩阵进行相乘的过程是线性变化关系需要激活层对其进行非线性的映射。
激活层主要由激活函数组成即在卷积层输出结果的基础上嵌套一个非线性函数让输出的特征图具有非线性关系。卷积网络中通常采用ReLU来充当激活函数还包括tanh和sigmoid等ReLU的函数形式如下所示能够限制小于0的值为0,同时大于等于0的值保持不变。 Anchor box(锚框)/先验框(prior bounding box)/gound truth(真值)
(1)Anchor box
锚框是一个很难理解的概念目标检测算法通常会对输入图像中的大量区域进行采样确定这些区域是否包含感兴趣的目标并调整区域的边缘以便更准确地预测目标的真实边界框。不同的模型可能使用不同的区域采样方法。在这里介绍一种这样的方法它生成多个具有不同大小和长宽比的边界框同时以每个像素为中心。这些边界框称为锚框。上文表明锚框不过是图像中采样的区域。
(2)prior bounding box
那上面为什么把prior bounding box放到这里呢在众多经典的目标检测模型中均有先验框的说法有的paper(如Faster RCNN)中称之为anchor(锚点)有的paper(如SSD)称之为prior bounding box(先验框)实际上是一个概念特此说明。
这里提供一个详细的资料动手学CV-Pytorch
(3)gound truth
那又为什么把gound truth放在这里一起解释呢因为这几个概念往往一起出现新手迷迷糊糊就别忽悠瘸了如下图我们在训练模型之前需要先对图片进行标注(label)比如将下图的小狗框出来。 gound truth翻译为真值还行翻译为地面真相是真的太蠢了个人认为(轻喷)忘了是在哪儿看到的gound truth来源于气象学本意是指测量到的地面的真实数据真么看翻译成地面真相也不是不能接受个人还是愿意翻译为人工标注这真的是很直观。
AP(Average Precision)
对象检测和定位算法的性能通过称为平均精度 (AP)和平均精度mean average precisionmAP的指标进行评估。AP 不是不同类别的平均精度AP是借助其他几个指标来计算的例如IoU、混淆矩阵TP、FP、FN、精度和召回率等如下图所示。 Attention Mechanism(注意力机制)
注意力机制通过选择性地关注重要的输入元素来增强深度学习模型提高预测精度和计算效率。 他们优先考虑并强调相关信息作为提高整体模型性能的焦点。在心理学中注意力是选择性地集中于一件或几件事情而忽略其他事情的认知过程。神经网络被认为是一种以简化方式模仿人类大脑行为。 注意力机制也是一种尝试在深度神经网络中实现选择性地关注一些相关事物而忽略其他事物的相同动作。
Baseline(基线)/Benchmark(基准)
这俩放一起也是为了比较做个不恰当的比喻就像修仙你初期修仙的菜鸟水平就是基线随着修行提升相对于基线水平的菜鸟修行就有提升基准就像是半步飞仙你在修行的过程中向着这个目标前进并想办法超越半步飞仙这个基准成为飞仙。
(1)Baseline(基线)
基线模型本质上是一个简单的模型在机器学习项目中充当参考。 其主要功能是将训练模型的结果置于上下文中。基线模型通常缺乏复杂性并且可能没有什么预测能力。 无论如何出于多种原因将它们纳入其中是必要的。
(2)Benchmark(基准)
Benchmark是一种用于比较其他模型性能的模型。 有不同类型的基准。 有时它是所谓的最先进模型即给定数据集上针对给定问题的最佳模型。 基准测试的目标是看看我们是否可以创建更好的模型并超越已发布的结果。
Backbone(骨干)
就这翻译谁能看懂一般来说术语Backbone是指将输入数据处理成某种特征表示的特征提取网络。 这些特征提取网络通常在更简单的任务上作为独立网络表现良好因此我们可以将它们用作更复杂模型中的特征提取部分。
我们可以将许多流行的 CNN 架构用作神经网络的骨干。 其中一些包括
VGGs —— 包括具有 16 层和 19 层的 VGG-16 和 VGG-19 卷积网络。 事实证明它们在许多任务中都很有效尤其是在图像分类和目标检测方面。ResNets ——或残差神经网络由卷积层和池化层块之间的跳跃连接或循环单元组成。 ResNet-50 和 ResNet 101 的一些流行版本常用于对象检测和语义分割任务。Inception v1 —— GoogleNet 是最常用的卷积神经网络之一作为许多计算机科学应用的支柱包括视频摘要和动作识别。
以一篇论文是专门介绍backbone的Backbones-Review: Feature Extraction Networks for Deep Learning and Deep Reinforcement Learning Approaches
论文链接https://arxiv.org/abs/2206.08016
Batch(批量)/Epoch(批次)
在区分这俩概念之前要先了解一下随机梯度下降的概念
梯度下降更多参考Gradient Descent For Machine Learning - MachineLearningMastery.com
随机梯度下降简称 SGD是一种用于训练机器学习算法的优化算法尤其是深度学习中使用的人工神经网络。该算法的工作是找到一组内部模型参数这些参数对于某些性能指标例如对数损失或均方误差表现良好。优化是一种搜索过程您可以将这种搜索视为学习。该优化算法称为“梯度下降”其中“梯度”是指误差梯度或误差斜率的计算“下降”是指沿着该斜率向下移动到某个最小误差水平。该算法是迭代的。这意味着搜索过程发生在多个离散步骤中每个步骤都希望稍微改进模型参数。每个步骤都涉及使用具有当前内部参数集的模型对某些样本进行预测将预测与真实的预期结果进行比较计算误差并使用误差来更新内部模型参数。对于不同的算法该更新过程是不同的但在人工神经网络的情况下使用反向传播更新算法。在我们深入研究批次和批量之前让我们先看一下样本的含义。
(1)样本(Sample
样本是单行数据。它包含输入到算法中的输入和用于与预测进行比较并计算误差的输出。训练数据集由许多行数据组成例如许多样本。样本也可以称为实例、观察、输入向量或特征向量。
现在我们知道什么是样本让我们定义一个Batch(批量)。
(2)Batch(批量)
批量大小(batch size)是一个超参数定义在更新内部模型参数之前要处理的样本数量。将批次视为迭代一个或多个样本并进行预测的 for 循环。在批次结束时将预测与预期输出变量进行比较并计算误差。根据该误差使用更新算法来改进模型例如沿着误差梯度向下移动。训练数据集可以分为一批或多批。当所有训练样本都用于创建一批时该学习算法称为批量梯度下降。当批次大小为一个样本时学习算法称为随机梯度下降。当批量大小大于一个样本且小于训练数据集的大小时该学习算法称为小批量梯度下降。
批量梯度下降。批量大小 训练集大小随机梯度下降。批量大小 1小批量梯度下降。1 批量大小 训练集大小
在小批量梯度下降的情况下流行的批量大小包括 32、64 和 128 个样本。您可能会在文献和教程的模型中看到这些值。
(3)Epoch(批次)
epoch 的数量是一个超参数它定义了学习算法在整个训练数据集中工作的次数。一个epoch意味着训练数据集中的每个样本都有机会更新内部模型参数。一个epoch由一个或多个batch组成。例如如上所述一个 epoch 具有一个批次称为批量梯度下降学习算法。可以想象一个针对 epoch 数的 for 循环其中每个循环都在训练数据集上进行。在这个 for 循环中是另一个嵌套的 for 循环它迭代每批样本其中一个批次具有指定的“批量大小”数量的样本。epoch数量传统上很大通常是数百或数千允许学习算法运行直到模型的误差被充分最小化。您可能会在文献和教程中看到将 epoch 数量设置为 10、100、500、1000 或更大的示例。通常创建线图将 x 轴上的历元显示为时间并在 y 轴上显示模型的误差或技能。这些图有时称为学习曲线。这些图可以帮助诊断模型是否学习过度、学习不足或是否适合训练数据集。
(4)Batch(批量)/Epoch(批次)的区别
batch size是模型更新之前处理的样本数量。epochs是完整通过训练数据集的次数。Batch的大小必须大于或等于 1 且小于或等于训练数据集中的样本数。epochs可以设置为 1 到无穷大之间的整数值。 可以根据需要运行算法甚至可以使用除固定周期数之外的其他标准来停止算法例如模型误差随时间的变化或缺乏变化。它们都是整数值并且都是学习算法的超参数例如 学习过程的参数而不是学习过程找到的内部模型参数。必须指定学习算法的批量大小和批次数。对于如何配置这些参数并没有什么神奇的规则。 必须尝试不同的值看看什么最适合自己问题。
Cascade(级联)
级联是基于多个分类器串联的集成学习的一种特殊情况使用从给定分类器的输出中收集的所有信息作为级联中下一个分类器的附加信息。 与投票或堆叠集成多专家系统不同级联是多级系统。级联分类器使用特定对象的数百个“正”样本视图和相同大小的任意“负”图像进行训练。 分类器经过训练后可以将其应用于图像的某个区域并检测有问题的对象。 要在整个帧中搜索对象可以在图像上移动搜索窗口并使用分类器检查每个位置。 此过程最常用于对象检测和跟踪的图像处理主要是面部检测和识别。
Clustering(聚类)/K-means Clustering(k-均值聚类)
Clustering聚类是在机器学习算法中将相似对象组织成组的行为。 将相关对象分配到集群中对于 AI 模型是有益的。 聚类在数据科学中有很多用途例如图像处理、数据知识发现、无监督学习以及各种其他应用。 聚类分析或聚类是通过扫描机器学习模型中未标记的数据集并设置特定数据点特征的测量来完成的。 然后聚类分析将对数据点进行分类并将其放置在具有匹配特征的组中。 一旦数据被分组在一起它将被分配一个簇ID号以帮助识别簇特征。 使用聚类技术在机器学习模型中分解大型、复杂的数据集可以减轻破译复杂数据时的压力。
K-means ClusteringK-Means 聚类是一种无监督学习算法。 与监督学习不同此聚类没有标记数据。 K-Means 将对象划分为具有相似性但与属于另一个簇的对象不同的簇。“K”是一个数字。 您需要告诉系统您需要创建多少个集群。 例如K 2 表示两个簇。 有一种方法可以找出给定数据的最佳或最佳 K 值。为了更好地理解 k 均值我们以板球运动为例。 想象一下您收到了来自世界各地的许多板球运动员的数据其中提供了有关该运动员得分的信息以及他们在过去十场比赛中取得的三柱门的信息。 根据这些信息我们需要将数据分为两个集群即击球手和投球手。
Ensemble model(集成模型)
有时一个模型是不够的。
(1)什么是集成模型
集成模型是一种机器学习方法在预测过程中结合多个其他模型。 这些模型称为基本估计器。 集成模型提供了一种解决方案来克服构建单个估计器的技术挑战。
(2)集成算法
单一算法可能无法对给定的数据集做出完美的预测。 机器学习算法有其局限性生成高精度模型具有挑战性。 如果我们构建并组合多个模型我们就有机会提高整体准确性。 然后我们通过聚合具有两个目标的每个模型的输出来实现模型的组合
可以使用不同的技术(有时称为元算法)来实现这种聚合如下图示例
end to end
在论文中经常能遇到end to end这样的描述那么到底什么是端到端呢其实就是给了一个输入我们就给出一个输出不管其中的过程多么复杂但只要给了一个输入机会对应一个输出。比如分类问题你输入了一张图片肯呢个网络有特征提取全链接分类概率计算什么的但是跳出算法问题单从结果来看就是给了一张输入输出了一个预测结果。End-To-End的方案即输入一张图输出最终想要的结果算法细节和学习过程全部丢给了神经网络。
Embedding(嵌入)
深度学习方法都是利用使用线性和非线性转换对复杂的数据进行自动特征抽取并将特征表示为“向量”vector这一过程一般也称为“嵌入”embedding
Fine tune(微调)
在深度学习中Fine tune是一种迁移学习方法其中预训练模型的权重在新数据上进行训练。 [1] 微调可以在整个神经网络上进行也可以仅在其层的子集上进行在这种情况下未微调的层将被“冻结”在反向传播步骤期间不会更新)。 模型还可以使用由比原始模型少得多的参数组成的“适配器”进行增强并通过调整适配器的权重并保持模型的其余权重冻结来以参数有效的方式进行微调。
对于某些架构例如卷积神经网络通常会冻结较早的层最接近输入层的层因为它们捕获较低级别的特征而后面的层通常会识别与以下内容更相关的高级特征 模型训练的任务。
Feature map(特征图)
特征图也称为激活图。
从图像中提取过滤器后。
这些过滤器是图像的小部分具有不同的特征。
输入上使用的过滤器数量应创建相同数量的特征图。
因此具有 6 个滤波器的输入图像将具有 6 个特征图。 Feature and their locations in the input images 在上图中有 2 个过滤器红色轮廓和绿色轮廓用于创建两个特征图。 滤波器通过卷积运算在图像上滑动并生成特征图。 还要注意从同一图像生成的这些特色地图有多么不同。每个特征图捕获同一图像的不同特征。 通过更多数量的过滤器我们将能够生成更多特征。例如考虑一个 32 × 32 图像以 1 的步幅宽度在学习/输入图像上滑动 5 × 5 感受野将产生 28 × 28 输出值的特征图。
32 × 32 28 × 28 ( 32–5 1 × 32–5 1 )
或者每个图像 784 个不同的激活。 Figure 2: Features
特征图卷积特征的大小由我们需要在执行卷积步骤之前决定的三个参数控制
深度(Depth)深度对应于我们用于卷积运算的滤波器的数量。 在图 3 所示的网络中我们使用三个不同的滤波器对原始船只图像进行卷积从而生成如图所示的三个不同的特征图。 您可以将这三个特征图视为堆叠的二维矩阵因此特征图的“深度”将为三。 Figure 3: Feature Map depth parameters
步幅(Stride)步幅是我们在输入矩阵上滑动过滤器矩阵的像素数。 当步长为 1 时我们一次移动过滤器一个像素。 当步长为 2 时当我们滑动过滤器时过滤器一次跳跃 2 个像素。 步幅较大会产生较小的特征图。零填充(Zero-padding)有时在边界周围用零填充输入矩阵很方便这样我们就可以将过滤器应用于输入图像矩阵的边界元素。 零填充的一个很好的功能是它允许我们控制特征图的大小。 添加零填充也称为宽卷积不使用零填充则称为窄卷积。 这在[2]中已经解释得很清楚了。
FPS
Frames Per Second每秒帧数就是帧率
Generative Adversarial Network(GAN生成对抗网络)
GAN包含有两个模型一个是生成模型generative model一个是判别模型(discriminative model)。生成模型的任务是生成看起来自然真实的、和原始数据相似的实例。判别模型的任务是判断给定的实例看起来是自然真实的还是人为伪造的真实实例来源于数据集伪造实例来源于生成模型。
这可以看做一种零和游戏。生成器generator试图欺骗判别器discriminator判别器则努力不被生成器欺骗。模型经过交替优化训练两种模型都能得到提升但最终我们要得到的是效果提升到很高很好的生成模型这生成模型所生成的产品能达到真假难分的地步。
在训练过程中生成网络G的目标是生成尽可能多的真实图像来欺骗网络D而D的目标是试图将G生成的假图像与真实图像区分开来。这样G和D构成一个动态的“博弈过程”最终的均衡点为纳什均衡点。
H--N
Hyperparameter(超参数)
超参数。模型参数是根据数据自动估算的例如权重。但模型超参数是手动设置的并且在过程中用于帮助估计模型参数例如学习率。
Intersection over Union(IoU交并比)
IoU 量化两个边界框ground truth and prediction的接近程度。 它是一个介于 0 和 1 之间的值。如果两个边界框完全重叠则预测是完美的因此 IoU 为 1。另一方面如果两个边界框不重叠则 IoU 为 0。IoU 通过计算两个连接盒的相交面积与并集面积之比来计算如下所示。 Learning rate(学习率)
深度学习神经网络使用随机梯度下降优化算法进行训练。学习率是一个超参数它控制每次更新模型权重时响应估计误差而改变模型的程度。 选择学习率具有挑战性因为值太小可能会导致训练过程过长并可能陷入困境而值太大可能会导致过快地学习次优权重集或训练过程不稳定。配置神经网络时学习率可能是最重要的超参数。 因此了解如何研究学习率对模型性能的影响并建立关于学习率对模型行为动态的直觉至关重要。
loss function(损失函数)
在数学优化和决策理论中损失或成本函数有时也称为误差函数是将事件或一个或多个变量的值映射到直观地表示与事件相关的某些“成本”的实数的函数。 简单来说损失函数是一种评估算法对数据集建模效果的方法。 它是机器学习算法参数的数学函数。在简单线性回归中使用斜率m和截距b计算预测。 其损失函数是 (Yi – Yihat)^2即损失函数是斜率和截距的函数。 Multilayer Perceptron(MLP多层感知机)
不要将“MLP”与“NLP”混淆“NLP”指的是自然语言处理(natural language processing)。 多层感知机 (MLP) 是一类全连接的前馈人工神经网络 (ANNartificial neural network)。 MLP 一词的使用含糊不清有时宽松地表示任何前馈 ANN有时严格地指由多层感知器具有阈值激活组成的网络。 多层感知器有时通俗地称为“普通”神经网络特别是当它们具有单个隐藏层时。
MLP 至少由三层节点组成输入层、隐藏层和输出层。 除输入节点外每个节点都是使用非线性激活函数的神经元。 MLP 利用基于链规则的监督学习技术称为反向传播或自动微分的反向模式进行训练。 它的多层和非线性激活将 MLP 与线性感知器区分开来。 它可以区分不可线性分离的数据。
O--T
Off-the-shelf
已有的现成的
Pipeline(超参数)
Pipeline如果直译是管道或者流水线这谁能看懂呢。
在机器学习中Pipeline定义是一种自动化机器学习工作流程的方法方法是将数据转换并关联到模型中然后对模型进行分析以实现输出。这种类型的 ML Pipeline使将数据输入 ML 模型的过程完全自动化(这么看流水线还挺形象个人还是喜欢翻译为通道) 。
另一种类型的机器学习Pipeline是将机器学习工作流程拆分为独立的、可重用的模块化部分的艺术然后可以将这些部分连接在一起以创建模型。这种类型的机器学习Pipeline使构建模型更加高效和简化消除了多余的工作。
pooling(池化)
池化是一个深度学习中的操作手段在程序中对应的就是池化层(pooling layer)卷积神经网络中的池化是一种概括卷积滤波器(convolutional filters)提取的特征并帮助网络识别特征的技术而与特征在图像中的位置无关。
1为什么卷积神经网络中需要池化
卷积层是用于图像识别等计算机视觉应用的卷积神经网络的基本构建块。卷积层在图像上滑动过滤器并提取特征从而生成特征图该特征图可以馈送到下一个卷积层以提取更高级别的特征。因此堆叠多个卷积层使 CNN 能够识别图像中日益复杂的结构和对象。
卷积层的一个主要问题是过滤器生成的特征图是位置相关的。 这意味着在训练过程中卷积神经网络学习将某个特征的存在与输入图像中的特定位置相关联。 这会严重降低性能。 相反我们希望特征图和网络具有平移不变性一种奇特的表达意味着特征的位置不重要。
在关于填充和步幅的文章中我们讨论了卷积运算中更大的步幅如何帮助将图像集中在更高级别的特征上。 专注于更高级别的结构可以使网络更少地依赖于与特征位置相关的粒度细节。 池化是让网络专注于更高级别功能的另一种方法。在卷积神经网络中池化通常应用于由前面的卷积层和非线性激活函数产生的特征图。
2池化是如何进行的
池化的基本过程与卷积运算非常相似。 您选择一个过滤器并将其滑动到前一个卷积层的输出特征图上。 最常用的过滤器大小是 2×2它使用 2 的步长在输入上滑动。根据您选择的池化操作类型池化过滤器计算感受野上过滤器下的特征图部分的输出。有多种池化方法。 最常用的方法是最大池化和平均池化。
3Max Pooling最大池化
在最大池化中滤波器简单地选择感受野中的最大像素值。 例如如果字段中有 4 个像素其值为 3、9、0 和 6则选择 9。 4Average Pooling平均池化
平均池化的工作原理是计算感受野中像素值的平均值。 给定 4 个像素值为 3、9、0 和 6平均池化层将产生 4.5 的输出。 四舍五入到整数后得到 5。 5如何理解池化值
您可以将池化层计算和保留的数字视为指示特定特征的存在。 如果神经网络仅依赖于原始特征图则其检测特征的能力将取决于图中的位置。 例如如果仅在左上象限中找到数字 9则网络将学习将连接到数字 9 的特征与左上象限相关联。通过应用池化我们将该特征提取到一个更小、更通用的地图中该地图仅指示某个特征是否存在于该特定象限中。 每增加一层地图都会缩小只保留有关感兴趣特征的存在的重要信息。 随着地图变小它变得越来越独立于要素的位置。 只要在原始位置附近检测到该特征它就应该类似地反映在池化层生成的地图中。
由于它关注极值最大池化关注感受野中更突出的特征和边缘。 另一方面平均池化可以创建更平滑的特征图因为它生成平均值而不是选择极值。 在实践中最大池化应用得更频繁因为它通常更擅长识别突出特征。 在实际应用中平均池化仅用于将特征图折叠到特定大小。由于池化能够折叠特征图因此还可以帮助对不同大小的图像进行分类。 神经网络中的分类层期望接收相同格式的输入。 因此我们通常以相同的标准尺寸提供图像。 通过在池化操作期间改变偏移量我们可以总结不同大小的图像并且仍然生成相似大小的特征图。一般来说当您执行图像分类任务时您只需要检测图像中某个对象是否存在但不关心它的具体位置池化尤其有用。事实上池化滤波器使用比卷积滤波器更大的步长并导致更小的输出这一事实也支持网络的效率并导致更快的训练。 换句话说位置不变性可以极大地提高网络的统计效率。
Precision/Recall(精度/召回率)-----Accuracy(准确度)/F1 score(F1得分)
基于 TP、FP 和 FN(这仨指标下文有)对于每个标记类别我们计算两个参数精度和召回率(放一起是为了好总结)。
Precision告诉我们模型的精确度即在检测到的猫总数中有多少是真正的猫。 因此它是模型做出的真阳性与猫预测总数相当于真阳性和假阳性之和之间的比率如下图所示。
Recall告诉我们模型在从图像中召回类别方面有多好即在输入图像中的猫总数中模型能够检测到多少只。 因此它是模型得出的真阳性与地面真猫总数之间的比率相当于真阳性和假阴性的总和如下图所示。 从上图可以看出分类器的预测是准确的。 当它说它是一只猫狗时80%的时间都是正确的。 但是如果图像中存在猫狗则分类器只能在 50% (80%) 的时间内检测到它。 因此该模型很难回忆起猫(模型老年痴呆了乛ᴗ乛)。
Accuracy把准确度放这儿是为了和上面的精度对比。
准确率Accuracy表示分类正确的样本占总样本个数的比例计算公式如下 F1 scoreF1 score是精度和召回率的一个加权平均计算公式如下。 Precision体现了模型对负样本的区分能力Precision越高模型对负样本的区分能力越强Recall体现了模型对正样本的识别能力Recall越高模型对正样本的识别能力越强。F1 score是两者的综合F1 score越高说明模型越稳健。
receptive field(RF, 感受野)
在典型CNN结构中FC层(全连接层FC layer)每个输出节点的值都依赖FC层所有输入而CONV层(卷积层Convolutional Layer)每个输出节点的值仅依赖CONV层输入的一个区域这个区域之外的其他输入值都不会影响输出值该区域就是感受野。 图中是个微型CNN来自Inception-v3论文(Rethinking the Inception Architecture for Computer Vision)原图是为了说明一个conv5x5可以用两个conv3x3代替从下到上称为第1, 2, 3层
第2层左下角的值是第1层左下红框中3x3区域的值经过卷积也就是乘加运算计算出来的即第2层左下角位置的感受野是第1层左下红框区域第3层唯一值是第2层所有3x3区域卷积得到的即第3层唯一位置的感受野是第2层所有3x3区域第3层唯一值是第1层所有5x5区域经过两层卷积得到的即第3层唯一位置的感受野是第1层所有5x5区域
就是这么简单某一层feature map(特性图)中某个位置的特征向量是由前面某一层固定区域的输入计算出来的那这个区域就是这个位置的感受野。任意两个层之间都有位置—感受野对应关系但我们更常用的是feature map层到输入图像的感受野如目标检测中我们需要知道feature map层每个位置的特征向量对应输入图像哪个区域以便我们在这个区域中设置anchor检测该区域内的目标。
感受野区域之外图像区域的像素不会影响feature map层的特征向量所以我们不太可能让CNN仅依赖某个特征向量去找到其对应输入感受野之外的目标。这里说“不太可能”而不是“绝无可能”是因为CNN很强大且图像像素之间有相关性有时候感受野之外的目标是可以猜出来的什么一叶知秋管中窥豹见微知著之类对CNN目标检测都是有可能的但猜出来的结果并不总是那么靠谱。
感受野有什么用呢
一般task要求感受野越大越好如图像分类中最后卷积层的感受野要大于输入图像网络深度越深感受野越大性能越好密集预测task要求输出像素的感受野足够的大确保做出决策时没有忽略重要信息一般也是越深越好目标检测task中设置anchor要严格对应感受野anchor太大或偏离感受野都会严重影响检测性能 Region of interest(ROI) 感兴趣区域通常缩写为 ROI是为特定目的标识的数据集中的样本。 Region of Interest Pooling 感兴趣区域池化也称为 RoI 池化是一种广泛应用于使用卷积神经网络的对象检测任务中的操作。例如在单个图像中检测多辆汽车和行人。其目的是对非均匀大小的输入执行最大池化以获得固定大小的特征图。
Prior knowledge(先验知识)
除了机器学习pipeline中常见的信息源——训练数据之外还可以另外整合知识。如果这个知识是预先存在的并且不依赖于学习算法就可以称之为先验知识。剪枝主要充当网络内的架构搜索。 事实上在稀疏度较低约 40%的情况下模型的泛化能力通常会稍好一些因为剪枝起到了正则化的作用。 在更高的级别上修剪后的模型将与基线匹配。 进一步推进该模型将开始比基线更差但具有更好的性能。 例如经过精心修剪的 ResNet-50 模型在稀疏度为 90% 时几乎可以与 ImageNet 上的基线精度相匹配模型中 90% 的权重为零。
Pruning(剪枝)
剪枝是删除网络中的权重连接以提高推理速度并减少模型存储大小的过程。 一般来说神经网络的参数化程度非常高。 修剪网络可以被认为是从过度参数化的网络中删除未使用的参数。
Residual Network(ResNet残差网络)
残差网络ResNet是一种用于计算机视觉应用的深度学习模型。 它是一种卷积神经网络 (CNN) 架构旨在支持数百或数千个卷积层。 以前的 CNN 架构无法扩展到大量层从而导致性能有限。 然而当添加更多层时研究人员面临“梯度消失”问题。神经网络通过反向传播过程进行训练该过程依赖于梯度下降向下移动损失函数并找到使其最小化的权重。 如果层数太多重复的乘法最终会减小梯度直至“消失”并且随着每层的添加性能会饱和或恶化。ResNet 为梯度消失问题提供了一种创新的解决方案称为“跳跃连接”。 ResNet 堆叠多个恒等映射首先不执行任何操作的卷积层跳过这些层并重用前一层的激活。 跳过通过将网络压缩为更少的层来加速初始训练。然后当重新训练网络时所有层都会扩展并且网络的其余部分称为残差部分可以探索输入图像的更多特征空间。大多数 ResNet 模型一次跳过两层或三层中间有非线性和批量归一化。 更先进的 ResNet 架构称为 HighwayNet可以学习“跳过权重”动态确定要跳过的层数。ResNet 架构引入了将中间输入添加到一系列卷积块的输出的简单概念。 如下图所示。 State-of-the-art (SOTA)
可翻译为最先进的最高水平。
True Positive/False Positive/False Negative/True Negative(真阳性/假阳性/假阴性/真阴性)
这些其实都是来自统计学的概念而且字面翻译也是云里雾里所以要做一下解释
True Positive模型预测某个位置存在边界框正并且是正确的真----我找到了正确的目标False Positive模型预测特定位置存在边界框正但结果是错误的假----我把错的当成的真的False Negative模型没有预测某个位置的边界框负并且是错误的假即该位置存在真实边界框----我把真的当成了错的True Negative模型没有预测边界框负并且它是正确的真 ----我找到了错误的目标
True Negative对应于背景即没有边界框的区域并且不用于计算最终指标。
以下示例将有助于阐明 TP、FP 和 FN。 U--Z
Upsampling(上采样)/Downsampling(下采样)
Downsampling读完这项技术的名称后直观地知道它与图像的缩小有关。 嗯没错 这个想法是正确的有人出于各种原因缩小图像的尺寸例如它使数据的大小更易于管理降低数据的维度从而加快数据图像的处理速度减少数据的存储大小根据用途该技术还有一些其他用途。有时它与图像压缩相混淆图像压缩是不同的事情并且具有完全不同的用途。 这里我们只关心图像的缩小。 嗯这是什么意思 这本质上意味着丢弃一些非必要的信息。由此我们可以得出一个提示我们需要从图像中丢弃一些行和/或列。 我们需要丢弃一些信息。
Upsampling另一方面上采样只不过是下采样的相反目标增加图像的行数和/或列数尺寸。 这可以在多种情况下使用例如 GAN生成对抗网络中使用的情况其目的是根据随机向量样本构建图像模仿来自真实分布或真实分布的图像。 还有很多其他的比如提高图像质量等等。 让我们更详细地讨论这个问题。
下采样时我们的意图相当简单明了但上采样时就不那么简单了。 我们需要以某种方式增加图像的尺寸并填充间隙列/行。 假设您想要将原始图像上采样 3 倍这意味着您需要使用某种逻辑为图像中的每行/列添加 2 个行/列。 一种方法可能是重复原始图像中的每一列/行。 如果您这样做有趣的是您会观察到两个图像原始图像和生成的图像即使不完全相同看起来也非常相似。 为了说明这一点您没有在生成的图像中创建任何“新”数据。 由于重复的行和列是完全冗余的因此该方法没有任何用处并且它不提供任何新信息。添加新列的明智方法是在行/列之间插入新数据这使用一些高级数学生成提供相当准确的中间值。
Without bells and whistles
没有花里胡哨的方法不添加不必要冗余的东西
Warm up(热身)
Warm up指的是用一个小的学习率先训练几个epoch这是因为网络的参数是随机初始化的一开始就采用较大的学习率容易数值不稳定。