使用指导者模型训练学习者模型的人工智能系统和方法与流程

文档序号:20705365发布日期:2020-05-12 16:20阅读:195来源:国知局
使用指导者模型训练学习者模型的人工智能系统和方法与流程

本申请一般涉及使用结构上较为简单的学习者模型来模拟结构上较为复杂的指导者模型的行为的人工智能系统和方法。



背景技术:

随着人工智能的发展,深度学习越来越受欢迎。深度学习是一种机器学习,其训练模型以执行类似人类的任务,例如检测对象、识别语音、识别图像或进行预测。深度学习通常是计算密集型的,这可能限制它们在具有有限计算能力的计算平台上的应用(例如,移动电话、车载设备)。解决该问题的有效方法是使用结构上较为简单的学习者模型来模拟结构上较为复杂的指导者模型的行为,这可以大大减少计算开销。学习者模型的表现可能受到训练学习者模型所使用的结构上较为复杂的指导者模型的信息的影响。因此,希望提供人工智能系统和方法,用于开发更有效的学习者模型,以模拟结构上较为复杂的指导者模型的行为。



技术实现要素:

本申请的一个方面介绍了一种人工智能系统,用于使用指导者模型训练学习者模型,包括:模型获取模块,用于获得至少包括n个指导者模块的训练好的指导者模型,其中n是大于2的整数;和获得学习者模型,其至少包括分别对应于所述训练好的指导者模型的n个指导者模块的n个学习者模块;模型训练模块,用于通过进行迭代操作将学习者模型训练成为训练好的学习者模型:所述一次迭代操作包括分别输入样本数据集到训练好的指导者模型和学习者模型中;对于n个学习者模块中的每一个:基于对应于学习者模块的指导者模块的输出确定指导者向量,基于学习者模块的输出确定学习者向量,其中,指导者向量的长度等于学习者向量的长度,确定指导者向量和学习者向量之间的距离以获得学习信号,以及通过将距离作为学习信号输入到学习者模块中来更新学习者模块中的参数;确定学习者模型是否收敛;以及响应于确定学习者模型是收敛的,停止迭代操作,以将学习者模型指定为训练好的学习者模型。

本申请的一个方面介绍了又一种人工智能系统,用于使用指导者模型训练学习者模型,包括:至少一个存储介质,包括一组训练学习者模型的指令;和至少一个与存储介质通信的处理器。其中,当执行所述一组指令时,所述至少一个处理器用于:获得至少包括n个指导者模块的训练好的指导者模型,其中n是大于2的整数;获得学习者模型,其至少包括分别对应于所述训练好的指导者模型的n个指导者模块的n个学习者模块;通过进行迭代操作将学习者模型训练成为训练好的学习者模型:所述一次迭代操作包括分别输入样本数据集到训练好的指导者模型和学习者模型中;对于n个学习者模块中的每一个:基于对应于学习者模块的指导者模块的输出确定指导者向量,基于学习者模块的输出确定学习者向量,其中,指导者向量的长度等于学习者向量的长度,确定指导者向量和学习者向量之间的距离以获得学习信号,以及通过将距离作为学习信号输入到学习者模块中来更新学习者模块中的参数;确定学习者模型是否收敛;以及响应于确定学习者模型是收敛的,停止迭代操作,以将学习者模型指定为训练好的学习者模型。

在一些实施例中,n个指导者模块中的每一个包括至少一个指导者层,并且n个学习者模块中的每一个包括至少一个学习者层。

在一些实施例中,学习者模型中的学习者模块的总数小于训练好的指导者模型中的指导者模块的总数;学习者模型中的学习者层的总数小于训练好的指导者模型中的指导者层的总数;并且每个学习者层中的节点总数小于每个指导者层中的节点总数。

在一些实施例中,所述至少一个处理器还用于:将每个指导者模块的输出映射到包括预定长度的指导者向量;并将每个学习者模块的输出映射到包括预定长度的学习者向量。

在一些实施例中,学习者向量和指导者向量之间的距离包括以下中的至少一个:交叉熵、互信息、kl距离、欧式距离、或编辑距离。

在一些实施例中,在当前迭代操作期间确定学习者模型是否收敛,所述至少一个处理器还用于:确定当前迭代操作中当前学习者模型的参数与上次迭代操作中的学习者模型的参数之间的差值;确定差值是否小于差值阈值;以及响应于确定差值小于差值阈值,确定学习者模型是收敛的。

在一些实施例中,所述至少一个处理器还用于:训练至少两个学习者模型以获得至少两个训练好的学习者模型,其中至少两个学习者中的每个学习者模型都彼此不同;以及测试所述至少两个训练好的学习者模型以获得最终训练好的学习者模型。

在一些实施例中,为了测试至少两个训练好的学习者模型,所述至少一个处理器还用于:对于所述至少两个训练好的学习者模型中的每一个,用一个测试数据集作为训练好的学习者模型和训练好的指导者模型的输入,确定所述训练好的学习者模型和所述指导者模型之间的输出差;以及基于至少两个输出差,从至少两个训练好的学习者模型中确定一个最终训练好的学习者模型。

在一些实施例中,基于对应的学习信号和梯度下降算法来更新每个学习者模块中的参数。

根据本申请的另一方面,一种人工智能方法,用于使用指导者模型训练学习者模型,包括:获得至少包括n个指导者模块的训练好的指导者模型,其中,n是大于2的整数;获得学习者模型,其至少包括分别对应于训练好的指导者模型的n个指导者模块的n个学习者模块;通过进行迭代操作,将学习者模型训练成训练好的学习者模型:所述一次迭代操作包括分别输入样本数据集到训练好的指导者模型和学习者模型中;对于n个学习者模块中的每一个:基于对应于学习者模块的指导者模块的输出确定指导者向量,基于学习者模块的输出确定学习者向量,其中,指导者向量的长度等于学习者向量的长度,确定指导者向量和学习者向量之间的距离以获得学习信号,以及通过将距离作为学习信号输入到学习者模块中来更新学习者模块中的参数;确定学习者模型是否收敛;以及响应于确定学习者模型是收敛的,停止迭代操作,以将学习者模型指定为训练好的学习者模型。

在一些实施例中,n个指导者模块中的每一个包括至少一个指导者层,并且n个学习者模块中的每一个包括至少一个学习者层。

在一些实施例中,学习者模型中的学习者模块的总数小于训练好的指导者模型中的指导者模块的总数;学习者中的学习者层的总数。模型小于训练好的指导者模型中的指导者层的总数;并且每个学习者层中的节点总数小于每个指导者层中的节点总数。

在一些实施例中,该方法还可以包括:将每个指导者模块的输出映射到包括预定长度的指导者向量;以及将每个学习者模块的输出映射到包括预定长度的学习者向量。

在一些实施例中,学习者向量和指导者向量之间的距离包括以下中的至少一个:交叉熵、互信息、kl距离、欧式距离、或编辑距离。

在一些实施例中,在当前迭代操作期间,确定学习者模型是否收敛还可以包括:确定当前迭代操作中当前学习者模型的参数与上次迭代操作中的学习者模型的参数之间的差值;确定差值是否小于差值阈值;以及响应于确定差值小于差值阈值,确定学习者模型是收敛的。

在一些实施例中,该方法还可以包括:训练至少两个学习者模型以获得至少两个训练好的学习者模型,其中,至少两个学习者模型中的每个学习者模型不同于彼此;以及测试所述至少两个训练好的学习者模型,以获得最终训练好的学习者模型。

在一些实施例中,至少两个训练好的学习者模型的测试还可包括:对于所述至少两个训练好的学习者模型中的每一个,使用测试数据集作为训练好的学习者模型和训练好的指导者模型的输入,确定训练好的学习者模型和训练好的指导者模型之间的输出差;以及基于至少两个输出差,从至少两个训练好的学习者模型中确定一个最终训练好的学习者模型。

在一些实施例中,基于对应的学习信号和梯度下降算法来更新每个学习者模块中的参数。

根据本申请的又一方面,一种非暂时性计算机可读介质,包括操作系统和与操作系统兼容的至少一组指令,用于使用指导者模型训练学习者模型,其中,当由一个或多个电子设备的至少一个处理器执行时,所述至少一组指令指示所述至少一个处理器:获得至少包括n个指导者模块的训练好的指导者模型,其中n是大于2的整数;获得学习者模型,其至少包括分别对应于训练好的指导者模型的n个指导者模块的n个学习者模块;通过进行迭代操作,将学习者模型训练成训练好的学习者模型:所述一次迭代才做包括别输入样本数据集到训练好的指导者模型和学习者模型中;对于n个学习者模块中的每一个:基于对应于学习者模块的指导者模块的输出确定指导者向量,基于学习者模块的输出确定学习者向量,其中,指导者向量的长度等于学习者向量的长度,确定指导者向量和学习者向量之间的距离以获取学习信号,并通过将距离作为学习信号输入学习者模块中,来更新学习者模块中的参数;确定学习者模型是否收敛;以及响应于确定学习者模型是收敛,停止迭代操作,以将学习者模型指定为训练好的学习者模型。

其他特征将在以下部分描述中进行阐述,并且在了解以下内容及附图之后,部分特征对于本领域的普通技术人员来讲是显而易见地,或可以通过实例的生产及操作来了解。本申请的特征可以通过实践或使用以下实例中详细讨论的方法、手段及组合的各个方面来达成。

附图说明

本申请将结合示例性实施例进一步进行描述。这些示例性的实施例将结合参考图示进行详细描述。这些实施例并非限制性的,在这些实施例中,相同的组件符号表示相同的结构,其中:

图1是根据本申请的一些实施例的示例性人工智能(ai)系统的示意图;

图2是根据本申请的一些实施例的计算设备的示例性硬件和/或软件组件的示意图;

图3是根据本申请的一些实施例的移动设备的示例性硬件和/或软件组件的示意图;

图4是根据本申请的一些实施例的示例性处理引擎的框图;

图5是根据本申请的一些实施例的用于训练学习者模型的示例性过程的流程图;

图6是根据本申请的一些实施例的用于进行迭代操作的示例性过程的流程图;

图7是根据本申请的一些实施例的用于训练学习者模型的示例性过程的示意图;

图8是根据本申请的一些实施例的用于将每个指导者模块的输出映射到指导者向量的示例性过程的示意图;

图9是根据本申请的一些实施例的用于将每个学习者模块的输出映射到学习者向量的示例性过程的示意图;

图10是根据本申请的一些实施例的用于确定学习者模型是否收敛的示例性过程的流程图;以及

图11是根据本申请的一些实施例的用于确定最终训练好的学习者模型的示例性过程的流程图。

具体实施方式

以下描述是为了使本领域的普通技术人员能够实施和利用本申请,并在特定应用及其要求的上下文中提供。对于本领域的普通技术人员来讲,对本申请披露的实施例进行的各种修改是显而易见的,并且本申请中定义的通则在不背离本申请的精神及范围的情况下,可以适用于其他实施例及应用。因此,本申请不限于所示的实施例,而是符合与申请专利范围一致的最广泛范围。

本申请中所使用的术语仅用于描述特定示例性实施例,并不限制本申请的范围。如本申请使用的单数形式“一”、“一个”及“该”可以同样包括复数形式,除非上下文明确提示例外情形。还应当理解,如在本申请中所示,术语“包括”、“包含”仅提示存在所述特征、整体、步骤、操作、元件和/或部件,但并不排除存在或添加一个或多个其他特征、整体、步骤、操作、元件、部件和/或其组合的情况。

根据以下对附图的描述,本发明所述的这些和其他特征,特性,以及相关结构原件的操作方法和功能、部件和经济性的组合更加显而易见,所有这些构成了本规范的一部分。然而,应当理解,附图仅仅是为了说明和描述的目的,并不旨在限制本申请的范围。应当理解的是附图并不是按比例的。

本申请中使用了流程图用来说明根据本申请的实施例的系统所执行的操作。应当理解的是,前面或下面操作不一定按照顺序来精确地执行。相反,可以按照倒序或同时处理各种步骤。同时,也可以将一个或多个其他操作添加到这些流程图中,或者从这些流程图中移除某一步或数步操作。一个或多个操作也可以从流程图中删除。

本申请的一个方面涉及使用指导者模型训练学习者模型的人工智能系统和方法。为此,人工智能系统和方法可以使用训练好的结构上较为复杂的指导者模型来训练结构上较为简单的学习者模型,所述学习者模型至少包括一定数目的学习者模块,该一定数量的学习者模块分别对应于训练好的指导者模型中相同数目的指导者模块。每个学习者模块或每个指导者模块可包括至少两个层。然后,该系统和方法可以进行迭代操作,即通过将相同的样本数据集分别输入到结构上较为复杂的训练好的指导者模块和结构上较为简单的学习者模块中,使用每个指导者模块的输出来训练相应学习者模块的相应输出。随着学习者模块中的参数被重复更新,每个指导者模块和对应的学习者模块之间的差会越来越小。最后,在至少两个迭代操作之后,整个结构上较为简单的学习者模型或许更有可能模仿结构上较为复杂的指导者模型的行为,直到学习者模块收敛为止。这样,系统和方法可以使用训练好的结构上较为复杂的指导者模型中的隐藏层信息来训练结构上较为简单的学习者模型中的隐藏层,以使学习者模型充分学习训练好的结构上较为复杂的指导者模型。

图1是根据本申请的一些实施例的示例性人工智能(ai)系统100的示意图。例如,ai系统100可以是线上到线下服务平台,用于提供诸如出租车、司机服务、运送车辆、拼车、总线服务、司机招聘、班车服务、在线导航服务等服务。ai系统100可以包括服务器110、网络120、电子设备130和存储器140。服务器110可包含一处理引擎112。

服务器110可以被配置为处理训练学习者模型相关的信息和/或数据。例如,服务器110可以使用训练好的指导者模型的信息训练学习者模型。又例如,服务器110可以训练至少两个学习者模型,并测试至少两个学习者模型以获得最终训练好的学习者模型。在一些实施例中,服务器110可以是单一服务器或服务器组。该服务器组可以是集中式或分布式的(例如,服务器110可以是分布式系统)。在一些实施例中,服务器110可以是本地的或远程的。例如,服务器110可以经由网络120访问存储在电子设备130和/或存储器140中的信息和/或数据。又如此,服务器110可以连接电子设备130和/或存储器140以访问存储的信息和/或数据。在一些实施例中,服务器110可以在云平台上实施。仅作为示例,所述云平台可以包括私有云、公共云、混合云、社区云、分布云、内部云、多层云等或上述举例的任意组合。在一些实施例中,服务器110可以在图2中描述的包含了一个或者多个组件的计算设备200上执行。

在一些实施例中,服务器110可以包括一处理引擎112。处理引擎112可以处理与训练学习者模型有关的信息和/或数据,以执行本申请中描述的一个或多个的功能。例如,处理引擎112可以使用训练好的指导者模型的信息训练学习者模型。又例如,处理引擎112可以训练至少两个学习者模型,并测试至少两个学习者模型以获得最终训练好的学习者模型。在一些实施例中,所述处理引擎112可包括一个或者多个处理引擎(例如,单芯片处理引擎或多芯片处理引擎)。仅仅作为示例,处理引擎112可以包括一个或多个硬件处理器,例如中央处理单元(cpu)、特定应用集成电路(asic)、特定应用指令集处理器(asip)、图像处理单元(gpu)、物理运算处理单元(ppu)、数字信号处理器(dsp)、现场可程序门阵列(fpga)、可程序逻辑装置(pld)、控制器、微控制器单元、精简指令集计算机(risc)、微处理器等或上述举例的任意组合。

网络120可以促进信息和/或数据的交换。在一些实施例中,ai系统100的一个或多个组件(例如,服务器110、电子设备130和存储器140)可以通过网络120将信息和/或数据发送到ai系统100中的其他组件。例如,服务器110可以经由网络120加载存储在存储器140中的训练好的指导者模型。又例如,在服务器110训练学习者模型之后,服务器110可以经由网络120将训练好的学习者模型发送到电子设备130。在一些实施例中,网络120可以为任意形式的有线或无线网络,或其任意组合。仅仅举个例子,网络130可以包括缆线网络、有线网络、光纤网络、远程通信网络、内部网络、互联网、局域网络(lan)、广域网路(wan)、无线局域网络(wlan)、城域网(man)、广域网路(wan)、公共开关电话网络(pstn)、蓝牙网络、zigbee网络、近场通讯(nfc)网络等或上述举例的任意组合。在一些实施例中,网络120可以包括一个或多个网络接入点。例如,网络120可以包括有线或无线网络接入点,例如基站和/或互联网交换点120-1、120-2、......、ai系统100的一个或多个组件可以通过它们连接到网络120,以互相交换数据和/或信息。

电子设备130可以是具有有限计算能力的任何电子设备。例如,电子设备130可以由线上线下服务的用户使用。在一些实施例中,电子设备130可以是移动设备130-1、平板电脑130-2、膝上型计算机130-3、台式计算机130-4等,或其任何组合。在一些实施例中,行动装置102-1可以包括可穿戴装置、智能行动装置、虚拟现实装置、增强实境装置等或上述举例的任意组合。在一些实施例中,该可穿戴设备可包括智能手镯、智能鞋袜、智能眼镜、智能头盔、智能手表、智能穿着、智能背包、智能配件等或其任意组合。在一些实施例中,智能移动设备可以包括智能电话、个人数字助理(pda)、游戏设备、导航设备、pos机等,或其任意组合。在一些实施例中,该虚拟现实装置和/或增强实境装置可包括一虚拟现实头盔、虚拟现实眼镜、虚拟现实眼罩、增强实境头盔、增强实境眼镜、增强实境眼罩等或其任意组合。例如,虚拟现实设备和/或增强现实设备可以是googleglasstm,riftcontm,fragmentstm,gearvrtm等。在一些实施例中,电子设备130还可包括至少一个网络端口。

至少一个网络端口可以被配置为经由网络120向ai系统100中的一个或多个组件(例如,服务器110、存储器140)发送信息和/或从其接收信息。在一些实施例中,电子设备130可以在具有图2中所示的一个或多个组件的计算设备200上实现,或者在本申请中具有图3中所示的一个或多个组件的移动设备300上实现。

储存器140可以储存数据及/或指令。例如,存储器140可以存储由服务器110训练的训练好的指导者模型。又例如,存储器140可以存储服务器110可以执行或用于执行本申请中描述的示例性方法的数据和/或指令。在一些实施例中,储存器140可包括大容量储存器、可移动储存器、易失性读写内存、只读存储器(rom)等或其任意组合。示例性的大容量储存器可以包括磁盘、光盘、固态磁盘等。示例性可移动存储器可以包括闪存驱动器、软盘、光盘、存储卡、压缩盘、磁带等。示例性的挥发性只读存储器可以包括随机存取内存(ram)。示例性的ram可包括动态ram(dram)、双倍速率同步动态ram(ddrsdram)、静态ram(sram)、闸流体ram(t-ram)和零电容ram(z-ram)等。示例性的rom可以包括掩模rom(mrom)、可编程rom(prom)、可擦除可编程rom(perom)、电子可擦除可编程rom(eeprom)、光盘rom(cd-rom)和数字通用磁盘rom等。在一些实施例中,存储器140可以在云平台上实现。仅作为示例,所述云平台可以包括私有云,公共云,混合云,社区云,分布云,内部云,多层云等或上述举例的任意组合。

在一些实施例中,存储器140可以包括至少一个网络端口,以与ai系统100中的其他设备通信。例如,存储器140可以连接到网络120,以经由至少一个网络端口与ai系统100的一个或多个组件(例如,服务器110、电子设备130)通信。ai系统100中的一个或多个组件可以经由网络120访问存储在存储器140中的数据或指令。在一些实施例中,存储器140可以直接连接到ai系统100(例如,服务器110、电子设备130)中的一个或多个组件或与之通信。在一些实施例中,储存器140可以是服务器110的一部分。

在一些实施例中,ai系统100的一个或多个组件(例如,服务器110、电子设备130)可以访问存储器140。例如,ai系统100的一个或多个组件可以加载或运行存储在存储器140中的训练好的指导者模型以训练学习者模型。在一些实施例中,存储器140可以在训练学习者模型之后存储训练好的学习者模型。

在一些实施例中,ai系统100的一个或多个组件(例如,服务器110、电子设备130和存储器140)可以通过有线和/或无线通信以电子和/或电磁信号的形式彼此通信。在一些实施例中,ai系统100还可包括至少一个信息交换端口。至少一个交换端口可以被配置用于在ai系统100中的任何电子设备之间,接收和/或发送与训练好的指导者模型和/或学习者模型有关的信息(例如,以电子信号和/或电磁信号的形式)。在一些实施例中,至少一个信息交换端口可以是天线、网络接口、网络端口等的一个或多个,或其任何组合。例如,至少一个信息交换端口可以是连接到服务器110以向其发送信息和/或接收从其发送的信息的网络端口。

图2是示出计算设备200的示例性硬件和软件组件的示意图,在计算设备200上可以根据本申请的一些实施例实现服务器110和/或电子设备130。例如,处理引擎112可以在计算装置200上实施并执行本申请所披露的处理引擎112的功能。

计算设备200可用于实现本申请的ai系统100。计算设备200可用于实现ai系统100的任何组件,其执行本申请中公开的一个或多个功能。例如,处理引擎112可以在计算设备200上通过其硬件、软件程序、固件或其组合实现。尽管仅示出了一个这样的计算机,但是为了方便,与本申请所述的线上线下服务有关的计算机功能可以在多个类似平台上以分布式方式实现,以分配处理负荷。

计算设备200可以包括例如与网络相连接并促进数据通讯的通讯(com)端口250。com端口250可以是任何网络端口或信息交换端口,以便于数据通信。计算设备200还可以包括处理器(例如,处理器220),其形式为一个或多个处理器(例如,逻辑电路),用于执行程序指令。例如,处理器可以包括接口电路和其中的处理电路。接口电路可以被配置为从总线210接收电子信号,其中电子信号编码结构化数据和/或指令以供处理电路处理。处理电路可以进行逻辑计算,然后确定结论、结果和/或编码为电子信号的指令。处理电路还可以生成包括结论或结果的电子信号(例如,训练好的学习者模型)和触发代码。在一些实施例中,触发代码可以是可由ai系统100中的电子设备(例如,电子设备130)的操作系统(或其中安装的应用程序)识别的格式。例如,触发代码可以是指令、代码、标记、符号等、或其任何组合,其可以激活移动电话的某些功能和/或操作,或者让移动电话执行预定的程序。在一些实施例中,触发代码可以被配置为使电子设备的操作系统(或应用程序)在该电子设备的接口上生成结论或结果(例如,预测结果)的呈现。然后,接口电路可以经由总线210从处理电路发出电子信号。

示例性计算设备可以包括内部通信总线210,程序存储和不同形式的数据存储,包括例如磁盘270、只读存储器(rom)230或随机存取存储器(ram)240,用于由计算设备处理和/或发送各种数据文件。示例性计算平台也可以包存储存于rom230、ram240及/或其他形式的非暂时性储存媒体中的能够被处理器220执行的程序指令。本申请的方法和/或流程可以以程序指令的方式实现。示例性计算设备还可以包括存储在rom230,ram240和/或由处理器220执行的其他类型的非暂时性存储介质中的操作系统。程序指令可以与用于提供线上线下服务的操作系统兼容。计算设备200还包括i/o组件260,其支持计算机和其他组件之间的输入/输出。计算设备200也可以通过网络通信接收程序设计和数据。

仅用于说明,图2中仅示出了一个处理器。还可以有多个处理器;因此,由本申请中描述的一个处理器执行的操作和/或方法步骤也可以由多个处理器联合或单独执行。例如,如果在本申请中,计算装置200的处理器执行步骤a和步骤b,应当理解的是,步骤a和步骤b也可以由计算装置200的两个不同的处理器共同地或独立地执行(例如,第一处理器执行步骤a,第二处理器执行步骤b,或者第一和第二处理器共同地执行步骤a和步骤b)。

图3是根据本申请的一些实施例可以在其上实现电子设备130的示例性移动设备300的示例性硬件和/或软件组件的示意图。

如图3所示,移动设备300可以包括通信平台310、显示器320、图形处理单元(gpu)330、中央处理单元(cpu)340、i/o350、存储器360和存储390。cpu可以包括接口电路和类似于处理器220的处理电路。在一些实施例中,任何其他合适的组件,包括但不限于系统总线或控制器(未示),亦可包括于移动装置300内。在一些实施例中,移动操作系统370(例如,iostm,androidtm,windowsphonetm等)和一个或多个应用程序380可以从存储器390加载到存储器360中,以便由cpu340执行。应用程序380可以包括浏览器或任何其他合适的移动应用程序,用于接收和呈现与学习者模型有关的信息。用户与信息流的交互可以经由i/o设备350实现,并且经由网络120提供给处理引擎112和/或系统100的其他组件。

为了实现本申请中描述的各种模块、单元及其功能,计算机硬件平台可以用作一个或多个本申请所述元件的硬件平台(例如,ai系统100、和/或关于图1-10描述的ai系统100的其他组件)。这种计算机的硬件元件、操作系统和编程语言本质上是常规的,并且假设本领域技术人员足够熟悉这些技术以适应这些技术,以在如本申请所述的训练学习者模型。一台包含用户界面元素的计算机能够被用作个人计算机(pc)或其他类型的工作站或终端设备,被适当程序化后也可以作为服务器使用。可知,本领域技术人员应熟悉该计算机装置的结构、程序设计和一般操作,因此,图对其应是不解自明的。

本领域普通技术人员将理解,当ai系统100的元件执行时,该元件可以通过电信号和/或电磁信号执行。例如,当服务器110处理任务(诸如使用训练好的指导者模型训练学习者模型)时,服务器110可以在其处理器中操作逻辑电路以处理这样的任务。当服务器110完成学习者模型的训练时,服务器110的处理器可以生成编码该训练好的学习者模型的电信号。然后,服务器110的处理器可以将电信号发送到与服务器110相关联的目标系统的至少一个信息交换端口。服务器110经由有线网络与目标系统通信,至少一个信息交换端口可以物理连接到电缆,电缆还可以将电信号发送到电子设备130的输入端口(例如,信息交换端口)。如果服务器110经由无线网络与目标系统通信,则目标系统的至少一个信息交换端口可以是一个或多个以上天线,其可以将电信号转换为电磁信号。在电子设备(例如电子设备130)和/或服务器110内,当其处理器处理指令、发出指令和/或执行动作时,执行指令和/或动作通过电信号。例如,当处理器从存储介质(例如,存储器140)检索或保存数据时,它可以将电信号发送到存储介质的读/写设备,其可以读取或写入存储介质中的结构化数据。结构化数据可以电信号的形式经由电子装置的总线传输至处理器。这里,电信号可以是一个电信号、一系列电信号和/或至少两个分立的电信号。

图4是根据本申请的一些实施例的示例性处理引擎112的框图。

如图4所示,处理引擎112可包括模型获取模块410、模型训练模块420和模型测试模块430。

模型获取模块410可以被配置以获得模型。例如,模型获取模块410可以被配置以获得训练好的指导者模型。又例如,模型获取模块410可以被配置以获得学习者模型。

模型训练模块420可以被配置用于将学习者模型训练成训练好的学习者模型。例如,模型训练模块420可以进行至少两个迭代操作以训练学习者模型。在每次迭代操作期间,模型训练模块420可以将样本数据集输入到训练好的指导者模型和学习者模型中。对于n个学习者模块中的每一个,模型训练模块420可以基于对应于学习者模块的指导者模块的输出确定指导者向量,并且基于该学习者模块的输出确定学习者向量。指导者向量的长度等于学习者向量的长度。模型训练模块420可以确定指导者向量和学习者向量之间的距离,并通过将距离作为学习信号输入学习者模块,来更新学习者模块中的参数。又例如,模型训练模块420可以确定学习者模型是否是收敛的,以及停止迭代操作,以将学习者模型指定为训练好的学习者模型。

模型测试模块430可以被配置为测试至少两个训练好的学习者模型以获得最终训练好的学习者模型。例如,对于至少两个训练好的学习者模型的每一个,模型测试模块430可以使用测试数据集作为训练好的学习者模型和训练好的指导者模型的输入,来确定训练好的学习者模型和训练好的指导者模型之间的输出差。模型测试模块430可以基于至少两个输出差,从至少两个训练好的学习者模型确定最终训练好的学习者模型。

处理引擎112中的模块可以通过有线连接或无线连接以互相连接或互相通讯。有线连接可以包括金属线缆、光缆、混合电缆等或其任意组合。无线连接可以包括局域网络(lan)、广域网路(wan)、蓝牙、zigbee网络、近场通讯(nfc)等或上述举例的任意组合。两个或多个模块可以合并成一个模块,以及任意一个模块可以被拆分成两个或多个单元。例如,模型训练模块420和模型测试模块430可以合并为一个模块,既训练又测试模型。又例如,处理引擎112可包括用于存储训练好的指导者模型和/或训练好的学习者模型的数据和/或信息的存储模块(未示出)。

图5是根据本申请的一些实施例的用于训练学习者模型的示例性过程500的流程图。过程500可以由ai系统100执行。例如,过程500可以实现为存储在存储rom230或ram240中的一组指令(例如,应用程序)。处理器220可以执行一组指令,并且当执行指令时,处理器220可以被配置为执行处理500。以下呈现的所示过程的操作旨在是说明性的。在一些实施例中,过程500可以通过未描述的一个或多个以上附加操作和/或没有所讨论的操作的一个或多个来完成。另外,如图5中所示和下面描述的过程的操作的顺序不旨在是限制性的。

在510中,处理引擎112(例如,处理器220、模型获取模块410)可以获得训练好的指导者模型。在一些实施例中,训练好的指导者模型可以至少包括n个指导者模块,其中n是大于2的整数。

在一些实施例中,训练好的指导者模型可以是训练好的数学模型。与学习者模型相比,训练好的指导者模型可具有更复杂的结构,这将在本申请中稍后介绍。例如,训练好的指导者模型可以是具有大量层、大量节点、大量参数等的神经网络模型,或其任何组合。训练好的指导者模型可以被很好地训练以预测准确的结果。例如,训练好的指导者模型可以由来自大数据数据库的大量样本数据在具有强计算能力的计算平台上训练而得。训练好的指导者模型可以被训练和测试直到训练好的指导者模型满足预定条件(例如,训练好的指导者模型是收敛的)。

在一些实施例中,处理引擎112可以经由网络120从ai系统100中的存储设备(例如,存储器140)和/或外部数据源(未示出)获得训练好的指导者模型。例如,训练好的指导者模型可以被预先训练(由处理引擎112或任何其他平台或设备)并存储在ai系统100中的存储设备中。处理引擎112可以访问存储设备并检索训练好的指导者模型。例如,处理引擎112可以加载或运行训练好的指导者模型以供进一步使用。

在一些实施例中,训练好的指导者模型可包括输入指导者层、输出指导者层、以及输入指导者层和输出指导者层之间的一个或多个隐藏指导者层(也称为指导者层)。如本申请所使用的,模型的层(例如,训练好的指导者模型的指导者层,学习者模型的学习者层)可以指用于处理输入数据的方法或功能。不同的层可以在其输入上执行不同类型的处理。每个连续层(例如,指导者层、学习者层)可以使用该连续层的前一层的输出数据作为输入数据。

在一些实施例中,训练好的指导者模型可包括至少两个指导者模块。至少两个指导者模块中的每一个可包括一个或多个连续的指导层。每个指导者模块中的指导者层的数量可以相同或不同。在一些实施例中,每个指导者模块可包括具有类似结构的至少两个连续指导层。在一些实施例中,每个指导层可以包括一个或多个节点。每个指导者层中的节点数可以相同或不同。在一些实施例中,处理引擎112可以从至少两个指导者模块中选择n个指导者模块以用于训练学习者模型。n是大于2的整数。在一些实施例中,n可以是ai系统100中的默认设置,或者可以在不同情况下调整。例如,n可以是5、10、20、100等。

在520中,处理引擎112(例如,处理器220、模型获取模块410)可以获得学习者模型。在一些实施例中,学习者模型可以至少包括分别对应于训练好的指导者模型的n个指导者模块的n个学习者模块。

在一些实施例中,与训练好的指导者模型相比,学习者模型可以是结构上更简单的数学模型。学习者模型可以具有比训练好的指导者模型更简单的结构。例如,学习者模型中的学习者层的总数可以小于训练好的指导者模型中的指导者层的总数。又例如,每个学习者层中的节点总数可以小于每个指导者层中的节点总数。在一些实施例中,学习者模型可以是初始数学模型。例如,处理引擎112可以通过在学习者模型中预设多个节点,多个层和/或参数来初始化学习者模型。学习者模型中的节点数,层数和/或参数可以在不同情况下调整。

在一些实施例中,处理引擎112可以经由网络120从ai系统100中的存储设备(例如,存储器140)和/或外部数据源(未示出)获得学习者模型。例如,学习者模型可以(通过处理引擎112或任何其他设备平台)被初始化并被存储在ai系统100中的存储设备中。处理引擎112可以访问存储设备并检索学习者模型。例如,处理引擎112可以加载或运行学习者模型以供进一步使用。

在一些实施例中,学习者模型可以包括输入学习者层、输出学习者层和一个或多个输入学习者层与输出学习者层之间的隐藏学习者层(也称为学习者层)。在一些实施例中,学习者模型可包括至少两个学习者模块。学习者模型中的学习者模块的总数可以与训练好的指导者模型中的指导者模块的总数相同或不同。例如,学习者模型中的学习者模块的总数可以小于训练好的指导者模型中的指导者模块的总数。至少两个学习者模块中的每一个可以包括一个或多个连续的学习者层。每个学习者模块中的学习者层的数量可以相同或不同。在一些实施例中,学习者模块可包括具有类似结构的至少两个连续学习者层。在一些实施例中,每个学习者层可包括一个或多个节点。每个学习者层中的节点数可以相同或不同。

在一些实施例中,处理引擎112可以从至少两个学习者模块中选择n个学习者模块以用于训练学习者模型。在训练学习者模型的过程中,n个学习者模块中的每一个可以按照其所在n个学习者模块中的顺序对应于训练好的指导者模型中的n个指导者模块中的每一个。例如,训练好的指导者模型可以包括十个指导者模块(例如,从训练好的指导者模型的输入端到输出端的第一指导者模块、第二指导者模块、......、以及第十指导者模块),并且学习者模型可以包括五个学习者模块(例如,从学习者模型的输入端到输出端的第一学习者模块,第二学习者模块,...和第五学习者模块)。处理引擎112可以随机选择五个指导者模块(即,n=5),例如,第一指导者模块、第三指导者模块、第五指导者模块、第九指导者模块和第十指导者模块,分别对应于第一学习者模块、第二学习者模块、第四学习者模块、第四学习者模块和第五学习者模块。

在530中,处理引擎112(例如,处理器220、模型训练模块420)可以通过进行至少两个迭代操作将学习者模型训练成训练好的学习者模型。

在一些实施例中,在每次迭代操作期间,处理引擎112可以更新学习者模型中的参数,以使学习者模型模拟结构上较为复杂的指导者模型的行为。例如,在每次迭代操作期间,处理引擎112可以分别将相同的样本数据集输入到训练好的指导者模型和学习者模型中。处理引擎112可以分别获得每个指导者模块和相应的学习者模块的输出。处理引擎112可以使用每个指导者模块和相应的学习者模块的两个输出的差来指示学习者模块学习相应的指导者模块的性能。处理引擎112可以通过调整每个学习者模块中的参数来指导每个学习者模块。在一些实施例中,用于进行迭代操作的过程和/或方法可以在本申请的其他地方找到(例如,图6及其描述)。

在540中,处理引擎112(例如,处理器220、模型训练模块420)可以确定学习者模型是否是收敛的。

在一些实施例中,处理引擎112可以在每次迭代操作之后确定学习者模型是否收敛。例如,处理引擎112可基于当前迭代操作中当前学习者模型的参数与上次迭代操作中最后一个学习者模型的参数之间的差值,确定学习者模型(即,在每个迭代操作后的中间学习者模型)是否收敛。差值可以是当前学习者模型中的两个对应参数与前一个学习者模型之间差值的平均值。在一些实施例中,处理引擎112可以确定差值是否小于差值阈值。响应于确定差值小于差值阈值,处理引擎112可以确定学习者模型是收敛的。响应于确定差值不小于差值阈值,处理引擎112可以确定学习者模型不收敛。在一些实施方案中,用于确定差值的过程和/或方法可以在本申请的其他地方找到(例如,图10及其描述)。

响应于确定学习者模型不收敛,处理引擎112可以执行过程500返回步骤530,以通过进行下一次迭代操作来进一步训练学习者模型。处理引擎112可以继续下一次迭代操作,直到处理引擎112确定学习者模型是收敛的。

在550中,处理引擎112(例如,处理器220、模型训练模块420)可以停止迭代操作,以将学习者模型指定为训练好的学习者模型。

在一些实施例中,当学习者模型在迭代操作中收敛时,处理引擎112可以确定在停止的迭代操作处获得的对应学习者模型被很好地训练。迭代操作之后,学习者模型的表现可以类似于训练好的指导者模型。处理引擎112可以将学习者模型指定为训练好的学习者模型。训练好的学习者模型可以充分学习训练好的指导者模型,并且可以模拟结构上较为复杂的指导者模型的行为。例如,训练好的学习者模型可以模拟结构上较为复杂的指导者模型的行为,以在解决问题期间进行预测。例如,从训练好的学习者模型生成的预测结果可以与解决相同问题时从训练好的指导者模型生成的预测结果相同或相似。

应该注意的是,上述仅出于说明性目的而提供,并不旨在限制本申请的范围。对于本领域的普通技术人员来说,根据本公开的教导可以做出多种变化和修改。例如,操作510和操作520可以集成到单个步骤中。又例如,可以在操作510之前执行操作520。然而,变形和修改不会背离本申请的范围。

图6是根据本申请的一些实施例的用于进行迭代操作的示例性过程600的流程图。过程600可以由ai系统100执行。例如,过程600可以实现为存储在存储rom230或ram240中的一组指令(例如,应用程序)。处理器220可以执行该组指令,并且当执行指令时,可以将其配置为执行过程600。以下呈现的所示过程的操作旨在是说明性的。在一些实施例中,过程600可以通过未描述的一个或多个以上附加操作和/或没有一个或多个所讨论的操作来完成。另外,如图6中所示和下面描述的过程的操作的顺序不旨在是限制性的。

在610中,处理引擎112(例如,处理器220、模型训练模块420)可以将样本数据集输入到训练好的指导者模型和学习者模型中。

图7是根据本申请的一些实施例的用于训练学习者模型的示例性过程的示意图。如图7所示,在每次迭代操作期间,处理引擎112可以将相同的样本数据集输入到训练好的指导者模型和学习者模型(虚线框)中。在一些实施例中,不同迭代操作的输入样本数据集可以相同或不同。样本数据集的格式可以满足训练好的指导者模型和学习者模型的输入格式。例如,样本数据集可以是字符串、数字、图像、音频、视频等的格式,或其任何组合。在一些实施例中,处理引擎112可以使用原始数据作为样本数据集。例如,处理引擎112可以处理原始数据(例如,对原始数据执行特征提取),并使用处理的数据(例如,特征)输入到训练好的指导者模型和学习者模型。如图7所示,训练好的指导者模型可以包括至少三个指导者模块(实线框中)。学习者模型可以包括至少三个(至少三个只作为示例,并不限定本申请)学习者模块(实线框中)。从两个模型的输入层到输出层,三个指导者模块中的每一个可以依次对应于三个学习者模块中的每一个。每个指导者模块可包括至少一个指导者层(每个指导者层以空心矩形示出)。每个学习者模块可以包括至少一个学习者层(每个学习者层以带斜纹的矩形示出)。

过程600中的操作620-650可以是针对n个学习者模块中的每一个进行描述。在620中,对于n个学习者模块中的每一个,处理引擎112(例如,处理器220、模型训练模块420)可以基于对应于学习者模块的指导者模块的输出来确定指导者向量。

如图7所示,在处理引擎112将样本数据集输入训练好的指导者模型和学习者模型之后,训练好的指导者模型中的每个指导者层和学习者模型中的每个学习者层可以从输入层到相应训练好的指导者模型和学习者模型的输出层依次输出一个向量。前一层输出的向量可以是下一层的输入。在一些实施例中,处理引擎112可以确定对应于n(n可以是如图7中所示的3)个指导者模块中的每一个的输出的指导者向量(在图7中显示为空心菱形)。如本申请所使用的,指导者模块的输出可以是指导者模块的最后一个指导者层的输出。在一些实施例中,处理引擎112可基于每个指导者模块的输出确定指导者向量(显示为空心菱形)。例如,处理引擎112可以根据全连接的方法将指导者模块的输出映射到包括预定长度的指导者向量。预定长度可以是任何合适的值。预定长度可以是存储设备(例如,存储器140、存储器390)中存储的默认参数。附加地或替代地,预定长度可以手动设置或者根据不同情况由ai系统100的一个或多个组件确定。例如,指导者向量的预定长度可以小于、等于或大于指导者模块的输出的长度。图8是根据本申请的一些实施例的用于将每个指导者模块的输出映射到指导者向量的示例性过程的示意图。

如图8所示,指导者模块的输出(指导者模块的最后一个指导者层的输出)可以具有四个节点的长度,例如,节点1(node1)、节点2(node2)、节点3(node3)和节点4(node4)。指导者向量可以具有两个节点的长度,例如,节点a和节点b。处理引擎112可以将包括四个节点的指导者模块的输出映射到包括两个节点的指导者向量。在一些实施例中,处理引擎112可以基于节点1、节点2、节点3、节点4以及节点1、节点2、节点3和节点4的权重来确定节点a和节点b。例如,可以根据等式(1)确定nodea:

nodea=node1*w1+node2*w2+node3*w3+node4*w4,(1)

其中w1指node1的权值,w2指node2的权值,w3指node3的权值,w4指node4的权值。类似地,可以根据等式(2)确定nodeb:

nodeb=node1*w5+node2*w6+node3*w7+node4*w8,(2)

其中w5表示node1的权值,w6表示node2的权值,w7表示node3的权值,w8表示node4的权值。在一些实施例中,每个节点在确定指导者向量时的权重可以由ai系统100预设或由ai系统100根据不同情况确定。

在630中,处理引擎112(例如,处理器220、模型训练模块420)可以基于学习者模块的输出确定学习者向量,其中指导者向量的长度等于学习者向量的长度。

如图7所示,处理引擎112可以确定对应于n个学习者模块中的每一个的输出的学习者向量(显示为带斜纹的菱形)。如本申请所使用的,学习者模块的输出可以是学习者模块的最后一个学习者层的输出。在一些实施例中,处理引擎112可以基于学习者模块的输出来确定学习者向量。例如,处理引擎112可以根据全连接的方法将学习者模块的输出映射到包括预定长度的学习者向量。指导者向量的长度可以等于学习者向量的长度。学习者向量的预定长度可以小于、等于或大于学习者模块的输出的长度。

图9是根据本申请的一些实施例用于将每个学习者模块的输出映射到学习者向量的示例性过程的示意图。如图9所示,学习者模块的输出(学习者模块的最后学习者层的输出)可以具有三个节点的长度,例如,节点1'(node1')、节点2'(node2')、和节点3'(node3')。学习者向量可以具有两个节点的长度(与图8中所示的指导者向量的长度相同),例如,节点a和节点b。处理引擎112可以将包括三个节点的学习者模块的输出映射到包括两个节点的学习者向量。在一些实施例中,处理引擎112可以基于节点1'、节点2'、节点3'以及节点1'、节点2'和节点3'的权重来确定节点a和节点b。例如,可以根据等式(3)确定节点a:

nodea=node1′*w′1+node2′*w′2+node3′*w′3,(3)

其中w′1表示node1'的权值,w′2表示node2'的权值,w′3表示node3'的权值。类似地,可以根据等式(4)确定节点b:

nodeb=node1′*w′4+node2′*wn5+node3′*wn6,(4)

其中w′4指node1'的权值,w′5指node2'的权值,w′6指node3'的权值。在一些实施例中,每个节点在确定学习者向量时的权重可以由ai系统100预设或由ai系统100根据不同情况确定。

在一些实施例中,处理引擎112可以预先确定指导者向量和学习者向量的长度。例如,处理引擎112可以预设指导者向量和学习者向量的长度等于指导者模块的输出长度。例如,指导者模块的输出长度为40个节点,学习者模块的输出长度为20个节点。处理引擎112可以根据全连接的方法将学习者向量的20个节点映射到包括40个节点的学习者向量中。处理引擎112可以使用40个节点的指导者模块的输出作为指导者向量。或者,指导者向量和学习者向量的长度可以是任何其他相同的值(例如,等于学习者模块的输出的长度,大于或小于指导者模块或学习者模块的输出的长度)。

在640中,处理引擎112(例如,处理器220、模型训练模块420)可以确定指导者向量和学习者向量之间的距离。

如本申请所使用的,指导者向量和学习者向量之间的距离可以表示指导者向量和学习者向量之间的差,其可以用于评估相应的指导者模块与相应的学习者模块之间的行为相似性。指导者向量和学习者向量之间的较小距离对应于指导者模块和学习者模块之间的较高行为相似性。在一些实施例中,学习者向量和指导者向量之间的距离可包括交叉熵、互信息、kl距离、欧式距离、编辑距离等。

如图7所示,对于每个指导者模块和相应的学习者模块,处理引擎112可以确定对应于指导者模块的输出的指导者向量与对应于学习者模块的输出的学习者向量之间的距离(显示为圆形空心矩形)。

在一些实施例中,处理引擎112可以进一步基于训练好的指导者模型的输出确定输出指导者向量,并且基于学习者模型的输出确定输出学习者向量。训练好的指导者模型(或学习者模型)的输出可以与训练好的指导者模型(或者学习者模型)的最后一个指导者模块(或最后一个学习者模块)的输出不同。例如,训练好的指导者模型的最后一个指导者模块的输出可以包括对应于不同类别的概率的结果,并且训练好的指导者模型的输出可以是将最后一个指导者模块的输出输入到分类器后的分类结果。处理引擎112还可以确定输出学习者向量和输出指导者向量之间的输出距离。

在650中,处理引擎112(例如,处理器220、模型训练模块420)可以通过将距离作为学习信号输入到学习者模块来更新学习者模块中的参数。

在一些实施例中,如图7所示,对于n个学习者模块中的每一个,处理引擎112可以将学习者向量和相应的指导者向量之间的距离(也称为学习信号)输入到学习者模块。例如,处理引擎112可以将学习信号输入到学习者模块的最后一个学习者层。学习信号可以从学习者模块的最后一个学习者层向前传播到学习者模块的第一层。学习者信号可以影响学习者模块的参数,并且进一步影响整个学习者模型的参数。例如,学习信号可用于更新学习者模块中的参数。又例如,学习信号可用于更新学习者模型的至少两个学习者模块中的参数。

在一些实施例中,处理引擎112可以将训练好的指导者模型和学习者模型之间的输出距离输入到学习者模型的最后学习者模块作为学习信号。例如,处理引擎112可以将输出距离输入到学习者模型的最后学习者模块的最后一个学习者层。学习信号可以从最后一个学习者模块的最后一个学习者层向前传播到最后一个学习者模块的第一层。学习者信号可以影响最后一个学习者块的参数,并且进一步影响整个学习者模型的参数。

在一些实施例中,处理引擎112可以基于对应的学习信号和算法(例如,梯度下降算法、最小二乘法等)来更新每个学习者模块中的参数。

应该注意的是,上述仅出于说明性目的而提供,并不旨在限制本申请的范围。对于本领域的普通技术人员来说,根据本公开的教导可以做出多种变化和修改。然而,变形和修改不会背离本申请的范围。在一些实施例中,可以在示例性过程600中的其他地方添加一个或多个其他可选操作(例如,存储操作)。例如,过程600可以进一步包括存储与训练好的指导者模型和学习者模型相关联的信息和/或数据(例如,训练好的指导者模型和学习者模型中的参数)。处理引擎112可以将与训练好的指导者模型和学习者模型相关联的信息和/或数据存储在存储设备(例如,存储器140)中,其在本申请的其他地方公开。

图10是根据本申请的一些实施例的用于确定学习者模型是否收敛的示例性过程的流程图。过程900可以由ai系统100执行。例如,过程900可以实现为存储在存储rom230或ram240中的一组指令(例如,应用程序)。处理器220可以执行一组指令,并且当执行指令时,处理器220可以被配置为执行处理900。以下呈现的所示过程的操作旨在是说明性的。在一些实施例中,过程900可以通过未描述的一个或多个以上附加操作和/或没有所讨论的操作的一个或多个来完成。另外,如图10所示和下面描述的过程的操作的顺序不旨在是限制性的。

在910中,处理引擎112(例如,处理器220、模型训练模块420)可以确定当前迭代操作中当前学习者模型的参数与上次迭代操作中的学习者模型(即前一个学习者模型)的参数之间的差值。

在一些实施例中,当前学习者模型中的每个参数可以具有对应于前一个学习者模型中的对应参数。处理引擎112可以确定当前学习者模型和前一个学习者模型中的两个对应参数之间的差。例如,当前学习者模型中的每个参数与前一个学习者模型中的对应参数之间的差可以通过从当前学习者模型(或在前一个的学习者模型中)中的参数减去对应的前一个学习者模型中(或在当前学习者模型中)的参数来确定。处理引擎112可以确定当前学习者模型中的至少两个参数与最后一个学习者模型中的至少两个相应参数的差的平均值。又例如,差值可以是当前学习者模型和最后一个学习者模型中两个相应参数之间差的最大差。作为又一示例,处理引擎112可以基于当前学习者模型和最后学习者模型中的两个对应参数之间的差以及每个差的权重来确定差值。仅仅为了说明的目的,处理引擎112可以为不同层中的不同参数分配不同的权重。例如,输入层中的第一参数的第一差值,中间层中的第二参数的第二差值,以及输出层中的第三参数的第三差值分别为80、90和95。处理引擎112可以将第一参数的第一权值、第二参数的第二权值和第三参数的第三权值分别分配为20%、30%、和50%。差值可以是90.5(80×20%+90×30%+95×50%=90.5)。

在920中,处理引擎112(例如,处理器220、模型训练模块420)可以确定差值是否小于差值阈值。

在一些实施例中,差值阈值可以是存储设备(例如,存储器140、存储器390)中存储的默认值。另外或可替代地,差值阈值可以手动设置或者根据不同情况由ai系统100的一个或多个组件确定。

响应于确定差值小于差值阈值,在930中,处理引擎112(例如,处理器220、模型训练模块420)可以确定学习者模型是收敛的。在一些实施例中,当学习者模型在迭代操作中收敛时,处理引擎112可以确定在迭代操作处获得的相应学习者模型被训练得很好,并且将相应的学习者模型分配为训练好的学习者模型。

响应于确定差值不小于差值阈值,在940中,处理引擎112(例如,处理器220、模型训练模块420)可以确定学习者模型不收敛。处理引擎112还可以通过进行下一次迭代操作来训练学习者模型,如结合图6、7和8所描述的。

应该注意的是,上述仅出于说明性目的而提供,并不旨在限制本申请的范围。对于本领域的普通技术人员来说,根据本公开的教导可以做出多种变化和修改。然而,变形和修改不会背离本申请的范围。

图11是根据本申请的一些实施例的用于确定最终训练好的学习者模型的示例性过程的流程图。过程1000可以由ai系统100执行。例如,过程1000可以实现为存储在存储rom230或ram240中的一组指令(例如,应用程序)。处理器220可以执行一组指令,并且当执行指令时,处理器220可以被配置为执行处理1000。以下呈现的所示过程的操作旨在是说明性的。在一些实施例中,过程1000可以通过未描述的一个或多个以上附加操作和/或没有所讨论的操作的一个或多个来完成。另外,如图11中所示和下面描述的过程的操作的顺序不旨在是限制性的。

在1010中,处理引擎112(例如,处理器220、模型训练模块420)可以训练至少两个学习者模型以获得至少两个训练好的学习者模型。在一些实施例中,至少两个学习者模型的每个学习者模型可以彼此不同。

在一些实施例中,至少两个学习者模型可具有不同的结构。例如,不同的学习者模型可以具有不同数量的学习者层。又例如,不同的学习者模型可以在每个学习者层中具有不同数量的节点。作为又一示例,不同的学习者模型可以具有不同数量的学习者模块,或者不同的学习者模块可以具有不同数量的学习者层。

在一些实施例中,处理引擎112可以使用相同的训练好的指导者模型来训练至少两个学习者模型中的每一个,通过执行本申请中其他地方描述的方法或过程(例如,图5-图10及其描述)。在一些实施例中,处理引擎112可以同时或以任何顺序训练至少两个学习者模型。

在一些实施例中,处理引擎112可以使用训练好的指导者模型的相同指导者模块训练至少两个学习者模型中的每一个。例如,处理引擎112可以从训练好的指导者模型中选择预定数量的相同指导者模块,并从每个学习者模型中选择预定数量的学习者模块。预定数量的相同指导者模块中的每一个可以分别对应于预定数量的学习者模块中的每一个。处理引擎112可以使用本申请中其他地方描述的方法或过程(例如,图5-9及其描述)来训练至少两个学习者模型中的每一个。在一些实施例中,处理引擎112可以使用训练好的指导者模型的不同指导者模块来训练至少两个学习者模型中的每一个。例如,处理引擎112可以从训练好的指导者模型中选择预定数量的不同指导者模块,并从每个学习者模块中选择预定数量的学习者模块。预定数量的不同指导者模块中的每一个可以分别对应于预定数量的学习者模块中的每一个。处理引擎112可以使用本申请中其他地方描述的方法或过程(例如,图5-9及其描述)来训练每个至少两个学习者模型。在确定至少两个学习者模型中的每一个是收敛的之后,处理引擎112可以将学习者模型指定为训练好的学习者模型。在一些实施例中,不同的训练好的学习者模型可具有不同的表现。

在一些实施例中,处理引擎112(例如,处理器220、模型测试模块430)可以测试至少两个训练好的学习者模型以获得最终训练好的学习者模型。例如,在1020中,对于至少两个训练好的学习者模型中的每一个,处理引擎112(例如,处理器220、模型测试模块430)可以使用测试数据集作为训练好的学习者模型和训练好的指导者模型的输入,以确定训练好的学习者模型和训练好的指导者模型之间的输出差值。

在一些实施例中,处理引擎112可以使用相同的测试样本来测试所述至少两个训练好的学习者模型。例如,处理引擎112可以将相同的测试样本输入到训练好的学习者模型和训练好的指导者模型中。在一些实施例中,测试数据集可以与样本数据集不同。

如本申请所用,训练好的学习者模型和训练好的指导者模型之间的输出差可用于评估训练好的学习者模型的表现。在一些实施例中,处理引擎112可以基于训练好的学习者模型的输出和参考模型的输出来确定训练好的学习者模型和参考模型之间的输出差。例如,处理引擎112可以通过从分别对应于测试样本数据的指导者模型(或训练好的学习者模型)的输出中减去训练好的学习者模型(或指导者模型)的输出,来确定输出差。输出差可以是测试数据集的输出的平均值、加权平均值或最大差值。

在1030中,处理引擎112(例如,处理器220、模型测试模块430)可以基于至少两个输出差,来从至少两个训练好的学习者模型中确定最终训练好的学习者模型。

在一些实施例中,处理引擎112可以根据不同应用场景,通过比较至少两个输出差和/或至少两个训练好的学习者模型的结构来确定最终训练好的学习者模型。例如,处理引擎112可以从至少两个训练好的学习者模型中,选择具有最小输出差的训练学习模型作为最终训练好的学习者模型。又例如,处理引擎112可以确定具有小于预设阈值的输出差的至少两个训练学习模型为至少两个候选的训练好的学习者模型。处理引擎112可以进一步从所述至少两个候选训练学习模型中选择具有最简单结构的训练好的学习者模型作为最终学习者模型。作为又一示例,处理引擎可以从至少两个候选的训练好的学习者模型中选择具有适合于应用平台(例如,移动电话、平板等)的计算能力的结构的训练好的学习者模型,作为最终的学习者模型。在一些实施例中,处理引擎112可以将最终训练好的学习者模型发送或上传或存储到电子设备130。电子设备130可以调用最终训练好的学习者模型来执行类似人的任务,例如检测物体、识别语音、识别图像或进行预测。

本实施例至少具备以下之一的技术效果:将现有的结构较为复杂的模型作为指导者模型,试图定义一种协同训练的方法,利用指导者模型中的隐藏层信息和输出层信息,来训练一个简化的学习者模型,从而将简化神经网络的操作变为一个有目标导向的可量化的优化问题;利用神经网络中逐层训练的思想,对学习者模型中的某一层或者某几层进行监督训练,有效的利用了指导者模型的隐藏层信息,使学习者模型学习得更加充分;对于结构不同的两个模型(结构较为复杂的指导者模型和结构较为简单的学习者模型),对指导者模型和学习者模型中的某一层或者某几层隐藏层给出一个相同长度的向量作为映射,从而得到两个维度相同的向量,进而解决了维度不匹配的问题;进一步衡量两个对应层向量之间的相似性程度距离,作为指导信号对学习者模型进行指导学习,使训练好的学习者模型能够模拟指导者模型的行为,达到训练一个结构更加简单但功能更相似的简单模型,用于在计算能力有限的平台(例如,个人电脑、手机、车载设备等)使用。

应该注意的是,上述仅出于说明性目的而提供,并不旨在限制本申请的范围。对于本领域的普通技术人员来说,根据本公开的教导可以做出多种变化和修改。然而,变形和修改不会背离本申请的范围。

上文已对基本概念做了描述,显然,对于阅读此申请后的本领域的普通技术人员来说,上述发明披露仅作为示例,并不构成对本申请的限制。虽然此处并未明确说明,但本领域的普通技术人员可以进行各种变更、改良和修改。该类修改、改进和修正在本申请中被建议,所以该类修改、改进、修正仍属于本申请示范实施例的精神和范围。

同时,本申请使用了特定词语来描述本申请的实施例。同时,本申请使用了特定术语来描述本申请的实施例。如“一个实施例”、“一实施例”、和/或“一些实施例”意指与本申请至少一个实施例相关的某一特征、结构或特性。因此,应强调并注意的是,本说明书中在不同位置两次或多次提及的“一实施例”或“一个实施例”或“一替代性实施例”并不一定是指同一实施例。此外,本申请的一个或多个实施例中的某些特征、结构或特性可以进行适当的组合。

此外,本领域的普通技术人员可以理解,本申请的各方面可以通过若干具有可专利性的种类或情况进行说明和描述,包括任何新的和有用的制程、机器、产品或物质的组合,或对其任何新的和有用的改良。相应地,本申请的各个方面可以完全由硬件执行、可以完全由软件(包括固件、常驻软件、微码等)执行、也可以由硬件和软件组合执行。以上硬件或软件均可被称为“数据块”、“模块”、“引擎”、“单元”、“组件”或“系统”。此外,本申请的各方面可以呈现为位于一个或多个计算机可读媒体中的计算机产品,该产品具有计算机可读程序编码。

计算机可读信号介质可能包含一个内含有计算机程序编码的传播数据信号,例如在基带上或作为载波的一部分。此类传播讯号可以有多种形式,包括电磁形式、光形式等或任何合适的组合形式。计算机可读信号介质可以是除计算机可读存储介质之外的任何计算机可读介质,该介质可以通过连接至一个指令执行系统、装置或设备以实现通讯、传播或传输供使用的程序。位于计算机可读信号介质上的程序编码可以通过任何合适的介质进行传播,包括无线电、电缆、光纤电缆、rf、或类似介质、或任何上述介质的组合。

本申请各方面操作所需的计算机程序码可以用一种或多种程序语言的任意组合编写,包括面向对象程序设计,如java、scala、smalltalk、eiffel、jade、emerald、c++、c#、vb.net,python或类似的常规程序编程语言,如“c”编程语言,visualbasic,fortran1703,perl,cobol1702,php,abap,动态编程语言如python,ruby和groovy或其它编程语言。程序代码可以完全在用户计算机上运行、或作为独立的软件包在用户计算机上运行、或部分在用户计算机上运行部分在远程计算机上运行、或完全在远程计算机或服务器上运行。在后种情况下,远程计算机可以通过任何网络形式与用户计算机连接,比如局域网(lan)或广域网(wan),或连接至外部计算机(例如通过因特网),或在云计算环境中,或作为服务使用如软件即服务(saas)。

然而,这些修正和改变仍然在本申请的保护范围之内。此外,处理元素或者序列的列举顺序、数字、字母或者其他名称的使用不是用于限制要求的过程和方法的。尽管上述披露中通过各种示例讨论了一些目前认为有用的发明实施例,但应当理解,此类细节仅起说明的目的,附加的申请专利范围并不仅限于披露的实施例,相反,申请专利范围旨在覆盖所有符合本申请实施例精神和范围的修正和等价组合。例如,虽然以上所描述的系统组件可以通过硬件设备实现,但是也可以只通过软件的解决方案得以实现,如在现有的服务器或移动设备上安装所描述的系统。

同理,应当注意的是,为了简化本申请揭示的表述,从而帮助对一个或多个发明实施例的理解,前文对本申请实施例的描述中,有时会将多种特征归并至一个实施例、附图或对其的描述中。然而,此揭示方法并不意味着本申请所需的特征比申请专利范围中涉及的特征多。实际上,实施例的特征要少于上述披露的单个实施例的全部特征。

一些实施例中使用了描述成分、属性数量的数字,应当理解的是,此类用于实施例描述的数字,在一些示例中使用了修饰词“大约”、“近似”或“大体上”来修饰。除非另外说明,“大约”、“近似”或“大体上”表明所述数字允许有±20%的变化。相应地,在一些实施例中,说明书和权利要求中使用的数值参数均为近似值,该近似值根据个别实施例所需特点可以发生改变。在一些实施例中,数值参数应考虑规定的有效数位并采用一般位数保留的方法。尽管本申请一些实施例中用于确认其范围广度的数值域和参数为近似值,在具体实施例中,此类数值的设定在可行范围内尽可能精确。

本申请引用的每个专利、专利申请、专利申请的出版物和其他材料,例如文章、书籍、说明书、出版物、文献、物品和/或类似物,在此通过引用并入本申请。其全部用于所有目的,除了与其相关的任何起诉文件历史,与本申请件不一致或相冲突的任何相同或任何可能对现在的权利要求或之后与本申请件有关的最广泛范围具有限制性影响的任何相同的起诉文件历史。作为示例,如果与任何所包含的材料相关联的术语的描述、定义和/或使用与本申请相关联的术语的描述、定义和使用之间存在任何不一致或冲突,此术语的描述、定义、和/或使用应当公开。

最后,应当理解的是,本申请中所述实施例仅用以说明本申请实施例的原则。其他的变形也可能属于本申请的范围。因此,作为示例而非限制,本申请实施例的替代配置可视为与本申请的教导一致。因此,本申请的实施方案不限于精确地如所示和所述的那些。

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