掌桥专利:专业的专利平台
掌桥专利
首页

训练用于图像识别的神经网络的方法和设备

文献发布时间:2023-06-19 16:11:11



本申请要求于2021年1月22日在韩国知识产权局提交的第10-2021-0009670号韩国专利申请以及于2021年5月13日在韩国知识产权局提交的第10-2021-0061877号韩国专利申请的权益,所述韩国专利申请的全部公开出于所有目的通过引用包含于此。

技术领域

下面的描述涉及具有神经网络训练的方法和设备。

背景技术

诸如识别(例如,模式识别)的处理的技术自动化可通过处理器实现的神经网络模型来实现,作为专门的计算架构的神经网络模型在大量训练之后可提供输入模式与输出模式之间的计算上直观的映射。生成这样的映射的训练能力可被称为神经网络的学习能力。此外,由于专门训练,因此这样的专门训练的神经网络由此可具有针对例如神经网络尚未被训练的输入模式生成相对准确的输出的泛化能力。

在构思本公开的过程中,发明人已经拥有或获得了上述描述,并且上述描述不一定是在提交本申请之前公知的技术。

发明内容

提供本发明内容以简要的形式介绍在以下具体实施方式中进一步描述的构思的选择。本发明内容不意在确定要求保护的主题的关键特征或必要特征,也不意在用于帮助确定要求保护的主题的范围。

在一个总体方面,一种处理器实现的训练用于图像识别的神经网络的方法包括:通过将两组或更多组输入数据分别应用于第一神经网络模型,确定与每个输入数据对应的第一主干特征数据,其中,所述两组或更多组输入数据是关于相同场景的图像数据;通过将所述两组或更多组输入数据分别应用于第二神经网络模型,确定与每个输入数据对应的第二主干特征数据;从第一主干特征数据确定基于投影的第一嵌入数据和基于丢弃的第一视图数据;从第二主干特征数据确定基于投影的第二嵌入数据和基于丢弃的第二视图数据;以及基于损失来训练第一神经网络模型和第二神经网络模型中的任一者或两者,所述损失基于第一嵌入数据、第一视图数据、第二嵌入数据、第二视图数据和嵌入数据聚类结果中的任何两个或更多个的组合来确定。

在另一总体方面,一种处理器实现的训练用于图像识别的神经网络的方法包括:通过将第一输入数据和第二输入数据应用于第一神经网络和第二神经网络中的每个来分别确定第一主干特征数据和第二主干特征数据,其中,第一输入数据和第二输入数据是关于相同场景的不同视图的图像数据;基于第一主干特征数据来确定基于投影的第一嵌入数据和基于丢弃的第一视图数据,并且基于第二主干特征数据来确定基于投影的第二嵌入数据和基于丢弃的第二视图数据;基于第一嵌入数据和指示第一嵌入数据所属的一个或多个簇的代码值来确定第一部分损失;基于第二嵌入数据和所述代码值来确定第二部分损失;以及基于第一部分损失和第二部分损失来训练第一神经网络和第二神经网络中的任一者或两者。

在另一总体方面,一种处理器实现的具有神经网络训练的方法包括:通过将相同场景的两组或更多组输入数据分别应用于第一神经网络模型,确定与每个输入数据对应的第一主干特征数据;通过将所述两组或更多组输入数据分别应用于第二神经网络模型,确定与每个输入数据对应的第二主干特征数据;从第一主干特征数据确定基于投影的第一嵌入数据和基于丢弃的第一视图数据;从第二主干特征数据确定基于投影的第二嵌入数据和基于丢弃的第二视图数据;以及基于损失来训练第一神经网络模型和第二神经网络模型中的任一者或两者,所述损失基于第一嵌入数据、第一视图数据、第二嵌入数据、第二视图数据和嵌入数据聚类结果中的任何两个或更多个的组合来确定。

训练的步骤可包括基于以下项来确定第一部分损失:指示第一嵌入数据中的基于第一神经网络模型从所述两组或更多组输入数据中的一个输入数据提取的嵌入数据所属的簇的代码值;以及第一嵌入数据中的基于第一神经网络模型从所述两组或更多组输入数据中的另一输入数据提取的嵌入数据。

确定第一部分损失的步骤可包括:还基于聚类结果以及第一视图数据中的使用第一神经网络模型从所述两组或更多组输入数据中的一个输入数据提取的视图数据来确定第一部分损失。

训练的步骤可包括基于以下项来确定第二部分损失:指示第一嵌入数据中的基于第一神经网络模型从所述两组或更多组输入数据中的一个输入数据提取的嵌入数据所属的簇的代码值;以及第二嵌入数据中的基于第二神经网络模型从所述两个或更多个输入数据中的另一输入数据提取的嵌入数据。

确定第二部分损失的步骤可包括:还基于代码值以及第二视图数据中的根据第二神经网络模型从所述两组或更多组输入数据中的一个输入数据提取的视图数据来确定第二部分损失。

训练的步骤可包括:基于代码值与第一嵌入数据、第一视图数据、第二嵌入数据和第二视图数据中的任何一者之间的交叉熵损失,确定与第一神经网络模型相关联的第一部分损失以及与第二神经网络模型相关联的第二部分损失。

训练的步骤可包括:使用梯度反转(GR)层从第一嵌入数据和第二嵌入数据确定第三部分损失。

所述方法可包括:基于数据增强从作为由相机传感器获得的彩色图像的原始数据生成所述两组或更多组输入数据,数据增强包括随机噪声添加、图像旋转、尺度调整、图像移动、随机裁剪和颜色失真中的任何一个或者任何两个或更多个的任何组合。

所述方法可包括:基于数据增强从作为由光探测和测距(lidar)传感器获得的lidar图像的原始数据生成所述两组或更多组输入数据,数据增强包括感测点增强和反射值调整中的任一者或两者。

所述方法可包括:通过使用多个传感器之中的传感器拍摄场景来生成所述两组或更多组输入数据中的一个输入数据;以及通过使用所述多个传感器之中的另一类型的传感器拍摄相同场景来生成所述两组或更多组输入数据中的另一输入数据。

所述方法可包括:使用第一投影模型从第一主干特征数据确定投影的第一嵌入数据;使用包括一个或多个丢弃层的第一丢弃模型从第一主干特征数据确定投影的第一视图数据;使用第二投影模型从第二主干特征数据确定投影的第二嵌入数据;以及使用包括一个或多个丢弃层的第二丢弃模型从第二主干特征数据确定投影的第二视图数据。

确定第一视图数据的步骤可包括:在将线性层应用于第一嵌入数据之后应用丢弃层,并且确定第二视图数据的步骤可包括:在将线性层应用于第二嵌入数据之后应用丢弃层。

第一神经网络模型的参数的数量可大于第二神经网络模型的参数的数量。

所述方法可包括确定以下项中的任何一个:指示由包括第一神经网络模型和第二神经网络模型的多个神经网络模型之中的具有最大识别性能的模型输出的嵌入数据所属的簇的代码值、由每个模型输出的每个嵌入数据的代码值、以及指示由具有最小聚类损失的模型输出的嵌入数据所属的簇的代码值。

确定第二主干特征数据的步骤可包括:基于由目标硬件定义的格式来对所述两组或更多组输入数据进行变换;以及将通过变换获得的变换后的数据输入到第二神经网络模型。

训练的步骤可包括:更新第二神经网络模型的参数,使得确定的损失最小化。

所述方法可包括:基于完成训练的第二神经网络模型,使用从感测数据提取的嵌入数据来生成感测数据的目标任务的推断结果。

所述方法可包括:基于推断结果来控制其中存储有第二神经网络模型的电子设备的操作。

推断结果可对应于对象识别、对象分类、身份验证、对象检测和语言识别中的任何一个或任何组合。

在另一总体方面,一个或多个实施例包括一种存储指令的非暂时性计算机可读存储介质,所述指令在由处理器执行时将处理器配置为执行在此描述操作和方法的任何一个、任何组合或全部。

在另一总体方面,一种具有神经网络训练的设备包括:存储器,被配置为在其中存储第一神经网络模型和第二神经网络模型;以及处理器,被配置为:通过将相同场景的两组或更多组输入数据分别应用于第一神经网络模型,确定与每个输入数据对应的第一主干特征数据,通过将所述两组或更多组输入数据分别应用于第二神经网络模型,确定与每个输入数据对应的第二主干特征数据,从第一主干特征数据确定基于投影的第一嵌入数据和基于丢弃的第一视图数据,从第二主干特征数据确定基于投影的第二嵌入数据和基于丢弃的第二视图数据,以及基于损失来训练第一神经网络模型和第二神经网络模型中的任一者或两者,所述损失基于第一嵌入数据、第一视图数据、第二嵌入数据、第二视图数据和指示第一嵌入数据所属的簇的代码值中的任何两个或更多个的组合来确定。

在另一总体方面,一种处理器实现的具有神经网络训练的方法包括:通过将相同场景的不同视图的第一输入数据和第二输入数据应用于第一神经网络和第二神经网络中的每个来分别确定第一主干特征数据和第二主干特征数据;基于第一主干特征数据来确定第一基于投影的嵌入数据和第一基于丢弃的视图数据,并且基于第二主干特征数据来确定第二基于投影的嵌入数据和第二基于丢弃的视图数据;基于第一嵌入数据和指示第一嵌入数据所属的一个或多个簇的代码值来确定第一部分损失;基于第二嵌入数据和所述代码值来确定第二部分损失;以及基于第一部分损失和第二部分损失来训练第一神经网络和第二神经网络中的任一者或两者。

所述代码值可包括指示第一嵌入数据中的嵌入数据所属的簇的第一代码值和指示第一嵌入数据中的其他嵌入数据所属的簇的第二代码值。

确定第二部分损失的步骤可包括:确定第二嵌入数据中的嵌入数据与第二代码值之间的第一交叉损失;以及确定第二嵌入数据中的其他嵌入数据与第一代码值之间的第二交叉损失。

确定第一部分损失的步骤可包括:确定第一嵌入数据中的嵌入数据与第二代码值之间的第一交叉损失;以及确定第一嵌入数据中的其他嵌入数据与第一代码值之间的第二交叉损失。

从下面的具体实施方式、附图和权利要求,其他特征和方面将是清楚的。

附图说明

图1示出训练方法的示例。

图2示出训练系统的示例。

图3示出训练操作的示例。

图4示出投影模型的示例。

图5示出丢弃模型的示例。

图6示出多个神经网络模型的训练操作的示例。

图7示出使用异构传感器收集的数据的训练操作的示例。

图8示出与目标硬件对应的训练操作的示例。

图9示出使用训练模型生成推断结果的示例。

图10A至图10D示出训练后的神经网络模型的判别力的示例。

图11示出训练后的神经网络模型的准确率的示例。

图12示出电子设备的示例。

贯穿附图和具体实施方式,除非另外描述或提供,否则相同的参考标号将被理解为表示相同的元件、特征和结构。附图可不按比例,并且为了清楚、说明和方便,附图中的元件的相对大小、比例和描绘可被夸大。

具体实施方式

提供下面的具体实施方式以帮助读者获得对在此描述的方法、设备和/或系统的全面理解。然而,在理解本申请的公开之后,在此描述的方法、设备和/或系统的各种改变、修改和等同物将是清楚的。例如,在此描述的操作顺序仅是示例,并不限于在此阐述的操作顺序,而是除了必须按特定顺序发生的操作之外,操作顺序可如在理解本申请的公开之后将是清楚的那样被改变。此外,为了更加清楚和简明,可省略在理解本申请的公开之后已知的特征的描述。

在此描述的特征可以以不同的形式被实现,并且不应被解释为限于在此描述的示例。相反,在此描述的示例已被提供,以仅示出在理解本申请的公开之后将是清楚的实现在此描述的方法、设备和/或系统的许多可行方式中的一些可行方式。

在此使用的术语仅出于描述特定示例的目的,而不应当用于限制公开。如在此使用的,除非上下文另外清楚地指示,否则单数形式也意在包括复数形式。如在此使用的,术语“和/或”包括相关所列项中的任何一个和任何两个或更多个的任何组合。还将理解,如在此使用的,术语“包括”、“包含”和“具有”表明存在陈述的特征、数量、操作、构件、元件和/或它们的组合,但不排除存在或添加一个或多个其他特征、数量、操作、构件、元件和/或它们的组合。在此针对示例或实施例的术语“可”的使用(例如,关于示例或实施例可包括或实现什么)表明存在包括或实现这样的特征的至少一个示例或实施例,而所有示例不限于此。

贯穿说明书,当组件被描述为“连接到”或“结合到”另一组件时,它可直接“连接到”或“结合到”另一组件,或者可存在介于它们之间的一个或多个其他组件。相比之下,当元件被描述为“直接连接到”或“直接结合到”另一元件时,可不存在介于它们之间的其他元件。同样地,类似的表达(例如,“在……之间”和“紧接在……之间”以及“与……邻近”和“与……紧邻”)也以相同的方式被解释。如在此使用的,术语“和/或”包括相关所列项中的任何一个和任何两个或更多个的任何组合。

尽管在此可使用诸如“第一”、“第二”和“第三”的术语来描述各种构件、组件、区域、层或部分,但是这些构件、组件、区域、层或部分不受这些术语限制。相反,这些术语仅用于将一个构件、组件、区域、层或部分与另一构件、组件、区域、层或部分区分开。因此,在不脱离示例的教导的情况下,在此描述的示例中所称的第一构件、第一组件、第一区域、第一层或第一部分也可被称为第二构件、第二组件、第二区域、第二层或第二部分。

除非另外定义,否则在此使用的所有术语(包括技术术语和科学术语)具有与本公开所属领域的普通技术人员通常理解的以及基于本申请的公开的理解的含义相同的含义。除非在此明确地如此定义,否则术语(诸如,在通用词典中定义的那些术语)应被解释为具有与它们在相关领域的上下文和本申请的公开中的含义一致的含义,并且将不以理想化或过于形式化的含义进行解释。

此外,在示例实施例的描述中,当认为在理解本申请的公开之后由此已知的结构或功能的详细描述将导致示例实施例的模糊解释时,将省略这样的描述。在下文中,将参照附图详细描述示例,并且附图中的相同参考标号始终表示相同的元件。

图1示出训练方法的示例。

在操作110中,电子设备可从相同场景的输入数据计算第一主干特征数据(backbone feature data)。在一个示例中,电子设备可通过将相同场景的两组或更多组输入数据分别应用于第一神经网络模型来计算与每个输入数据对应的第一主干特征数据。例如,电子设备可通过将m组输入数据分别输入到第一神经网络模型来提取m组第一主干特征数据。在这个示例中,m可以是大于或等于2的整数。例如,第一神经网络模型可以是用于图像识别的神经网络模型。例如,两组或更多组输入数据可以是关于相同环境(context)的数据(例如,从一个场景的一个原始图像增强的数据和/或通过由不同传感器拍摄相同场景而获得的数据)。例如,两组或更多组输入数据可以是关于相同场景的图像数据。

在操作120中,电子设备可从相同场景的输入数据计算第二主干特征数据。在一个示例中,电子设备可通过将两组或更多组输入数据分别应用于第二神经网络模型来计算与每个输入数据对应的第二主干特征数据。例如,电子设备可通过将m组输入数据分别输入到第二神经网络模型来提取m组第二主干特征数据。例如,第二神经网络模型可以是用于图像识别的神经网络模型。例如,两组或更多组输入数据可以是关于相同环境的数据(例如,从一个场景的一个原始图像增强的数据和/或通过由不同传感器拍摄相同场景而获得的数据)。

机器学习模型可通过机器学习生成,并且也可被称为神经网络模型。学习可例如在执行神经网络模型的电子设备本身中执行,或者通过单独的服务器执行。学习算法可包括例如有监督学习、无监督学习、半监督学习和/或强化学习,但是学习算法的示例不限于前述示例。神经网络模型可包括多个人工神经网络层。神经网络模型可包括例如深度神经网络(DNN)、卷积神经网络(CNN)、循环神经网络(RNN)、受限玻尔兹曼机(RBM)、深度信念网络(DBN)和双向循环DNN(BRDNN)、深度Q网络或者其中两个或更多个的组合,但是神经网络模型的示例不限于前述示例。除了硬件结构之外,神经网络模型还可另外地或可选地包括软件结构。电子设备可通过将数据输入到神经网络模型并对输入数据进行传播来提取主干特征数据。主干特征数据可以是从输入数据(例如,图像数据)抽象的数据,并且可具有例如特征向量的形式。主干特征数据可被传播到神经网络模型的后续层,以生成与图像识别任务(例如,对象识别、对象分类、身份验证、对象检测等)对应的推断结果。

在操作130中,电子设备可从每个主干特征数据计算嵌入数据和视图数据。在一个示例中,电子设备可从第一主干特征数据计算基于投影的(projection-based)第一嵌入数据和基于丢弃的(dropout-based)第一视图数据,并且从第二主干特征数据计算基于投影的第二嵌入数据和基于丢弃的第二视图数据。第一嵌入数据和第一视图数据可表示嵌入在第一神经网络模型的第一嵌入空间(embedding space)中的特征向量,并且第二嵌入数据和第二视图数据可表示嵌入在第二神经网络模型的第二嵌入空间中的特征向量。在下文中,将分别参照图4和图5详细描述投影和丢弃的非限制性示例。

如上所述,电子设备可从作为相同源的数据计算各种视图的特征数据。例如,可针对一个环境(例如,一个场景)获得m组输入数据,可针对每个神经网络模型从m组输入数据中的每组输入数据提取主干特征数据,并且可针对每个主干特征数据计算嵌入数据和视图数据。例如,当电子设备包括n个神经网络模型时,电子设备可确定m×n×2个视图的特征数据。在这个示例中,n可以是大于或等于2的整数。在此描述的视图可表示数据被观察的视点。

在操作140中,电子设备可通过计算损失来执行训练。在一个示例中,电子设备可基于损失来训练第一神经网络模型和第二神经网络模型中的任一者或两者,所述损失基于第一嵌入数据、第一视图数据、第二嵌入数据、第二视图数据和嵌入数据聚类结果中的任何两个或更多个的组合来计算。例如,电子设备可更新神经网络模型的参数,使得基于第一嵌入数据、第一视图数据、第二嵌入数据、第二视图数据和聚类结果计算的部分损失之和最小化。例如,电子设备可更新第二神经网络模型的参数,直到计算的损失变得小于阈值损失或者收敛到最小为止。电子设备可迭代地更新神经网络模型的参数,直到计算的损失变得小于阈值损失为止。

电子设备可在没有指示输入图像所属的类别的标签的情况下训练神经网络模型。电子设备可训练神经网络模型,以增大通过针对不同类别(例如,不同场景)的数据执行神经网络模型而提取的多组特征数据之间的在嵌入空间中的距离,并且减小针对相同类别(例如,相同场景)的数据提取的多组特征数据之间的在嵌入空间中的距离。为了生成针对目标任务的推断结果,除了上述训练操作之外,还可能需要后处理和/或附加的网络训练。

无监督视觉表征学习(unsupervised visual representation learning)可基于具有大批量训练的庞大网络。这样的学习可显著减小深度模型(诸如,ResNet-50)的有监督性能与无监督性能之间的差距,但是这对于小的模型是相对受限的。

一个或多个实施例的用于小型网络的无监督学习框架可将深度自监督表征学习和知识蒸馏集成到单个训练过程中。一个或多个实施例的教师模型可被训练,以在相同图像的不同视图之间生成一致的聚类。同时,一个或多个实施例的学生模型可被训练,以模仿运行中的自监督教师的预测。

为了进行有效的知识转移,一个或多个实施例的域分类器(domain classifier)可引导学生模型使用不受分布移位影响的判别特征(discriminative features)进行特征学习。一个或多个实施例的基于丢弃的多视图生成方法可有助于捕获包括在网络本身中的有用特征信息。

在广泛的分析中,根据在此描述的示例实施例训练的学生模型可优于根据高级且强大的自监督教师的最前沿的(state-of-art)离线蒸馏网络。例如,根据下文将描述的训练方法利用ResNet-50教师模型训练的ResNet-18学生模型在线性评估中实现了68.32%的ImageNet Top-1准确率(这仅比有监督的基线低1.44%)。

无监督学习和自监督学习可与来自大量的无标签数据集的有用表征的有效学习相关联。自监督视觉表征学习方法可接近或优于完全监督方法。

典型的无监督视觉表征学习可与在强大的计算资源上训练的大模型的使用相关联。在典型的无监督视觉表征学习中使用的最小模型可以是ResNet-50,并且网络可在多个专用硬件装置(例如,128个张量处理单元(TPU)核)上使用大批量(例如,4096个图像)来训练。然而,这种庞大的实现方式在具有有限资源的环境中可能不是可选项,因此一个或多个实施例的电子设备可使用强大的小型网络用于现实中的应用。自监督学习可允许更深的模型利用无标签数据更有效地学习一般视觉表征。此外,经验证实了较大网络的预测性能被更好地转移到较小网络。

在一个示例中,一个或多个实施例的电子设备可通过从深度自监督网络转移知识来训练具有丰富表征的轻量级网络,而不是独立地训练小型网络。

无监督表征学习方法中的典型蒸馏方法可与离线训练相关联,所述关联在于使用已经训练的自监督教师模型将特征信息传送到学生模型。此外,为了频繁地提升性能,顺序的训练流水线会需要后处理(诸如,以k均值聚类为例)。在一个示例中,与该方法不同,一个或多个实施例的电子设备可使用将自监督训练和知识蒸馏组合在单个训练过程内的用于小型网络的无监督表征学习框架。例如,教师模型可学习聚类和表征。同时,学生模型可被训练,使得对作为运行中的自监督教师模型的教师模型的聚类的预测被对齐。域分类器可通过不受教师模型与学生模型之间的分布移位影响的有用的判别特征来促进对学生模型的训练。根据经验,在自监督训练期间增加不同视图的数量可改善结果特征的质量。存在大量多视图生成方法,并且大多数的多视图生成方法可依赖于随机图像变换技术。在下文中,将描述使用包括在网络本身中的丰富特征信息的训练。

在下文中,将详细描述根据示例实施例的训练。

图2示出训练系统的示例。

训练系统200可包括输入数据获取器210、第一神经网络模型221、第二神经网络模型222、第一视图生成模型231、第二视图生成模型232、聚类单元240、第一损失计算器251、第二损失计算器252和第三损失计算器253。这些可以是为了便于描述而示出的模块,并且模块中的任何操作或所有操作可由处理器(例如,下面的图12的处理器1210)执行。

输入数据获取器210可获得输入数据(例如,图像数据)。例如,输入数据获取器210可从原始数据201生成包括第一输入数据211至第m输入数据212的多组输入数据。输入数据获取器210可通过将不同类型的数据增强应用于原始数据201来生成多组输入数据。数据增强可表示从相同的单个原始数据201生成与不同的数据表征(例如,各种视图)对应的输入数据的操作。例如,输入数据获取器210可通过数据增强(包括随机噪声添加、图像旋转、尺度调整、图像移动、随机裁剪和颜色失真中的一个或者两个或更多个的组合),从作为由相机传感器获得的彩色图像的原始数据201生成两组或更多组输入数据。

第一神经网络模型221和第二神经网络模型222可以是被配置和训练为从输入数据(例如,图像数据)输出主干特征数据的神经网络模型。第一神经网络模型221的参数的数量可大于第二神经网络模型222的参数的数量。第一神经网络模型221可表现出比第二神经网络模型222相对高的性能水平。第二神经网络模型222可用于在训练完成之后(例如,当神经网络模型222被训练时)生成图像识别结果。第一神经网络模型221在此也可被称为教师模型,第二神经网络模型222在此也可被称为学生模型。

第一视图生成模型231可使从第一神经网络模型221输出的第一主干特征数据的视图多样化。例如,第一视图生成模型231可包括第一投影模型和/或第一丢弃模型。电子设备可通过经由第一投影模型对第一主干特征数据进行投影来计算第一嵌入数据,并且通过使用第一丢弃模型对第一主干特征数据进行投影来计算第一视图数据。第一丢弃模型可包括一个或多个丢弃层。电子设备可通过在将数据传播到第一视图生成模型231时在传播路径中不包括丢弃层来操作第一投影模型,或者通过在传播路径中包括丢弃层来操作第一丢弃模型。第一嵌入数据可以是被投影到比第一主干特征数据的维度更低的维度的数据,并且第一视图数据可以是一些特征被丢弃的数据。

第二视图生成模型232可使从第二神经网络模型222输出的第二主干特征数据的视图多样化。例如,第二视图生成模型232可包括第二投影模型和/或第二丢弃模型。电子设备可通过经由第二投影模型对第二主干特征数据进行投影来计算第二嵌入数据,并且通过使用第二丢弃模型对第二主干特征数据进行投影来计算第二视图数据。第二丢弃模型可包括一个或多个丢弃层。第二嵌入数据可以是被投影到比第二主干特征数据的维度更低的维度的数据,并且第二视图数据可以是一些特征被丢弃的数据。

将参照图4详细描述第一投影模型和第二投影模型的非限制性示例,并且将参照图5详细描述第一丢弃模型和第二丢弃模型的非限制性示例。

聚类单元240可确定嵌入数据所包括在的簇。例如,作为原型的簇向量C的元素的数量(例如,簇的数量)可被定义为K,并且聚类单元240可确定指示K个簇之中的嵌入数据所属的簇的代码值。在这个示例中,K可以是大于或等于1的整数。例如,聚类单元240可在等分约束下使用Sinkhorn-Knopp算法来生成聚类结果。

第一损失计算器251可计算损失290的第一部分损失291。第一部分损失291可包括与从第一神经网络模型221计算的嵌入数据和/或视图数据(例如,第一嵌入数据和/或第一视图数据)相关联的簇向量概率值与分配的簇(例如,第一嵌入数据所属的簇)之间的交叉损失。

第二损失计算器252可计算损失290的第二部分损失292。第二部分损失292可包括与从第二神经网络模型222计算的嵌入数据和/或视图数据(例如,第二嵌入数据和/或第二视图数据)相关联的簇向量概率值与分配的簇(例如,第二嵌入数据所属的簇)之间的交叉损失。

第三损失计算器253可计算损失290的第三部分损失293。第三部分损失293可包括基于第一神经网络模型221计算的第一嵌入数据与基于第二神经网络模型222计算的第二嵌入数据之间的对抗损失(adversarial loss)。当对抗损失最小化时,第一神经网络模型221的特征分布与第二神经网络模型222的特征分布之间的差异可降低。

在无监督视觉表征学习中,可使用丰富的特征信息来解决从图像数据本身获得标签的各种前置任务(pretext task,又称为代理任务)。可基于前置任务的类型将这些方法分类为多个类别。在一个示例中,训练可基于聚类。

通过增加训练期间的视图数量,一个或多个实施例的电子设备可改善自监督学习性能。在一个示例中,除了对原始数据201的数据增强之外,还可如上所述以基于丢弃获得关于第一神经网络模型221的第一主干特征数据和第二神经网络模型222的第二主干特征数据的各种视图的数据的方式来执行训练。

在根据自监督模型的知识提取中,可以以使用教师模型的聚类结果来训练学生模型以模仿教师模型的嵌入空间中的数据点之间的相对相似性的方式来执行训练。因此,即使未给出标签信息,一个或多个实施例的电子设备也可以以自监督方式训练神经网络模型。

此外,电子设备可使用具有梯度反转(gradient reversal,GR)层的域分类器来训练神经网络模型,使得教师模型的域与学生模型的域之间的移位不会被容易地区分。电子设备可训练不受教师模型与学生模型之间的分布变化影响的判别特征。在下文中,将参照图3描述第一神经网络模型是教师模型且第二神经网络模型是学生模型的非限制性示例。

图3示出训练操作的示例。

在一个示例中,训练系统300中的电子设备可计算如等式1表示的损失,以训练教师模型f

等式1:

L=L

在等式1中,L

例如,可通过将数据增强应用于原始图像x

等式2:

f

f

等式3:

g

g

在上面的等式2中,f

电子设备可将第一主干特征数据f

等式4:

等式5:

如上面的等式4和等式5表示的那样,每个主干特征数据可被归一化。电子设备可基于第一视图生成模型331的丢弃模型

电子设备可确定对嵌入数据执行的聚类的结果。例如,电子设备可从多个簇确定嵌入数据将被包括在其中的簇。原型簇向量C可被定义为{c

在一个示例中,电子设备可通过以与交换视图之间的分配(SwAV)类似的方式交换多组各种视图的输入数据之间的聚类结果来预测教师模型f

等式6:

例如,可如下面的等式7所示的那样计算等式6的交叉损失。例如,等式7可表示代码值q

等式7:

等式8:

在上面的等式8中,T表示转置,T表示温度参数,k’表示等式8中的求和的索引。如上面的等式7所示,电子设备可将代码值q

在一个示例中,电子设备可以以与预测教师模型f

等式9:

如等式9所示,电子设备可通过参考作为教师模型f

电子设备可更新教师模型f

在非平凡的(non-trivial)在线聚类中,可如上所述针对具有大小B的存储的嵌入的小批量(mini-batch)在等分约束下使用Sinkhorn-Knopp算法来计算代码q

等式10:

第n原始数据的代码向量Qn(例如,Q

等式11:

H(Q)=∑

在等式11中,由小批量限制的运输多面体

等式12:

在等式12中,l

此外,电子设备可将通过应用丢弃而获得的损失添加到第一部分损失L

等式13:

在上面的等式13中,

等式14:

类似地,电子设备还可基于根据第二神经网络模型从两组或更多组输入数据之中的一个输入数据提取的视图数据和代码值来计算第二部分损失L

在一个示例中,电子设备可通过应用对抗损失来减小教师模型f

域分类器D可包括具有输出大小为2的多层感知器(MLP)。例如,如下面的等式15和等式16所示,电子设备可计算关于从教师模型f

等式15:

等式16:

在上面的等式15中,

在一个示例中,电子设备可基于第一部分损失L

图4示出投影模型的示例。图5示出丢弃模型的示例。

在一个示例中,电子设备可使用第一投影模型从第一主干特征数据计算投影的第一嵌入数据。电子设备可使用包括一个或多个丢弃层的第一丢弃模型从第一主干特征数据计算投影的第一视图数据。电子设备可使用第二投影模型从第二主干特征数据计算投影的第二嵌入数据。电子设备可使用包括一个或多个丢弃层的第二丢弃模型从第二主干特征数据计算投影的第二视图数据。将参照图4详细描述第一投影模型和第二投影模型,并且将参照图5详细描述第一丢弃模型和第二丢弃模型。

例如,电子设备可通过将投影模型h 430应用于由每个神经网络模型(例如,教师模型和学生模型)提取的主干特征数据来计算嵌入数据。投影模型h 430可包括全连接层、卷积层、激活层、归一化层等的组合。在图4的示例中,投影模型h 430可包括线性层431、批归一化(BN)层433、修正线性单元(ReLU)层434、线性层435和归一化层437。然而,投影模型h430的示例不限于图4的示例。

在一个示例中,电子设备可通过将丢弃模型h

图6示出多个神经网络模型的训练操作的示例。

在一个示例中,训练系统600可包括n个神经网络模型221、222和629。训练系统600可包括分别连接到神经网络模型221、222和629的视图生成模型231、232和639。在图6的示例中,第二神经网络模型222可以是学生模型,并且包括第一神经网络模型221和第三神经网络模型至第n神经网络模型的其余模型可以是教师模型。然而,示例不限于此。对于每个神经网络模型,参数的数量可不同。

聚类单元640可对从视图生成模型231、232和639中的每个输出的嵌入数据执行聚类。交叉损失计算器650可以以与如上面的等式14中表示的方式类似的方式计算交叉损失。用于计算等式14中的交叉损失的代码值可如下确定。例如,交叉损失计算器650可确定以下代码值中的一个:指示由包括第一神经网络模型和第二神经网络模型的多个神经网络模型之中的具有最高识别性能的模型输出的嵌入数据所属的簇的代码值、指示从每个模型输出的嵌入数据所属的簇的代码值、以及指示从具有最小聚类损失的模型输出的嵌入数据所属的簇的代码值。交叉损失计算器650可计算确定的代码值与嵌入数据之间的交叉损失,并且使用获得的交叉损失进行反向传播学习或训练。

判别损失计算器660可以以与如上面的等式15所表示的方式类似的方式计算“从n个神经网络模型之中的一个神经网络模型输出的嵌入数据”与“从n个神经网络模型之中的另一神经网络模型输出的嵌入数据”之间的对抗损失。因此,判别损失计算器660可执行训练,使得n个神经网络模型的嵌入空间的特征分布变得彼此类似。

训练系统600可建立n个神经网络模型的集成(ensemble),使得第二神经网络模型222(学生模型)利用更多不同视图的多组数据来训练。

图7示出使用异构传感器收集的数据的训练操作的示例。

在一个示例中,电子设备可通过使用多个传感器中的一个传感器拍摄场景而生成两组或更多组输入数据之中的一个输入数据。电子设备还可通过使用传感器之中的另一类型的传感器拍摄相同场景而生成两组或更多组输入数据之中的另一输入数据。例如,在图7中示出的训练系统700中,电子设备可包括第一传感器701和第二传感器702。第一传感器701可以是相机传感器,并且第二传感器702可以是光探测和测距(lidar)传感器,但是第一传感器701和第二传感器702的示例不限于前述示例。例如,第一传感器701和第二传感器702可以是例如图像传感器、相机传感器、lidar传感器、无线电探测和测距(radar)传感器和红外传感器之中的不同传感器。

例如,当利用相机图像和lidar图像训练神经网络模型时,训练系统700可将通过同时拍摄相同场景而生成的相机图像和lidar图像输入到第一神经网络模型221和第二神经网络模型222。训练系统700可向第一神经网络模型221输入从相机图像生成的第一输入数据211。训练系统700可向第二神经网络模型222输入从lidar图像生成的第m输入数据212。在这个示例中,m可以是2。

训练系统700可通过将尺寸改变、颜色失真、随机裁剪等应用于相机图像来生成不同视图的第一输入数据211。

训练系统700可基于数据增强从作为由lidar传感器获得的lidar图像的原始数据生成两组或更多组第m输入数据212,数据增强包括感测点增强和反射值调整等中的一个或者两个或更多个的组合。

第一神经网络模型221可以是被配置为从输入图像生成特征向量的模型,并且可包括例如ResNet、MobileNet、RegNet等。第二神经网络模型222可以是被配置为处理作为lidar图像的点灰度序列(point grey sequence)数据的模型,并且可包括例如PointNet、长短期记忆(LSTM)模型等。对于未参照图7描述的其他操作,可参考上面参照图2和图3描述的内容。

图8示出与目标硬件对应的训练操作的示例。

在一个示例中,训练系统800还可包括数据变换器820和视图变换器839。例如,数据变换器820可基于由目标硬件定义的格式对两组或更多组输入数据进行变换。

例如,基于视图数据的生成的训练、教师模型的训练、聚类、损失的计算可在服务器和/或个人计算机(PC)中执行,并且用于实际的图像识别操作的第二神经网络模型822可由具有低性能的电子设备(例如,移动终端)来实现。又例如,针对不同计算环境的多个神经网络模型可被一起训练。为了利用各种硬件环境来训练神经网络模型,会需要针对目标硬件的数据变换。

数据变换器820可基于目标硬件的基于操作的数据形式(例如,浮点形式、位数等)对第一输入数据211至第m输入数据212进行变换。数据变换器820可将变换后的数据输入到第二神经网络模型822。视图变换器839可基于训练系统800的基于操作的数据形式对从第二视图生成模型832输出的嵌入数据和视图数据进行变换,并且将变换后的数据提供给聚类单元240并用于损失计算。此外,数据变换器820和视图变换器839可基于目标硬件的特定传感器特性(例如,颜色空间差异、拜耳图案图像等)根据目标硬件的特性来变换数据。

图9示出使用训练模型生成推断结果(即,图像识别结果)的示例。

在一个示例中,电子设备可使用训练后的神经网络模型来执行推断操作。例如,电子设备可基于训练后的第二神经网络模型920,使用从感测数据901提取的嵌入数据来生成针对感测数据901的目标任务的推断结果(即,图像识别结果)909。电子设备可通过将从第二神经网络模型920提取的嵌入数据传播到输出层929来生成推断结果909。输出层929可以是具有设计的和附加训练的参数以输出针对目标任务的推断结果909的层。

感测数据901可以是由传感器收集的数据。感测数据901可以是例如图像数据,并且被输入到第二神经网络模型920。目标任务可包括例如对象检测、对象分类、深度估计、对象识别、身份验证、图像检测、图像分割等。然而,目标任务不限于前述示例,并且还可包括与自主驾驶或高级驾驶员辅助系统(ADAS)相关联的任务、与物联网(IoT)装置相关联的任务、与移动电话相关联的任务、以及与电视(TV)相关联的任务。

电子设备可基于推断结果909来控制在其中存储有第二神经网络模型920的电子设备的操作。例如,在电子设备设置在车辆中的情况下,电子设备可基于对象检测的结果来估计车辆与对象之间的距离,并且基于估计的车辆与对象之间的距离来改变车辆的速度、加速度和转向中的任何一个或者任何两个或更多个的组合。又例如,在电子设备由移动终端实现的情况下,当基于身份验证的结果将用户验证为预先注册的用户时,电子设备可取消电子设备的锁定状态以解锁电子设备。然而,控制电子设备的操作不限于前述示例,并且电子设备可基于推断结果909来控制电子设备可访问的各种装置、模块、电路和/或功能。

如上面参照图1至图8所描述地那样训练的第二神经网络可在例如准确率、精确率、查全率、平均精确率、平均查全率、平均交并比(mean intersection over union)等方面表现出改善的性能。

图10A至图10D示出训练后的神经网络模型的判别力的示例。

图10A示出在单独训练大模型的情况下的特征向量分布1000a。图10B示出在单独训练小模型的情况下的特征向量分布1000b。图10C示出教师模型的特征向量分布1000c。图10D示出学生模型的特征向量分布1000d。

与图10B的示例相比,在图10C和图10D的示例中,特征向量分布在更宽的区域中。因此,与其他类别相比,可包含更多的判别特征。此外,图10D中示出的学生模型的特征向量分布1000d类似于图10C中示出的教师模型的特征向量分布1000c,因此,通过知识蒸馏,学生模型可具有与教师模型的准确率水平类似的准确率水平。

图11示出训练后的神经网络模型的准确率的示例。

表1:

表1指示每种训练方法的ResNet-18模型的Top-1准确率(%),这可被示出为图11的曲线图1100。参照图11的曲线图1100,学生模型(例如,OSS)在所有回合表现出期望的准确率。在一个示例中,作为在单台八图形处理器(GPU)机器上进行的概念上简单且典型的256批训练,训练可具有相当高的识别性能。

在一个示例中,训练设备可同时训练多个神经网络模型并且使用重要且丰富的表征来训练每个神经网络模型,多个神经网络模型通过自监督学习从无标签的数据提取数据特征向量或特征图。此外,当训练单个网络模型时,训练设备可训练神经网络模型以输出更具区别性的特征向量。训练设备可以以较少的计算资源提取可在小型神经网络模型中确保高性能的识别准确性的特征向量。

图12示出电子设备的示例。

神经网络训练设备(例如,电子设备1200)可包括处理器1210(例如,一个或多个处理器)和存储器1220(例如,一个或多个存储器)。

处理器1210可通过将相同场景的两组或更多组输入数据分别应用于第一神经网络模型来计算与每个输入数据对应的第一主干特征数据。处理器1210可通过将两组或更多组输入数据分别应用于第二神经网络模型来计算与每个输入数据对应的第二主干特征数据。处理器1210可从第一主干特征数据计算基于投影的第一嵌入数据和基于丢弃的第一视图数据。处理器1210可从第二主干特征数据计算基于投影的第二嵌入数据和基于丢弃的第二视图数据。处理器1210可基于第一嵌入数据、第一视图数据、第二嵌入数据、第二视图数据和指示第一嵌入数据所属的簇的代码值中的任何两个或更多个的组合,训练第一神经网络模型和第二神经网络模型中的任一者或两者。然而,处理器1210的操作不限于前述内容,处理器1210还可执行上面参照图1至图11描述的操作。

存储器1220可在其中存储第一神经网络模型和第二神经网络模型。此外,存储器1220可临时和/或永久地存储执行在此描述的训练所需的数据。存储器1220可存储在训练完成之前的临时神经网络模型以及在训练完成之后获得的神经网络模型。

在此关于图1至图12描述的神经网络训练设备、电子设备、训练设备、训练系统、输入数据获取器、第一神经网络模型、第二神经网络模型、第一视图生成模型、第二视图生成模型、聚类单元、第一损失计算器、第二损失计算器、第三损失计算器、神经网络模型、视图生成模型、第一传感器、第二传感器、数据变换器、视图变换器、处理器、存储器、训练系统200、输入数据获取器210、第一神经网络模型221、第二神经网络模型222、第一视图生成模型231、第二视图生成模型232、聚类单元240、第一损失计算器251、第二损失计算器252、第三损失计算器253、训练系统300、第一视图生成模型331、第二视图生成模型332、训练系统600、神经网络模型221、222和629、视图生成模型231、232和639、训练系统700、第一传感器701、第二传感器702、训练系统800、数据变换器820、视图变换器839、第二神经网络模型822、第二视图生成模型832、电子设备1200、处理器1210、存储器1220以及其他设备、装置、单元、模块和组件由硬件组件实现或表示硬件组件。可用于执行在本申请中描述的操作的硬件组件的示例在适当的情况下包括:控制器、传感器、生成器、驱动器、存储器、比较器、算术逻辑单元、加法器、减法器、乘法器、除法器、积分器以及被配置为执行在本申请中描述的操作的任何其他电子组件。在其他示例中,通过计算硬件(例如,通过一个或多个处理器或计算机)来实现执行在本申请中描述的操作的硬件组件中的一个或多个硬件组件。处理器或计算机可由一个或多个处理元件(诸如,逻辑门阵列、控制器和算术逻辑单元、数字信号处理器、微型计算机、可编程逻辑控制器、现场可编程门阵列、可编程逻辑阵列、微处理器或被配置为以限定的方式响应并执行指令以实现期望的结果的任何其他装置或装置的组合)来实现。在一个示例中,处理器或计算机包括或连接到存储由处理器或计算机执行的指令或软件的一个或多个存储器。由处理器或计算机实现的硬件组件可执行用于执行在本申请中描述的操作的指令或软件(诸如,操作系统(OS)和在OS上运行的一个或多个软件应用)。硬件组件还可响应于指令或软件的执行来访问、操控、处理、创建和存储数据。为了简明,单数术语“处理器”或“计算机”可用于在本申请中描述的示例的描述中,但是在其他示例中,多个处理器或计算机可被使用,或者处理器或计算机可包括多个处理元件、或多种类型的处理元件、或两者。例如,单个硬件组件、或者两个或更多个硬件组件可由单个处理器、或者两个或更多个处理器、或者处理器和控制器来实现。一个或多个硬件组件可由一个或多个处理器、或者处理器和控制器来实现,并且一个或多个其他硬件组件可由一个或多个其他处理器、或者另外的处理器和另外的控制器来实现。一个或多个处理器、或者处理器和控制器可实现单个硬件组件、或者两个或更多个硬件组件。硬件组件可具有不同的处理配置中的任何一个或多个,不同的处理配置的示例包括:单个处理器、独立处理器、并行处理器、单指令单数据(SISD)多处理、单指令多数据(SIMD)多处理、多指令单数据(MISD)多处理和多指令多数据(MIMD)多处理。

图1至图12中示出的执行本申请中描述的操作的方法由计算硬件(例如,由一个或多个处理器或计算机)来执行,计算硬件被实现为如上所述执行指令或软件以执行在本申请中描述的由所述方法执行的操作。例如,单个操作、或者两个或更多个操作可由单个处理器、或者两个或更多个处理器、或者处理器和控制器来执行。一个或多个操作可由一个或多个处理器、或者处理器和控制器来执行,并且一个或多个其他操作可由一个或多个其他处理器、或者另外的处理器和另外的控制器来执行。一个或多个处理器、或者处理器和控制器可执行单个操作、或者两个或更多个操作。

用于控制计算硬件(例如,一个或多个处理器或计算机)以实现硬件组件并执行如上所述的方法的指令或软件可被编写为计算机程序、代码段、指令或它们的任何组合,以单独地或共同地指示或配置一个或多个处理器或计算机作为机器或专用计算机进行操作,以执行由如上所述的硬件组件和方法执行的操作。在一个示例中,指令或软件包括由一个或多个处理器或计算机直接执行的机器代码(诸如,由编译器产生的机器代码)。在另一示例中,指令或软件包括由一个或多个处理器或计算机使用解释器执行的高级代码。可基于附图中示出的框图和流程图以及说明书中的相应描述使用任何编程语言来编写指令或软件,附图中示出的框图和流程图以及说明书中的相应描述公开了用于执行由如上所述的硬件组件和方法执行的操作的算法。

用于控制计算硬件(例如,一个或多个处理器或计算机)以实现硬件组件并执行如上所述的方法的指令或软件以及任何相关联的数据、数据文件和数据结构可被记录、存储或固定在一个或多个非暂时性计算机可读存储介质中,或者可被记录、存储或固定在一个或多个非暂时性计算机可读存储介质上。非暂时性计算机可读存储介质的示例包括:只读存储器(ROM)、随机存取可编程只读存储器(PROM)、电可擦除可编程只读存储器(EEPROM)、随机存取存储器(RAM)、动态随机存取存储器(DRAM)、静态随机存取存储器(SRAM)、闪存、非易失性存储器、CD-ROM、CD-R、CD+R、CD-RW、CD+RW、DVD-ROM、DVD-R、DVD+R、DVD-RW、DVD+RW、DVD-RAM、BD-ROM、BD-R、BD-R LTH、BD-RE、蓝光或光盘存储装置、硬盘驱动器(HDD)、固态驱动器(SSD)、闪存、卡式存储器(诸如,多媒体卡或微型卡(例如,安全数字(SD)或极限数字(XD)))、磁带、软盘、磁光数据存储装置、光学数据存储装置、硬盘、固态盘以及任何其他装置,任何其他装置被配置为以非暂时性方式存储指令或软件以及任何相关联的数据、数据文件和数据结构并将指令或软件以及任何相关联的数据、数据文件和数据结构提供给一个或多个处理器或计算机,使得一个或多个处理器或计算机能够执行指令。在一个示例中,指令或软件以及任何相关联的数据、数据文件和数据结构分布在联网的计算机系统上,使得指令或软件以及任何相关联的数据、数据文件和数据结构以分布式方式被一个或多个处理器或计算机存储、访问和执行。

虽然本公开包括特定示例,但是在理解本申请的公开之后将清楚的是,在不脱离权利要求及其等同物的精神和范围的情况下,可在这些示例中进行形式和细节上的各种改变。在此描述的示例应仅被认为是描述性的,而不是出于限制的目的。每个示例中的特征或方面的描述应被认为可适用于其他示例中的类似特征或方面。如果描述的技术以不同的顺序执行,和/或如果描述的系统、架构、装置或电路中的组件以不同的方式被组合、和/或由其他组件或其等同物替代或补充,则可实现合适的结果。

技术分类

06120114735505