用于训练神经网络的方法和装置以及神经网络系统与流程

文档序号:26394203发布日期:2021-08-24 16:03阅读:123来源:国知局
用于训练神经网络的方法和装置以及神经网络系统与流程

相关申请的交叉引用

本申请要求于2020年2月21日在韩国知识产权局提交的韩国专利申请no.10-2020-0021798的权益,该申请的公开以引用方式全部并入本文中。

本发明构思涉及神经网络训练方法、神经网络训练装置以及用于执行神经网络训练方法的神经网络系统。



背景技术:

人工神经网络(ann)系统是用于模仿功能或有机神经网络的计算机系统,使机器能够学习并做出决定。诸如ann的人工智能(ai)系统可以提高模式识别率,并且能够通过训练更准确地了解用户偏好。结果,使用神经网络模型,ai系统已经应用于各种类型的电子装置和数据处理系统。

在ai系统中使用了基于机器学习或深度学习的各种类型的神经网络模型。在一些情况下,大量的训练数据用于训练神经网络模型。训练数据包括原始数据和原始数据的注释或标签。训练数据可以包括图像、数据集等。然而,当训练数据不足或不够稳健(robust)时,经过训练的神经网络的性能会劣化。因此,在本领域中需要用各种数据源训练神经网络。



技术实现要素:

本发明构思提供用于训练神经网络的方法和装置以及包括该装置的神经网络系统,通过该方法、装置和系统,可以通过处理获得的数据和将处理结果添加为训练数据来提高神经网络的性能。

根据本发明构思的一方面,提供了一种神经网络训练方法,该方法包括:使用基于训练数据训练的神经网络来提取针对第一数据的注释数据和第一可靠性值;基于具有大于或等于阈值的第二可靠性值的第二数据从第一数据之中选择第二数据;基于第二数据扩展训练数据;以及基于经过扩展的训练数据对神经网络进行再训练。

根据本发明构思的另一方面,提供了一种神经网络训练装置,该装置包括:存储器,其存储一个或多个指令;以及至少一个处理器,其被配置为执行存储在存储器中的一个或多个指令,以:通过用基于初始训练数据训练的神经网络对收集数据执行推断来提取针对收集数据的注释数据;基于收集数据之中的可靠性大于或等于阈值的参考数据添加训练数据;以及基于添加的训练数据和初始训练数据对神经网络进行再训练。

根据本发明构思的另一方面,提供了一种神经网络系统,该系统包括:学习模块,其被配置为处理收集数据以产生注释数据,通过基于注释数据的可靠性将收集数据的处理的版本选择性地添加到训练数据库中来扩展训练数据库,以及基于经过扩展的训练数据库对神经网络进行再训练;以及数据识别模块,其被配置为通过基于经过再训练的神经网络对输入数据执行推断来提取针对输入数据的识别信息。

根据本发明构思的另一方面,提供了一种片上系统,该片上系统包括:学习模块,其被配置为通过基于神经网络对从外部装置接收的外部数据执行推断来提取针对外部数据的注释数据,通过将外部数据中的一部分添加到训练数据库中来扩展训练数据库,针对外部数据的该部分,外部数据之中的对应的注释数据具有大于或等于阈值的可靠性,以及基于经过扩展的训练数据库对神经网络进行再训练;以及数据识别模块,其被配置为基于经过再训练的神经网络对输入数据执行数据识别。

根据本发明构思的另一方面,提供了一种训练神经网络的方法,该方法包括:基于初始训练数据训练神经网络,使用经过训练的神经网络对附加数据执行推断以产生注释数据;基于注释数据中的可靠性高于预定阈值的对应部分来选择附加数据的一部分;以及基于初始训练数据和附加数据的选择的部分以及注释数据的对应部分对神经网络进行再训练。

附图说明

通过以下结合附图的详细描述,将更加清楚地理解本发明构思的实施例,在附图中:

图1是根据本发明构思的示例实施例的电子系统的配置的框图;

图2示出了根据本发明构思的示例实施例的应用于神经网络系统的神经网络的示例;

图3是根据本发明构思的示例实施例的神经网络系统的操作方法的流程图;

图4a示出了训练数据,图4b示出了根据本发明构思的示例实施例的带注释的数据的示例;

图5是根据本发明构思的示例实施例的训练数据扩充方法的流程图;

图6示出了根据本发明构思的示例实施例的训练数据扩充方法;

图7是根据本发明构思的示例实施例的由神经网络系统执行的神经网络训练方法的流程图;

图8是用于解释根据本发明构思的示例实施例的神经网络系统和数据扩充的推断结果的图;

图9a和图9b示出了根据本发明构思的示例实施例的可靠性分布;

图10a和图10b示出了根据本发明构思的示例实施例的由神经网络系统执行的基于可靠性分布将数据添加到训练数据中的方法;

图11至图14分别示出了根据本发明构思的示例实施例的训练数据的添加;

图15是根据本发明构思的示例实施例的神经网络训练装置的配置的框图;以及

图16是示出了根据本发明构思的示例实施例的集成电路和包括集成电路的装置的框图。

具体实施方式

本公开总体上涉及人工神经网络(ann)。更特别地,涉及用各种训练数据源进行训练的神经网络。本公开的实施例用带注释的数据和未注释的数据两者来训练神经网络,以提高准确性和标准化。

ann是包括与人脑中的神经元宽松地相对应的多个连接的节点(即,人工神经元)的硬件或软件部件。每个连接或边缘将信号从一个节点传输到另一个节点(如大脑中的物理突触)。当节点接收到信号时,该节点处理信号,然后将处理后的信号传输到其他连接的节点。在一些情况下,节点之间的信号包括实数,并且通过每个节点的输入的总和的函数来计算每个节点的输出。每个节点和边缘与确定如何处理和传输信号的一个或多个节点权重相关联。

在训练处理期间,调整这些权重以提高结果的准确性(即,通过最小化以某种方式与当前结果和目标结果之间的差相对应的损失函数)。边缘的权重提高或降低节点之间传输的信号的强度。在一些情况下,节点具有阈值,低于该阈值根本不发送信号。在一些示例中,节点被聚合为层。不同的层对其输入执行不同的转换。初始层称为输入层,最后一层称为输出层。在一些情况下,信号多次遍历某些层。

监督学习是与无监督学习和强化学习一起的三种基本机器学习范例之一。监督学习是基于学习这样的函数的机器学习任务:该函数基于示例输入-输出对(即,带注释的训练数据)将输入映射到输出。监督学习基于由一组训练示例组成的带标签的训练数据来生成用于预测带标签的数据的函数。在一些情况下,每个示例都是由输入对象(通常是向量)和期望的输出值(即,单个值或输出向量)组成的对。监督学习算法分析训练数据并产生可以用于映射新的示例的推断函数。在一些情况下,该学习产生了正确地确定未见实例的类别标签的函数。换句话说,学习算法根据训练数据概括未见示例。

在一些情况下,大量的训练数据(带注释的数据)用于在监督学习环境中训练神经网络。然而,当训练数据不足时,可以对训练数据进行转换,并且可以将转换后的数据添加为训练数据。在一些情况下,可以使用聚类技术来识别特征,而无需添加训练数据。因此,可以增加用于监督学习的训练数据的数量,但是可能降低准确性或标准化。此外,当输入数据分布不均匀或者特征之间的距离变化时,神经网络可能产生错误的结果。

因此,本公开使用以带注释的训练数据训练的神经网络从未注释的外部数据中提取注释信息。由神经网络产生的带注释的数据的被确定为可靠的一部分可以被添加为用于神经网络的附加训练数据。然后,基于经过扩展的训练数据对神经网络进行再训练。另外,外部数据(未注释的数据)被添加为训练数据。

在下文中,将参考附图详细描述本发明构思的实施例。

图1是根据本发明构思的示例实施例的电子系统100的配置的框图。

图1的电子系统100可以通过基于神经网络实时分析输入数据来提取有效信息,并且可以基于提取的有效信息或其中安装有电子系统100的电子装置的控制部件来确定情况。电子系统100可以被称为神经网络系统。

神经网络的示例可以包括但不限于各种类型的神经网络模型,其包括诸如googlenet、alexnet、视觉几何组(vgg)网络等的卷积神经网络(cnn)、具有cnn的区域(r-cnn)、区域提议网络(rpn)、基于堆叠的深度神经网络(s-dnn)、递归神经网络(rnn)、基于堆叠的dnn(s-dnn)、状态空间动态神经网络(s-sdnn)、解卷积网络(dn)、深度置信网络(dbn)、受限玻尔兹曼机器(rbm)、全卷积网络(fcn)、长短期记忆(lstm)网络、分类网络等。此外,神经网络可以包括子神经网络,并且子神经网络可以被实施为异构神经网络。

图1的电子系统100可以是移动装置中采用的应用处理器(ap)。附加地或替代地,图1的电子系统100可以与计算系统、无人机、高级驾驶员辅助系统(adas)、机器人、智能tv、智能手机、医疗装置、移动装置、图像显示装置、测量装置、物联网(iot)装置等对应。

参照图1,电子系统100可以包括学习模块110和数据识别模块120,并且还可以包括训练数据库130。

学习模块110可以对神经网络进行训练,即,深度学习模型。学习模块110可以对神经网络进行训练以学习用于提取输入数据的特征的标准。例如,可以通过训练来确定神经网络的各种参数(例如,偏差、权重等)。

学习模块110可以基于训练数据库130中的训练数据tdt对神经网络进行训练。训练数据tdt包括原始数据和针对原始数据的注释数据(即,“基础事实(groundtruth)”或正确标签)。训练数据tdt可以是基础事实数据。大量的训练数据tdt用于对神经网络进行训练。在一些情况下,当将高精度和复杂的训练数据用于神经网络时,可以使用大量的训练数据tdt。

当训练数据库130中包括的训练数据tdt的数量不足以对神经网络进行训练时,神经网络的性能会劣化或会发生过度拟合。过度拟合是指与训练误差(例如,对训练数据的推断结果的误差)相比测试误差(例如,对输入数据的推断结果的误差)异常高的状态。

根据本发明构思的实施例,学习模块110可以处理收集数据cdt(其可以是未注释的数据)以产生带注释的数据(例如,新训练数据ntdt),并且将带注释的数据中的至少一些添加到训练数据库130中,从而扩展训练数据tdt。附加地或替代地,学习模块110可以通过对收集数据cdt进行处理来增加训练数据tdt的数量。

在实施例中,学习模块110可以通过使用基于训练数据tdt(例如,初始训练数据)训练的神经网络来提取针对收集数据cdt的注释。学习模块110可以基于神经网络对收集数据cdt执行推断,并且可以提取注释作为推断的结果。也可以提取推断结果的可靠性(或置信度)。例如,可以将注释的可靠性与注释一起提取。在下文中,在本公开中,可靠性是指推断结果(例如,注释)的可靠性。在一些情况下,可靠性基于推断结果正确的概率。学习模块110可以从具有提取出的注释的收集数据cdt中选择具有相对高的可靠性(例如,可靠性大于或等于阈值)的数据作为参考数据。

根据实施例,学习模块110可以将注释添加到基于由用户输入的搜索词而获得的收集数据cdt中。在这种情况下,用户指的是使用电子系统100的人,并且可以通过用户基于通信网络(诸如,网络或互联网)上的搜索词执行搜索来获得收集数据cdt。学习模块110可以基于搜索词生成针对收集数据cdt的注释,并且在这种情况下,注释的可靠性可以很高。因此,学习模块110可以通过基于搜索词将注释添加到收集数据cdt中来生成参考数据。

学习模块110可以通过使用各种转换技术对参考数据进行转换以生成参考数据的多个转换版本。在这种情况下,参考数据的转换版本可以包括与参考数据被转换之前的参考数据相同的注释。然而,与参考数据的可靠性相比,参考数据的转换版本的可靠性可能降低。学习模块110可以从参考数据的转换版本中选择具有大于或等于参考值的可靠性的数据,并将选择的数据(例如,新训练数据ntdt)添加到训练数据库130中。下面将参照图3至图14更详细地描述由学习模块110执行的扩展训练数据tdt的方法。

学习模块110可以基于经过扩展的训练数据tdt对神经网络进行再训练,因此,可以提高神经网络的性能(例如,解决问题的准确性或可扩展性)。例如,与基于初始训练数据训练的神经网络的性能相比,可以提高基于经过扩展的训练数据tdt训练的神经网络的性能。

数据识别模块120可以通过使用经过训练的神经网络(即,由学习模块110训练或再训练的神经网络)来提取输入数据的特征信息或基于提取的特征信息获得输出数据。例如,为了执行电子系统100的任务,数据识别模块120可以基于神经网络对输入图像执行推断。推断期间的神经网络计算可以由单独的加速器执行,诸如,图形处理单元(gpu)、神经处理单元(npu)、数字信号处理器(dsp)、现场可编程门阵列(fpga)等。

数据识别模块120可以生成信息信号作为推断的结果。信息信号可以包括各种类型的识别信号(包括语音识别信号、对象识别信号、图像识别信号和生物信息识别信号)中的一个。例如,数据识别模块120可以从输入图像中提取特征信息,或者可以基于提取的特征信息而获得将输入图像中的对象的类别识别为输出数据(即,信息信号)的结果。

此外,学习模块110和数据识别模块120可以各自实施为软件、硬件或者硬件和软件的组合。在实施例中,学习模块110和数据识别模块120可以以操作系统(os)、较低层中的软件的形式来实施,或者可以实施为可以被加载到电子系统100中提供的存储器中并且可以由电子系统100的至少一个处理器执行的程序。

图2示出了根据本发明构思的示例实施例的应用于神经网络系统的神经网络的示例。

参照图2,神经网络nn可以具有包括输入层、隐藏层和输出层的结构。神经网络nn可以基于接收到的输入数据(例如,i1和i2)执行计算,并且基于计算结果来生成输出数据(例如,o1和o2)。

神经网络nn可以是具有两个或更多个隐藏层的dnn或n层神经网络。例如,如图2所示,神经网络nn可以是具有多个层(即,输入层10、第一隐藏层12和第二隐藏层14以及输出层16)的dnn。

可以将这些层(即,输入层10、第一隐藏层12和第二隐藏层14以及输出层16)实施为卷积层、完全连接层、softmax层等。例如,卷积层可以包括卷积、池化和激活函数操作。替代地,卷积、池化和激活函数操作中的每一个都可以形成一个层。

输入层10、第一隐藏层12和第二隐藏层14以及输出层16中的每一个的输出可以被称为特征(或特征图)。输入层10、第一隐藏层12和第二隐藏层14以及输出层16中的每一个可以接收在前一层中生成的特征作为输入特征,可以对输入特征执行计算,并且可以生成输出特征或输出信号。特征是表示输入数据的可以被神经网络nn识别的各种特性的数据。

当神经网络nn具有dnn结构时,神经网络nn包括能够提取有效信息的多个层。因此,神经网络nn可以处理复杂的数据集。尽管已经将神经网络nn描述为包括四个层,即,输入层10、第一隐藏层12和第二隐藏层14以及输出层16,但这仅是示例,并且神经网络nn可以包括更少或更多个层。此外,神经网络nn可以包括具有除了图2所示的结构之外的各种结构的层。

神经网络nn中包括的输入层10、第一隐藏层12和第二隐藏层14以及输出层16中的每一个可以包括多个神经元。神经元可以与多个人工节点(称为处理元件(pe)、单位或类似术语)相对应。例如,如图2所示,输入层10可以包括两个神经元(节点),并且第一隐藏层12和第二隐藏层14中的每一个可以包括三个神经元(节点)。然而,这仅是示例,并且神经网络nn中的每个层可以包括各种数量的神经元(节点)。

神经网络nn中包括的输入层10、第一隐藏层12和第二隐藏层14以及输出层16中的每一个中包括的神经元可以连接到下一层中的神经元,以彼此交换数据。神经元可以从其他神经元接收数据,可以对接收到的数据执行计算,并且可以将计算结果输出到其他神经元。

神经元(节点)中的每一个的输入和输出可以分别称为输入激活和输出激活。附加地或替代地,激活既可以用作来自神经元的输出,又可以用作与下一层中的神经元的输入相对应的参数。此外,神经元中的每一个可以基于激活(例如,等)、权重(例如,等)和偏差(例如,等)来确定激活。可以从上一层的神经元接收激活、权重和偏差。权重和偏差是用于计算每个神经元中的输出激活的参数,并且每个权重是分配给神经元之间的连接关系的值,而偏差表示与单个神经元相关联的权重。如参考图1所描述的,神经网络nn可以经由基于训练数据的训练(诸如,机器学习)来确定诸如权重和偏差的参数。

图3是根据本发明构思的示例实施例的神经网络系统的操作方法的流程图。图3的操作方法可以在图1的电子系统100中执行,并且参照图1的描述可以应用于该实施例。

参照图1和图3,学习模块110可以生成针对收集的未注释的数据的注释(操作s110)。根据实施例,学习模块110可以通过用基于初始训练数据训练的神经网络对收集数据执行推断来提取针对收集数据的注释。在这种情况下,可以与注释一起提取注释的可靠性。

图4a示出了训练数据,并且图4b示出了根据本发明构思的示例实施例的带注释的数据的示例。图4a和图4b示出了图像数据作为示例。

参照图4a,训练数据tdt可以包括原始数据rdt和对应的注释。注释是从神经网络输出的结果,并且可以包括例如类别、边界框(bb)、对象检测结果等。例如,当神经网络检测到人或动物的面部和面部的位置时,如图4a所示,注释可以包括关于指示人的面部和位置的bb的信息(例如,bb的位置和尺寸、bb内的像素等)以及关于由人的面部表示的类别的信息(例如,人、女人等)。

参照图4b,未注释的数据uadt(诸如,收集数据)包括原始数据rdt,并且在图3的操作s110中可以生成针对原始数据rdt的注释,并且该注释可以标记在原始数据rdt上。如图4b所示,该注释可以包括关于指示猫的面部和位置的bb的信息以及关于由猫的面部表示的类别(例如,猫以及猫的品种)的信息。在这种情况下,可以将注释的可靠性与注释一起标记在原始数据rdt上。以这种方式,可以生成带注释的数据adt。例如,注释可以包括与猫相对应的类别信息,并且随着未注释的数据uadt中的猫图像变得与训练数据tdt中的猫图像更加相似,注释的可靠性可以提高。附加地或替代地,随着未注释的数据uadt中的特征变得与训练数据tdt中的特征更相似,注释的可靠性可以更高。

返回参照图3,学习模块110可以基于具有生成的注释的收集数据将训练数据扩展与预设比率相对应的数量(操作s120)。根据实施例,学习模块110可以基于具有生成的注释的收集数据之中的被确定为具有相对高的可靠性或具有大于或等于阈值的可靠性的数据来扩展训练数据。学习模块110可以通过基于各种方法对具有高可靠性的数据进行转换来增加数据的数量,并且可以基于可靠性将数据的转换版本中的至少一些选择性地添加为训练数据。

学习模块110可以添加与预设比率相对应的训练数据的数量。例如,学习模块110可以添加与当前可用的训练数据的数量(例如,初始训练数据的数量)的预设比率相对应的训练数据的数量。例如,该比率可以是大于0但小于或等于1的实数。例如,当训练数据库130中存储有1000条图像数据作为当前的训练数据,并且预设比率为0.2时,学习模块110可以基于具有生成的注释的收集数据来添加200条训练数据。

学习模块110可以基于经过扩展的训练数据对神经网络进行再训练(操作s130)。因此,可以提高神经网络的性能。根据实施例,学习模块110可以评估经过再训练的神经网络的性能。当神经网络的性能劣化至阈值水平以下或劣化很大程度时,学习模块110可以将训练数据和神经网络恢复到原始状态。根据实施例,学习模块110可以再次执行操作s120和s130以获得具有提高的性能的神经网络。

数据识别模块120可以基于经过再训练的神经网络来执行数据识别(操作s140)。数据识别模块120可以运行神经网络,并且可以基于神经网络对输入数据进行推断,以获得用于输入数据的信息信号。

如上所述,根据本发明构思的实施例,神经网络系统可以生成针对未注释的数据的注释,并通过使用带注释的数据来扩展训练数据。通过基于经过扩展的训练数据对神经网络进行再训练,神经网络系统可以获得并使用具有提高的性能的神经网络。如参考图3所描述的,可以通过迭代地执行训练数据的扩充和神经网络的再训练来提高神经网络的识别率。

图5是根据本发明构思的示例实施例的训练数据扩充方法的流程图。图5的训练数据扩充方法可以在图1的学习模块110中执行,上面已经关于图1和图3提供的描述可以应用于该实施例。

参照图1和图5,学习模块110可以通过使用基于训练数据(例如,初始训练数据)训练的神经网络来提取针对未注释的数据的注释(操作s210)。在这种情况下,可以与注释一起提取注释的可靠性。例如,当神经网络执行多类别分类时,学习模块110可以运行神经网络以对收集数据执行推断,并可以提取与收集数据匹配的多个类别以及类别中的每一个的可靠性值作为推断结果。

因此,可以通过神经网络连同注释数据一起提取可靠性值。在一个示例中,使用与用于训练网络以产生注释数据的训练任务不同的训练任务(例如,不同的损失函数)来对神经网络进行训练以产生注释数据。附加地或替代地,可以使用包含预测的可靠性值的单个训练任务。在一个示例中,神经网络可以输出包括多个类别种类的注释数据以及针对每个种类的软(即,非二进制)值,并且可以基于软值来确定可靠性。在一些示例中,可以针对各个输入推断可靠性数据,而在其他示例中,可以针对输入值的聚集确定可靠性值。

学习模块110可以基于具有提取出的注释的收集数据之中的可靠性大于或等于阈值的数据来执行数据扩充(操作s220)。在实施例中,学习模块110可以选择可靠性大于或等于阈值的一条收集数据作为参考数据,并基于该参考数据执行数据扩充。例如,学习模块110可以将可靠性大于或等于阈值的收集数据视为基础事实数据,并且选择该收集数据作为与数据扩充中的母数据相对应的参考数据。

学习模块110可以通过使用各种方法对参考数据进行转换以生成参考数据的多个转换版本。例如,如图4b所示,当参考数据是包括猫的面部的图像数据并且注释包括关于指示猫的面部和位置的bb的信息时,学习模块110可以通过使用诸如裁剪、旋转、颜色变换、噪声添加等的各种方法对图像数据进行转换。因此,可以生成图像数据的多个转换版本。

在这种情况下,参考数据的每个转换版本(例如,图像数据的转换版本)的注释可以与参考数据(例如,进行转换之前的图像数据)的注释相同。例如,图像数据的转换版本可以包括猫的面部和关于指示猫的面部的位置的bb的信息。然而,图像数据的转换版本的可靠性可能降低。根据实施例,学习模块110可以通过使用神经网络对图像数据的转换版本执行推断,并且提取图像数据的转换版本的可靠性。

学习模块110可以基于数据的转换版本中的可靠性大于或等于参考值的数据来扩展训练数据(操作s230)。学习模块110可以将数据的转换版本之中的可靠性大于或等于预定参考值的数据添加为训练数据,并且如关于图3的操作s120所描述的,学习模块110可以添加与预设比率相对应的训练数据的数量。在这种情况下,学习模块110可以根据神经网络的目的将数据的具有相对高的可靠性的转换版本或数据的具有相对低(但是大于参考值)的可靠性的转换版本添加为训练数据。根据实施例,学习模块110可以基于可靠性分布在数据的转换版本之中选择要添加为训练数据的数据,如下面参考图9a至图10b详细描述的。

学习模块110可以基于经过扩展的训练数据对神经网络进行再训练(操作s240)。

学习模块110可以确定经过再训练的神经网络的性能是否劣化(操作s250)。学习模块110可以评估经过再训练的神经网络的性能。学习模块110可以基于神经网络的目的来评估神经网络的性能在各个方面是否劣化。

当神经网络的性能劣化至阈值水平以下或劣化至很大程度时,学习模块110可以将经过扩展的训练数据恢复到原始状态(操作s260)。附加地或替代地,当确定基于经过扩展的训练数据而被再训练的神经网络的性能过度劣化时,学习模块110可以确定训练数据的扩展不充分,并且可以将经过扩展的训练数据恢复到扩展之前的原始状态。

学习模块110可以调整阈值(操作s270)并再次执行操作s220至s250。例如,学习模块110可以增大与可靠性相关的阈值。附加地或替代地,学习模块110可以基于具有更高的可靠性的数据来扩展训练数据,并且可以基于经过扩展的训练数据对神经网络进行再训练。

增加训练数据的数量的方法可以用于增加神经网络的性能或防止神经网络过度拟合。然而,当通过数据扩充简单地转换现有的训练数据(例如,初始训练数据)并将转换后的数据添加为训练数据时,训练数据的数量可以增加,但是神经网络的准确性或标准化效果可能会降低。除了增加训练数据的数量之外,一种方法包括基于聚类技术从输入数据中的特征图识别特征以及基于其中将特征划分为聚类的分布来确定组数。根据此方法,当输入数据分布不均匀或特征之间的距离变化时,神经网络可能得出错误的结果。

然而,如以上参考图1至图5所述,根据本发明构思的示例实施例的由神经网络系统执行的神经网络训练方法可以通过提取针对收集数据(其可以是未注释的数据)的注释并基于带注释的数据(例如,具有提取出的注释的收集数据)的可靠性或者基于带注释的数据转换的数据的可靠性以预设比率添加训练数据来增加训练数据的数量。根据该方法,由于可以连续地将收集数据添加为训练数据,因此可以提高神经网络的性能,诸如,准确性或归一化效果。

因此,训练神经网络的方法可包括:基于初始训练数据对神经网络进行训练;使用经过训练的神经网络对附加数据执行推断以产生注释数据;基于注释数据的可靠性高于预定阈值的对应部分,选择附加数据的一部分;以及基于初始训练数据和附加数据的选定部分以及注释数据的对应部分,对神经网络进行再训练。

图6示出了根据本发明构思的示例实施例的训练数据扩充方法。为了便于描述,假设神经网络的输入数据为图像。

参照图6,第一数据库db1可以包括多个初始训练图像timgi。第一数据库db1可以是训练数据库。可以基于初始训练图像timgi对神经网络进行训练。

第二数据库db2(诸如,外部数据库)可以包括多个未注释的图像uaimg。例如,未注释的图像uaimg可以是通过应用了神经网络系统的电子装置的照相机获得的图像,或者是经由通信网络收集的图像。

可以基于经过训练的神经网络对未注释的图像uaimg执行推断。因此,可以提取针对未注释的图像uaimg中的每一个的注释和可靠性。可以为未注释的图像uaimg中的每一个标记注释和可靠性。附加地或替代地,可以生成多个带注释的图像aimg。

可以从带注释的图像aimg中选择可靠性r大于或等于阈值的图像。例如,当阈值是0.9时,可以选择具有0.9或以上的可靠性r的图像作为参考图像rimg。

可以基于参考图像rimg执行数据扩充。可以通过以各种方式对参考图像rimg进行转换来生成图像的多个转换版本fimg。图像的转换版本fimg与参考图像rimg包括相同的注释,但是可以各自具有低于参考图像rimg的可靠性r的可靠性r。例如,图像的转换版本fimg可以分别具有0.85、0.7、0.5和0.75的可靠性r。

可以基于可靠性r选择图像的转换版本fimg中的至少一个。例如,可以选择可靠性r大于或等于参考值的图像的转换版本fimg。例如,当参考值为0.75时,可以从图像的转换版本fimg中选择具有0.75和0.85的可靠性r的图像。

选择的图像simg可以作为训练图像被添加到第一数据库db1中。第一数据库db1可以包括初始训练图像timgi和多个添加的图像timga。因此,可以增加训练图像的数量。附加地或替代地,可以扩展第一数据库db1。

图7是根据本发明构思的示例实施例的由神经网络系统执行的神经网络训练方法的流程图。图7的神经网络训练方法可以在图1的电子系统100中执行,并且在上面关于图1至图6已经提供的描述可以应用于该实施例。

参照图1和图7,学习模块110可以扩展训练数据(操作s310)并且基于经过扩展的训练数据对神经网络进行再训练(操作s320)。上面已经参照图5提供了关于操作s310和s320的描述,不再进行重复。

此后,学习模块110可以检查是否满足预设条件(操作s330)。例如,该条件可以是用于完成训练阶段的条件。

在实施例中,学习模块110可以检查添加的训练数据的数量是否大于或等于预设数量。附加地或替代地,学习模块110可以确定添加的训练数据的数量是否足够。可以预定添加的训练数据的数量,并且学习模块110可以确定添加的训练数据的数量是否大于或等于预设数量。例如,在初始训练数据包括1,000个图像并且与初始训练数据中的图像数目相同的图像数目被设置为被添加为训练数据的情况下,学习模块110可以在添加的训练图像的数目大于或等于1,000时满足条件。

在实施例中,学习模块110可以基于经过再训练的神经网络的性能来确定是否满足条件。例如,学习模块110可以测量经过再训练的神经网络的性能。当测量到的性能大于或等于参考水平时,可以确定满足条件。

当确定条件未被满足时,学习模块110可以再次执行操作s310和s320。例如,学习模块110可以重复执行操作s310和s320,直到添加的训练图像的数目达到1,000。作为另一示例,学习模块110可以重复执行操作s310和s320,直到经过再训练的神经网络的性能达到参考水平为止。

当确定满足条件时,学习模块110可以完成训练阶段。

图8是用于解释根据本发明构思的示例实施例的神经网络系统和数据扩充的推断结果的图。图8是用于解释图5的操作s210和s220的图。

参照图8,基于经过训练的神经网络执行推断,并且可以根据神经网络的目的(即,基于对神经网络进行训练所针对的任务)提取推断的结果。例如,如图8所示,输入数据可以是图像,并且可以提取关于面部以及面部的位置和区域的信息作为推断结果。例如,可以针对第一图像img1提取关于面部的信息以及第一bb和第二bb(bb1和bb2),每个bb包括关于面部的位置和区域的信息。在这种情况下,bb1的可靠性r可以是0.95,并且bb2的可靠性r可以是0.55。

可以对具有大于阈值的可靠性的图像执行数据扩充。例如,当阈值是0.8时,可以对第一bbbb1中的具有0.95的可靠性r的图像执行图像转换。例如,如图8所示,可以改变面部表情。此外,可以执行图像转换,诸如,添加噪声、旋转图像或从图像中裁剪面部的一部分。在图像的转换版本中,关于第一bbbb1的信息保持不变,但是可能降低第一bbbb1的可靠性r。例如,在可以作为图像的转换版本的第二图像img2中,第一bbbb1的可靠性r可能降低至0.8。

图9a和9b示出了根据本发明构思的示例实施例的可靠性分布。图9a和9b的可靠性分布可以在扩展训练数据的操作(例如,图5的操作s230)中使用。在图9a和图9b的曲线中,横坐标和纵坐标分别表示可靠性和被添加为训练数据的数据的数量。

参照图9a,可以设置可靠性分布,使得可靠性大于或等于参考值rr的数据之中的可靠性相对高的数据被添加为训练数据。因此,当数据被添加为训练数据时,即,当与已经用于对神经网络进行训练的训练数据(“现有的训练数据”)相似的数据被添加到现有的训练数据中时,这可以扩充现有的训练数据。

附加地或替代地,参照图9b,可以设置可靠性分布,使得可靠性大于或等于参考值rr的数据之中的可靠性相对低的数据被添加为训练数据。因此,当数据被添加为训练数据时,即,当与已经用于对神经网络进行训练的训练数据(“现有的训练数据”)不同的数据被添加到现有的训练数据中时,现有的训练中不包括的新数据可以被添加为训练数据。例如,当神经网络执行车辆检测操作时,即使当新的车辆启动时,也可以添加关于该新的车辆的数据作为训练数据。

图10a和10b示出了根据本发明构思的示例实施例的由神经网络系统执行的基于可靠性分布将数据添加到训练数据中的方法。

参照图10a,可靠性大于或等于参考值0.6的数据可以被添加为训练数据。在这种情况下,可以将与0.6或以上的可靠性相对应的可靠性区域划分为多个可靠性范围,即,第一可靠性范围rr1至第四可靠性范围rr4,如图10b所示,可以针对第一可靠性范围rr1至第四可靠性范围rr4中的每一个设置要被添加的数据的数量与要被添加为训练数据的数据的总量之比。例如,当总共100个图像被添加为训练数据时,第一可靠性范围rr1中包括的5个图像、第二可靠性范围rr2中包括的10个图像、第三可靠性范围rr3中包括的25个图像和第四可靠性范围rr4中包括的60个图像可以被添加为训练数据。

图11至图14分别示出根据本发明构思的示例实施例的训练数据的添加。为了便于解释,假设训练数据为图像。

图11示出了其中由于添加训练数据而提高训练数据的可靠性的示例。

参照图11,第一数据库db1(例如,训练数据库)可以包括多个训练图像。在这种情况下,训练图像的总可靠性rtot可以是0.8。第二数据库db2(例如,未注释的数据库)可以包括多个收集图像m1至mk(k为正整数),通过使用基于第一数据库db1训练的神经网络对收集图像m1至mk执行推断,并且因此,可以提取针对收集图像m1至mk中的每一个的注释和注释的可靠性。因此,可以生成多个带注释的图像。附加地或替代地,可以通过基于多个带注释的图像之中的具有相对高的可靠性的图像执行数据扩充来生成图像的多个转换版本fimg。

可以将图像的转换版本fimg之中的具有高可靠性的图像(例如,具有0.85或更高的可靠性的图像)添加到第一数据库db1中作为训练数据。因此,可以提高经过扩展的训练数据(即,第一数据库db1中包括的多个训练图像)的总可靠性rtot。

以这种方式,即使在初始训练数据的可靠性低时,也可以通过添加具有高可靠性的训练数据来提高训练数据的可靠性。

图12示出了其中一些数据被添加为训练数据的示例。图12示出了由某个用户使用的装置(例如,移动终端,诸如智能电话、平板pc等)中的训练数据的添加和训练数据的添加的结果。

参照图12,第一数据库db1可以包括多个训练图像n1至nn。第二数据库db2可以包括收集图像m1至mk、o1和o2(k是正整数)。在这种情况下,收集图像m1至mk可以是用户的图像,并且收集图像o1和o2可以是其他图像,诸如,另一用户的图像。因为用户使用移动终端,所以用户的图像可以存储在第二数据库db2中。

可以通过使用基于第一数据库db1训练的神经网络对收集图像m1至mk、o1和o2执行推断,因此,可以提取针对收集图像m1至mk、o1和o2的注释和注释的可靠性。因此,可以生成多个带注释的图像。此外,可以通过对多个带注释的图像之中的具有相对高的可靠性的图像执行数据扩充来生成图像的多个转换版本fimg。

图像的转换版本可以包括通过转换用户的图像(例如,收集图像m1)获得的图像mla、mlb、mlc和mld,以及通过转换另一用户的图像(例如,收集图像o1)获得的图像ola和olb。在移动终端中,图像的转换版本fimg可以包括通过转换用户的图像获得的图像。

图像的转换版本fimg中的至少一些可以被添加到第一数据库db1中作为训练数据。因此,可以增加经过扩展的训练数据(即,第一数据库db1中包括的多个训练图像)中与用户相关的图像的比例。

例如,在检测来自移动终端的图像(例如,由照相机捕获的图像)中的人的面部并将标签(例如,名字等)添加到图像中的神经网络的情况下,其中要执行检测的图像的范围可能由于移动终端的特性而受限。例如,其中要执行检测的图像可以是用户的图像。根据该实施例,由于训练数据中的用户的图像的比例增加,因此基于训练数据而再训练的神经网络可以在检测图像中的用户的面部时表现出增强的性能。

图13示出了其中将相对大量的训练数据添加到少量训练数据中的示例。

参照图13,第一数据库db1包括多个训练图像n1至nn,第二数据库db2包括多个收集图像m1至mk。在这种情况下,收集图像m1至mk的数量可以明显大于训练图像n1至nn的数量。

可以通过使用基于第一数据库db1训练的神经网络对收集图像m1至mk执行推断,因此,可以提取针对收集图像m1至mk的注释和注释的可靠性。因此,可以生成多个带注释的图像。此外,可以基于多个带注释的图像之中的具有相对高的可靠性的图像来执行数据扩充。

图像的多个转换版本fimg(例如,mla至mkc)可以被添加到第一数据库db1中。因此,可以增大第一数据库db1中的训练数据中的添加数据的比例。

在用于诊断诸如癌症的疾病和检测生长板的医学图像的情况下,可能存在少量的带注释的训练图像。附加地或替代地,可以存在作为测试或检查的结果获得的多个未注释的图像,即,收集图像。当针对少量的训练图像对神经网络进行训练时,可以在不考虑诸如不同的年龄、性别、并发症等因素的情况下对神经网络进行训练,从而降低了神经网络的准确性。然而,根据本发明构思的实施例的训练方法,可以将未注释的图像用作训练图像,并且可以提高神经网络的准确性。

图14示出了其中将大量训练数据添加到大量训练数据中的示例。

参照图14,第一数据库db1包括多个训练图像n1至nn,第二数据库db2包括多个收集图像m1至mk。

可以通过使用基于第一数据库db1训练的神经网络对收集图像m1至mk执行推断,因此,可以提取针对收集图像m1至mk的注释和注释的可靠性。因此,可以生成多个带注释的图像。此外,可以基于多个带注释的图像之中的具有相对高的可靠性的图像来执行数据扩充。图像的多个转换版本fimg(例如,m1a至mkc)可以被添加到第一数据库db1中。

例如,当神经网络执行车辆检测操作时,可以基于大量的训练数据对神经网络进行训练。然而,当新的车辆进入市场或发生环境变化(例如,雪、雨和闪电)时,会劣化神经网络的检测性能。然而,根据本发明构思的实施例的训练方法,可以将连续收集的图像数据添加为训练数据。因此,可以基于经过扩展的训练数据对训练神经网络进行再训练,从而防止神经网络的性能的劣化。

图15是根据本发明构思的示例实施例的神经网络训练装置1000的配置的框图。

参照图15,神经网络训练装置1000可以包括处理器1100和存储器1200。尽管图15示出了神经网络训练装置1000包括一个处理器1100,但实施例不限于此,并且神经网络训练装置1000可以包括多个处理器。

处理器1100可以包括一个或多个核(未示出)、gpu(未示出)和/或用于与其他部件交换信号的连接通道(例如,总线)。

处理器1100可以执行如上面参照图1至图14所述的学习模块110的操作,诸如再训练和训练数据的扩展。例如,处理器1100可以通过使用基于训练数据库中包括的训练数据(例如,初始训练数据)而训练的神经网络对收集数据执行推断,以提取针对收集数据的注释,可以基于带注释的数据之中的具有可靠性大于或等于阈值的注释的参考数据而添加训练数据,并且可以基于添加的训练数据和初始训练数据对神经网络进行再训练。处理器1100可以根据设置的比率添加训练数据,并可以重复添加训练数据,直到被添加的训练数据的数量达到设置的数量(即,添加的设置数量)为止,或者直到神经网络的性能达到参考水平为止。

此外,处理器1100还可以包括用于临时地或永久地存储在处理器1100内处理的信号(或数据)的随机存取存储器(ram)(未示出)和只读存储器(rom)(未示出)。处理器1100可以以包括gpu、ram和rom中的至少一个的片上系统(soc)的形式来实施。

存储器1200可以存储用于处理和控制处理器1100的程序(一个或多个指令)。存储器1200可以包括其中实施了参照图1描述的学习模块110和数据识别模块120的功能的多个模块。此外,存储器1200包括训练数据库(或第一数据库)(图1的130以及图6和图11至图14的db1)和未注释数据库(或第二数据库)(图6和图11至图14的db2)。

图16是示出根据本发明构思的示例实施例的集成电路2100和包括集成电路2100的装置2000的框图。

参照图16,装置2000可以包括集成电路2100和连接到集成电路2100的部件,诸如传感器2200、显示装置2300和存储器2400。装置2000可以是用于基于神经网络处理数据的装置。例如,装置2000可以是数据服务器或诸如智能电话、游戏装置、adas、可穿戴装置等的移动装置。

根据本发明构思的示例实施例,集成电路2100可以包括中央处理单元(cpu)2110、ram2120、gpu2130、计算装置2140、传感器接口(i/f)2150、显示器i/f2160和存储器i/f2170。集成电路2100还可以包括其他通用部件,诸如通信模块、dsp、视频模块等,并且集成电路2100的部件(cpu2110、ram2120、gpu2130、计算装置2140、传感器i/f2150、显示器i/f2160和存储器i/f2170)可以经由总线2180彼此交换数据。在实施例中,集成电路2100可以是ap。在实施例中,集成电路2100可以被实施为片上系统(soc)。

cpu2110可以控制集成电路2100的操作。cpu2110可以包括一个处理器核或多个处理器核(多核)。cpu2110可以处理或执行存储器2400中存储的程序和/或数据。在实施例中,cpu2110可以执行存储器2400中存储的程序以执行根据本发明构思的实施例的神经网络训练方法,诸如再训练和训练数据的扩展。

ram2120可以临时地存储程序、数据和/或指令。根据实施例,ram2120可以被实施为dram或静态ram(sram)。ram2120可以临时地存储通过传感器i/f2150和显示器i/f2160输入或输出的数据或者由gpu2130或cpu2110生成的数据,例如,图像数据。

在实施例中,集成电路2100还可以包括rom。rom可以存储连续使用的程序和/或数据。rom可以被实施为可擦除可编程rom(eprom)或电可擦除prom(eeprom)。

gpu2130可以对图像数据执行图像处理。例如,gpu2130可以对通过传感器i/f2150接收的图像数据执行图像处理。由gpu2130处理的图像数据可以被存储在存储器2400中,或者可以经由显示器i/f2160被提供给显示装置2300。

计算装置2140可以包括用于执行神经网络计算的加速器。例如,计算装置2140可以包括npu。在实施例中,gpu2130或计算装置2140可以在神经网络训练阶段或数据识别阶段中执行神经网络计算。

传感器i/f2150可以接收由连接到集成电路2100的传感器2200输入的数据(例如,图像数据、音频数据等)。

显示器i/f2160可以向显示装置2300输出数据(例如,图像)。显示装置2300可以在显示器(诸如,液晶显示器(lcd)或有源矩阵有机发光二极管(amoled)显示器)上输出图像数据或视频数据。

存储器i/f2170可以与从集成电路2100外部的存储器2400输入的数据或输出到存储器2400的数据接口。根据实施例,存储器2400可以被实施为易失性存储器(诸如dram或sram)或者非易失性存储器(诸如电阻ram(reram)、相变ram(pram)或nand闪存)。存储器2400还可以被实施为存储卡(例如,多媒体卡(mmc)存储器、嵌入式mmc(emmc)存储器、安全数字(sd)存储器和微型sd存储器)。

虽然已经参照本发明的实施例具体示出和描述了本发明构思,但是将理解,在不脱离所附权利要求的精神和范围的情况下,可以在形式和细节上对本发明构思进行各种改变。

当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1