适用于计算机视觉的机器学习

已完成

使用筛选器将效果应用于图像的功能在图像处理任务中非常有用,例如可能使用图像编辑软件执行的任务。 但是,计算机视觉的目标通常是从图像中提取含义或至少是可操作的见解,这需要创建经过训练以基于大量现有图像识别特征的机器学习模型。

提示

本单元假定你熟悉机器学习的基本原则,并且拥有神经网络深度学习的概念知识。 如果你不熟悉机器学习,请考虑先完成 Microsoft Learn 上的机器学习基础知识模块

卷积神经网络 (CNN)

计算机视觉最常见的机器学习模型体系结构之一是卷积神经网络 (CNN),这是一种深度学习体系结构。 CNN 使用筛选器从图像中提取数值特征图,然后将特征值馈送到深度学习模型中以生成标签预测。 例如,在图像分类方案中,标签表示图像的主要主题(换句话说,这是一张关于什么的图像?)。 你可以使用不同种类的水果(如苹果、香蕉和橙子)的图像训练一个 CNN 模型,使预测的标签是给定图像中的水果类型。

在 CNN 的训练过程中,筛选器内核最初是使用随机生成的权重值定义的。 然后,随着训练过程的进行,根据已知标签值评估模型预测,并调整筛选器权重以提高准确性。 最终,经过训练的水果图像分类模型使用能够最好地提取有助于识别不同种类水果特征的筛选器权重。

下图演示了图像分类模型的 CNN 的工作原理:

卷积神经网络的关系图。

  1. 具有已知标签的图像(例如,0:苹果、1:香蕉或 2:橙子)将馈送到网络中以训练模型。
  2. 当每个图像通过网络馈送时,使用一个或多个筛选器从图像中提取特征。 筛选器内核最初是随机分配的权重,并生成称为特征图的数值数组
  3. 特征图平展为特征值的一维数组。
  4. 特征值馈送到完全连接的神经网络中。
  5. 神经网络的输出层使用 softmax 或类似函数生成包含每个可能类的概率值的结果,例如 [0.2, 0.5, 0.3]

在训练期间,将输出概率与实际类标签进行比较,例如,香蕉(类 1)的图像应具有值 [0.0, 1.0, 0.0]。 预测类分数与实际类分数之间的差异用于计算模型中的损失,并修改完全连接的神经网络中的权重和特征提取层中的筛选器内核,以减少损失

训练过程会重复多个时期,直到学习到一组最优的权重。 然后,保存权重,模型可用于预测标签未知的新图像的标签。

注意

CNN 体系结构通常包含多个卷积筛选器层和附加层,以减小特征图的大小、约束提取值,或者操作特征值。 在此简化的示例中省略了这些层,重点介绍关键概念,即筛选器用于从图像中提取数字特征,然后在神经网络中使用这些特征来预测图像标签。

转换器和多模态模型

CNN 多年来一直是计算机视觉解决方案的核心。 它们不仅通常用于解决前面所述的图像分类问题,也是更复杂的计算机视觉模型的基础。 例如,物体检测模型将 CNN 特征提取层与图像中兴趣区域的识别相结合,在同一图像中查找多个类的物体

Transformers

几十年来,计算机视觉的大多进步都是由基于 CNN 的模型的改进推动的。 然而,在另一个 AI 学科 - 自然语言处理 (NLP) 中,另一种类型的神经网络体系结构(称为转换器)使得复杂语言模型的开发成为可能。 转换器的工作原理是处理大量数据,并将语言标记(表示单个单词或短语)编码为基于向量的嵌入(数值数组)。 可以将嵌入视为表示一组维度,每个维度表示标记的某些语义属性。 创建嵌入,使得在相同上下文中常用的标记在维度上比不相关的单词更接近。

下图是一个简单的示例,显示了编码为三维向量并在三维空间中绘制的一些单词:

3D 空间中的令牌向量关系图。

语义相似的标记在类似的位置进行编码,创建语义语言模型,从而可以为文本分析、翻译、语言生成和其他任务构建复杂的 NLP 解决方案。

注意

我们只使用了三个维度,因为这很容易可视化。 实际上,转换器网络中的编码器会创建具有更多维度的向量,基于线性代数计算定义标记之间的复杂语义关系。 其中涉及的数学很复杂,转换器模型的体系结构也是如此。 在本文中,我们目标只是提供对编码如何创建封装实体之间关系的模型的概念性理解

多模态模型

转换器成功作为构建语言模型的一种方法,促使 AI 研究人员考虑同样的方法是否对图像数据也有效。 研究结果是开发多模态模型,其中模型使用大量带有描述文字的图像进行训练,没有固定的标签。 图像编码器基于像素值从图像中提取特征,并将其与语言编码器创建的文本嵌入相结合。 整体模型封装了自然语言标记嵌入和图像特征之间的关系,如下所示:

封装自然语言向量和图像特征之间关系的多模态模型关系图。

Microsoft Florence 模型就是这样的模型。 此模型使用来自互联网的大量带有描述文字的图像进行训练,包括语言编码器和图像编码器。 Florence 是基础模型的一个例子。 换句话说,它是一个预先训练的通用模型,你可以基于此模型为专业任务构建多个自适应模型。 例如,可以将 Florence 用作执行以下操作的自适应模型的基础模型:

  • 图像分类:标识图像所属的类别。
  • 物体检测:查找图像中的单个物体。
  • 字幕:生成图像的相应说明。
  • 标记:编译图像的相关文本标记列表。

以 Florence 模型作为基础模型并在此基础上构建多个自适应模型的关系图。

Florence 等多模态模型普遍处于计算机视觉和 AI 的前沿,并有望推动 AI 使各种解决方案成为可能。