首页 / 用于机器学习系统的学习教练

用于机器学习系统的学习教练无效专利 发明

技术内容

用于机器学习系统的学习教练 [0001] 优先权 [0002] 本PCT申请要求以下美国临时专利申请的优先权:(1)2016年9月28日提交的标题为“利用问答法教练的深度学习(Deep Learning With Socratic Coaches)”的系列第62/ 400,853号;以及(2)2017年3月24日提交的标题为“用于机器学习系统的学习教练(Learning Coach for Machine Learning System)”的系列第62/476,280号。这两个临时申请通过引用以其整体并入本文。 背景技术 [0003] 机器学习是一种通过计算机实现的用来自我学习算法的过程,其可以通过由采样数据输入构建模型对数据做出预测,而无需被明确地编程为如此。存在多种类型的机器学习系统类型,例如,人工神经网络(ANN)、决策树、支持向量机(SVM)以及其它类型。这些系统在利用新数据做出有意义的预测之前首先需要根据一些采样输入接受训练。例如,ANN通常由多层神经元组成。每个神经元与多个其它神经元相连接,并且链路可以增强或抑制其对相连接的神经元的激活状态的影响。每个单独的神经元单元可以具有将其所有输入的值合并在一起的求和函数。可以存在对每个连接和对神经元自身的阈值函数或者极限函数,使得信号在传播到其它神经元之前必须超越极限。用于输入到节点的每个相应输入的权重可以通过误差代价函数的偏导数的反向传播接受训练,同时估计值在训练数据采样上累积。 大型复杂ANN可以在节点之间具有数百万的连接,并且需要学习针对每个连接的权重。 发明内容 [0004] 在一个方面,本发明涉及一种计算机系统,其包括一个或多个“学生”机器学习系统连同至少一个“教练”机器学习系统。教练机器学习系统自己利用机器学习来帮助学生机器学习系统。例如,通过监测学生学习系统,教练机器学习系统可以(通过机器学习技术)学习用于学生机器学习系统的“超级参数”,所述超级参数控制学生学习系统的机器学习过程。例如,在其中学生机器学习系统使用深度神经网络(DNN)的情况下,习得的超级参数可以包括小批量大小M、学习速率η、正则化参数λ和/或动量参数μ。另外,一组习得的超级参数可以用于确定学生机器学习系统的网络的所有权重,或者自定义的习得超级参数可用于网络中的不同权重。例如,学生学习系统的每个权重(或者其它可训练参数)可以具有其自己的一组自定义的习得超级参数,其可以被学习系统教练学习。 [0005] 另外地或者作为学习超级参数的替代,机器学习教练可以确定针对学生学习系统架构的结构性修改。例如,在学生学习系统使用DNN的情况下,机器学习教练可以修改DNN的结构,例如通过添加或者删除层和/或通过添加或删除层中的节点。另外,学生学习系统可以包括机器学习系统的套件。学习教练在此类场景下可以控制流向各个机器学习系统的数据流和/或向套件添加构件。 [0006] 学生学习系统和机器学习教练优选地并行操作。也就是说,机器学习教练在学生学习系统处于学习过程中的同时观察学生学习系统,并且机器学习教练在学生学习系统处于学习过程中的同时对学生学习系统做出其改变(例如,超级参数、结构性修改等)。学习教练和学生可以是相同或者不同类型的机器学习架构。 [0007] 学习教练可以具有与学生学习系统的目标不同的目标函数。例如,学生学习系统可以最小化误差率或者误差的代价的一些其它量度,而学习教练对学生学习系统做出结构性修改以优化误差的代价和执行计算的代价的一些组合。学习教练还可以对学生学习系统做出修改,特别是添加,以提高其能力并同时保证在性能方面不会有退化。 [0008] 通过本文的描述本发明的这些有益效果以及其它有益效果将是显而易见的。 附图说明 [0009] 在本文中通过示例并结合附图对本发明的各种实施例进行描述,其中: [0010] 图1、图14以及图15是根据本发明各种实施例的包括学生机器学习系统和学习教练的系统的框图; [0011] 图2是根据本发明各种实施例的一种方法的框图,学习教练通过所述方法控制学生学习系统的训练; [0012] 图3是根据本发明各种实施例的方法的示图,学习教练通过所述方法在学生学习系统接受训练时采集学生学习系统的观测值; [0013] 图4是根据本发明各种实施例的数据流受学习教练控制的大型学习系统的框图; [0014] 图5是根据本发明各种实施例的图4中的系统的框图,其中一些学习模块存储在高速存储器或缓存中而其它模块存储在辅助存储装置中; [0015] 图6示出了根据本发明各种实施例的用于向机器学习网络传递显性知识的方法; [0016] 图7和图8示出了根据本发明各种实施例的用于向学习网络添加节点的机制; [0017] 图9是根据本发明各种实施例的示出了用于形成显性知识的方法的流程图; [0018] 图10是根据本发明各种实施例的示出了用于使隐性知识可传送的系统的框图; [0019] 图11是根据本发明各种实施例的在系统的机器学习模块之间共享知识的大型机器学习系统的框图; [0020] 图12是根据本发明各种实施例的套件机器学习系统的框图,其中学习教练控制在套件构件之间的数据分配;以及 [0021] 图13是根据本发明各种实施例的套件机器学习系统的框图,其中初步分类器控制在套件构件之间的数据分配。 具体实施方式 [0022] 图1是根据本发明的基础实施例的计算机系统10的框图。图1示出了机器学习系统 11,其被训练为识别从数据源21提供的数据中的模式。由于机器学习系统11正处于训练或学习过程中,在本文中其也被称为“学生”。系统10进一步包括机器学习系统41,其控制学习过程的一些方面并且在学生机器学习系统11处于学习模式的过程中起到辅助的作用。由于其帮助所述学习过程,机器学习系统41被称为“学习教练”。 [0023] 在各种实施例中,学习教练41本身就是机器学习系统。尽管如此,学习教练41并不尝试识别学生学习系统11正在学习如何识别的模式。由学习教练41处理的主要数据是学生机器学习系统11的内部状态的观测值31以及学生系统11在其训练过程期间计算的数据。此外,学习教练41使用的控制机制之一是选择用于学生11的训练数据。因此,学习教练41还可以接收训练数据34作为输入,但是并非出于识别其中的模式的目的,如本文中所述。学习教练41优选地还具有控制并辅助学生11的学习过程的其它手段,包括控制学生11的超级参数 32以及改变学生机器学习系统11的内部结构33,如本文中所述。 [0024] 出于讨论的目的,首先关注被称为“超级参数”的控制。一般来讲,任何大型复杂机器学习系统,例如学生学习系统11,具有大量的参数,需要为这些参数找到优良值以在模式识别过程中最小化误差的代价的一些量度。这些参数是可训练的参数。找到这些值是在机器学习系统中被称为“学习”的过程的本质。可能存在数百万或者甚至数十亿的这种参数,因此学习过程可能是非常耗时且昂贵的。为了帮助学习过程更好地起作用,通常存在能调节学习过程以对用于特定任务的数据类型更好地起作用的若干控制参数。这些控制参数并非通过机器学习系统11习得,而是通常由系统设计者指定。为了将其与正在由系统11学习的参数进行区分,这些控制参数在本文中被称为“超级参数”,它们是控制机器学习系统的学习过程的参数。 [0025] 在本发明的实施例中,这些超级参数中的一些或者全部并非由系统设计者进行控制,而是由学习教练41进行控制。 [0026] 为了通过示例性实例来说明超级参数的使用,使学生系统11为大型深度前馈神经网络(DNN),其为机器学习领域的技术人员所公知的一种机器学习系统类型。深度神经网络是一种具有多层节点的网络,节点表示神经元的人工模型,其中网络中的连接或弧表示由节点所表示的神经元之间的连接强度。每个弧与一定的数值相关联,所述数值表示其连接的强度或“权重”。这些权重包括在学生系统11的训练中要进行学习的参数。在大型DNN中,可能存在数百万的节点并具有数十亿的连接,并且因此,需要学习数十亿的这些连接权重。 各个节点和弧可以使用真正神经元的被大大简化的人工模型。用于深度神经网络的学习过程的复杂度来源于大量的节点和弧及其交互的复杂度。 [0027] 出于例示说明的目的,将对用于训练深度前馈神经网络的超级参数的使用进行描述。本示例仅作为例示说明而并非旨在限制本发明的范围,因为本发明可以应用于任何复杂的机器学习系统,包括支持向量机(SVM)、随机森林、CART分析、隐藏随机过程模型、动态贝叶斯网络、波尔兹曼机、这些系统中任何的套件以及甚至异构的套件。机器学习系统可以按照若干方式中的任意一种或多种复杂化。其可以具有大型复杂的内部结构、其学习可以由超级参数控制,或者其训练可以通过根据大量的训练数据的计算密集处理来完成。例示性训练方法是一种对数似然误差代价函数的随机梯度下降的迭代过程,其中输出节点采用柔性最大分类、每个训练样例的梯度通过对误差代价函数的偏导数的反向传播来估计、估计值在小批量上被累积,针对每个小批量的参数的进行一次更新。在例示性方法中,训练过程通过涅斯捷罗夫动量增强并通过L2正则化平滑。也可以按照类似的方式使用其它公知的训练方法。 [0028] 针对这种公知的训练过程的伪码如下所示: [0029] [0030] 每个权重wl,i,j可以被初始化为由正态分布 得到的随机数,其中 wi,j是第k-1层中节点i和第k层中节点j之间的连接权重,而nj是到节点nj内的连接的数量。 包括输出层在内有L层。在小批量中有M个样例。对于lMaxScore-h的目标能在训练或识别期间接收到数据的给定项目。 [0120] 图14示出了根据各种实施例的本发明的另一个方面。在图14中所示的实施例中,学习教练41合并了其控制超级参数的能力322以及其修改学生机器学习系统11的结构的能力332。在本例示性示例中,学习系统11是深度学习神经网络。学习教练41对学生学习系统 11的结构做出的修改332的具体类型是向网络11添加一个或多个节点或弧。在对图10中所示实施中的超级参数322的控制中,学习教练41控制结构的新部件的学习速率,所述新部件的学习速率不同于学生学习系统11中网络的较旧部件的学习速率。 [0121] 在图14中所示的实施例中,两个问题是重要的。当向已经广泛接受训练的网络添加新的结构时,与网络的新部件相关联的参数可能需要比与网络的较旧部件相关联的参数更多的训练数据。另一方面,对新网络的训练应当按照以下方式来管理,即其不会妨碍旧网络在添加之前已经获得的性能。如在对其它附图的讨论过程中所解释的,学习教练41可以学习利用自定超级参数来优化对每个参数的学习的控制。在图14中,通过提供在类似情况下接受训练的学生学习系统的样例,这种能力专注于在这种情况下重要的问题。也就是说,学习教练41通过观察其中节点和弧已经被添加到学生系统11的其它样例来学习优化对学生系统11的结构的新添加的相对学习速率。 [0122] 图14中所示的实施例的一种重要的具体情形是向学生学习系统11的网络添加一整层的新节点及其相关联的弧。在现有技术方法中,已经观察到,随着层被添加到深度神经网络,最后的性能不仅关于测试数据退化,而且甚至还关于训练数据退化。在图15中所示的实施例中,学习教练41初始化添加的层或者其它实质上的新结构中的权重,使得更大的网络的性能至少匹配较小网络的性能。例如,学习教练可以将添加结构的权重和偏差初始化为恒等映射。如有必要,可以通过添加更多的具有线性或分段线性单元的附加节点来扩展所述添加的结构,使得添加的结构可以直接匹配恒等函数。随后,学习教练41管理进一步的学习以保证现在更大的学生学习系统网络11关于训练数据的性能总是至少与较小系统关于训练数据的先前性能一样好。例如,每当梯度下降步骤产生了性能方面的退化,则学习教练41可以减小步长大小。通过对梯度的定义,如果梯度是非零的,则总是存在使得在性能方面没有退化的步长大小。学习教练41可以按照相同的方式向学生学习系统11中的现有层添加节点。实际上,当向现有层添加节点时,附加节点可以被初始化为恒等函数,从网络的剩余部分的观点来看,仅仅通过将来自新节点的输出连接的权重初始化为零。由此,对现有网络的添加可以在保证在性能方面不存在退化的前提下做出。 [0123] 本实施例可以在现有学生网络11的任何位置处向深度神经网络添加附加层。其可以添加在现有输出层之后的附加层、正好在现有输出层之前的附加层、正好在输入层之后的附加层或者在任何两个现有层之间的附加层。其可以在没有任何性能退化的情况下使神经网络生长到任意深度。 [0124] 学习教练还可以在没有性能方面的退化的情况下向学生系统11添加其它的实质性结构。例如,其可以复制另一网络的子网络,或者其可以将子网络从学生网络11的一部分复制到另一部分。换言之,其可以向现有网络添加结构(层和节点,它们的连接以及它们的权重),其中添加的结构重复了被复制的子网络。在复制子网络的情况下,复制可以向将子网络复制到其的网络中的位置添加附加特征。由此,复制可以从源位置向目标位置传递知识,无论该位置是在两个不同的网络中还是在同一网络中。 [0125] 基于以上描述,应当清楚,本发明的实施例可以用于在各种应用中改进操作,包括改进包括深度神经学习网络的机器学习系统的学习。例如,本发明的实施例可以改进推荐系统、语音识别系统以及分类系统,包括图像和诊断分类系统,仅举出了一些例子,例如通过改进其学习超级参数、内部结构以及训练样例或者本文中所示的其它技术中的任一种。 [0126] 本文中所述的机器学习计算机系统可以利用计算机硬件和软件来实现。例如,它们可以是具有多个处理核心的集成计算机系统(例如,服务器或服务器的网络)的一部分。 程序指令可以存储在可以由处理核心访问的计算机存储器中,例如RAM、ROM、处理器寄存器或处理器高速缓存等。处理器核心可以包括CPU或者图形处理单元(GPU)核心。GPU核心并行地操作并且由此通常可以更有效地处理数据,即一系列的CPU核心,但是所有的核心同时执行同一代码。如本文中所述,各种机器学习系统可以是分布式计算机系统的一部分(参见,例如图4至图5以及图11)。甚至图1、图12以及图13中的实施例可以被实施为分布式系统的一部分。在此类实施例中,实现学生和教练的计算机设备(例如,服务器)可以彼此远离并利用合适的有线和/或无线数据通信链路通过数据网络进行互连,例如LAN、WAN、因特网等。数据可以在利用合适的数据链路的各种系统之间共享,例如数据总线(优选地为高速数据总线)或者网络链路(例如,以太网)。 [0127] 用于本文中所述的各种机器学习系统(例如,学生学习系统11、101等,以及教练学习系统41、103、106等)的软件以及本文中所述的其它计算机功能可以利用任何合适的计算机编程语言(例如,.NET、C、C++、Python)并利用常规的、功能性的或者面向对象的技术来在计算机软件中实现。例如,各种机器学习系统可以利用软件模块来实现,所述软件模块存储在计算机可读介质上或者以其它方式在计算机可读介质上维护,例如RAM、ROM、辅助存储装置等。机器学习系统的一个或多个处理核心(例如,CPU或GPU核心)随后可以执行软件模块以实现相应机器学习系统(例如,学生、教练等)的功能。用于计算机软件和其它由计算机实现的指令的编程语言可以在执行之前通过编译器或汇编程序翻译成机器语言,和/或可以在运行时由解释器直接进行翻译。汇编语言的示例包括ARM、MIPS以及x86;高级语言的示例包括Ada、BASIC、C、C++、C#、COBOL、Fortran、Java、Lisp、Pascal、Object Pascal、Haskell、ML;脚本语言的示例包括Bourne script、JavaScript、Python、Ruby、Lua、PHP以及Perl。 [0128] 在一个一般性方面,本发明因此涉及机器学习系统,其包括:(i)第一学生机器学习系统11,其利用机器学习自动地向输入源数据学习并对输入源数据做出预测;以及(ii)第一学习教练机器学习系统41,其与第一学生机器学习系统进行通信。输入到第一学习教练机器学习系统的输入包括与第一学生机器学习系统的内部状态有关的数据。另外,学习教练机器学习系统利用机器学习基于与第一学生机器学习系统的内部状态有关的数据自动地学习并对第一学生机器学习系统实现增强以改善第一学生机器学习系统的操作。 [0129] 在各种实施方式中,第一学习教练机器学习系统包括模式识别系统,所述模式识别系统识别与第一学生机器学习系统不同的模式。另外,第一学生机器学习系统可以具有与第一学生机器学习系统不同的目标。另外,第一学习教练机器学习系统和第一学生机器学习系统可以具有相同的网络架构,例如,它们中的任一个可以包括深度神经网络。 [0130] 在各种实施方式中,增强包括:用于第一学生机器学习系统的一个或多个修正超级参数,所述一个或多个修正超级参数改善第一学生机器学习系统的学习;对第一学生机器学习系统的结构性改变;选择性地控制输入到第一学生机器学习系统的训练数据以控制第一学生机器学习系统的学习;和/或在第一学生机器学习系统包括套件的情况下,选择性控制流向套件的构件的数据流或者向套件添加新的构件。修正超级参数可以是用于第一学生机器学习系统的小批量大小、用于第一学生机器学习系统的学习速率、用于第一学生机器学习系统的正则化参数,和/或用于第一学生机器学习系统的动量参数。结构性改变可以包括要被添加到第一学生机器学习系统的网络的选定层中的一个或多个附加的节点和/或一个或多个附加的层。 [0131] 此外,第一机器学习系统可以包括计算机网络,所述计算机网络包括:第一计算机系统,其包括至少一个处理器和高速存储器;以及远程辅助存储装置,其与第一计算机系统进行通信。在此类实施例中,当第一学生机器学习系统活动时,用于第一学生机器学习系统的连接权重和激活被存储在高速存储器中,使得第一学生机器学习系统可以运行;并且当第一学生机器学习系统非活动时,用于第一学生机器学习系统的连接权重和激活被存储在辅助存储装置中。 [0132] 在其它实施例中,第一学生机器学习系统或者第一学习教练机器学习系统或者两者包括图形处理单元,所述图形处理单元包括位于单个集成电路上的多个处理核心。 [0133] 在另一个一般性方面,本发明涉及一种计算机系统,其包括:第一组一个或多个处理核心;第一组一个或多个计算机可读介质;以及在第一组一个或多个计算机可读介质上维护的第一学生机器学习模块,当所述第一学生机器学习模块由第一组一个或多个处理核心执行时,促使第一组一个或多个处理核心利用机器学习自动地向输入源数据学习并对输入源数据做出预测。计算机系统还包括:第二组一个或多个处理核心;第二组一个或多个计算机可读介质;以及在第二组计算机可读介质上维护的第一学习教练机器学习模块。当第一学习教练机器学习模块由第二组一个或多个处理核心执行时,促使第二组一个或多个处理核心:接收与第一学生机器学习模块的内部状态有关的输入数据;并且利用机器学习基于与第一学生机器学习模块的内部状态有关的数据自动地学习并对第一学生机器学习模块实现改变,例如以上所述改变中的任一个,以改善第一学生机器学习模块的操作。 [0134] 在又另一个一般性方面,本发明涉及一种改善第一学生机器学习系统的操作的方法,所述第一学生机器学习系统利用机器学习自动地向输入源数据学习并对输入源数据做出预测。所述方法可以包括以下步骤:通过第一学习教练机器学习系统从第一学生机器学习系统接收与第一学生机器学习系统的内部状态有关的数据;以及通过第一学习教练机器学习系统利用机器学习基于与第一学生机器学习系统的内部状态有关的数据自动地学习并对第一学生机器学习系统实现增强,例如以上所述增强中的任一个,以改善第一学生机器学习系统的操作。 [0135] 本文中所给出的示例旨在例示说明本发明的可能和具体实施方式。可以意识到,示例主要旨在用于为本领域技术人员例示说明本发明的目的。示例的特定方面或多个方面并不旨在限制本发明的范围。此外,应当理解的是,本发明的附图和说明书已经进行了简化,以例示说明用于清楚地理解本发明的相关的元件,与此同时为简洁起见消除了其它元件。尽管本文中已经描述了各种实施例,但是显而易见的是,在实现至少一些优点的前提下本领域技术人员可以想到对这些实施例的各种修改、改变和调整。在不脱离本文中所阐述实施例的范围的前提下所公开的实施例因此旨在包括此类修改、改变和调整。