首页> 中国专利> 训练图像分类模型的系统及方法和对图像进行分类的方法

训练图像分类模型的系统及方法和对图像进行分类的方法

摘要

本申请公开了用于训练图像分类模型的计算机实现的方法、用于训练图像分类模型的系统以及用于对图像进行分类的计算机实现的方法。在一个或多个实施例中,紧凑的深度学习模型包括更少的层,这需要更少的浮点运算(FLOP)。本文还提供了新的学习率函数的实施例,其可以在两个线性函数之间自适应地改变学习率。在一个或多个实施例中,在训练过程中,半精度浮点格式训练与更大批量大小的组合也可用于帮助训练过程。

著录项

  • 公开/公告号CN112651420A

    专利类型发明专利

  • 公开/公告日2021-04-13

    原文格式PDF

  • 申请/专利权人 百度(美国)有限责任公司;

    申请/专利号CN202010518225.1

  • 发明设计人 李宝普;程治宇;包英泽;

    申请日2020-06-09

  • 分类号G06K9/62(20060101);G06N3/04(20060101);

  • 代理机构11204 北京英赛嘉华知识产权代理有限责任公司;

  • 代理人马晓亚;王艳春

  • 地址 美国加利福尼亚州

  • 入库时间 2023-06-19 10:35:20

说明书

技术领域

本公开总体上涉及用于计算机学习的系统和方法,其可以提供改 进的计算机性能、特征和使用。更具体地,本公开涉及用于改进的深 度学习模型和改进深度学习网络的训练的系统和方法。

背景技术

深度学习(DL)在诸如计算机视觉、自然语言处理、医学图像处 理等的许多不同领域得到了广泛的应用。逐渐地,深度学习已经成为 近来人工智能/机器学习(AI/ML)革命的基础,这对众多产业产生了 影响并产生了更多的产业。在大多数情况下,DL任务的训练过程非常 长,甚至在现代高级图形处理单元(GPU)机器(诸如,由加利福尼 亚桑尼维尔的Nvidia制造的

作为示例,考虑深度学习文本到语音(TTS)系统。由于它们的 复杂性,开发TTS系统可能是非常劳动密集型的和困难的。最近关于 神经TTS系统的工作已经证明了令人印象深刻的结果,产生了具有稍 微简单的特征、更少的分量和更高质量的合成语音的流程。关于TTS 的最优神经网络架构还没有共识。对于解决不同领域的深度学习系统 的其它应用也存在类似的问题。

因此,需要用于改进的深度学习模型和用于改进的深度学习模型 的训练的系统和方法。

发明内容

本公开的一方面提供了一种用于训练图像分类模型的计算机实现 的方法,所述方法包括:形成一个或多个批次,所述一个或多个批次 包括图像及与所述图像对应的标签,所述图像及与所述图像对应的标 签选自一个或多个训练数据集,其中,每个图像具有对应的标签;对 于每个训练循环重复一组步骤,直到达到停止条件为止。所述一组步 骤包括:将批次输入到所述图像分类模型中;在给出所述批次的预测 输出的情况下,确定所述图像分类模型的损失;以及利用所述损失更 新所述图像分类模型的一个或多个参数,其中,所述图像分类模型包 括:卷积模块,包括具有一组滤波器的卷积、批次归一化操作和激活 操作;第一残差模块,包括由最大池化层分开的至少两个卷积模块, 其中,每个卷积模块具有其自己的滤波器组;第二残差模块,包括由 最大池化层分开的至少两个卷积模块,其中,每个卷积模块具有其自 己的滤波器组;以及全连接层,接收从所述第二残差模块的输出获得 的输入。

本公开的另一方面提供了一种用于训练图像分类模型的系统,所 述系统包括:一个或多个处理器;以及非暂时性计算机可读介质,包 括一组或多组指令的,所述一组或多组指令在由所述一个或多个处理 器中的至少一个执行时使得执行以下步骤:形成一个或多个批次,所 述一个或多个批次包括图像及与所述图像对应的标签,所述图像及与 所述图像对应的标签选自一个或多个训练数据集,其中,每个图像具 有对应的标签;对于每个训练循环重复一组步骤,直到达到停止条件 为止,所述一组步骤包括:将批次输入到所述图像分类模型中;在给 出所述批次的预测输出的情况下,确定所述图像分类模型的损失;以 及利用所述损失更新所述图像分类模型的一个或多个参数,其中,所 述图像分类模型包括:卷积模块,包括具有一组滤波器的卷积、批次 归一化操作和激活操作;第一残差模块,包括由最大池化层分开的至 少两个卷积模块,其中,每个卷积模块具有其自己的滤波器组;第二 残差模块,包括由最大池化层分开的至少两个卷积模块,其中,每个 卷积模块具有其自己的滤波器组;以及全连接层,接收从所述第二残 差模块的输出获得的输入。

本公开的又一方面提供了一种用于对图像进行分类的计算机实现 的方法,所述方法包括:将输入图像输入到分类模型中;以及输出所 述输入图像的分类标签,其中,所述分类模型包括:卷积模块,包括 具有一组滤波器的卷积、批次归一化操作和激活操作;第一残差模块, 包括由最大池化层分开的至少两个卷积模块,其中,每个卷积模块具 有其自己的滤波器组;第二残差模块,包括由最大池化层分开的至少 两个卷积模块;以及全连接层。

附图说明

将参考本公开的实施例,其示例可以在附图中示出。这些附图是 说明性的,而不是限制性的。尽管在这些实施例的上下文中一般性地 描述了本公开,但是应当理解,其并不旨在将本公开的范围限制于这 些特定实施例。附图中的项目可能不是按比例绘制的。

图1描绘了根据本公开的实施例的用一个或多个残差模块设计的 微小或紧凑的神经架构。

图2图示了根据本公开的实施例的残差模型架构。

图3图示了根据本发明实施例的替代残差模型架构。

图4图示了根据本公开的实施例的示例学习率。

图5图示了根据本公开的实施例的用于训练图像分类模型的方法。

图6描绘了根据本公开的实施例的使用经训练的、用于图像分类 的模型的方法。

图7描绘了根据本发明实施例的计算设备/信息处理系统的简化框 图。

具体实施方式

在以下描述中,出于解释的目的,阐述了具体细节以提供对本公 开的理解。然而,对于本领域的技术人员显而易见的是,可以在没有 这些细节的情况下实践本公开。此外,本领域技术人员将认识到,以 下描述的本公开的实施例可以以多种方式来实现,诸如在有形计算机 可读介质上的过程、装置、系统、设备或方法。

在附图中示出的组件或模块是本公开的示例性实施例的示例,并 且旨在避免混淆本公开。还应当理解,在整个讨论中,组件可以被描 述为单独的功能单元,其可以包括子单元,但是本领域技术人员将认 识到,各种组件或其部分可以被划分为单独的组件,或者可以被集成 在一起,包括集成在单个系统或组件内。应注意,本文所论述的功能 或操作可实施为组件。组件可以用软件、硬件或其组合来实现。

此外,附图中的组件或系统之间的连接并不限于直接连接。相反, 这些组件之间的数据可以由中间组件修改、重新格式化或以其它方式 改变。此外,可以使用另外的或更少的连接。还应当注意,术语“联 接”、“连接”或“通信的联接”应当被理解为包括直接连接、通过一 个或多个中间设备的间接连接以及无线连接。

在说明书中对“一个实施例”、“优选实施例”、“实施例”或“多 个实施例”的引用意味着结合该实施例描述的特定特征、结构、特性 或功能被包括在本公开的至少一个实施例中,并且可以在一个以上的 实施例中。此外,在说明书的各个地方出现的上述短语不一定都是指 相同的一个或多个实施例。

在本说明书的各个地方使用某些术语是为了说明而不应被解释为 限制。服务、功能或资源不限于单个服务、功能或资源;这些术语的 使用可以指相关服务、功能或资源的组合,其可以是分布式的或聚集 的。

术语“包括”、“包括有”、“包含”和“包含有”应理解为开放式 术语,并且以下的任何列表都是示例,而不意味着限于所列出的项目。 “层”可以包括一个或多个操作。

本文所用的任何标题仅用于组织目的,不应用于限制说明书或权 利要求书的范围。在该专利文献中提及的每个参考文献/文献通过引用 全文并入到本文中。

此外,本领域技术人员应认识到:(1)某些步骤可任选地进行; (2)步骤可以不限于本文所述的具体顺序;(3)某些步骤可以以不同 的顺序进行;以及(4)某些步骤可以同时进行。

应注意的是,本文提供的任何实验和结果通过示例的方式提供, 并且使用一个或多个具体实施例在具体条件下进行;因此,这些实验 和它们的结果都不应用于限制本专利文件的公开范围。

A.一般介绍

训练神经网络通常意味着使用一组标记的数据找到用于特定问题 的最佳权重。利用给定的损失函数(其用于测量神经网络的每个层中 的大量互连之间的权重的性能),通常使用反向传播(BP)方法通过 迭代来减小损失函数。

在大多数情况下,训练深度神经网络是非常有挑战性的。它通常 需要专家知识和经验来正确训练和获得最优的模型。通常还需要大量 的试验来找到最佳的超参数,例如学习率、批次大小、动量等。

对于典型的图像分类问题,如ImageNet和CIFAR10,已经有许多 工作来改进分类性能。然而,用于这些分类问题的模型通常具有非常 长的训练过程。

B.紧凑/微小模型架构实施例

为了减少训练时间,开发了紧凑图像分类模型的实施例。目标是 设计能够有效地在图像数据上训练但仍具有可接受性能的模型。一种 帮助减少训练时间的方法是制作一个微小/紧凑的模型;即,具有更少 的参数并因此需要更少的操作来训练的模型。然而,减小模型尺寸往 往会降低其预测精度。因此,部分困难在于对构建模型且仍然获得良 好的结果的方式的确定。

在图1中描绘了一种示例性的新颖的深度学习紧凑或微小结构, 其中该模型具有比典型的图像分类模型更少的层和更窄的宽度(例如, 更少的滤波器)。针对多种深度网络结构在训练的反向传播过程中可能 出现的梯度饱和问题,将一个具有身份输出的捷径连接应用到神经网 络模块中。在一个或多个实施例中,捷径连接意味着输出直接等于输 入,而无需任何附加操作,例如卷积、池化等。例如,图2和图3每 个都包含捷径连接,其绕过一个或多个卷积块(即,卷积+BN+ReLu) 模块。

图1示出了根据本公开的实施例的利用一个或多个残差模块设计 的微小神经结构。在一个或多个实施例中,模型135接收输入105, 其被输入到第一模块110中。在一个或多个实施例中,第一模块110 包括卷积层、批次归一化操作和整流线性单元(ReLu)操作。如所描 绘的,模型135还包括一个或多个残差模块(例如,残差模块115和 120)和全连接层125,其可以包括软最大(softmax)层(未示出), 从该软最大层获得输出130。

图2描绘了根据本公开实施例的示例残差模块。在所描绘的实施 例中,残差模块可包含第一卷积块210,其可包含一个或多个卷积层, 批次归一化和整流线性单元(ReLu)。如所示出的,残差模块还包括 最大池化层215和附加卷积块220。在一个或多个实施例中,可将最 大池化层215的输出与残差模块200的最后卷积模块220的输出组合 以获得最终输出225。

图3描绘了根据本公开实施例的替代残差模块。在所描绘的实施 例中,残差模块300类似于图2中所描绘的残差模块,但其在最大池 化层315之后包括两个卷积模块320和325。

在一个或多个实施例中,图像分类模型(例如,图1所示的模型) 可以通过具有更少的卷积滤波器而具有窄的宽度。给定减小的模型尺 寸,重要的是模型被构造为帮助增加模型的特征表示能力。一种提高 模型的特征表示能力的方法是通过使用增加的滤波器尺寸。例如,在 一个或多个实施例中,第一卷积模块110可以包括32个滤波器,第一 残差模块(可以是如图3中的实施例)可以包括64个卷积滤波器(针 对第一卷积模块310)和128个滤波器(针对两个其他卷积模块320 和325中的每一个),第二残差模块(也可以是如图3中的实施例)可 以包括128个卷积滤波器(针对第一卷积模块310)和256个滤波器 (针对两个其他卷积模块320和325中的每一个)。应当注意,可以使 用滤波器的其它组合和尺寸。

C.有效训练实施例

为了加速学习过程,可以使用改进的训练过程的实施例。在一个 或多个实施例中,为了帮助加速学习,可以使用自适应学习率函数。 例如,在一个或多个实施例中,可以使用分段线性学习率函数,其中, 该函数首先线性增加到峰值点,然后线性下降到接近于零的小值。通 过使用这种方法,收敛时间可以显著减少到其原始收敛时间的大约 20%。

下面给出了示例性的自适应学习率函数(尽管也可以使用不同的 学习率函数):

图4图示了根据本公开的实施例的示例学习率图。在一个或多个 实施例中,学习率函数包括第一线性部分405和第二线性部分410, 在第一线性部分405中,随着训练循环(epoch)的增加,学习率从零 或接近零线性增加到峰值点,在第二线性部分410中,随着训练循环 的增加,学习率从峰值点(其可以是不同的峰值点)线性降低到接近 零。在一个或多个实施例中,第一线性部分405的斜率的大小大于第 二线性部分410的斜率的大小。应注意,在一个或多个实施例中,循 环学习率可实施为查找表。

在一个或多个实施例中,为了进一步加速训练过程,还可利用降 低的位精度训练,因为已证实其可有效地利用GPU硬件空间。例如, 在一个或多个实施例中,可以使用半精度浮点格式(FP 16位)来表示 整个训练过程中的所有操作中的所有浮点数。

在一个或多个实施例中,除了上述方法之外,在训练过程中可以 使用更大的批次大小,例如512个图像。在确定批次大小时,优选地 将批次确定为使得批次的存储要求小于用于训练图像分类模型的处理 器的存储限制,所述处理器可以是GPU或多个GPU。

图5图示了根据本公开的实施例的用于训练图像分类模型的方法。 在一个或多个实施例中,训练过程包括确定(505)循环的学习率。如 上所述,可以使用使训练循环数与学习率相关的分段线性函数来确定 训练循环的学习率。可以从一个或多个训练数据集中选择(510)一组 图像及其相应的参考答案(ground truth)标记,以便形成批次。该批 次被输入(515)到图像分类模型实施例中,该图像分类模型实施例对 该批次中的图像进行标记预测。给出模型的输出,可以确定图像分类 模型的损失(520)。在一个或多个实施例中,使用可以包括一个或多 个正则化项的交叉熵损失函数。然后可以使用该损失来更新(525)图像分类模型的参数。例如,在一个或多个实施例中,可以使用梯度下 降和反向传播来更新模型参数。

在一个或多个实施例中,步骤510-525可重复(530)直到循环已 完成。通常,一个循环要将所有的训练数据经过一遍。

在一个或多个实施例中,可以重复步骤505-530(535),直到达到 停止条件。停止条件的示例包括,但不限于,迭代次数、循环次数、 模型的收敛(例如,连续迭代之间的误差或损失小于阈值),发散(例 如,连续迭代之间的误差或损失增加,或者跨越超过阈值的一组连续 迭代)、处理时间等。当训练过程500结束时,可以输出(540)经训 练的模型以用于图像分类。

应当注意,图5中的方法是示例性实施例。本领域的技术人员应 该认识到,可以改变步骤。例如,可以计算不同循环的所有学习率值, 并将其转换为用于训练的查找表。同样作为示例,代替在每次迭代中 形成批次,在循环开始时,训练数据可以被随机地一次分配给所有批 次。如前所述,可以选择批次大小以对应于处理系统的存储器。可以 进行其它这样的替换,其落入本公开的范围内。

D.利用经训练的模型进行图像分类

在训练了模型之后,经训练的图像分类模型可以用于分类一个或 多个图像。图6描绘了根据本公开的实施例的使用经训练的模型进行 图像分类的方法。在一个或多个实施例中,未标记的图像被输入(605) 到经训练的图像分类模型中。图像分类模型可以是如本文所讨论的微 小模型实施例,其包括:卷积模块,包括具有一组滤波器的卷积,批 次归一化操作和激活操作;第一残差模块,包括由最大池化层分开的 至少两个卷积模块;第二残差模块,包括由最大池化层分开的至少两 个卷积模块;以及全连接层,输出标签。在图像已经被输入到经训练 的模型中之后,模型输出(610)图像的预测标签。

E.计算系统实施例

在一个或多个实施例中,本专利文件的各方面可以针对一个或多 个信息处理系统/计算系统,可以包括一个或多个信息处理系统/计算系 统,或者可以在一个或多个信息处理系统/计算系统上实现。计算系统 可以包括可操作来计算、运算、确定、分类、处理、发送、接收、检 索、始发、路由、转换、存储、显示、通信、显现、检测、记录、再 现、应对或利用任何形式的信息、知识或数据的任何工具或工具的集 合。例如,计算系统可以是或可以包括个人计算机(例如,膝上型计 算机)、平板计算机、平板手机、个人数字助理(PDA)、智能电话、 智能手表、智能包、服务器(例如,刀片服务器或机架服务器)、网络 存储设备、照相机或任何其它合适的设备,并且可以在大小、形状、 性能、功能和价格上变化。计算系统可以包括随机存取存储器(RAM)、 一个或多个处理资源(诸如中央处理单元(CPU)或者硬件或软件控 制逻辑)、ROM、和/或其它类型的存储器。计算系统的附加组件可以 包括一个或多个磁盘驱动器、用于与外部设备通信的一个或多个网络 端口、以及各种输入和输出(I/O)设备(例如键盘、鼠标、触摸屏和 /或视频显示器)。计算系统还可以包括一个或多个总线,用于在各种 硬件组件之间传输通信。

图7描绘了根据本公开实施例的计算设备/信息处理系统(或计算 系统)的简化框图。应当理解,系统700所示的功能可以用于支持计 算系统的各种实施例,尽管应当理解,计算系统可以被不同地配置并 且包括不同的组件,包括具有如图7所示的更少或更多的组件。

如图7所示,计算系统700包括一个或多个中央处理单元(CPU) 701,其提供计算资源并控制计算机。CPU 701可以用微处理器等来实 现,并且还可以包括用于数学计算的一个或多个图形处理单元(GPU) 719和/或浮点协处理器。系统700还可以包括系统存储器702,其可 以是随机存取存储器(RAM)、只读存储器(ROM)或两者的形式。

也可以提供多个控制器和外围设备,如图7所示。输入控制器703 表示到诸如键盘、鼠标、触摸屏和/或触笔的各种输入设备704的接口。 计算系统700还可以包括用于与一个或多个存储设备708接口的存储 控制器707,所述一个或多个存储设备708中的每一个都包括可以用 于记录用于操作系统、实用程序和应用程序的指令的程序的诸如磁带 或磁盘的存储介质或者光学介质,所述操作系统、实用程序和应用程 序可以包括实现本公开的各个方面的程序的实施例。存储设备708也 可用于存储根据本公开处理的数据或要处理的数据。系统700还可以 包括显示控制器709,用于提供到显示设备711的接口,显示设备711 可以是阴极射线管(CRT)、薄膜晶体管(TFT)显示器、有机发光二 极管、电致发光面板、等离子体面板或其它类型的显示器。计算系统 700还可以包括用于一个或多个外围设备706的一个或多个外围设备 控制器或接口705。外围设备的示例可以包括一个或多个打印机、扫 描仪、输入设备、输出设备、传感器等。通信控制器714可以与一个 或多个通信设备715接口,这使得系统700能够通过包括因特网、云 资源(例如,以太网云、以太网上的光纤信道(FCoE)/数据中心桥 接(DCB)云等、局域网(LAN)、广域网(WAN)、存储区域网(SAN)) 的各种网络中的任一个、或通过包括红外信号在内的任何合适的电磁 载波信号连接到远程设备。

在所示系统中,所有主要系统组件可连接到总线716,总线716 可表示一个以上的物理总线。然而,各种系统组件可彼此物理接近或 不彼此物理接近。例如,输入数据和/或输出数据可以从一个物理位置 远程传输到另一个物理位置。此外,可以通过网络从远程位置(例如, 服务器)访问实现本公开的各个方面的程序。这种数据和/或程序可以 通过各种机器可读介质中的任何一种来传送,所述机器可读介质包括 但不限于:诸如硬盘、软盘和磁带的磁介质;诸如CD-ROM和全息设 备的光学介质;磁光介质;以及被专门配置为存储或执行程序代码的 硬件设备,例如专用集成电路(ASIC)、可编程逻辑设备(PLD)、闪 存设备以及ROM设备和RAM设备。

本公开的各方面可以被编码在一个或多个非暂时性计算机可读介 质上,所述非暂时性计算机可读介质具有用于一个或多个处理器或处 理单元的指令,以使得执行步骤。应当注意,一个或多个非暂时性计 算机可读介质可以包括易失性和/或非易失性存储器。应注意,替代实 施方案是可能的,包括硬件实施方案或软件/硬件实施方案。硬件实现 的功能可以使用ASIC、可编程阵列、数字信号处理电路等来实现。因 此,任何权利要求中的术语“装置”旨在覆盖软件和硬件实现两者。 类似地,本文使用的术语“计算机可读介质”包括其上包含有指令程 序的软件和/或硬件,或其组合。考虑到这些实现替换,应当理解,附 图和随附的描述提供了本领域技术人员编写程序代码(即,软件)和/ 或制造电路(即,硬件)以执行所需处理所需的功能信息。

应当注意,本公开的实施例还可以涉及具有非暂时性、有形的计 算机可读介质的计算机产品,所述计算机产品在其上具有用于执行各 种计算机实现的操作的计算机代码。介质和计算机代码可以是为了本 公开的目的而专门设计和构造的那些,或者它们可以是相关领域的技 术人员已知或可用的类型。有形计算机可读介质的示例包括但不限于: 诸如硬盘,软盘和磁带的磁介质;诸如CD-ROM和全息设备的光学介 质;磁光介质;以及被专门配置为存储或执行程序代码的硬件设备, 例如专用集成电路(ASIC)、可编程逻辑设备(PLD)、闪存设备以及 ROM设备和RAM设备。计算机代码的示例包括诸如由编译器产生的 机器代码,以及包含由计算机使用解释器执行的更高级代码的文件。 本公开的实施例可以全部或部分地作为机器可执行指令来实现,所述 机器可执行指令可以在由处理设备执行的程序模块中。程序模块的示 例包括库、程序、例程、对象、组件和数据结构。在分布式计算环境 中,程序模块可以物理地位于本地、远程或两者的设置中。

本领域的技术人员将认识到,对于本公开的实践,没有计算系统 或编程语言是关键的。本领域的技术人员还将认识到,上述的多个元 件可以物理地和/或功能地分离成子模块或组合在一起。

本领域技术人员应当理解,前述实施例和实施方案是示例性的, 而不是限制本公开的范围。在阅读本说明书和研究附图后对本领域技 术人员显而易见的所有置换、增强、等同、组合和其改进都包括在本 公开的真实精神和范围内。还应当注意,任何权利要求的元件可以被 不同地安排,包括具有多个从属关系、配置和组合。

去获取专利,查看全文>

相似文献

  • 专利
  • 中文文献
  • 外文文献
获取专利

客服邮箱:kefu@zhangqiaokeyan.com

京公网安备:11010802029741号 ICP备案号:京ICP备15016152号-6 六维联合信息科技 (北京) 有限公司©版权所有
  • 客服微信

  • 服务号