CN111602149B - 自组织偏序网络 - Google Patents
自组织偏序网络 Download PDFInfo
- Publication number
- CN111602149B CN111602149B CN201980008607.5A CN201980008607A CN111602149B CN 111602149 B CN111602149 B CN 111602149B CN 201980008607 A CN201980008607 A CN 201980008607A CN 111602149 B CN111602149 B CN 111602149B
- Authority
- CN
- China
- Prior art keywords
- node
- computer system
- neural network
- network
- computer
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Active
Links
- 230000036961 partial effect Effects 0.000 title claims abstract description 171
- 238000000034 method Methods 0.000 claims abstract description 342
- 238000013528 artificial neural network Methods 0.000 claims abstract description 256
- 238000012549 training Methods 0.000 claims description 222
- 230000008569 process Effects 0.000 claims description 166
- 230000006870 function Effects 0.000 claims description 131
- 238000010801 machine learning Methods 0.000 claims description 94
- 230000004913 activation Effects 0.000 claims description 90
- 230000010354 integration Effects 0.000 claims description 43
- 230000008859 change Effects 0.000 claims description 34
- 230000000694 effects Effects 0.000 claims description 26
- 230000006872 improvement Effects 0.000 claims description 15
- 230000010076 replication Effects 0.000 claims description 14
- 238000011161 development Methods 0.000 claims description 10
- 238000012544 monitoring process Methods 0.000 claims description 8
- 230000000306 recurrent effect Effects 0.000 claims description 8
- 238000010257 thawing Methods 0.000 claims description 7
- 238000005259 measurement Methods 0.000 claims description 5
- 230000003121 nonmonotonic effect Effects 0.000 claims description 4
- 239000010410 layer Substances 0.000 description 122
- 238000001994 activation Methods 0.000 description 76
- 239000013598 vector Substances 0.000 description 36
- 238000004364 calculation method Methods 0.000 description 28
- 230000015654 memory Effects 0.000 description 25
- 238000010586 diagram Methods 0.000 description 22
- 230000008901 benefit Effects 0.000 description 14
- 230000002441 reversible effect Effects 0.000 description 12
- 230000009471 action Effects 0.000 description 11
- 238000007792 addition Methods 0.000 description 11
- 238000013527 convolutional neural network Methods 0.000 description 11
- 238000012360 testing method Methods 0.000 description 11
- 230000000295 complement effect Effects 0.000 description 10
- 238000013507 mapping Methods 0.000 description 10
- 238000012545 processing Methods 0.000 description 10
- 238000012795 verification Methods 0.000 description 10
- 238000010200 validation analysis Methods 0.000 description 9
- 239000000470 constituent Substances 0.000 description 8
- 238000013461 design Methods 0.000 description 8
- 230000018109 developmental process Effects 0.000 description 8
- 239000011159 matrix material Substances 0.000 description 8
- 238000003860 storage Methods 0.000 description 8
- 230000008014 freezing Effects 0.000 description 7
- 238000007710 freezing Methods 0.000 description 7
- 238000013459 approach Methods 0.000 description 6
- 230000007423 decrease Effects 0.000 description 6
- 230000003278 mimic effect Effects 0.000 description 6
- 239000000047 product Substances 0.000 description 6
- 238000000638 solvent extraction Methods 0.000 description 6
- 238000001514 detection method Methods 0.000 description 5
- 230000007774 longterm Effects 0.000 description 5
- 230000002829 reductive effect Effects 0.000 description 5
- 230000002787 reinforcement Effects 0.000 description 5
- 238000013135 deep learning Methods 0.000 description 4
- 238000012217 deletion Methods 0.000 description 4
- 230000037430 deletion Effects 0.000 description 4
- 238000009826 distribution Methods 0.000 description 4
- 238000005516 engineering process Methods 0.000 description 4
- 230000003213 activating effect Effects 0.000 description 3
- 239000003795 chemical substances by application Substances 0.000 description 3
- 230000000593 degrading effect Effects 0.000 description 3
- 238000011156 evaluation Methods 0.000 description 3
- 230000007246 mechanism Effects 0.000 description 3
- 238000003909 pattern recognition Methods 0.000 description 3
- 239000002356 single layer Substances 0.000 description 3
- 238000007476 Maximum Likelihood Methods 0.000 description 2
- 230000001133 acceleration Effects 0.000 description 2
- 125000002015 acyclic group Chemical group 0.000 description 2
- 230000006978 adaptation Effects 0.000 description 2
- 230000004075 alteration Effects 0.000 description 2
- 230000015556 catabolic process Effects 0.000 description 2
- 238000004891 communication Methods 0.000 description 2
- 238000012937 correction Methods 0.000 description 2
- 230000003247 decreasing effect Effects 0.000 description 2
- 238000006731 degradation reaction Methods 0.000 description 2
- 230000007787 long-term memory Effects 0.000 description 2
- 229940050561 matrix product Drugs 0.000 description 2
- 239000000203 mixture Substances 0.000 description 2
- 238000012986 modification Methods 0.000 description 2
- 230000004048 modification Effects 0.000 description 2
- 238000005457 optimization Methods 0.000 description 2
- 230000002459 sustained effect Effects 0.000 description 2
- HLXHCNWEVQNNKA-UHFFFAOYSA-N 5-methoxy-2,3-dihydro-1h-inden-2-amine Chemical compound COC1=CC=C2CC(N)CC2=C1 HLXHCNWEVQNNKA-UHFFFAOYSA-N 0.000 description 1
- 238000012935 Averaging Methods 0.000 description 1
- 229920002430 Fibre-reinforced plastic Polymers 0.000 description 1
- AZFKQCNGMSSWDS-UHFFFAOYSA-N MCPA-thioethyl Chemical compound CCSC(=O)COC1=CC=C(Cl)C=C1C AZFKQCNGMSSWDS-UHFFFAOYSA-N 0.000 description 1
- 230000002776 aggregation Effects 0.000 description 1
- 238000004220 aggregation Methods 0.000 description 1
- 238000004458 analytical method Methods 0.000 description 1
- 238000013473 artificial intelligence Methods 0.000 description 1
- 230000003190 augmentative effect Effects 0.000 description 1
- 230000009286 beneficial effect Effects 0.000 description 1
- 230000005540 biological transmission Effects 0.000 description 1
- 238000004422 calculation algorithm Methods 0.000 description 1
- 238000012512 characterization method Methods 0.000 description 1
- 239000002131 composite material Substances 0.000 description 1
- 230000008094 contradictory effect Effects 0.000 description 1
- 230000001419 dependent effect Effects 0.000 description 1
- 238000011981 development test Methods 0.000 description 1
- 239000006185 dispersion Substances 0.000 description 1
- 230000009977 dual effect Effects 0.000 description 1
- 239000011151 fibre-reinforced plastic Substances 0.000 description 1
- 238000007667 floating Methods 0.000 description 1
- 230000008570 general process Effects 0.000 description 1
- 238000002955 isolation Methods 0.000 description 1
- 238000012804 iterative process Methods 0.000 description 1
- 238000002372 labelling Methods 0.000 description 1
- 238000004519 manufacturing process Methods 0.000 description 1
- 238000005192 partition Methods 0.000 description 1
- 238000011176 pooling Methods 0.000 description 1
- 230000003334 potential effect Effects 0.000 description 1
- 230000001902 propagating effect Effects 0.000 description 1
- 230000009467 reduction Effects 0.000 description 1
- 230000000246 remedial effect Effects 0.000 description 1
- 230000008521 reorganization Effects 0.000 description 1
- 230000003362 replicative effect Effects 0.000 description 1
- 238000011160 research Methods 0.000 description 1
- 230000004044 response Effects 0.000 description 1
- 239000010979 ruby Substances 0.000 description 1
- 229910001750 ruby Inorganic materials 0.000 description 1
- 230000011218 segmentation Effects 0.000 description 1
- 238000010187 selection method Methods 0.000 description 1
- 230000006403 short-term memory Effects 0.000 description 1
- 239000013589 supplement Substances 0.000 description 1
- 230000000153 supplemental effect Effects 0.000 description 1
- 238000010998 test method Methods 0.000 description 1
- 238000012546 transfer Methods 0.000 description 1
- 230000009466 transformation Effects 0.000 description 1
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06N—COMPUTING ARRANGEMENTS BASED ON SPECIFIC COMPUTATIONAL MODELS
- G06N3/00—Computing arrangements based on biological models
- G06N3/02—Neural networks
- G06N3/08—Learning methods
- G06N3/082—Learning methods modifying the architecture, e.g. adding, deleting or silencing nodes or connections
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F16/00—Information retrieval; Database structures therefor; File system structures therefor
- G06F16/90—Details of database functions independent of the retrieved data types
- G06F16/901—Indexing; Data structures therefor; Storage structures
- G06F16/9024—Graphs; Linked lists
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F18/00—Pattern recognition
- G06F18/20—Analysing
- G06F18/21—Design or setup of recognition systems or techniques; Extraction of features in feature space; Blind source separation
- G06F18/214—Generating training patterns; Bootstrap methods, e.g. bagging or boosting
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F18/00—Pattern recognition
- G06F18/20—Analysing
- G06F18/21—Design or setup of recognition systems or techniques; Extraction of features in feature space; Blind source separation
- G06F18/217—Validation; Performance evaluation; Active pattern learning techniques
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F18/00—Pattern recognition
- G06F18/20—Analysing
- G06F18/24—Classification techniques
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06N—COMPUTING ARRANGEMENTS BASED ON SPECIFIC COMPUTATIONAL MODELS
- G06N20/00—Machine learning
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06N—COMPUTING ARRANGEMENTS BASED ON SPECIFIC COMPUTATIONAL MODELS
- G06N20/00—Machine learning
- G06N20/20—Ensemble learning
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06N—COMPUTING ARRANGEMENTS BASED ON SPECIFIC COMPUTATIONAL MODELS
- G06N3/00—Computing arrangements based on biological models
- G06N3/02—Neural networks
- G06N3/04—Architecture, e.g. interconnection topology
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06N—COMPUTING ARRANGEMENTS BASED ON SPECIFIC COMPUTATIONAL MODELS
- G06N3/00—Computing arrangements based on biological models
- G06N3/02—Neural networks
- G06N3/04—Architecture, e.g. interconnection topology
- G06N3/045—Combinations of networks
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06N—COMPUTING ARRANGEMENTS BASED ON SPECIFIC COMPUTATIONAL MODELS
- G06N3/00—Computing arrangements based on biological models
- G06N3/02—Neural networks
- G06N3/08—Learning methods
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L67/00—Network arrangements or protocols for supporting network services or applications
- H04L67/14—Session management
- H04L67/142—Managing session states for stateless protocols; Signalling session states; State transitions; Keeping-state mechanisms
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F18/00—Pattern recognition
- G06F18/20—Analysing
- G06F18/21—Design or setup of recognition systems or techniques; Extraction of features in feature space; Blind source separation
- G06F18/214—Generating training patterns; Bootstrap methods, e.g. bagging or boosting
- G06F18/2148—Generating training patterns; Bootstrap methods, e.g. bagging or boosting characterised by the process organisation or structure, e.g. boosting cascade
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06N—COMPUTING ARRANGEMENTS BASED ON SPECIFIC COMPUTATIONAL MODELS
- G06N3/00—Computing arrangements based on biological models
- G06N3/02—Neural networks
- G06N3/04—Architecture, e.g. interconnection topology
- G06N3/048—Activation functions
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06N—COMPUTING ARRANGEMENTS BASED ON SPECIFIC COMPUTATIONAL MODELS
- G06N3/00—Computing arrangements based on biological models
- G06N3/02—Neural networks
- G06N3/08—Learning methods
- G06N3/084—Backpropagation, e.g. using gradient descent
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06N—COMPUTING ARRANGEMENTS BASED ON SPECIFIC COMPUTATIONAL MODELS
- G06N5/00—Computing arrangements using knowledge-based models
- G06N5/04—Inference or reasoning models
- G06N5/046—Forward inferencing; Production systems
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Physics & Mathematics (AREA)
- Data Mining & Analysis (AREA)
- General Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- Software Systems (AREA)
- Evolutionary Computation (AREA)
- Artificial Intelligence (AREA)
- Life Sciences & Earth Sciences (AREA)
- Computing Systems (AREA)
- Mathematical Physics (AREA)
- Computational Linguistics (AREA)
- Biophysics (AREA)
- General Health & Medical Sciences (AREA)
- Molecular Biology (AREA)
- Biomedical Technology (AREA)
- Health & Medical Sciences (AREA)
- Computer Vision & Pattern Recognition (AREA)
- Evolutionary Biology (AREA)
- Bioinformatics & Cheminformatics (AREA)
- Bioinformatics & Computational Biology (AREA)
- Medical Informatics (AREA)
- Databases & Information Systems (AREA)
- Computer Networks & Wireless Communication (AREA)
- Signal Processing (AREA)
- Machine Translation (AREA)
- Management, Administration, Business Operations System, And Electronic Commerce (AREA)
- Debugging And Monitoring (AREA)
- Feedback Control In General (AREA)
- Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
- Data Exchanges In Wide-Area Networks (AREA)
Abstract
一种用于控制节点网络的***和方法。该方法包括:估计由一对节点之间存在或不存在直接连接所引起的对目标的影响;以及至少部分地基于对影响的估计来改变节点网络的结构。节点网络包括严格偏序集、加权有向无环图、人工神经网络和/或分层前馈神经网络。
Description
相关申请的交叉引用
本申请要求以下两者的优先权,即(1)2018年1月30日提交的名称为“自组织偏序网络(SELF-ORGANIZING PARTIALLY ORDERED NETWORKS)”的美国临时专利申请第62/623,773号和(2)2018年3月23日提交的名称为“自组织偏序网络(SELF-ORGANIZING PARTIALLYORDERED NETWORKS)”的美国临时专利申请第62/647,085号,其中每一个均通过引用整体并入本文。
背景技术
三十多年来,人工神经网络代表了机器学习方面的领先技术之一。在过去的十年中,深度神经网络(即具有多层的网络)已经远远超过了其先前的性能,并导致了人工智能方面的许多显著改进。所公认的是,能够训练具有更多层网络的能力是这种性能方面显著提高最重要的因素之一。
然而,神经网络中存在的层越多,训练起来就越困难。在过去的五十年中,这一事实一直是神经网络在每一点上性能的主要限制,直到今天仍然如此。训练高而瘦的网络(即具有多层且每层只有相对较少的节点的网络)尤其困难。此类高而瘦的网络是所期望的,因为与较短、较宽的网络相比,它们在较少参数的情况下具有更大的表示能力。因此,它们可以学习更复杂的功能,而更少倾向于过度拟合训练数据。
即使具有适度层数的神经网络也需要非常大量的计算来进行训练。用于训练神经网络的标准算法是迭代随机梯度下降,其基于:对网络中每个节点的激活进行前馈计算,之后通过链式法则计算对梯度的估计,该链式法则是通过针对每个训练数据项向后通过神经网络而对偏导数进行反向传播来实现,同时针对每个小批量数据项迭代更新学***台期的趋势,即其中学习非常缓慢的训练间隔,偶尔伴有非常快速学习的短暂周期。在许多情况下,在这些相对无效的缓慢学习周期期间耗费绝大多数的时间和计算。
此外,随机梯度下降仅利用固定的指定体系结构来更新神经网络的参数。其无法改变该体系结构。
发明内容
在一个总体方面,本发明涉及用于控制包含一对节点的节点网络的计算机实现的***和方法。节点包含激活函数,其可以根据由目标函数定义的目标在数据集上进行评估。该方法包含:(a)估计由该对节点之间存在或不存在直接连接所引起的对目标的影响;以及(b)至少部分地基于对影响的估计来改变节点网络的结构。改变节点网络的结构可以包括在节点之间添加新的直接连接或删除节点之间预先存在的直接连接。节点网络包括严格偏序集、加权有向无环图、人工神经网络和/或分层前馈神经网络。
在另一个总体方面,本发明涉及以以下方式重组第一神经网络以生成第二神经网络的计算机实现的***和方法,即该方式使得相比于第一神经网络的性能,重组不会降低性能。第一神经网络可以包含多个节点,多个节点包含节点A和B,其中第一网络中的多个节点通过多个弧互连。该方法包含以下步骤中的至少一个:(a)按照由所述多个弧确定的有向图的传递闭包所定义的严格偏序,添加从节点A到节点B的弧,除非B小于A;或者(b)删除节点A和B之间的弧。
在另一个总体方面,本发明涉及重组第一神经网络以生成第二神经网络的另外其他计算机实现的***和方法。其他方法包含以下步骤中的至少一个:(a)将新节点添加到第一网络;或者(b)删除第一网络中的第一预先存在的节点,其中来自第一预先存在的节点的所有弧的权重为零。在这样的实施例中,添加新节点包含:(i)将从新节点到第一网络中预先存在的节点的所有弧初始化为权重为零;以及(ii)通过梯度下降更新来自新节点的所有弧的权重。
下文描述了其他发明和创新实施方式。通过下面的描述将显而易见的是,本申请的发明解决了上述问题和其他问题。
附图说明
在本文中通过示例并结合附图对本发明的各种实施例进行描述。
图1是训练具有严格偏序的自组织节点集的整个过程的流程图。
图2是迭代训练程序的流程图。
图3是显示其他图中所引入的程序和能力之间的关系的组织图。
图4是用于在缓慢学习间隔期间加速学习的一个程序的流程图。
图5是用于在缓慢学习间隔期间加速学习的第二程序的流程图。
图6是图5所示的学习加速程序的第二实施例的流程图。
图7是用于在缓慢学习间隔期间加速学习的第三程序的流程图。
图8是用于合并两个或更多个自组织偏序网络的过程的流程图。
图9是用于改变自组织网络以允许在与当前偏序相反的方向上进行连接的过程的流程图。
图10是用于使自组织偏序网络发展为能够模仿将违反原始网络中偏序的新连接的过程的流程图。
图11是用于减少机器学习***中的过度拟合的过程的流程图。
图12是用于减少机器学习***中的过度拟合的过程的第二变型的流程图。
图13是用于将机器学习***的集成合并到自组织网络中的过程的流程图。
图14是用于在自组织偏序网络中创建各种专用节点集的过程的流程图。
图15是在本发明的一些实施例中使用的分析和训练过程的流程图。
图16是用于训练机器学习***的子***以学习互补性知识的过程的流程图。
图17是实现自组织训练任意网络(包括递归网络和带周期的有向图)的过程的流程图。
图18是用于子任务上的多个网络的***的框图。
图19是用于将有向无环图映射到分层网络表示中的过程的流程图。
图20是扩充分层神经网络的过程的流程图。
图21A是布置在两层中的神经网络的图。
图21B是布置在四层中的具有与图21A相同的有向无环图的神经网络的图。
图21C是布置在六层中的具有与图21A相同的有向无环图的神经网络的图。
图22A是神经网络的图。
图22B是图22A的神经网络在两个节点之间的连接反向情况下的图。
图22C是按分层配置布置从图22B所得到的神经网络的图。
图23A是神经网络的图。
图23B是图23A的神经网络经历将线性同伴节点添加到非线性节点的过程的图。
图23C是图23A和图23B的神经网络经历将线性同伴节点添加到非线性节点的过程的图。
图24是诸如可以在本发明的各种例示性实施例中使用的计算机***的图。
图25是诸如可以在本发明的各种例示性实施例中使用的深前馈人工神经网络的图。
具体实施方式
本公开阐述了将按照与偏序集和/或有向图或网络相关联的术语讨论的各种图、流程图和/或示例。网络或有向图是一组被称为“节点”的元素,在该组有序节点对上具有二元关系。从概念上讲,网络或图是通过有向弧连接的节点集,其中当且仅当有序对(A,B)处于二元关系时,图中才存在从节点A到节点B的弧。在深度学习中,更一般地说,在人工神经网络领域中,有两种标准计算:(1)前馈激活和(2)估计的偏导数的反向传播。这些计算是基于网络的体系结构,尤其是基于有向弧实现的。前馈计算在每个节点计算进入该节点的所有有向弧的求和。反向传播在每个节点计算离开该节点的所有有向弧的求和。
然而,本公开的自组织功能基于节点集上的严格偏序的概念,因此讨论将使用偏序集的术语以及有向图的术语。为了避免前馈计算中的无限循环,通常将有向图限制为有向无环图(DAG),并且偏序为严格偏序。
如本文所使用,术语“节点网络”可以共同指代有向图、严格偏序集、神经网络(例如,深度神经网络)或分层前馈网络。深度神经网络是在输入层和输出层之间具有多个“内”层或“隐藏”层的人工神经网络。下面结合图25提供了有关前馈馈神经网络的更多细节。
本发明的自组织功能依据具有严格偏序的节点集来描述。严格偏序是在集合S上定义的二元关系<,使得关系<是非自反的和可传递的。严格偏序可以被认为是普通数字通常的“小于”关系的抽象数学概括。严格偏序具有以下特征:
1.A<A对所有A都是错误的(非自反性)。
2.如果A<B并且B<C,则A<C(传递性)。
合在一起,非自反性和传递性还暗示了不对称性:
3.如果A<B,则非B<A(不对称性)。
在一些实施例中,自组织功能将被推广到具有任意二元关系的网络。
为了在偏序集上实现机器学习,需要有一组相关联的可训练参数。这些相关联的参数可以包含与每个有序元素对(A,B)相关联的一组连接权重。权重可以仅在A<B时为非零。然而,零值变量仍然很重要,因为即使对于A<B为非真的对(A,B),目标函数的偏导数也可能为非零。评估这些偏导数是自组织过程的重要组成部分。
偏序集中的一个重要概念是覆盖的概念。如果A<B并且没有元素C使得A<C<B,则具有关系<的偏序的元素B被称为“覆盖”元素A。覆盖的概念对于理解和通过改变相关联的偏序管理自组织过程很重要。
如果A<B或B<A,则两个元素被称为是可比的。也就是说,可以将这两个元素进行比较以看出哪个元素小于另一个元素。每对都是可比的一组元素称为线性序或全序。这样的集合也称为链。
既不是A<B也不是B<A的两个元素A和B被称为“不可比”。偏序集的不可比元素的子集称为“反链”。反链的概念很重要,因为前馈计算和后向传播计算可以各自针对任何反链的所有元素并行计算。因此,反链是对分层前馈神经网络中层的偏序集的域的自然概括。在本讨论中,分层前馈神经网络被定义为有向无环图,其中节点被分为编号的层,因此如果n<m,则从m层中的节点A到n层中的节点B没有有向弧。此定义意味着没有节点连接到同一层中的任何其他节点,因此每一层中的所有节点都是不可比的。
每个分层前馈网络定义了唯一的有向无环图。然而,这种关系不是一对一的。对于每个有向无环图,可能有不止一种为层分配节点的方法。因此,在分层前馈网络的空间和有向无环图的空间之间存在区别。此外,这种区别具有影响。尽管随机梯度下降更新对于共享相同有向无环图的任何分层前馈网络都是等效的,但是例如并行计算的实施方式可能会有所不同。自组织学习的影响可能更大。对从有向图到分层网络的映射的选择可能会影响在自组织学习的后续步骤中将节点和弧添加到所需位置的难易程度。
例如,图21A示出了由节点A至F组成的分层前馈网络,其中节点A与节点D至F连接,节点B与节点D至F连接,并且节点C与节点E和F连接。应当注意,节点A、B和C是不可比的并由此形成第一反链,节点D、E和F也是不可比的并由此形成第二反链。在图21A中,前馈网络被分布为两层。然而,相同的节点组成和节点之间的连接也可以分布为三层、四层(如图21B所示)、五层或六层(如图21C所示)。此外,由该例示性有向无环图定义的网络中可能存在其他变型,因为与节点在图21A、21B和21C中所示相比,节点在各层之间可以不同地排列。所有这些示例定义了相同的有向无环图,因为它们具有相同的节点组成以及节点之间的相同关系。网络之间的唯一差别是将节点任意分配给层的配置。
本公开中的大部分讨论将依据有向无环图和对应的严格偏序来表示网络和网络上的计算。在大多数情况下,网络是否被组织或如何组织成层都没有关系。例外将是图19所示的方法,该方法将在可能与图20中相同的有向无环图和节点位置相对应的不同分层网络之间进行区分,其将与现有的一组层一致。
对于任何严格偏序,存在若干相关联的DAG。一个相关联的DAG是“覆盖图”,其中对于任何一对元素,从节点A到节点B存在有向边,使得B覆盖A。另一个相关联的DAG是其中对于每一对从A到B的存在有向边而使得A<B的图。该图被称为“传递闭包图”。顾名思义,有向图G的传递闭包图T通过以下方式得到,即每当存在节点B,添加从节点A到节点C的弧,使得(A,B)在DAG G中并且(B,C)在DAG G中,继续该过程,直到与所得的图相关联的关系是可传递的。与可传递的DAG相关联的关系是严格偏序的。具有相同的传递闭包图的任何两个DAG将具有相同的相关联的偏序。
自组织网络的过程可以包含添加和删除弧的步骤,并且自组织学习的过程可以包含评估由添加和删除弧而引起的网络的性能或响应的步骤。如果A<B的偏序<与G的传递闭包相关联,则在DAG G中无法从节点B向节点A添加弧。因此,规划和管理自组织DAG的过程从根本上与它们相关联的偏序有关。相关联的偏序的变化影响未来添加其他弧的能力。
对DAG的某些改变比其他改变更为重要。如果A<B或A和B是不可比的,则可以将A到B的弧添加到DAG G。如果A<B,则从A到B的弧在G的传递闭包中,并且添加该弧不会改变相关联的偏序。如果A和B是不可比的,则从A到B添加弧将改变偏序,并会影响未来添加其他弧的能力。
另一方面,当且仅当B覆盖A时,在DAG G中丢弃从A到B的弧才会改变相关联的偏序。对未来对DAG G作出改变的能力的影响可以依据其传递闭包图T、相关联的偏序<以及覆盖图而不是依据DAG G自身来更直接地表达。也就是说,所有具有相同传递闭包的有向无环图都可以视为自组织空间中同一点的表示。在共享相同传递闭包的DAG中,从一个到另一个的改变不会对自组织过程进行根本性的改变。换句话说,自组织过程中的点的特征在于偏序<而不是当前表示该偏序的特定DAG。
然而,DAG表示正在执行哪个前馈和反向传播计算,而后者继而又确定可以完成哪个连接权重训练更新。为了合理地决定是否应添加或删除从A到B的弧,必须计算目标相对于其连接权重的梯度,即使未在更新连接权重。为了进行前馈计算,必须将任何非零连接权重的弧包含在实现计算的DAG中。然而,这种连接权重可以是固定的或冻结的,也就是说,其权重参数不会被更新。因此,对于网络N或DAG G中的有序对(A,B)的集合,存在若干不同但相关的概念:
1.已连接(A→B):如果从A到B的有向弧在DAG G中,则称A连接到B,针对该组弧完成前馈和后向传播计算。
2.零/非零:仅当连接(A→B)在DAG中时,从A到B的连接的权重才可以为非零;然而,DAG中的一些连接可以具有零值的连接权重。
3.活动/非活动或未冻结/冻结:如果在迭代学习中正在更新其连接权重,则连接(A→B)处于活动状态。冻结的连接权重可以为零或非零。
4.受监测的:如果针对每个训练数据项收集并累积了多个数据项的数据,则称为节点<A,B>的有序对是受监测的。例如,如果<A,B>已连接并且连接处于活动状态,则将监测用于估计目标相对于与连接相关联的权重的偏导数的数据,并在每个小批量数据上进行累积。类似地,可以监测未连接的一对节点<A,B>来收集数据,以帮助决定是否应将从A到B的连接添加到网络。该示例和其他示例将结合图2和其他图更详细地进行讨论。
5.相关联的偏序:关系A<B与DAG G的传递闭合相关联。
6.A被B覆盖:A<B,并且没有C使得按照相关联的偏序<,A<C<B。
以上标识的每个概念在节点集上定义了与弧的方向相一致的二元关系。因此,这些概念中的每一个都定义了一个DAG。
为了讨论前馈和反向传播计算的目的,令DAG G为计算图:如果连接(A→B)处于活动状态或连接(A→B)的权重为非零,则有序对(A,B)在计算图G中。对于网络的前馈激活或反向传播,数据项所需的计算量与计算图中的有序对数成比例。
理所当然依据计算图G讨论了包括权重更新在内的计算。理所当然依据相关联的严格偏序和相关的传递闭包图讨论了自组织过程中对弧的添加和删除。
在前馈神经网络的标准实施方式中,包括由通过实时反向传播展开递归神经网络而得到的网络,该网络对应于计算图。网络中的所有弧均处于活动状态。未存在于该网络中的所有弧均处于非活动状态,它们的连接权重隐式为零,并且它们不受监测。因此,对于前馈神经网络的标准实施方式,以上列出的所有属性仅由计算图G的网络体系结构确定。该网络的体系结构在参数学习过程中是固定不变的。
需注意,在该标准实施方式中,不针对未在计算图中的任何连接计算梯度。因此,用于自组织的必要信息不可用。通常,在学习过程期间不会尝试改变体系结构。实际上,许多领先的深度学习框架要求在迭代学习过程开始之前指定、固定并编译网络体系结构。自组织过程恰恰相反。自组织的本质是改变网络体系结构。
重要的是认识到添加和删除弧和/或弧之间的节点可以如何改变网络体系结构。例如,图22A描绘了由节点A至D组成的前馈网络,其中有四个覆盖对:(A,C)、(A,D)、(B,C)和(B,D)。如果节点B和节点D之间的弧被删除并用以相反方向定向的新弧代替,如图22B中的虚线所描绘,则网络体系结构已经改变,使得现在仅有三个覆盖对:(A,D)、(B,C)和(D,B)。换句话说,除了(B,D)覆盖对被反向之外,(A,C)不再是覆盖对,因为现在不存在使得A<X<C的元素X不再为真。这是因为A现在也通过节点B和D连接到节点C(即X包括B和/或D)。例如,图22C可以直观地表示网络体系结构中的这种变化。
以下提供的是与影响自组织过程或计算和存储器要求的这些概念有关的属性的摘要列表:
1.如果B<A,则不能将从A到B的有向弧添加到DAG。
2.如果A<B,则可以将从A到B的有向弧添加到DAG,而无需改变相关联的偏序。其连接权重最初被设置为零,以便不改变计算。
3.如果A相对于B是不可比的,则从A到B或从B到A添加有向弧将改变相关联的偏序。
4.当且仅当弧的连接权重为零时,才可以从DAG中丢弃弧而不会改变计算。
5.当且仅当B不是A的覆盖时,才可以从DAG G丢弃有向弧(A→B),而不会改变相关联的偏序。
6.自组织过程的状态以相关联的偏序为特征。
7.冻结或解冻有向弧会影响更新计算,但不会影响自组织过程的状态。
8.连接权重为零或非零会影响前馈和反向传播计算,但不会影响自组织过程的状态。
9.如果将连接权重冻结为零,则需要较少的计算和存储器。
10.对于待更新的连接权重,必须监测其有向弧。
11.可以监测从节点A到节点B的任何有向弧。
除非另有明确说明,否则本公开中提到的所有偏序网络将具有严格偏序。主要的例外将在与图17相关的讨论中。短语“自组织严格偏序网络”可以缩写为首字母缩略SoPoNet。
偏序集表示非常有用,因为它使关系能够以较小的增量改变,可以在本地进行评估,从而可以通过梯度下降来完成自组织。如果网络限于一组更有限的体系结构(诸如分层神经网络),则这种属性不正确。
尽管可以为一个独立的SoPoNet自主完成包括自组织在内的训练,但是本文所述的***和方法的一些实施例使用了第二机器学习***,称为“学习教练”。学习教练不学习与第一机器学习***尝试学习的东西相同的东西。相反,学习教练学习充当“教练”所需要的知识。例如,学习教练学习识别第一学习***的学习进度比其应有的慢的情况,从而可以指导第一学习***采取加速学习过程的动作。从对图的讨论中可以看出,SoPoNet可以采取许多种的动作来加快学习过程。
在讨论下面的图之前,关于在对图的描述中使用的术语的一般性,应当注意一些事情。首先,在整个讨论中使用术语“节点”。利用诸如图形处理单元中的张量核心之类的专用硬件,便于将例如4个节点的块作为单个单元处理。正如两个单节点可以通过具有相关联权重的有向弧连接,m个节点的第一节点块可以通过与m×n权重矩阵相关联的有向弧与n个节点的第二节点块相连接。张量核心可以在单次操作中计算出4×4的矩阵乘积,因此将节点布置在每个最多4个节点的节点块中是非常方便且高效的。在对图的所有讨论中,术语“节点”可以被理解为还指代“节点块”,并且与弧相关联的“权重”可以被理解为还指代“权重矩阵”。还应当理解,在权重矩阵的情况下,弧权重为零的条件是指矩阵中所有值均为零的条件。
其次,“SoPoNet”应被理解为对分层深度神经网络的一般化,而非限制。前馈计算可行的任何神经网络都必须是DAG,以避免计算中的循环。对于任何DAG G,都有一个唯一的相关联的严格偏序,即G的传递闭包的偏序。因此,下图中描述的任何过程都可以作为对任何DAG的操作来完成,无论严格偏序是显式的还是隐式的。SoPoNet可以衍生自任何DAG,而DAG又可以表示任何的分层前馈神经网络。可以使用额外的操作来实现SoPoNet的自学习功能,但是这些额外的功能绝不限制SoPoNet进行常规分层前馈神经网络可用的任何操作的能力。
第三,“缓慢学习”是一个相对术语,取决于机器学习***用户的目标和问题的复杂性。用户可以选择任何标准来确定学习何时“缓慢”,并且可以使用学习教练来实现对条件的检测并根据情况的需要调整检测标准中的超参数。然而,重要的情况具有专用的术语,其在自组织网络中的解释与在固定网络中的解释有所不同。当当前参数值接近驻点时,就会出现持续的缓慢学习间隔的主要原因之一。该驻点可以是“鞍点”、“局部最小值”或“全局最小值”。在对图的讨论中,这些术语应解释为指代在其中自组织过程改变网络体系结构的任何操作之前,被限于固定网络的参数空间的目标值。在固定网络中,梯度下降将从最小值附近区域中的任何点收敛到“局部最小值”或“全局最小值”。如果不对参数值进行不连续的跳转改变,则迭代学习过程将无法脱离局部最小值。相比而言,SoPoNet的自组织过程改变网络体系结构并改变参数空间。此外,下图中所示的许多过程选择网络中的改变,以便保证某些新参数的导数不为零。这种属性使得能够基于未在固定网络的参数空间中的参数的导数进行可以从先前的固定网络的最小值(甚至是“全局最小值”)脱离的增量改变。也就是说,基于权重的导数,尚未成为网络一部分的弧的参数。
自组织偏序网络中的学习不同于固定网络中的梯度下降或随机梯度下降学习,因为其参数并不限于固定网络的参数空间。其与通过大步长或反复试验来改变网络的任何过程都不同,因为其为不在当前网络参数空间中的参数评估导数,并找到导数不为零的节点对。其可以在一般化的不断变化的参数空间中进行基于梯度的迭代学习。与大步长、反复试验的网络体系结构探索相比,其不会失去一般性,因为除了SoPoNet的自组织过程之外,也可以始终使用这种探索技术,如图18所示。
以下描述经由使用框图、流程图和/或示例来阐述计算机实现的设备和/或过程的各方面,这些框图、流程图和/或示例可以含有一个或多个功能和/或操作。如本文所使用,框图和流程图中的术语“框”是指通过计算机***执行的计算机实现的过程的步骤,该计算机***可以被实现为机器学习***或机器学习***的组件。根据与每个特定框相关联描述的功能,每个框可以被实现为机器学习***或非机器学习***。此外,每个框可以是指通过计算机实现的指令所体现的过程的多个步骤之一,该指令由计算机***(可以整体或部分地包括机器学习***)或执行所述步骤的单个计算机***(可以包括例如机器学习***)执行,其继而又与其他计算机***(可以包括例如其他机器学习***)连接以用于执行结合每个图或多个图所描述的总体过程。
图1是训练自组织网络的一般过程的流程图。为了便于计算,如框101所示,首先通过计算机***(诸如,图24中所示)将网络组织为节点集。
在框102中,计算机***对该节点集施加严格偏序。这还设置自组织过程的状态,并确定活动计算DAG中其弧将成为子集的传递闭包。
在框103中,计算机***为框102中施加的严格偏序确定覆盖对。在自组织过程中,将覆盖对与A<B但并非覆盖对的节点对(A,B)区别对待,因为删除非覆盖对的弧不改变相关联的严格偏序,但是删除覆盖对的弧确实会改变严格偏序。
在框104、105和106中,计算机***确定活动计算DAG G,以及哪个连接权重将为非零。在一些实施例中,节点A<B的有序对中仅有一小部分处于活动状态,并且DAG中的弧中仅有一小部分是用非零连接权重初始化的。
在框107中,计算机***选择将被监测的节点对(A,B)。该选择必须至少包括与活动计算DAG G中的非冻结有向弧相对应的所有有序对。
在框108中,计算机***执行迭代训练过程,该过程在图2中更详细地示出。
框110代表学***衡。在一些实施例中,学习教练用于以与图2和其他图相关联更详细地呈现的方式来帮助指导该过程。关于示例性学习教练的更多详细信息在(i)2017年9月18日提交的名称为“机器学习***的学习教练(LEARNING COACH FOR MACHINELEARNING SYSTEM)”的WO 2018/063840和(ii)2018年3月5日提交的名称为“机器学习***的学习教练(LEARNING COACH FOR MACHINE LEARNING SYSTEM)”的PCT申请WO 2018/175098中进行了描述,在此通过引用将两者全部内容并入本文中。
图2是迭代训练过程的流程图。该训练基于梯度下降或随机梯度下降,因此此流程图的过程类似于任何基于梯度下降的迭代训练。若干计算框表示与用于训练分层神经网络的流程图中的对应计算框基本相同的计算。计算实现上的最大差异是由于以下事实:即在自组织期间,关系<的反链在不断地改变。因此,无法在需要对网络进行预编译并且在迭代训练期间不得对其进行改变的任何学习功能或框架上实现该计算,诸如TensorFlow。
在框201至207中,计算机***基于通过以下步骤估计目标相对于每个连接权重的梯度来实现前馈反向传播并为随机梯度下降进行更新计算,即通过针对小批量中的每个训练数据项执行前馈激活计算,之后对目标的偏导数进行反向传播计算,在小批量上进行平均并用于对学习的参数、连接权重和节点偏差的随机梯度下降更新。针对每个小批量的前馈计算、反向传播计算和迭代更新对于训练神经网络领域的技术人员而言是公知的。
在框204中,计算机***计算每个节点的前馈激活。即,对于每个训练数据项m和对于每个节点A,计算机***计算act(A,m)。
除其他事项外,在框205中,计算机***针对每个训练数据项计算目标相对于每个节点B的输入的偏导数。也就是说,其计算
在框206中,计算机***确定小批量是否已完成。如果纪元还未完成,则过程返回至框203并如上所述进行。如果纪元已完成,则过程继续到框207。在框207中,计算机***更新权重参数估计。
在一些实施例中,除了正常的目标和正则项之外,目标J可以各种方式包括来自内部节点的激活目标的代价项以及来自软绑节点激活和连接权重值的正则化。这些其他目标将结合其他图进一步解释说明。
在框208和209中以及其他图中的各种实施例中使用了数量act(A,m)(即前馈激活)和δ(B,m)(即目标的偏导数)。
在框208至210中,计算机***基于引言中讨论的概念,针对具有严格偏序的集合执行特定于自组织学习过程的操作。
在框208中,计算机***决定是添加在当前网络的传递闭包中的连接,还是删除其节点对不是覆盖对的连接。
在一个实施例中,为了决定是否将从节点A到节点B连接添加到当前网络,计算机***对可以通过包括附加连接的经修改的网络实现的目标的预期改进进行估计。在一些实施例中,新连接的连接权重被初始化为零。在这些实施例中,按照这样初始化的经修改的网络中的目标的值与未经修改的网络中的目标的值相同。然后,通过随机梯度下降的迭代获得目标的改进,该迭代包括新连接的连接权重作为附加的学习参数。
在一个实施例中,目标的这种估计未来改进计算如下:VADC(A,B)=∑m[βρmact(A,m)δ(B,m)]/∑mρm+γ,其中VADC(A,B)是所估计的从节点A到节点B“添加直接连接的值”。在上述表达式中,β和γ是超参数,act(A,m)是前馈激活,δ(B,m)是目标相对于每个节点B的输入的偏导数,并且ρm是在本发明的一些实施例中使用的数据影响权重。数据项m的ρm值可以由学习教练220设置。m的求和是可以由***开发人员指定或可以由学习教练220确定和调整的数据集上的求和。在一些实施例中,如前一段所述,当新的连接被添加到网络时,其连接权重被初始化为零。如果对于所有m的ρm值为一,β的值为一,γ的值为零,并且在当前小批量中的数据项上求和,则以上所定义的VADC(A,B)与目标相对于针对新添加连接的新零值连接权重的偏导数的小批量估计相同。因此,VADC(A,B)是梯度下降更新计算的一般化。
然而,在一些实施例中,β的值大于一,并且可以在比当前小批量更大的数据集上求和。例如,可以在整个批量的全部训练数据上求和。超参数β和γ的值、m的范围以及每个m的ρm值可以由***开发人员设置,或者可以由学习教练220确定。在各种实施例中,学习教练220可以根据训练中的当前情况为这些超参数设置不同的值。在一些实施例中,用于VADC(A,B)的求和中的数据项m可以包含已经被挑出并且与训练数据和验证数据两者均不相交的开发数据。
在与图4至7相关联的各种实施例中,学习教练220检测到缓慢学习的情况,使得对于大量的迭代更新,估计的梯度的大小很小。这种情况意味着在未来的许多迭代更新过程中,VADC(A,B)的估计中的表达式act(A,m)δ(B,m)的值可能不会发生很大变化,因为网络其余部分的学习参数变化不大。因此,目标值的总变化将在多个更新上以相似的增量累积,并且β的值被设置成估计由于在这些未来更新的过程中从节点A到节点B的新连接而导致的目标总改进。类似地,与图7、8、10、13、15和16相关联的各种实施例涉及其中将第二网络添加到第一网络或合并网络集合的过程。在这些情况下,可以将合并的网络集中的每个网络预先训练为收敛或接近收敛,这再次意味着act(A,m)和δ(B,m)的值对于多个未来的迭代更新不会发生很大变化。因此,在与以上所提到的图相关联的各种实施例中,超参数β的值应大于1。更一般地,在与图2相关联的过程中,学习教练220控制该过程何时从框207循环回到框202,以及替代地,该过程何时进行到框208。在其中学习教练220推迟前进到框208直到从框201到框207的循环中学习参数的迭代更新已经收敛或达到当前网络体系结构的驻点的情况下,学习教练220可以为β设置更高的值b,如上文针对其他图中出现的情况所讨论的。
γ的值是由***设计者设置或由学习教练220基于学习教练220在类似情况下通过估计节点对<x,y>的值VADC(x,y)的先验经验接受的训练而设置的额外校正项。在一些实施例中,这种先验经验还可用于训练学习教练220以选择β的值。
在一些实施例中,学习教练220可以将m的每个值的ρm视为单独的超参数。例如,当数据项m被用作识别目标时,学习教练220可以针对存在错误或关闭调用的数据项m使用较大的ρm值。另一方面,学习教练220可以针对学习教练220检测到数据项m是异常值的证据或数据项m正在导致训练过度拟合训练数据从而对新数据引起性能降低的证据的数据项m使用较小的ρm值。在一些实施例中,学习教练220可以使用诸如结合图11或12描述的程序来共同优化值ρm的向量。
在框208中,计算机***还为具有从A到B的现有直接连接的节点对<A,B>决定是否删除该连接。对于该决定,计算机***估计CDC(A,B),即从A到B“删除连接的代价”。函数CDC(A,B)仅针对存在直接连接的有序对<A,B>进行定义。在估计CDC(A,B)时,与针对新连接估计VADC(A,B)类似,估计由未来更新而错过目标改进机会所产生的代价,但其值为负。另外,如果连接权重wA,B的当前值为非零,则将有效连接权重设置为零的估计代价还有一个附加的负因子。在一个实施例中,从A到B“删除连接的代价”可以表示为:CDC(A,B)=-(∑m[ρmact(A,m)δ(B,m)]/∑mρm)*(β+|wA,B|)-γ。在上述表达式中,wA,B是节点A与节点B之间连接的权重。在一些实施例中,通过使用正则化(诸如L1正则化)来减少或消除与|wA,B|成比例的额外因子,以趋向于驱动连接权重wA,B的大小朝向零。在一些实施例中,学习教练220可以针对与学习教练220可能想要删除的连接相关联的连接权重赋予正则化更高的系数。
尽管未明确示出,但是框208还决定是冻结弧的权重参数还是激活冻结的权重。冻结或解冻权重的考虑因素与以当前严格偏序在A<B时为节点对(A,B)创建或删除弧的考虑因素相似,但并不完全相同。
所有非零权重和所有非冻结的连接权重必须被包括在DAG G中。与非覆盖对相关联的任何冻结的零值连接权重都可以从DAG中丢弃,而无需改变计算或相关联的偏序。
可以冻结零或非零的连接权重,以节省计算和存储器或减少自由度的数量从而避免或减少过度拟合。可以解冻非零连接权重以允许权重衰减从而将其驱动为零。可以冻结零值连接权重以将其保持为零,从而使得其相关联的弧适合在自组织过程中被丢弃。这些决定可以通过固定规则或在学习教练220的指导下做出。
作为创建新弧的机会的另一个示例,如以上所提到的,合并两个或更多个网络的过程通常将大多数潜在的交叉连接初始化为非活动状态。这种情况类似于上述的初始训练情况,除了新弧甚至可能不在初始合并网络的传递闭包中,因此框209和框208都将被涉及。
在这两种情况下,拥有易于创建新弧并使之活跃的策略和设计控制可能是一个好的战略。这种战略的一个实施例是在每个更新周期引入指定数量的新弧。例如,可以主要基于目标偏导数的大小来选择这些新弧。然而,还需要考虑其他考虑因素和权衡取舍。这种战略可以通过由超参数控制的许多设计规则来实现。在一个实施例中,这些超参数可以由学习教练220灵活地进行控制。
该学习教练220是第二机器学习***,其学习模拟超参数对将相关联的学习战略应用于第一机器学习***的学习过程的有效性的影响。另外,学习教练220可以对第一机器学习***的状态及其学习进度快慢进行额外的测量,以及学习优化超参数以获得最佳的最终性能并尽可能快地学习最佳的网络体系结构和权重参数,同时在这些双重目标之间进行一定程度的指定权衡取舍。
在其中增加附加弧可能是有益的另一种情况是学习中的性能改善相对较慢的情况,特别是当该缓慢的性能改善是由大小较小的偏导数伴随而来(可能引起)的时。在这种情况下,一种可能的策略是使在先前的训练中处于非活动状态并因此尚未被训练到低量值梯度的点的新参数处于活动状态。如有必要,可以通过添加网络中以前并不存在的弧来使这些新的权重参数可用。因此,这种策略可以应用于(i)冻结和解冻或者(ii)添加和删除不改变偏序的弧。
然而,该策略涉及权衡取舍。将某参数添加到一组经过有效训练的参数中会使该参数未来对于该策略不再可用。因此,该策略的一个实施例逐渐引入新弧和新的活动参数。每个更新周期的最佳引入速率甚至可能小于一。
还需要用于删除弧和冻结弧权重的基于规则和基于超参数的控制。
在一个实施例中,这些规则和控制考虑了添加弧和删除弧之间的不对称性。对于A<B的节点对(A,B),可以在不改变相关联的严格偏序的情况下在任何时候添加弧。此外,如果将弧权重初始化为零,则可以在不对前馈计算中计算的节点激活进行任何改变的情况下添加弧,并且因此性能不会发生变化,因此性能也不会下降。可以确保不会出现性能下降,甚至不需要通过对训练数据进行性能测试来验证。
另一方面,无法从网络安全地丢弃权重为非零的弧。这造成了自组织网络添加或删除弧的能力的不对称性。因此,针对创建和删除弧的规则需要补偿这种不对称性。
例如,取决于已经被删除的弧的数量,可以添加新弧的速率可能受到限制。作为另一个示例,除了仅添加具有最大量值目标函数偏导数的弧之外,还可以存在阈值,除非其目标函数的大小超过该阈值,否则不允许添加任何新的弧。该阈值可以通过固定规则或由学习教练220来调整,以帮助将弧创建和删除的速率与针对当前情况的战略进行匹配。
权重的冻结具有一些不同的结果,并且出于与删除弧相比不同的原因而进行。权重可以被冻结为零以减少计算量和记忆的量。它也可以被冻结为零以延迟对删除弧的决定或实施。然而,权重也可以被冻结为非零值,这不会节省太多计算,并且会干扰弧的删除。然而,冻结非零权重的弧会减少自由度的数量,这降低网络过度拟合训练数据的能力。这是一种合理的策略,特别是在已经对权重进行了训练而使其达到似乎令人满意的值的情况下,尽管没有办法确定该结论。
当结合框209一起考虑框208时,同时在短期和长期目标之间具有更复杂的平衡的情况下,在战略和策略上会出现其他权衡取舍。在框209处,计算机***决定是否以偏序<进行任何改变,如果是,则决定要作出哪些改变。
如上所述,添加权重被初始化为零的弧决不会降低性能。实际上,通过随后的梯度下降训练,除了在驻点之外,它总是可以提高性能。而且,具有大目标函数梯度的选择规则保证了添加了新弧的网络将不会处于驻点。如前所述,在添加弧以立即改进性能与将其保存以备以后使用(当可能会产生更大影响时)之间需要权衡取舍。
考虑框209使得短期目标和长期目标之间的权衡取舍具有更大的后果并且更加复杂。可以从网络中丢弃权重为零的从节点A到节点B的弧,而并不会改变计算。性能方面虽然没有直接增益,但是有潜在的长期益处。潜在的长期益处包括以下若干种不同的潜在益处:(1)作为上述策略的扩展的益处,其中将弧从主动训练中移除足够长的时间,以便可以再次将其作为新参数引入;(2)降低自由度的数量的益处;以及(3)潜在地减少侧链数量的益处,也许使更多的对变为覆盖对并开启接下来要进行讨论的机会。
丢弃从节点A到节点B(其中B覆盖A)的弧会改变相关联的偏序。虽然没有立即提高性能,但是可能会创造新的机会,也许包括立即增加以前未被允许的弧的机会。最容易评估的潜在的立即的新机会是创建从B到A的弧的机会。当丢弃弧时,只有在当从A到B的弧被丢弃时A和B变为不可比的情况下,才可以得到创建反向弧的机会。按照定义,如果不存在节点C使得A<C<B,则A和B变为不可比。也就是说,在B曾是A的覆盖的情况下。
通过添加从B到A的反向弧的估计增益或损失是通过添加新的反向连接的估计增益与通过删除现有连接而引起的损失之和,即VADC(B,A)+CDC(A,B),其中第二项为负值。可以通过从规则的计算中减去所指出的项来计算该量。在决定丢弃从A到B的弧之前,可以在上一个更新周期期间计算该量以评估反向连接的可能性。也可以为B<A但B并非A的覆盖的节点对(A,B)计算该量,在这种情况下,可能需要应用如图9和10所示的技术来实现反向连接的机会。
当计算机在框209中在节点A和节点B之间添加弧时(其中A和B不可比),计算机***创建新的覆盖对。由于A和B是不可比的,因此新弧可以沿从A到B或从B到A的任一方向。如通过立即增益所测量的,在VADC(A,B)和VADC(B,A)之间进行比较。应当注意,尽管这两个量都表示两个相同节点之间的方向相反的弧,但它们并非简单地是符号相反的相同量。它们的大小可能完全不同,并且它们的符号可能相同或不同。特别地,一个的大小可能比另一个大得多。为了降低代价函数(其为训练过程的目标),通常具有较大量值的方向是所优选的,除非为某个长期目标选择了另一方向,这也许是在学习教练220的指导下。
其中两个节点A和B不可比的这种情况并不罕见。实际上,分层前馈神经网络中同一层中的任何两个节点都是不可比的。网络无法将它们进行比较,因为任何一个相比于另一个都不在更高或更低的层中。而且,当多个网络正被合并时,最初并没有交叉连接,因此第一网络中的任何节点A相对于第二网络中的任何节点B都是不可比的。
尽管框208和框209两者都是通过在自组织学习过程下添加和删除网络元素来改变和优化网络的体系结构的实例,但是在某种意义上框208中的学习从根本上不同于框209和210中的学习。对于有向无环图G,考虑其传递闭包T和T的权重参数向量集。其为凸集。T的任何子图的权重参数向量也在此集中,其中一些参数被设置为零。在框208中添加和删除弧不会改变图T的全局最小值的值。原则上,仅通过其参数空间中的梯度下降就可以找到图T的全局最小值,而无需任何自组织过程。然后,弧的添加和删除以及零和非零权重的冻结和解冻仅可以看作是用来加速学习、脱离缓慢学习区域的策略。这些技术可以有助于找到T的全局最小值,但不会改变它。
另一方面,如果两个网络与不同的偏序相关联,则它们的权重参数向量集的并集不是凸的。参数向量是具有A<B的一对节点A和B的第一网络和B<A的第二网络的线性内插的参数向量,通常不表示有向无环图。在一组不共享相同传递闭包的网络中寻找全局最小值从根本上是一项不同的任务。权重参数向量集是仅在各个网络的集合的极值的几个点处相交的集合的并集。通过局部过程(诸如梯度下降)找到整体的全局最小值,需要显式地从一个凸集切换到另一个凸集。也就是说,它要求显式地添加或删除覆盖对的弧,并且通过这么做,从一个偏序切换到不同的偏序。框208和框209之间的这种根本差别是,可以相对于传递闭包和相关联的严格偏序,而不是相对于共享相同传递闭包的各个有向图,最佳地理解自组织过程,如框208所示。
在框210中,计算机***将对全局最小值的搜索扩展到具有不同节点数的网络。这种探索需要其他技术,这些技术在图3和后续图中进行了详细说明。
在框210中,计算机***将节点添加到网络。在框210中,计算机***也可以丢弃节点,但是该过程更加复杂并且需要单独的讨论。在许多其他图中更详细地讨论与框210有关的技术。图3至6和14讨论主要旨在添加单个节点或少量节点的技术。图7、8、10、13、15和16讨论主要旨在组合两个或更多个网络的技术。这些图中有一些同时讨论了两种技术。
安全地将节点或网络添加到现有网络是用于添加弧的技术的扩展。通过将从新节点到原始网络中的节点的所有有向弧初始化为具有零的权重值,可以在不改变现有网络的当前计算的情况下将任意数量的节点添加到现有原始网络。然后,这些权重的任何改变都是通过梯度下降来完成的,因此扩展网络在训练数据上的性能将总是至少与原始网络的性能一样。
与添加和删除弧相比,添加和删除节点甚至更加不对称。如上所解释,可以将新节点或整个网络安全地添加到现有网络,而无需任何特殊条件。从这个意义上讲,添加一个或多个节点比添加从节点A到节点B添的弧更容易,这要求A<B或A和B是不可比的。此外,添加节点不会像添加新的覆盖对那样多地限制自组织过程。扩展网络被初始化为完美地模仿原始网络的计算,并且其可以模仿该网络中的任何改变。
另一方面,向网络添加一个或多个节点总是涉及潜在的权衡取舍,至少在计算量上涉及潜在的权衡取舍。添加节点的决定应在学***台进行管理一样大的网络。在那种情况下,可以采用一种非常积极的战略,即在任何合理的机会下添加额外的节点并且从不丢弃节点。机会合理的标准可以是灵活的,并且可以基于设计者的判断,或者可以由学习教练控制。
由于任何扩展的网络都可以模仿其原始网络,因此对添加节点没有绝对限制。在一个可能的实施例中,可以随机选择添加节点的机会。然而,某些添加节点的战略可能比其他战略更有效,因为它们可以更快地得到训练到给定性能水平的网络体系结构。在一些实施例中,针对添加节点的合理机会的标准是基于与以上列出的一个或多个图(诸如,图3至8、10和/或13至16)相关联的标准。
另一方面,在不改变计算的情况下丢弃节点或节点的集合要求来自要删除的节点的所有有向弧的权重均为零。通过每次一个地将权重驱动为零(例如通过L1正则化)并在其权重变为零时丢弃弧,可以逐步实现此条件。然而,这是一个麻烦的过程。
用于丢弃节点的另一实施例是不顾缩减的网络无法精确地复制原始网络的计算的事实,而简单地丢弃节点。该实施例可以被实现为探索性过程,包括作为强化学习的实例,丢弃和向网络添加节点,有可能其中强化学习被实现为学习教练220的一部分。
又另一实施例是训练一网络,其中一个或多个节点被丢弃以模仿原始网络。训练第二网络以模仿第一网络是机器学习的一种特殊情况,其可以与任何两个机器学习***一起使用。机器学习***不需要是自组织偏序网络或任何其他特定技术。两个***彼此不需要使用相同的技术。第二***不需要是第一***的受限版本。第二***的功能可以是第一***的功能的超集,也可以是适当的子集。
模仿训练由在一组训练数据上训练第二***以作出与第一***相同的分类组成,该组训练数据包括可用于第一***的所有带标记的和未标记的数据以及可以由一个或多个生成器创建或者通过可用的标记和未标记数据的随机扰动、变换和变形创建的无限量的其他数据。在这种特殊的模仿训练任务中,不需要对数据进行标记,因为第二***的训练标记是第一***做出的分类,而与“正确”标记的值无关,无论它们是否已知。
因此,用于在SoPoNet中丢弃节点的一个实施例是一种试验-测试方法:计算机***按照任何选定的标准选择要丢弃的节点,然后训练缩减的网络尽可能好地模仿原始的较大网络。基于代价/性能或其他目标,计算机***采用试验缩减的网络或执行另一试验。
为了逻辑完整性,包括了对用于丢弃节点的实施例的讨论。通常,主要的实施例将在从相对保守地添加节点到相对激进地添加节点的范围内,其中很少或并不尝试丢弃节点。
框210完成针对每个小批量进行的操作。如果在框210中没有计算机***要进行的改变,则框209可以完成小批量。如果框210或209没有变化,则框208可以完成小批量。在每种情况下,控制返回至框211。
在框211中,计算机***继续下一个小批量,或者,如果该过程在纪元结束时,则将控制传递到框212。
在框212中,计算机***检查以查看是否满足停止标准。如果是,则其终止。如果否,则开始下一个纪元的处理。停止标准包括达到纪元数的指定限制、达到指定的目标错误率或收敛到驻点。
图3是指示本文中讨论的各种技术如何彼此链接或如何可以彼此结合使用以创建或实现特定功能的框图。图3中的箭头指示特定技术(如框301至303所指示的)如何为节点网络提供特定功能(如框304、305、307和308所指示的),这些功能继而可以进行组合以为节点网络提供新的功能或附加功能(如框306和309所指示的)。总而言之,图3提供了一种框架,其中考虑并比较了本文所述的各种技术,例如将一个或多个节点添加到现有的SoPoNet中,如结合图2的框210所讨论的。
结合图4至16所描述的所有技术的最终目的是构建和训练具有更好性能的网络。即使没有框210,图2仍然表示一种可以用于SoPoNet针对给定数量的节点学习最佳性能的体系结构的强大学习机制。图4至16中的大多数技术都涉及将节点添加到某网络或将两个或更多个网络组合成更大的网络。这些是框210的示例性实施方式实现。
然而,这些技术不应仅被视为用来构建更大的网络的方式。对于这些技术中的许多技术而言,主要目的是克服那些减慢学习过程或限制在训练大型网络中实现的性能的问题。
许多技术专门解决其中在现有网络中学习进度非常缓慢的情况。这种缓慢学习是非常普遍的现象。这是在具有许多参数的复杂***中通过梯度下降进行优化的自然结果。它并非训练人工神经网络或SoPoNet所特有的。每当目标的某些偏导数具有显著的大小时,梯度下降能很好地取得进展。实际上,这意味着梯度下降也能很好地在参数空间中找到其中所有偏导数的大小都较小的区域。
图4至16的技术提供了从这些区域脱离的手段。这种属性可以被视为是自组织偏序网络的优点之一的扩展。缓慢学习区域也出现在通过一组固定的弧训练网络中的权重参数过程中。SoPoNet添加弧的能力提供了一种从这些缓慢学习区域脱离的手段。添加节点提供了一种从缓慢学习区域脱离的附加手段。
图4至16的技术还提供了解决可能在训练期间检测到的其他问题的手段。因此,在框401、501、601和701处,计算机***还可以检测除缓慢学习之外的其他标准。由计算机***在这些框处检测到的标准示例包括:(1)检测到对于指定数量的迭代更新,目标的估计梯度的大小小于指定值;(2)在开发期间检测到训练数据上的性能优于为验证测试而预留的一组开发数据集上的性能,这表明过度拟合,尤其是当训练数据上的性能和开发数据的性能的差异随着额外的训练会增大时;(3)检测到***在多个训练纪元上在给定的训练数据项上持续出错;以及(4)检测到***的性能比另一***或其他***的集成的性能差,特别是当性能差异大于指定量时。
需注意,对于简单的***,单个***的性能通常可能明显比集成的性能差。然而,对于具有许多层的大型神经网络,这种状况可能指示网络体系结构或训练过程中存在问题。因此,在一些实施例中,图4至16中用于检测问题的标准可以包括准则(4)以及与集成的比较。在一些实施例中的校正动作,例如图7和8所示的那些校正动作,合并了两个或更多个网络,从而使得正被训练的***的能力可以相比于集成的能力。
重要的是需注意,缓慢学习的区域包括接近局部或全局最小值的区域。关于这点,“全局”最小值仅相对于定义的有限参数空间是最佳的。对于具有一组固定弧的网络,连接权重的参数空间中的全局最小值不一定是具有附加弧的网络的参数空间中的全局最小值。实际上,如果量VADC(A,B)为非零,则意味着当前点甚至不是包括新弧的权重参数的参数空间中的局部最小值。图4至16的所有技术将此属性扩展到如图2的框210中添加节点的情况。也就是说,任何用于通过从缓慢学习区域脱离来加速学习的技术,当应用于从仅相对于先前有限参数空间而言是最小值的局部或全局最小值的区域脱离时,还将成为一种改善最终性能的技术。
图3提供了用于组织和理解后面图中的一些技术的框架。框301表示具有严格偏序的自组织节点集,如结合图1和2所描述的。框302表示用于通过添加一个或少量附加节点来加速网络中的学***的路径的关键知识。这些技术结合图4至6进行描述。框303表示用于构建具有互补性知识或具有产生互补性学习能力的不同体系结构的网络的集合的技术。这些技术基于具有严格偏序的自组织网络能够表示组合网络并通过自动构建交叉连接来整合各个部分的能力。这些技术结合图7、8和15进行描述。
图3的其余部分例示说明了这些技术在进行组合时相互使彼此成为可能并创建新功能的几种方式。已经结合图1和图2描述了由框301表示的自组织偏序网络。它们改变其网络配置的能力意味着它们的训练不太可能陷入局部最小值,这是因为通过改变体系结构,它们可以脱离可能是固定体系结构中局部最小值的参数设置。然而,它们仍可能具有较长的缓慢学***台期。这种现象并非特定于自组织偏序网络训练。其为通常应用于优化大型复杂***时梯度下降的一种现象。就其本质而言,梯度下降非常局部且短视。梯度仅测量当前点周围的无穷小区域。
例如,梯度下降无法领会添加单个节点或少量节点可能会提供少量但关键的知识,而这将允许快速进展到更高的性能水平。另一方面,框302中的技术可以用单个节点或少量节点表示这样的小片知识。通常利用一次性学习,这种知识可以快速进行训练。
框302中的技术不能自己构建大型网络。然而,如到框305的链接所指示的,它们具有能够将知识提供给能够学习大型网络并且能够安全地合并以添加到网络的附加结构形式提供的新知识的任何***的能力。如从框301到框304的链接所指示的,自组织偏序集恰好具有此能力,其中“安全”合并新知识意味着在保证性能不降低的情况下构建或训练合并新结构的网络。如框306所指示的,框304和305中能力的组合提供了用于快速有效训练大型网络的手段。图4至7中例示说明了能够添加知识以加速缓慢学习阶段的能力的示例。
框303表示的技术可以利用互补性知识来构建网络的集合,但是除了诸如集合之类的简单技术之外,这些技术缺乏集成这些网络的能力。然而,如到框308的链接所指示的,这些具有互补性知识的网络提供了组件,如果能很好进行整合,该组件可以迅速组装成强大的更大的网络。如从框301到框307的链接所指示的,自组织偏序网络提供了所需的网络整合能力。如到框309的链接所指示的,这些功能共同提供了从互补性组件快速组装大型网络并将其整合的能力。
图4示出了由图3的框302表示的技术之一。在框401中,计算机***检测缓慢学习的条件或由设计规则或由学习教练410指定的一些其他标准。框401分别类似于图5、6和7中的框501、601和701。在这些框的每个中,计算机***启动将更多个节点中的一个添加到网络的过程。在其中当前进度非常缓慢的情况下加速学习是向网络添加节点的原因之一。框401、501和601各自具有特定于其相应程序的附加标准。结合框701,给出了对确定缓慢学习情况的更详细的讨论。
图4的技术在其潜在的应用范围上特别广泛。它可以在任何时间应用于任何节点,因此检测缓慢学习的条件并非是必需的。为了表明这种广泛的适用性,将在返回到框401和402之前讨论框404和403。
给定网络中的任何节点,在框404中,计算机***创建由该节点初始化的两个新节点。这两个新节点被添加到网络中,并且原始节点也将保留。这两个新节点的输入权重被初始化为与原始节点的输入权重相同,并且输出权重被初始化为零。由于原始节点仍然存在,因此这种初始化意味着扩展的网络最初计算与原始网络相同的激活。
在框403的帮助下,在框404中,计算机***然后将两个节点训练成彼此不同,并且与创建它们的原始节点不同。在框403中,计算机***基于目标函数相对于节点的激活的导数的符号将数据分为两组。在该规则的变化的情况下,各种实施例都是可能的。例如,可以将数据划分成三个子集,包括其中导数大小接近于零的一个子集。作为另一示例,可以一起分析两个或更多个节点,并且通过根据梯度向量的方向的聚类对数据进行聚类来对数据进行划分。当数据被划分成多于两个的子集时,可以创建多于两个的新节点。然而,在示例性实施例中,数据基于目标相对于单个节点的激活的导数的符号被简单地划分成两个子集。
在框404中,计算机***或单独的学习教练随后在特殊的训练周期中监督训练,在此期间,网络的其余部分可能被冻结或可以正常地进行训练,但是新节点中的每个仅分别针对两个数据子集中的仅一个接收反向传播信息。由于选择的数据具有带不同符号的偏导数,因此两个节点的输入权重将沿不同方向训练。在一个实施例中,在这种特殊训练周期期间,反向传播不传播回到输入弧之外的新节点。可以在这种特殊训练周期期间训练离开两个新节点的有向弧,从而允许通过每个新节点反向传播到其输入权重。然而,在一个实施例中,在特殊训练周期结束之后,将这些传出有向弧的权重重新初始化为零。该实施例确保了此时扩展的网络仍进行与原始网络相同的计算。此时,带有新节点的扩展网络将恢复正常训练。
现在返回到框401,可以看出框403和404的过程将创建两个新节点,该两个新节点计算并表示通常对于原始网络不可用的信息。如果目标函数相对于原始节点的激活的导数在整个数据上或代表性子集(诸如小批量)上求平均值时大小较小,而同时对于至少一些个别数据示例导数的大小较大,则尤其如此。
在缓慢学习的情况下,梯度的大小较小,因此目标相对于任何节点的偏导数的大小较小。因此,在框402中,计算机***可以针对目标函数相对于节点的激活的偏导数的一些范数选择一个或多个具有较大值的节点,其被表示为具有针对代表性集中的每个数据示例的分量。例如,L1将使两个新节点之一的导数的绝对值加上另一个新节点的导数的绝对值的求和最大化。因此,扩展网络的训练将很快开始,而新节点将迅速训练为彼此不同,并且与原始节点不同。
然而,在框403和404中,计算机***可以在训练中的任何时间将相似的过程应用于任何节点。在所有情况下,这两个节点将训练成彼此不同并且与原始节点不同,除了极少数情况之外,在这些极少数情况中该节点的偏导数对于所有数据示例为零,或者导数的符号对于所有数据示例均相同。
如果导数的符号对于所有数据示例均相同,则原始节点将反向传播较大大小的导数,因此可能无需引入新的节点。尽管如此,仍然可以通过使框403将数据划分为非零值(诸如导数值的中位数或均值)周围来应用该技术。
在框405中,计算机***在扩展网络上恢复正常的迭代训练。
图5示出了本发明的一个方面,其处理其中网络已经学会了将一组数据示例与其他示例进行区分但不是彼此区分的情况。与其他示例区分开的该组数据示例将被称为同类群组。如果同类群组的所有成员都属于同一分类类别,则没有问题。否则,如果将捆绑计为半错误,则无法在同类群组中进行区分总是会导致至少一个错误。
这种情况的特征在于,网络朝向权重参数收敛,其中对于同类群组中的每个示例,输出激活集中于同类群组中存在的类别,但是输出激活未收敛到零或一。替代地,输出激活朝向mc/N收敛,其中N是同类群组中数据示例的数量,并且mc是同类群组中具有类别c的示例的数量。
框501类似于框401,除了在框501中,计算机***可以检测到学习缓慢,或者可以直接检测上述同类群组的特征输出激活。如果在框501中,计算机***没有直接检测到未能被区分的同类群组,则在框502中,计算机***寻找这种同类群组以及寻找该同类群组中正在被误分类的数据示例。例如,在框502中,计算机***可以寻找其输出激活收敛到值m/n的数据示例,其中m≤n/2。这种情况意味着***正在收敛到数据示例被误分类的点,并且该情况具有其成员无法被区分的同类群组的特征。例如,在框502中,对于同类群组中的数据示例,计算机***可以检查其他输出类别的输出激活是否也收敛到1/n的倍数的值。
在框503中,计算机***找到同类群组的另一个成员。例如,它可能会找到另一数据示例,其输出激活收敛到与第一数据示例相同的值。第一数据示例可以在多于一个的相同大小的同类群组中,但是这没有关系,因为在框503中,计算机***仅需要找到那些同类群组中的任何一个中的另一个成员。
在框504中,计算机***创建区分两个数据示例的节点。例如,它可以设置其输入权重和偏差以在两个数据示例之间的垂直平分线处形成线性辨别器。权重的这种初始设置被称为“一次性学习”,这是因为初始权重仅取决于两个数据示例,并且已经足以区分这两个示例。然后将偏差调整为该节点所需的任何非线性激活函数所需的值。在一个实施例中,用于这种线性辨别的输入值将是网络的输入值或这些输入值的子集。然而,取决于由设计者为了由学习教练510设置的规则,这种新的两示例辨别器的输入值可以是网络中任何一组节点的激活。
在框505中,计算机***通过添加权重初始化为零的一个或多个传出弧,将由框504创建的辨别节点添加到网络。需注意,如果新节点A仅从网络的输入层接收输入,则它相对于该网络中的任何其他节点B将仍然是不可比的。因此,在框505处,计算机***可以例如选择其VADC(A,B)的大小较大的一个或多个节点B。另选地,它可以基于由设计规则或由学习教练510设置的标准将新节点连接到任何其他节点B。
在框506中,计算机***随后恢复正常的迭代训练。需注意,***将立即学习至少对在框502中找到的数据示例的错误进行校正,因此保证了性能得到改善,并且学习过程将避免学习缓慢的情况。
图6示出了另一种类型的一次性学习。然而,图6中的技术仅需要出了分类错误的一个数据示例,因此它基本上可以应用于任何情况。在框601中,计算机***检测缓慢学习的条件或简单地检测由设计规则或由学习教练610设置的错误示例或任何其他标准。如果在框601中尚未完成,则在框602中,计算机***选择在其上正在出现分类错误的数据示例。
在框603中,计算机***基于所选的数据示例构建模板模型。在一个实施例中,模板模型将是参数模型,从而其参数可以首先通过在框602或601中选择的数据示例进行估计。在一些实施例中,模板模型还将使得当更多数据示例被分配为模型的实例时可以更新其参数。在一些实施例中,模板模型还能够拒绝作为在目标集合之外的示例而给出的数据示例。
模板模型可以是整体上表示为网络中单个节点的复杂模型,或者它可以是执行等效计算或与其近似的节点的网络。例如,模板模型可以是其中数据示例是通过高斯分布生成的。高斯分布均值的初始估计只是数据示例本身。协方差矩阵的初始估计可以是单位矩阵或由设计规则或由学习教练610指定的任何其他初始矩阵。高斯模型可以被限制为具有对角协方差矩阵或具有除主对角线之外具有有限数量的非零对角线的协方差矩阵或逆协方差矩阵。
例如,可以通过对高斯分布的最大似然估计来对模型进行更新。通过将高斯概率密度函数中的负指数值和可训练偏差项提供给具有指数激活函数的节点,可以将高斯模型集成到网络中,从而使得该节点的输出在0至1的范围内,其中值1用于给定示例。例如,激活函数的形式为其中T为温度参数,它可以是可训练的参数,或者是由学习教练610控制的超参数。
可以从任何其他指数族中选择模板模型的概率分布。
作为另一个示例,模型可以基于任何距离度量,其中距离值作为具有负指数激活函数的节点的输入。
其他实施例可以利用节点的网络来实现类似的计算。例如,网络可以具有第一层,其中对于每个输入变量有一个节点。每个第一层节点k可以具有来自其指定的输入变量xk和偏差bk的输入。节点激活函数可以是绝对差的某种量度,例如(xk-bk)2或|xk-bk|。然后,该第一层的输出可以被连接到某一节点,该节点将计算第一层的输出的加权求和,并且该节点具有带有偏差以及任选地带有温度参数或超参数的负指数激活函数。该网络的权重和偏差将通过正常的梯度下降训练来训练。
在这些示例中的任何一个中,存在某一节点,其具有值在0到1的范围内的激活函数并且具有使得对于所选择的数据示例节点的激活为1的初始参数。在框604中,计算机***将该节点以初始权重为零的传出弧添加到网络中。如同图5的框505一样,传出弧可以基于VADC(A,B)的大小连接到节点。在框605中,计算机***恢复迭代训练。
图7示出了将新知识添加到在缓慢学习条件下并且是由图3中的框303表示的技术的示例的网络的原理的更一般性的实施方式。然而,图7所示的程序比图4、5和6所示的程序更为复杂,并且需要更多的资源,因此将更详细地讨论对缓慢学习或用于触发图7的过程的其他标准的检测。
缓慢学习的条件仅在其持续较长一段时间(即许多更新操作)时才有意义。然而,通过等待以看出其持续多长时间来检测缓慢学习的条件并没有什么价值。因此,重要的是要有能够更快地检测到存在潜在的持续缓慢学习条件的标准。
首先考虑图5的同类群组示例。在没有干预的情况下,梯度下降更新将继续朝向mc/N形式的输出激活收敛。这种缓慢学习的条件将无限期地持续下去,并且几乎没有价值。在没有易被混淆的同类群组的能说明问题的激活模式的情况下,由于其他原因也可能出现类似条件。那么当由未知原因引起时如何检测这种缓慢无效学习的条件?
学习缓慢的一个明显指标是梯度的大小较小,尽管这提出了“小”是多小而什么样的大小为“正常”的问题?在一个实施例中,训练学习教练710以确定在小和正常之间的阈值,但是在一些其他实施例中也可以使用固定阈值。
不仅学习缓慢而且该条件将持续的一个指标是,梯度的大小不仅较小而且大小持续减小。
当从一个更新到另一个更新比较梯度的大小时,可能有必要考虑真实梯度与梯度的小批量估计之间的区别。可以使用基于小批量的随机梯度下降代替整个批量训练,这主要是因为小批量训练允许每个纪元进行许多更新。如果学习非常缓慢,则诊断和脱离缓慢学习的条件可能比在每个纪元进行更多无用的更新更为重要。如果仅将更新收敛到局部最小值,那么进行更多更新必定无用。
在一个实施例中,在满足由学习教练710设置的标准的任何缓慢学习的条件下,图7所示的过程增大小批量大小。
在整个批量训练的情况下,梯度估计是精确的,而不是随机估计。因此,如果步长大小足够小,则可以保证对于每次更新都会提高性能(由于浮点数的精度有限,因此会有一些例外),而不是根据每个小批量中的特定数据示例而随机波动。
当收敛到局部或全局最小值时,随着***接近最小值,梯度的大小通常也持续减小。相反,在具有小量值梯度且缓慢学***台期上,梯度的大小保持较小,但不会持续减小。随着***接***台期的边缘,梯度的大小通常开始增大。在平台期的边缘处,通常会有非常快速学习的间隔。
当***在这样的学***台期的边缘,但是避免任何会导致学***台期边缘的程序。例如,仅将学习速率参数增加到一个较高的值会提升直接跳过性能更好的区域的危险。
为了平衡这些目标,存在若干脱离缓慢学习的条件的手段:
1.解冻并激活冻结的连接权重(框208);
2.添加从A到B的有向弧,其中按当前偏序A<B(框208);
3.添加从A到B的有向弧,其中A与B不可比(框209);
4.将连接权重驱动为零并丢弃弧,以使添加从节点A到节点B的弧成为可能,尽管事实上按当前偏序B<A;
5.划分节点并基于数据划分添加两个新节点(图4的框210);
6.添加同类群组辨别节点(图5的框210);
7.添加模板节点(图6的框210);或者
8.为子任务添加网络(图7的框210)。
在确定采取哪种纠正动作时,学习教练710的各种实施例除了当前梯度的大小以及其增大或减小的速率之外,还应用其他信息。例如,学习教练可以具有性能目标。例如,它可能知道已经在类似任务上实现的学习速率。对于基准任务,它可能知道任务的当前记录,并试图以任何可能的方式超过该记录。相反,它可能知道由理想上昂贵的网络实现的任务的性能,并且正试图通过较小的网络来达到该性能。
另外,这些潜在行动中大多数都有估计给定动作的益处的手段。例如,对于动作(1)至(4),可以计算目标相对于从A到B的潜在弧的连接权重的导数。
可以由偏导数向量的范数的大小来估计节点划分的益处。可以针对网络中的每个节点计算该范数,以找到具有最大范数的节点。
对于动作(6)和(7),纠正特定错误。
在框702至704中,将由计算机***来选择子任务,训练网络来执行该任务,并且该网络将与当前网络合并。这些动作可以被视为和评估为(6)和(7)动作的扩展和一般化。
因此,在一个实施例中,在框702中,计算机***选择辨别任务,该辨别任务将纠正一个或多个错误或将提供似乎使纠正错误成为可能的信息。例如,如果在由某些其他机器学习***正确分类的数据示例上出了错误,则在框702中,计算机***可以选择尝试在那些数据示例上匹配其他机器学习***的性能的任务。
在框703中,计算机***在所选择的子任务上训练SoPoNet。在框704和705中,计算机***合并新网络和原始网络、选择初始连接弧,并将它们的连接权重初始化为零。该初始连接弧是基于VADC(A,N)的值进行选择的。最初,所有交叉连接都将从新网络中的节点到原始网络中的节点,因为新网络尚未连接到具有非零权重的输出,因此其尚无有用的反向传播信息。一旦新网络具有非零权重(将其直接或间接连接到输出节点),也可以将有向弧从原始网络添加到新网络中的节点。在框706中,计算机***恢复对扩展网络的迭代训练。
图8示出了由图3中的框303表示的另一种技术。在框801中,计算机***获得两个或更多个要合并的网络。这些可能是已经各自经过训练能完成完整分类任务的网络。特别地,它们可以是分类网络的集成的成员。特别是在合并某一集成的情况下,一次将合并多于两个的网络。因此,图8所示的过程具有与图7所示的过程不同的背景,并且在创建合并网络之间的交叉连接时使用不同的标准。
将一个网络中的节点与另一网络中的节点交叉连接的潜在有向弧的评估是对称的。方向导数可以在任一方向上进行评估。最初,要合并的网络独立工作,没有交叉连接。传递闭包图仅是单独的传递闭包图的并集。
任何交叉连接都可以向传递闭包添加许多弧。也就是说,添加单个交叉连接可以将许多节点对添加到偏序,并且由此限制那些节点对在相反方向上具有连接。因此,应当仔细地选择初始交叉连接。
在框802中,计算机***创建偏序集,该偏序集由在框801中所选择的两个或更多个网络中的节点集的并集组成。最初,从一个网络到另一个网络不存在覆盖,但是其中一个网络中节点的每对配对都被视为潜在的覆盖或交叉连接。隐式地,所有连接权重都被初始化为零并且处于非活动状态。
在框803中,计算机***通过与结合图2的框208至210所描述的过程类似的过程来评估潜在的新覆盖。在框803中,计算机***起初可以保守地添加新的连接,以允许自组织过程自由和灵活地发现最佳配置。例如,如果连接的稀疏性由配额强加,则在框803处,计算机***不会立即填充该配额。另选地,在框803中,计算机***最初在梯度向量积上施加较高的数值阈值,以用于接受从一个子网到另一个子网的候选新覆盖。逐渐地,在框803中,计算机***在合并的网络之间创建更多的覆盖并激活它们的连接权重。
在框804中,计算机***在合并网络的初始学习期间使用相对较快的权重衰减,同样其目标在于避免隐式地过早地做出坚定的配置决定。在框805中,计算机***恢复正常的迭代训练,其中框803最初继续较为保守,但逐渐调整以适应正常的训练条件。
除了框803和804的保守方法之外,如框812所指示的,学习教练810可以积极地管理探索过程。例如,学习教练810可以基于强化学习811实施探索。学习教练810可以利用其先验经验来评估通过选择在被合并的网络之间创建某些覆盖或交叉连接而得到的可能的未来性能。它可以具有用于创建或可能删除覆盖的策略功能,并将Q学习应用于探索过程。
通常,将自组织偏序网络中的最长链的长度与分层神经网络中的层数进行比较是不公平的,但是图8所示的技术存在一种特殊情况,对其这样的比较似乎是公平的。
在这种特殊情况下,要合并的网络是同一网络的N个副本。作为这种情况的特殊实例,要复制和合并的网络是具有K个隐藏层的常规分层神经网络。在合并之前,令N个副本作为集成进行训练。令组成网络的输出节点仍连接到输出目标值。通过将N个副本一次一个堆叠在上一个堆叠之上来构建新的网络。不管它们在堆叠中有多高,令前一组成网络的输入节点仍然连接到输入数据。作为交叉连接,令每个神经网络输出层旁边的层连接到下一个神经网络输入层正上方的层,并使用零值权重进行初始化。另外,将每个组成神经网络的输出层连接到组合网络,该组合网络将输出激活与诸如集成投票规则之类的计算相结合。由于尚未在非相邻的隐藏层之间添加任何连接,因此将这种网络计为具有N*K个隐藏层似乎是公平的。
组合网络的初始性能将与集成的性能匹配。梯度下降训练和自组织过程在组成网络之间以及在每个组成网络的层之间添加附加连接的能力将使学习过程能够继续改善组合网络的性能。此过程允许使用任意大数量的层成功地训练网络,而不会降低训练数据的性能,并且可能会显著提高性能。实际上,其被初始化为匹配最佳集成的性能。此外,该过程可以再次应用于这些堆叠网络的集成。
这种堆叠集成的成员的示例仅仅是图8所示过程的一种特殊情况。其也是图14所示过程的一种特殊情况。尽管只是一种特殊情况,但值得被强调,这是因为其例示说明了除了轻松构建和训练非常深的SoPoNet网络的能力之外的功能。由于网络体系结构是任意的严格偏序,因此,集成的每个成员的输出节点都可以直接连接到合并网络的输出,即使它们是堆叠的,并且除了堆叠顶部的集成成员之外,其他前一集成成员的输出节点是合并网络中的内部节点。然而,在SoPoNet中,任何节点都可以连接到任何更高的层,包括直接连接到输出目标代价函数。每个集成成员中输入上方的第一层还接收来自输入的直接连接,尽管在堆叠中这些层是内部层。通常,任何SoPoNet中的任何节点都可以直接连接到输出、输入或输入和输出两者。
图5至8是将一个或多个节点的网络合并到原始网络中的所有实例,从而向原始网络提供所添加的网络在单独的学习过程中获得的可能是在不同的训练数据上的知识。原始网络体系结构的这些改变使其学习和整合这种新知识的速度比原始网络利用其原始体系结构通过梯度下降可以学习新知识的速度要快得多。在其中原始网络已经被训练到其误差代价函数的全局最小值的情况下,这种新知识是原始体系结构将根本无法学习到的知识。
图9示出了一种过程,通过该过程可以创建与当前定义的二元关系<的方向相反的新覆盖。在框901中,计算机***检测一对节点a和b,使得a<b,但是对于其,相反方向的VADC(b,a)具有较大的大小。可以通过学习教练910来指导对这样的节点对的搜索以使其更加有效。较大大小的反向导数表明,可以通过创建a覆盖b的新覆盖来降低误差代价目标。然而,由于当前a<b,如果不先通过删除一些现有的覆盖来改变关系<,就不可能有这样的覆盖。
在框902中,计算机***找到从a到b的所有链。所有这些链必须被打破。如果这些链中的任何一条保留,则关系a<b将仍然成立。在框903中,计算机***搜索链以找到在所有链中是否存在链接。如果存在这样的链接,则其将是覆盖对,并且删除一个覆盖将使a和b不可比,从而使创建a覆盖b的新连接成为可能。在学习教练910的指导下,在框903中,计算机***决定尝试在框905中将一个或多个连接的权重减小为零,或者在框907中,利用结合图17所述的程序来展开网络。框903具有两个分支。该过程可以通过之后的一个或两个分支从框903继续。在一个实施例中,如果未找到弱链接,则之后是到框907的分支。
在框904中,计算机***尝试将弱链接的连接权重驱动为零。其使用L1和L2正则化,并且比正常代价系数大。当权重变为零时,计算机***将改变关系<以断开链接。由于从a到b的所有链都通过该链接,因此a和b变成不可比的。
在框905中,计算机***随后改变关系<从而添加a作为b的覆盖。从b到a的连接的连接权重最初为零,但未冻结。如在框901中检测到的,此连接权重具有较大大小的梯度,因此,当在框906中恢复训练时,连接权重本身将迅速进行训练以具有较大的大小。
在缓慢学习的情况下,除了图4至8中所示的程序之外,还可以使用从901到906的程序来加速学习。
无论在框903中是否存在弱链接,都可以遵循从903到907的分支。在框907中,计算机***可以使用一种非常不同的方法,称为“展开”,其在图17中更详细地描述。基本上,展开由制作网络的许多副本,并将计数值t与每个副本相关联组成。然后,将网络中由于a=b或a<b而被阻断的从节点b到节点a的任何潜在连接替代地被创建为从网络中计数值为t的b的副本b[t]到网络中t+1的a的副本a[t+1]的连接。在由原始网络的所有副本组成的网络上,偏序被定义成使得对于所有节点x和y,x[t]<y[t+1]。因此,可以从编号较低的网络中的任何节点到编号较高的网络中的任何节点建立连接。
在框908中,计算机***针对所有t值建立从b[t]到a[t+1]的连接。在框909中,计算机***在展开的网络上恢复迭代训练。
图10示出了另一种程序以用于当由于a<b而导致覆盖b被阻挡时,通过a覆盖b的潜在覆盖来利用较大大小梯度。图10中的程序使用两种方法中的一种或两种来构建b被a覆盖的替代。在框1001中,计算机***检测到对a<b,其中如果a能够覆盖b,则针对潜在的连接权重的偏导数具有较大的大小。学习教练1010可以指导对这样的对的搜索和选择,以使搜索和选择更加有效。学习教练1010还指导选择是否继续框1002或框1006的过程。可以使用任一个过程。
在框1002中,计算机***构建并训练网络来模仿b。以上结合图2的框210讨论了构建网络来模仿另一个网络的过程,在这种情况下,该网络是在节点b中达到顶点的子网。训练一个网络来模仿另一个网络的过程是一种特殊良性的网络训练情况。它允许无限量的训练数据,并且按照定义,过度拟合不是问题。
用来模仿节点b的网络是从头开始构建的,或者可以使用网络中偏序<小于a或与a不可比的任何节点。即,该网络被构建成满足框1003中所需的条件。然后,在框1005中,计算机***修改关系<以包括模仿由a覆盖b的覆盖。
相对于激活向量act(b,m)的大小,VADC(a,b)的大小较大的条件是,激活向量act(b,m)与向量δ(a,m)具有较大的正相关或负相关。
在框1006中,计算机***构建网络N,其输出节点被训练成与节点a的导数向量δ(a,m)具有高度相关性。需注意,是网络输出节点的激活模仿了a的导数向量,而不是其导数。还需注意,这种激活模仿的是a的导数向量δ(a,m),这与模仿自身完全不同。在框1007中,计算机***将模仿a的导数的网络以偏序<放置在a下方。在框1008中,计算机***用a覆盖N的输出节点。在框1009中,计算机***随后恢复迭代训练。
需注意,即使没有识别出节点b,框1006至1008的过程也可以完成。然而,没有一种简单的方法可以知道构建其输出与任意导数向量很好地相关的网络有多难。框1001中的节点b提供了一种存在性证明,即没有b下方的子网那么复杂的网络可以至少与b一样好地产生与a的导数相关的输出。如果没有更多有前途的替代方案,那么在没有特定b的情况下使用框1006至1008的程序总是可以作为最后的选择。
图11是用于校正过度拟合的程序的流程图。在框1101中,计算机***获得许多训练集和许多验证集,它们可以在学习教练1110的指导下来选择。为了框1101的目的,训练集可以是可用训练数据的相对小的子集。训练集可以彼此重叠,因此有成倍的潜在训练集可供选择。
在框1102中,计算机***在许多对T和V上运行训练和性能评估,其中T是训练集,并且V是不相交的验证集。在框1103中,计算机***运行具有自变量x的多变量回归,表明在训练集中存在或不存在训练数据示例i,并且针对所有的对T和V测量了性能。
在框1104中,计算机***评估训练集中示例i的存在是否使验证数据的性能更好或更差。如果x的回归系数为正,并且裕度考虑了置信区间的大小,则可以将i用作具有可接受低风险过度拟合的训练示例。如果x的回归系数为负,则表明使用i会趋向于导致过度拟合。如果它明显为负,考虑到置信区间,那么i应该被拒绝并且不能用作训练示例(1105)。如果回归系数过于接近零,或者如果置信区间太宽,则在框1104中,计算机***得出“不确定”的结论,并且控制返回到框1102以收集更多的性能数据。在一个示例性实施例中,每个数据示例具有例如在零和一之间的权重。在该实施例中,在框1105中,计算机***仅减小了示例i的权重。当对数据示例进行加权时,针对每个小批量计算的更新(例如,图2的框207)将每个数据示例的梯度估计值乘以其权重,将加权估计值相加,然后除以小批量的数据权重的求和。在一个实施例中,该程序可以通过循环回到框1102来迭代地更新每个数据权重。在另一个实施例中,可以在框1101中的多个训练集和验证集对的过程中完成对数据权重的迭代更新。
如果验证数据的量有限,则可能难以决定是否在图11的框1104中的测试中包括数据示例。在许多情况下,标记数据的量有限,并且可能有必要将大多数数据用作训练数据,因此验证数据的量可能非常有限。然而,在这些情况中的许多情况下,可能会有大量的未标记数据。图12描述了一种使用未标记数据进行验证测试的可能方法。
图12是使用未标记数据进行验证或开发测试以及校正过度拟合的程序的流程图。其基于在名称为“使用苏格拉底式代理的鲁棒图案识别***和方法(ROBUST PATTERNRECOGNITION SYSTEM AND METHOD USING SOCRATIC AGENTS)”的美国专利第8,014,591号中所公开的技术,其通过引用整体并入本文。如该专利所述,学习教练1210充当苏格拉底式代理。通常,在验证数据上评估性能需要标记数据,以便性能可以被量化。美国专利第8,014,591号和图12的技术不需要性能的定量测量,而仅需要统计上显著的性能差异。值得注意的是,可以使用未标记的验证或开发数据来累积这种统计学上显著的性能差异。
需要留出一些标记数据以训练单独的识别器1201。在框1201中训练的识别器不需要非常准确。如果它更准确,则其将提供更有效的测试,但是即使它不如要测试的***准确,也将提供统计上有效的测试结果。
在框1202中,计算机***从框1220获得未标记数据,并使用在框1201中训练的识别器对其进行标记。这些标记中会有错误,并且将不知道哪些标记有错误。然而,如果来自框1201的识别器的表现胜于偶然性,则标记和正确答案之间将存在正相关。
在框1203中,计算机***测试零假设,即在使用包括特定数据示例i的数据集进行训练与使用不包括该数据示例的数据集进行训练之间在性能上没有差异。在框1204中,计算机***询问是否有足够的证据表明要在指定的统计显著性水平上拒绝零假设。如果没有足够的证据来拒绝零假设,则控制返回到框1202以收集更多数据。由于对验证数据的标记过程中存在错误,因此需要更多的测试才能达到统计显著性水平。然而,零假设被错误拒绝的概率由实验者为零假设设定的显著性水平确定,并且不取决于在框1201中训练的识别器的错误率。
如果零假设被拒绝从而支持示例i使性能变差的结论,则在框1205中,计算机***从训练数据中丢弃示例i。在一个示例性实施例中,每个数据示例具有例如在零和一之间的权重。在该实施例中,框1205仅减小了示例i的权重。当对数据示例进行加权时,针对每个小批量计算的更新(例如,在图2的框207中)将每个数据示例的梯度估计值乘以其权重,将加权估计值相加,然后除以小批量的数据权重的求和。这个更保守的实施例需要较少的保守置信区间来拒绝零假设。如果零假设被拒绝从而支持示例i改善了性能的结论,则示例i被保留,控制前进到框1206以恢复迭代训练。如果没有足够的证据表明要拒绝零假设,则控制返回到框1202以收集更多数据。
图11的过程和图12的过程都朝向减少对训练数据的过度拟合。然而,它们在某些方面有很大的不同。图11的过程需要许多验证集和许多训练集。因此,其可能需要相对大量的标记数据。相反,图12的过程可以将未标记数据用于开发测试,并且需要相对少量的标记数据。
图13是用于将集成成员合并到单个较大网络中的过程的流程图。令A和B为具有严格偏序的集。然后,可以通过使a和b对于A中a和B中b的所有对都是不可比的来在集的并集C上定义新的严格偏序。作为自组织偏序网络,C被称为A和B的简单合并。作为自组织偏序网络,C随后可以被训练以添加连接A中的要素和B中的要素的覆盖,反之亦然。新的连接被称为交叉连接。
图13所示的过程与图8所示的过程类似,不同之处在于,图13具体假定要合并的网络已经是集成,并且图13添加了框1304、1305和1306以增强合并的集成的联合性能。任选地,可以将这些添加项添加到图8中使用的过程中。
在框1301中,计算机***形成作为集成成员的网络的简单合并。在一个实施例中,学习教练1310指导合并过程,例如,如结合其他附图所述的那样,指导自组织过程。
在框1302中,计算机***添加组合网络。组合网络被初始化为至少匹配集成成员投票规则的性能。在一个实施例中,组合网络具有额外的未提交节点,并且可以学习更复杂的功能,并且可以训练集合成员一起工作以共同优化其目标。按照组合网络的严格偏序,组合网络中的某些节点可以被初始化为或可以学习为<成员网络中的某些节点。
在框1303中,计算机***直接向以前是独立的集成成员的子网的以前的输出节点提供目标。这并非分层神经网络的标准做法,并且需要一些附加说明。对于组合网络,以前的输出节点不再是偏序<关系中的最大节点。这意味着它们从更高序的节点接收组合网络目标函数的偏导数的反向传播。以前的输出节点还继续接收作为独立集成成员作为输出节点接收的目标信息,并且可以使用该信息来计算要添加到其代价函数中的项。
通常,自组织偏序网络中的任何节点都可以接收输出目标或输入数据。输出和输入数据分别不限于最大和最小节点。接收目标信息的任何非最大节点还具有超参数作为乘法权重因子,它们分别对从目标计算的代价函数项和按偏序较高的节点反向传播的代价函数项进行加权。
在框1304中,计算机***将其他输出节点添加到以前是集成的成员网络的组成子网中。这些附加节点的目的是为组合网络提供反向传播目标的手段,以使组成子网能够计算附加信息并使附加节点能够对该信息进行编码。例如,为了在组成网络的输出不一致时将其组合,具有附加信息有助于组合网络对每个不一致的表决进行置信度估计。组成网络可以帮助提供这种信息。为此目的,组合网络通过反向传播通过添加到组成网络中的附加节点来训练组成网络以计算有用的信息。接收此反向传播以用于附加信息的节点可以是内部节点;它们无需是组成子网内的最大节点。
在框1305中,计算机***反向传播联合性能目标函数。需注意,当被单独训练时,集成成员未被训练成共同优化此类函数。它们各自单独地优化其自己的目标。由于组合网络可以被初始化为模拟先前由集成成员和任何投票规则或联合决策机制完成的计算,因此对联合目标进行梯度下降训练将改善组合性能。
在框1306中,计算机***反向传播组成网络的目标,以计算和提供用于置信度估计的信息,如结合框1304所描述的。自组织偏序组合网络也可以学习重新配置自身,并且在框1306中,计算机***可以反向传播证明出对目标有用的任何其他东西。在学习教练1310的指导下,通过计算机***在框1304中添加的附加输出节点还可以被训练成计算其他有用信息。
在框1307中,计算机***恢复迭代训练。
图14示出了可以添加到自组织网络的各种各样的专用节点和子网。在框1401中,计算机***创建这些节点类型中的一种或多种。在一个实施例中,在框1406中,计算机***将专用节点、节点集或子网中的每一个放置在网络中的一个或多个位置处。在一个实施例中,在框1406中,在网络中的一个或多个位置处放置专用节点、节点集或子网可以在学习教练1410的指导下发生。在框1407中,计算机***恢复迭代训练。
图14中的每个其他框都介绍了一种专用节点、节点集或子网的示例,将单独地讨论它们中的每一个。例如,在框1405中,计算机***可以创建辨别节点,如结合图5所描述的。在框1403中,计算机***可以创建模板节点或网络,如结合图6所描述的。
然而,图14的过程具有与图5或图6不同的更一般的应用背景。可以在任何时间将图14中所示的任何类型的节点或节点集添加到基础网络中,以提供基础网络在没有专用节点、节点集或子网的情况下可能不具备的网络属性和功能。
例如,即使在权重参数训练开始之前,也可以将这些专用节点、节点集和子网中的一个或多个添加到网络体系结构。在这样的实施例中,图14的过程甚至适用于不进行自组织的固定网络。
作为另一示例,这些专用节点和节点集中的一个或多个可以在任何时间安全地添加到任何自组织网络,而不仅是在缓慢学习的间隔期间。如在对节点类型的单独讨论中可以看出,除了它们可以在缓慢学习的情况下可以加速学习的事实之外,它们各自具有可以提高网络整体性能的独特属性。
每个专用属性可以由多于一种的专用节点类型拥有,因此,讨论是以专用属性并参考实现它们的节点类型来组织的。
知识节点集和子网:在此讨论中,“知识”是指与从输入向量到输出类别的映射有关的信息,该信息通过与基础网络的迭代训练分开的训练而获取的。图5中的辨别器节点的一次性学习是这种外部获取的知识的示例,图6中的一次性模板学习也是如此。
然而,框1405的辨别器节点集及其训练比图5的一次性学习更具一般性。在框1405中,辨别器可以是在单独训练的网络中的任何一组输出节点。在一些实施例中,整个网络可以被添加到基础网络,这可以是图8而非图5的过程的实例。在其他实施例中,与输出节点相对应的节点集被添加到基础网络。然后将这些添加的节点软捆绑到单独网络的输出节点,如将结合图15所描述的。
类似地,在其他框中的任何一个中创建的节点、节点集或子网可以表示在其被单独训练情况下的知识节点集。对基础网络的任何添加都可以赋予它额外的表示能力。知识节点集的添加具有额外的优势,即可以大幅减少训练的时间和代价。在一些实施例中,该代价可以忽略不计,因为已经出于某些其他目的进行了单独的训练。在其他实施例中,单独的训练是作为较小的网络并且任选地在较小的训练集合上完成的,因此与在基础网络内的子网中训练相同知识相比,需要更少的时间和计算。
知识节点集在以偏序放置在网络中的输入节点或输出节点附近,或等效地在最小或最大节点附近时特别有用。最小节点附近的知识节点提供了可以被按偏序较高的所有节点使用。最大节点附近的知识节点允许按偏序较低的所有节点接收反向传播以学习以支持知识节点,并且还学习可以补充知识节点以优化总分类的新知识。在框1406中,计算机***可以例如将知识节点集放置在这些前述位置中。
特征节点集:稀疏节点集(1402)、模板节点集(1403)、本地自动编码器(1404)和更复杂的节点类型的一些示例(1421和1422)可以表示一组特征。一组辨别器(1405)如果被训练为具有柔性最大值或稀疏约束的网络的输出节点,则也可以作为特征集,但其也是框1402的特殊情况。
在对“特征”一词的一般解释下,任何节点集都可以被认为是特征节点集。然而,在本讨论中,“特征节点集”的含义限于向基础网络添加与仅添加相同数量的通用节点的能力不同的能力的节点集。在本讨论中,仅当节点集的激活模式以某种方式被限制为与所有可能激活的空间实质上不同时,才将节点集视为“特征节点集”。因此,例如,经受稀疏条件的节点集将具有其中对于任何一个数据示例只有一小部分节点具有显著激活的激活。
自动编码器是深度学习领域的技术人员众所周知的一种特殊类型的网络,其中输入值激活包括编码网络、瓶颈层和解码网络的网络。瓶颈层具有一定限制,诸如节点数少于输入或稀疏性约束。自动编码器被训练成使解码器的输出尽可能地再现对编码器的输入,这受到通过瓶颈的激活计算的约束。自动编码器可以在任何数据集上不受监督地训练。因此,本地自动编码器可以被训练成对网络中的任何节点集进行自动编码,尽管优选地,这些节点将是分层神经网络中的层的子集,或者将是一般严格偏序网络中的不可比的节点集。任何本地自动编码器的瓶颈层和输出层都将在上述意义上受到限制,因此是特征节点集的示例。
特征节点集也可以被训练为利用监督训练的单独网络的输出,因此也可以是知识节点集。特征节点集具有若干有用的属性。与任意节点集相比,它们提供对知识更紧凑、更有效、更容易解释的表示。通过训练特征集中的各个节点以匹配指定的标记,或者通过一旦对特征节点进行训练就将特征标记分配给各个节点,可以进一步增强此属性。标记的特征节点可以在网络内部和网络之间进行软捆绑。
在具有许多层的分层网络中,或者在其中某些节点仅通过长链连接到输入或输出的任意网络或偏序的分层网络中,特征节点集将训练重点放在网络的中间点上,其在一定程度上与输入和输出节点所提供的训练重点相当。继而,此属性使训练具有更多层或更长链的网络变得更为容易。即使总节点数更少,这样的网络比更短、更宽的网络具有更大的表示能力。此外,因为这样的网络具有较少的自由度,所以它们不太可能过度拟合。
在一个实施例中,在框1406中,计算机***将特征节点集放置在遍布整个网络的位置。
专用计算节点:模板节点是进行更复杂计算的节点的示例。除少数特殊情况外,神经网络中的大多数节点都计算进入该节点的每个弧的权重乘以该弧的源节点的激活的乘积加上偏差项的求和。将非线性函数应用于此求和以获得节点的激活值或输出值。通常,非线性函数是几种众所周知的类型之一,每种类型都是单调的,并且在输入的极值处有界或线性增长最大。
为了本讨论的目的,将执行除上述类型之外的计算的任何通用节点视为专用计算节点。具有此属性的节点的两个示例为:(1)用于在卷积神经网络中池化卷积滤波器层的输出的最大节点,以及(2)用于创建长短期记忆(LSTM)单元或门控递归单元(GRU)的积节点,两者都用于在递归神经网络中获得某种形式的记忆。也就是说,它们通常不用作可以连接到网络中任何位置的通用节点。当用作通用节点时,出于本讨论的目的,它们为专用计算节点。
专用计算节点的其他示例包括:
·具有激活函数act(x)=x2或x的任何其他更高幂的节点;
·具有激活函数act(x)=|x|的节点;
·计算由其输入的不相交子集表示的两个向量的内积的节点;
·计算两个向量之间的角度的余弦值的节点;
·具有非负输入且激活函数act(x)=ln(x)的节点;
·具有激活函数act(x)=exp(x)的节点;
·计算向量的范数的节点;
·具有两个输入的节点,其计算二元输入的异或运算(XOR)或连续等同形式,诸如act(x,y)=1-|x-y|;以及
·具有两个输入的节点,计算“等于”或一些连续等同形式,诸如act(x,y)=|x-y|。
也许出人意料的是,专用计算节点还包括:
·具有激活函数act(x)=ax的节点,其中a为常数。
之所以包括最后一个示例是因为通常要求激活函数是非线性的。然而,禁止线性激活函数似乎是基于以下事实,即具有除了线性激活函数之外什么都没有的两个连续层,仅等同于其传入权重等于两层权重的矩阵积的单层。然而,允许部分节点具有线性激活函数是有用的,并且不应予以禁止。
自组织偏序网络通常不具有仅连接至相邻层的层,除了有可能最初通过常规分层神经网络初始化的情况之外。无论如何,在自组织过程期间,由于添加和删除了弧,因此没有固定的层。这里结合图14或任何其他图所描述的SoPoNet,可以在网络中的任何位置具有线性节点或任何其他专用计算节点。此外,线性节点与二次节点及其二次幂的组合可用于表示任何多项式。
作为附注,有两个原因使得不需要积节点在SoPoNet中长期保留记忆。一个原因是选择显式地保持记忆。另一个原因是,在SoPoNet中,当展开递归神经网络时,网络的展开副本与偏序而不是线性序相关联,如图17所示。在展开的偏序中,长期记忆可以用按照偏序的弧直接表示。
专用计算节点可以在任何时间、任何位置添加到网络。专用计算节点在知识节点集的意义上增加了额外的知识,即使它们没有单独经过训练也是如此。非单调的专用计算节点提供了一种部件,网络可以从中学习构造模板节点。这样的模板节点可以形成特征节点集。如前所述,二次和线性节点足以构造任何多项式函数。
异或运算和“等于”函数表示无法由任何一层网络表示的原函数。当作为专用计算节点提供时,它们提供了预训练的网络,该预训练网络可以计算函数,否则将需要相对耗时地训练至少两层网络。
因此,可以像知识节点集一样使用专用计算节点,并且在一些实施例中,将其放置在最小和最大节点附近。它们还可以用于构建特征节点集并在整个网络中使用。它们还创建了与常规节点不同的参数,并由此扩展了参数空间,从而形成更多从常规网络中的驻点脱离的方式。
在框1420中,计算机***引入了甚至更复杂的节点类型,其具有两个示例:具有记忆的节点(框1421)和与计算机指令的任意序列(即,程序)相关联的节点(框1422)。模板节点是具有记忆的节点的示例。在先前描述的实施例中,记忆在偏差的值中。然而,更一般的专用计算节点可以具有若干记忆要素,并且该记忆可以独立于偏差或作为偏差的补充。如上所述,外显记忆可以表示LSTM或GRU记忆单元的内隐记忆。与框1422相关联的示例甚至更为一般。可以表示任何可计算的函数,但要限制该函数至少是分段可微的,并且程序计算该函数的导数以及该函数的值。
当然,这些更复杂的节点和子网变型都是专用计算节点的实例,并且可以按照可以使用较不复杂的专用计算节点的所有方式来使用。
在框1406中,计算机***利用上述偏好,将专用节点、节点集和子网放置在基础网络中的各个位置。它还可以将其他副本这些元素放置在网络中的其他位置。在一个实施例中,所有这些放置的专用节点、节点集和/或子网都将其传出弧权重初始化为零。在框1407中,计算机***恢复迭代训练。
在缓慢学习的任何周期期间都可以添加图14的专用节点、节点集和子网。例如,即使在图5和6的特殊条件之外,这些专用节点中的许多节点也很可能导致目标函数中的鞍点不再是驻点。另外,可以将这些专用节点类型添加到SoPoNet中以提高网络的表示能力,同时还使网络中表示的知识更易于解释和更易于在协作网络之间共享和传送。
图15示出了从许多相关的较小网络中构建大型SoPoNet网络的过程。在一个实施例中,单独的子网接受输入数据向量的元素的不同子集,但是可以通过称为软捆绑的过程来协调它们的学习。图15的过程通过引入软绑扎的概念和过程而不同于其他图中的过程。尽管结合图15进行了描述,但是软捆绑可以在任何网络中使用。例如,它可以在图8和13中创建的合并网络中使用。当集合的成员未被合并到单个网络中时,也可以在它们之间使用软捆绑。甚至在一组分布式计算机上完成用于训练集合成员的计算时,也可以使用软捆绑。软捆绑的优点之一是,它不需要例如硬捆绑所需的高数据带宽,就像对卷积神经网络中的卷积滤波器中的权重所做的那样。
在框1501中,计算机***还引入了输入向量子向量的概念,这还尚未与其他图相关联地明确进行讨论。例如,在框1501中,计算机***可以创建或获得其中每个成员仅接收输入变量的选定子集的网络的集合。网络的集合可以是集成的成员。例如,应注意,卷积神经网络的卷积层是这种条件下的一种有限特殊情况。甚至在现有卷积神经网络的图像识别任务中,一个有用的扩展是添加一些额外的成员,每个成员仅查看(可能是随机的)从图像分散位置中选择的像素。与短视的低卷积层相比,这些额外的成员网络通常将能够更好地更快地学习图像的全局或大范围属性。在任何情况下,它们都可以学习互补性知识。因此,将卷积神经网络中的卷积滤波器视为使子网分别接收作为总输入向量的子向量的输入向量的通用技术的示例是有用的。该通用技术还适用于可能未定义卷积的其他类型的数据,诸如文本。
在一些实施例中,每个集成成员也可以在训练数据的不同子集上被训练。在训练集成成员期间,学习教练1510可以将数据示例从一个集成成员重新分配给另一集成成员。例如,最初两个集成成员可能正在训练数据的重叠子集上进行训练,并且/或者它们可能会在彼此的训练数据上进行交叉测试。当集成成员中的一个在数据示例上具有更好的性能时,可以将该数据示例唯一地分配给该集成成员。更一般地,对于每个集成成员,每个数据示例的分配权重可以在0到1之间。在训练期间,学习教练1510可以针对较成功的集成成员朝向1增大分配权重,并且针对较不成功的集成成员朝向0减小分配权重。这种训练权重分配类似于图11的框1105和图12的框1205中的训练权重分配。
在框1502中,计算机***诸如通过使用图13中所描述的过程来合并集合的成员网络。在一个实施例中,与卷积神经网络相比,在框1502中,计算机***初始化组合网络以至少模拟由卷积神经网络的较高层进行的计算。然而,与卷积神经网络的比较仅是一种情况的示例,在这种情况下,很自然地需要单独的子网来分析输入向量的子集。
图15的其他实施例未必要与卷积神经网络有任何相似性。例如,集成成员可以将文本数据序列作为输入子集,但是子网将学习语法和语义结构,而不是卷积滤波器。
通常,对集成成员的预期目的和功能的更好表征是将高维空间中的复杂任务分解为较小维度空间中的组成任务。可以分解为较小维度空间中的组成任务的复杂任务的一个示例是布尔奇偶函数和其他近似奇偶函数的布尔函数。奇偶函数是在n位向量上定义的函数,每个输入取值为0或1,其中,如果输入位等于1的数量为奇数,则输出等于1;如果输入位等于1的数量为偶数,则输出等于0。对于较大的n值,训练网络以学习奇偶函数或类似于奇偶函数的函数的过程可能非常慢,因为改变n个输入位中的任何一位都会改变输出值。通常,当训练网络学习未知的布尔函数时,对于作为整体的函数还是被局限于某个子空间的函数,均不知道该函数是否类似于奇偶函数。类似地,对于更一般的分类问题,不知道分类任务的某些方面是否需要学习具有与奇偶函数类似的属性的函数。因此,通常不可能指定专用的体系结构,如果已知,该专用体系结构可以有效地计算奇偶函数或奇偶函数的一般化。图15的方法提供了一种用于学习具有类似奇偶函数的属性的复杂函数的高效专用程序。
对于较小的n值,训练网络以学***均时,32位向量的任何4位输入子集的正确输出值可以几乎在奇数输出和偶数输出之间50/50地划分。令每个集成成员在训练集的不同子集上训练,并令数据分配基于动态变化的数据分配权重。然后,每个集成成员将演变为专门化于某一数据子集,以使未包括在4位输入向量中的其他28个输入位中的为1的位的数目始终为奇数或始终为偶数。在这样的数据子集上,每个集成成员将快速学习适当的4位奇偶函数。在1502中创建的合并网络中,利用在1503中创建的组合网络,计算机***将训练整个网络,以针对32位输入向量的后续更大子集和训练数据的更大子集计算奇偶函数,最终得出完整奇偶函数或任何类似的函数。
在框1502中,计算机***合并网络的集合,并且框1503添加自组织组合网络。尽管在框1501中创建或获得的网络的集合不一定是集成,但是在框1502和1503中,计算机***可以利用与结合图13的框1302和1303描述的过程相似的过程来构建组合网络。
框1504和1505是任选的。另一方面,它们的适用范围也很普遍。它们不限于通过合并较小的网络所创建的网络。它们可以用于任何神经网络或神经网络的集合。它们也可以应用于任何SoPoNet或SoPoNet的集合。本文描述了框1504和1505,并且上面提到了卷积神经网络示例,是因为框1504中的标记和1505中的正则化概括了对卷积神经网络中卷积滤波器中的权重参数的共享。
在框1504和1505中,计算机***可以将仅期望相似的权重捆绑在一起,而不是仅应用于当其被迫相同的情况。框1504中的捆绑是通过共享标记实现的并且被称为“软捆绑”。直接捆绑权重参数的值被称为“硬捆绑”。可以通过对相关联的超参数使用极值进行软捆绑来实现硬捆绑,因此可以将硬捆绑视为软捆绑的一种特殊情况。通过在框1505中应用的规则化惩罚,可以实现软捆绑的效果。
在框1504中,计算机***还可以将节点集的激活捆绑在一起,当其被提供相同的输入数据时,其激活按预期是相似的,这需要进行单独的讨论。当然,节点的激活值不仅取决于孤立节点的特性,还取决于为其馈送的整个子网。与权重参数不同,节点的激活还取决于输入数据示例。捆绑表示期望在节点和另一节点被提供相同的数据时,作为节点的子网中的激活的最终结果的该节点的激活将类似于作为其自身的子网的动作的最终结果的另一节点。位于同一常规网络中的节点可以针对各个数据示例将它们的激活进行软捆绑。
图15的合并网络需要更通用的节点软捆绑版本。这种更通用的软捆绑版本也适用于网络的集成和任意集合。在这种更通用的版本中,软捆绑正则化应用于不同网络中的节点,或者在图15所示的情况下,应用于接收了输入数据的不同子集的子网。当在不同时间将相同数据提供给单独的网络时,应用软捆绑正则化。在这种情况下,软捆绑旨在表示已共享的知识或者将要学习的有希望可共享的知识。
如果在合并的网络集合中,存在预期相同或相似的权重或节点激活,则应用框1504和1505的软捆绑。否则,框1504和1505被跳过。在任一种情况下,在框1506中,计算机***都恢复对组合网络的迭代训练。
图16实现了被称为反捆绑的过程,以用于提高任何集成或合并集成的性能。反捆绑可以以由学习教练施加的额外代价函数的形式应用于常规集成中的输出节点。在将SoPoNet集成或单个SoPonNet合并的情况下,可以将反捆绑应用于网络中的任何两个现有节点、应用于仅为此目的而创建的两个节点,或应用于通过结合图4的框404所描述节点划分所创建的两个节点。
在框1601中,计算机***获得集成、合并的集成或单个自组织偏序网络。集成或合并的集成的成员可以是常规网络。在框1602中,计算机***选择或创建要被训练为互补的两个节点。关于这点,“互补”是指两个节点被训练为,通过一起工作,相比于通过被训练为优化它们各自的性能,能更好地执行模式识别或特征检测任务。此外,它们不仅被训练为是互补的,而且其共同的目标是尽可能有助于改进整个网络的性能,而不是孤立地优化其自身性能。
在框1603中,计算机***检测到在其上出错误的数据或在类似数据上可能有错误,这是因为集成的两个或更多个成员都出了相同的错误。当在合并的集成的组合网络中代表前一个集成成员的子网之间出现对应的条件时,它也检测到该对应的条件。在一个实施例中,学习教练1610控制超参数,该超参数调整特殊代价函数中的项的相对代价。
当在框1603中计算机***检测到这种容易出错的数据的情况时,在框1604中,计算机***将特殊的正则化代价项应用于在框1602中创建或选择的节点对。特殊的正则化代价函数惩罚两个节点彼此一致和/或奖励它们不同。应当注意,惩罚一致仅适用于两个或更多个集成成员或合并的先前集成成员犯相同错误的数据示例。在其他情况下,仅使用主要目标的正常反向传播来训练选定的节点对。在框1605中,计算机***应用反向传播,包括将额外代价项从所选节点对反向传播回其子网。在框1606中,计算机***恢复迭代训练。
意图是对选定节点对的特殊训练将使SoPoNet能够学习解决在训练或合并高性能分类器的集成时出现的困境。训练较弱识别器的集成来比其各个成员更好地表现是容易的。然而,在高性能分类器的集成中较难实现相对的改进。容易想到的是,对于其各自具有小于百分之一的错误率的两个或更多个分类器,“如果错误只是独立的,则它们两个都将出错的概率小于.0001”。当然,错误并非独立的。大多数数据易于分类,并且两个高性能分类器均能正确处理所有简单情况。它们两者均仅错过非常困难的示例。对于拥有三个或更多个成员的集成,仍然很容易想到,“但愿没有两个集成成员会出相同的错误。”然而,很难在也训练每个集成成员始终保持正确的同时训练集成成员彼此不同。
图16中的过程避免了直接追求这个困难的、可能自相矛盾的目标。替代地,对互补性节点对进行训练以学习一些可能对组合网络用来改善其联合性能有用的东西。它没有规定如何使用这种信息。
图17是将其他图的技术推广到递归网络的流程图,但是这种推广的影响远大于最初可能呈现的。在解释说明图17中的步骤之后,将解释说明其影响。总而言之,它不仅一般化了偏序网络中的所有自组织功能,而且还从本质上去除了所有限制。
在框1701中,计算机***启用并选择一个或多个自反和/或反向连接。在一个方面,在框1701处,计算机***可以选择对于任务目标最重要的自反和/或反向连接。尽管对由计算机***选择的自反和/或反向连接的数量没有概念上的限制,但在某些方面,所选连接的数量可能会受到计算机***可用的存储和计算资源的限制。需要根据框1702中构建的大型展开式超级网络来评估存储和计算的限制。
在框1702中,计算机***展开原始自组织偏序网络的多个副本。每个副本接收计数值t。
在框1703中,计算机***对t施加严格偏序。可以使用任何严格偏序。在一些实施例中,它使用传递闭合的偏序,而不是通常用于展开递归神经网络的线性顺序,以便及时进行反向传播。也就是说,如果s<t,则允许从网络s到网络t的直接连接。
在框1704中,计算机***定义原始网络的所有副本中的所有节点之间的偏序。其使用字典顺序。也就是说,如果a[s]是网络副本s中的一个节点,并且b[t]是网络副本t中的一个节点,则如果s<t或s=t且在原始偏序网络中a<b,则a[s]<b[t]。
在框1705中,如果s<t,则计算机***添加或激活从网络s中的节点到网络t中的节点的任何期望的连接。在框1704中,计算机***定义偏序,使得这些连接中的每一个都是可能的。在一个实施例中,学习教练1710在每个网络副本内并且在网络副本之间按照偏序来指导自组织过程。
在框1706中,计算机***随后在整个展开的网络上运行自组织训练。该训练具有与结合其他图所讨论的所有技术的所有表示和学习功能。它还具有前面讨论的所有自组织功能,但是,如果它建立了从节点a的副本a[s]到节点b的副本b[t]的连接,其中s<t,则不再被阻止建立从节点a到节点b的连接。
作为一种用于加速学习的技术,这意味着,如果量CADV(a,b)较大,则当用b[s]替代b并用a[t]替代a时,其可以寻找大小也很大的计数值s和t对。例如,如果act(b)和δ(a)在网络的所有副本中都相似,则可以选择s<t的任何对。另一方面,如果交叉导数仅对于某些s和t对具有较大的大小,则可以直接连接s和t的网络副本。通过这种能够选择要激活的新连接的自由度,自组织程序将几乎总是能够加速学习。
图17将其他图的技术推广到递归网络。当与自组织偏序网络的表示和学习能力组合时,增加递归就是范式转移。与仅将这些技术应用于递归神经网络相比,这改变代表了更大的一般化。它甚至比仅将这些技术应用于递归自组织偏序网络要大得多。
这种过程以类似于针对神经网络的及时反向传播的方式来展开具有多个具有计数值t的网络副本的递归网络。然而,展开网络作为整体是自组织偏序网络。计数值t不限于诸如时间的线性顺序。像每个网络中的关系一样,它也只是偏序。任何复制的网络都可以直接连接到任何更高的网络副本。长期记忆和短期记忆之间不一定有任何区别。
也许甚至更重要的是,事实是展开不仅仅能够实现从节点到其自身的自反连接。展开允许所有连接,包括反向连接。其允许自组织学习建立从节点b到节点a的任何连接,这些连接在图9和10中由于a<b而被阻断。因此,为了加速学习或脱离局部最小值,可以创建从任何节点a到任何节点b的新连接。反过来,通过合并较小网络的集合,此属性又消除了在构建大型网络时选择首先建立哪个交叉连接的大部分困难。
因此,图17不仅将其他图中的所有技术的益处扩展到了递归神经网络,还将展开的益处扩展到了其他图中的所有其他技术。
图18是将SoPoNet的自组织功能与对多个网络体系结构的异步探索组合的***框图。框1800代表正在训练的主网络。在一个实施例中,主网络1800包含主任务子网1801,该主任务子网正在以与整个主网络1800相同或基本相同的目标和训练数据进行训练。它还包含一个或多个子网1811和1812,这些子网正在使用表示子任务的目标函数和训练数据进行训练。子任务与主任务在一个或多个方面有所不同,包括但不限于以下示例:
1.子任务接收作为主任务输入数据变量的子集的输入数据变量。
2.在整个主任务的训练数据的子集上训练子任务。数据选择方法的示例包括但不限于:
(a)数据子集是易被混淆的同类群组,如图5所示。
(b)数据子集被选择成表示由主任务子网做出的错误和关闭调用的一个或多个示例。
(c)通过数据划分选择数据子集,如图4所示。
(d)随机选择数据子集。
(e)数据子集是数据设计分割的成员子集,诸如在图11的框1101中使用的子集。
3.子任务的目标是仅区分要在主任务中区分的类别的子集。
4.子任务的目标是具有与主任务的类别集合的分割相对应的类别。即,子任务中的每个类别可以表示来自主任务的一个或多个类别。
5.子任务是由图7中的框702选择的子任务。
6.子任务表示已合并到主任务子网中的网络,如图8的过程或图13的过程所示。
(a)子任务可以具有与合并之前的单独网络相同的目标,该目标可能不同于合并网络的目标。
(b)子任务可以在与合并之前的单独网络相同的数据上进行训练,该数据可能与主任务的训练数据不同。
7.子任务可以表示网络的集成的以前的成员。主任务子网可以包含或可以不包含表示该子任务网络以前是其成员的集成的合并的子网。
8.用于子任务的网络可以是具有与主任务网络不同的体系结构的网络,示例包括但不限于:
(a)子任务网络可以具有比主任务网络更少的参数或更少的自由度。
(b)子任务网络可以已经通过主任务的大步长或反复试验改变产生。主任务网络和子任务网络中的一个或两个可以自最初产生子任务网络以来已经持续进行了自组织学习。
(c)子任务网络可以已经通过单独的训练产生,如下面所述的框1820所示。
在框1800的一个实施例中,由框1801、1811和1812表示的一个或多个子网中的每个可以在第一子网中的节点与一个或多个其他子网之间的任一方向上具有有向弧,其中一个或多个其他子网可以是主任务子网或子任务子网。
在一个实施例中,可以在学习教练1810的指导下创建或删除子任务网络。例如,学习教练1810可以基于上面列表中的一个或多个示例实验性地创建子任务。然后,学习教练1810可以基于强化学习来决定保留或删除子任务,以及决定何时创建新的子任务,这是机器学习领域的技术人员众所周知的技术。
框1820表示与主网络1800分开训练的一个或多个网络的一个或多个组。框1820可能有不止一个的实例。框1820的每个实例可以具有零个或更多个主任务子网,诸如1821和1831,其目标与主网络1800中的主任务网络1801基本相同。网络1821和1831可以具有或可以不具有与网络1801相同的训练数据。另外,框1820的每个实例可以具有零个或更多个子任务网络,诸如1822和1832,其类似于主网络1800中的子任务网络1811和1812。
在框1820的相同实例中,单独的网络1820中的子任务网络1822和1832可以具有将它们彼此连接和/或将它们连接到主任务子网1821和1831中一个或多个的有向弧。
除了有向弧连接之外,不同的单独网络或主网络中的节点可以与其他单独网络中的节点进行软捆绑,如结合图15所描述的。
学习教练1810主动地监测主网络1800和每个单独的网络1820的学习进度。这种监测包括但不限于:(1)监测训练进度的速率,例如,梯度的大小和/或误差代价函数减小的速率;(2)监测训练数据、开发测试数据或操作数据中的错误或关闭调用;以及(3)监测验证数据上的性能统计值。
基于这种主动监测,学习教练1810做出决定,诸如将一个或多个子网从单独的网络1820中的一个复制到主任务网络1800中。复制的子网可以成为新的子任务网络,诸如1811或1812,或者其可以通过例如图7、8和13中所示的任何过程被合并到主任务子网1801中。学习教练1810还可以丢弃较低效率的子网或整个单独的网络1820。学习教练1810还可以将子网从一个单独训练的网络1820或从主网络1800复制到第二单独的网络1820。
为了找到最佳的体系结构,图18所示的***结合了四种不同方法在探索网络改变方面的功能:(1)SoPoNet的自组织学习;(2)基于反复试验对体系结构中的大步长不连续变化进行探索的强化学习;(3)通过管理半异步模型群探索设计空间;以及(4)通过复制网络、合并网络和删除较低效率的网络来模拟自然选择。图18还包括通过节点软捆绑和通过学习教练1810复制子网的动作来共享知识的能力。在一个实施例中,知识的共享以比训练网络中的更新更低的频率执行。因此,即使当主网络1800和一个或多个单独的网络1820在具有有限数据带宽的一组分布式计算机上实现时,也可以完成知识共享。例如,主网络1800和多个单独的网络1820中的一个可以位于不同的位置并且通过诸如因特网的分组交换网络进行通信。
分层神经网络中的有向弧定义了唯一的有向无环图G。然而,对于任何有向无环图G,可能有不止一种方式将有向无环图G中的节点排列成层,例如如图21A至C所示。有向无环图G描述了在前馈和反向传播计算中必须完成的特定计算,并且有向弧对必须完成的计算顺序施加了限制。如果存在从节点A到节点B的有向弧,则必须在计算B的激活之前计算A的激活。然而,该限制并不能完全确定节点上的计算顺序。例如,可以以任何顺序完成任何一组不可比节点的激活。
尽管最初不是为此目的而设计的,但是将DAG的节点排列成层提供了一种表示对计算顺序的更多限制的手段。即,可以将分层前馈神经网络中的各层解释为指定网络中的各层应按顺序进行处理,但是对单层内节点之间的处理顺序没有限制。例如,如果存在具有足够容量的可用并行硬件,则可以同时并行处理单个层内的节点。
将SoPoNet的计算DAG G映射到分层网络中的另一个目的是,将节点分配给层有利于对节点对(A,B)之间的关系进行快速的部分检验。如果A在比B低的层中,则A<B或A和B是不可比的。
然而,图19使用DAG到分层前馈网络的映射出于不同的目的:为了利于通过合并两个或更多个网络创建的SoPoNet中的自组织学习。在框1901中,计算机***获得这些网络中的第一网络N0。N0被表示为分层网络。如果N0是具有尚未分配给层的节点的DAG,则可以例如通过框1904中使用的过程或框1905中使用的过程将其映射到分层网络。在框1902中,计算机***获得第二网络,其被表示为有向无环图,其为尚未指定层的图,或者在框1904和1905中当前层被忽略和替换的图。在框1903中,计算机***制作第二网络的两个副本N1和N2。
在一个实施例中,在框1904中,计算机***将网络N1的节点映射到层中,从而使得每个节点被分配为尽可能低的层号。计算此类映射的伪代码如下:
需注意,层L=0将仅含有没有传入弧的节点,即输入层。令numL为N0中的层数和N1中的层数的最大值。
在一个实施例中,在框1905中,计算机***将网络N2的节点映射到层中,从而使得每个节点被分配为尽可能高的层号。计算此类映射的伪代码如下:
在一个实施例中,如果第二网络中的层比第一网络中的层多,则两个网络的角色反转。
如果在框1902中获得的第二网络已经是分层网络,则在一些实施例中,重新映射到框1904和1905的层是任选的。然而,如果第二网络中的层数相当于或大于N0中的层数的一半,则可能需要重新映射。在任何情况下,N2中的层都被重新编号,以使N2中的最高层与N0中的最高层编号相同,并在整个减小层号的过程中依次类推。
在框1906中,计算机***合并三个网络N0、N1和N2。在框1907中,计算机***开始或继续自组织训练。在该训练中,当添加将三个子网中一个中的节点连接到三个子网中一个不同子网中的节点的弧时,固定正则化规则或来自学习教练1910的指导可以强制执行对弧方向的偏好。例如,正则化规则或来自学习教练1910的指导可以表现出对从子网N1到子网N0或N2以及从子网N0到子网N1的弧的偏好。
在另一个示例性实施例中,还以框1904和1905的方式创建第一网络的两个副本并将其映射到分层网络。然后将这四个子网合并为单个SoPoNet,其中连接这些子网的弧的优选方向通常是从具有在框1904中创建的映射的网络到在框1905中创建的映射的网络。
图19所示的过程是用于合并如结合图14所述的知识子网的例示性方法。它也可以用于合并网络,如图7、8和15所示。
图20示出了几个过程,通过这些过程可以将许多节点立即添加到分层前馈神经网络,而不会降低性能。图20处理将放置添加到分层网络的节点的过程。
一些示例使用线性节点。在图14的讨论中,提到了线性节点作为专用计算节点的示例。与传统观点相反,线性节点在促进具有多层的网络的学习过程中非常有用。
在框2001中,计算机***获得分层网络或将未分层SoPoNet的节点映射到层中。
框2002、2003、2004和2005都是可单独任选的,并且可以以任何顺序进行。在框2002中,计算机***添加一个或多个线性节点作为非线性节点的伴侣。在一个实施例中,线性节点被添加作为每个非线性内层节点的伴侣。例如,图23A描绘了包括第一非线性节点NL1的例示性前馈网络,该第一非线性节点包括到第二非线性节点NL2和第三非线性节点NL3的有向弧。非线性节点NL1是接收输入的内层节点,该输入可以包括来自前馈网络中的前述层的有向弧。图23B描绘了被添加作为内层非线性节点NL1的伴侣的线性节点L1、L2。在一个实施例中,第一线***节点L1被初始化为接收与非线性节点NL1相同的输入,并且第二线性节点L2仅从非线性节点NL1和第一线性节点L1接收输入,其中从第一线性节点L1到第二线性节点L2的连接的权重被初始化为零(即,wi=0),如图23B所示。曾经是离开非线性节点NL1的弧的有向弧被替代地连接作为从第二线性节点L2出来的传出弧,如图23C所示。应当注意,在图23B和23C中,虚线表示在所描述过程的特定步骤中已经添加或改变的有向弧,并且相对于以实线描述的弧并不表示关于虚线弧有本质上的不同。在一个实施例中,分别将非线性节点和第一线性节点连接到第二线性节点的权重被约束为求和为一。然后可以针对网络中的每个内层非线性节点重复此过程。
在一些实施例中,进入线性节点L2的弧上的权重不仅被初始化为与进入非线性节点的对应弧上的权重相同,而且它们在进一步的训练期间被硬捆绑或软捆绑。如果权重被硬捆绑,则非线性节点NL1和两个线性节点L1、L2的替代实施方式是作为能计算等效输出的单个复杂节点。
在一个实施例中,线性节点具有斜率参数,该斜率参数可以是学习参数或由固定进度表控制的超参数,或者在一个实施例中,是由学习教练2010针对每个节点进行自定义控制。线***节点的目的之一是防止在S型(sigmoid)或双曲正切(tanh)激活函数的饱和区域或线性修正单元的盲区中的消失梯度。在一个实施例中,学习教练2010积极地监测每个非线性节点,并注意其中激活函数处于函数某一区域中的数据示例,其中在梯度的符号朝向激活函数的另一极端值的数据示例上具有低量值的导数。当存在这种情况时,学习教练会在可能的补救措施中做出决定,诸如,如果存在控制温度的超参数则增加非线性节点的温度,增大将第一线性节点连接到第二线性节点的弧的权重,或增大第一线性节点的斜率。
在一些实施例中,当训练收敛到其最终答案时,将第一线性节点的斜率和/或将其连接至第二线性节点的权重正则化为收敛于零。
在框2003中,计算机***在分层网络的两个连续层之间添加仅由线性节点组成的层。它被初始化为单位。在训练下,此线性层可以学习从前一层的输出值的向量空间旋转和缩放到下一层的输入值的向量空间。例如,它可以利于从较高维度映射到较低维度或从密集表示映射到一个或多个稀疏表示。
在框2004中,计算机***将一个或多个未提交的非线性节点添加到网络的某层。例如,它可以将一个或多个稀疏节点集或其他特征节点集(如结合图14所描述的)添加到网络的一个或多个层。在一些实施例中,这些特征节点集被添加到网络的许多甚至所有内层。
作为另一个示例,在分层网络中,将通过图4中的节点划分创建的附加节点添加到与原始节点相同的层中。作为又另一个示例,可以将如图14所示的专用计算节点添加到任何层。
在框2005中,计算机***将线性节点添加到一个或多个现有层。在一些实施例中,额外的线性节点被添加到大多数或所有层。这些线性节点提供了一种将信息从较低层传递到不相邻的较高层的手段,这是对跨多层的弧直接连接的补充或替代。在同样是分层网络的SoPoNet中,任何节点都可以直接连接到任何更高层中的任何节点。然而,这样的节点对的数量随着层数的平方而增长。在某些任务上,将线性节点添加到每一层可以能够用更少的参数获得相同的结果。训练线性节点的侧网络也可能更快,并且不太可能过度拟合。
在框2006中,计算机***继续对SoPoNet的自组织训练。
在一个实施例中,采用了不同的学习方案。无论是否使用图20的节点添加过程,此学习方案都可以应用于任何深度学习训练。在该实施例中,首先根据均方误差代价函数对被训练的网络进行训练。然后根据规则或在学习教练2010的指导下,将代价函数改变为最大似然代价函数。在一个实施例中,在均方误差训练期间,存在线性输出节点。规则输出节点临时替换为线性节点,或者一组补充线性节点被添加到输出层,如框2005所示。在一个实施例中,这些补充的线性输出节点与规则输出节点一一对应。在一些实施例中,每个线性输出节点将其激活软捆绑到对应的常规输出节点。
最后,参考图2至20中向网络添加一个或多个要素的所有技术:此类添加总是添加对其而言目标的偏导数为非零的一个或多个参数。当在添加之前***已经处于缓慢学习的条件下,这种属性为真。当在添加之前***已经收敛到驻点时,即使该驻点是全局最小值,此属性也为真。也就是说,即使在添加之前***已经针对固定网络体系结构的权重参数设置被训练到目标的全局最小值,也可以进行改进。
换句话说,对于已经针对固定体系结构被训练到收敛的任何网络,通过将网络视为自组织偏序网络而非固定网络,添加要素总是有可能提高对于固定网络而言可能已经是最佳的性能。
作为示例,考虑结合图4讨论的节点和数据划分技术。除非目标的梯度为零,否则总有可能提高任何固定网络的性能,这不仅适用于整个训练批量,而且单独地适用于每个数据示例。这种条件极不可能出现。例如,构造对抗性示例(即,以旨在导致分类器对它们进行误分类的方式生成或修改的数据示例)的能力基于各个数据示例的梯度为非零的事实。因此,除非性能已经很完美,否则可以总是使用节点划分来提高任何***的性能。
图25示出了多层前馈深度神经网络的示例。本发明的一些部件可以包含神经网络,诸如图21A至C所示的示例性神经网络。神经网络是节点和有向弧的集合。神经网络中的节点通常被组织成层。在前馈神经网络中,当如图25所示那样图解时,可以从下至上对层进行编号。分层前馈神经网络中的每个有向弧都从较低层的源节点到较高层的目标节点。图25中所示的前馈神经网络具有输入层、输出层和三个内层。神经网络中的内层也被称为“隐藏”层。每个有向弧都与被称为其“权重”的数值相关联。通常,除输入节点外的每个节点都与一个被称为其“偏差”的数值相关联。神经网络的权重和偏差被称为“学习”参数。在训练期间,学习参数的值由图24中所示的计算机***2400进行调整。控制训练过程的其他参数被称为超参数。
前馈神经网络可以通过计算机***2400使用随机梯度下降的迭代过程以及针对每个小批量对学习参数进行一次迭代更新来常规地进行训练。在随机梯度下降中,通常将整个批量的训练数据安排成一组称为小批量的较小的不相交的集。纪元包含计算机***2400对含在整个批量的训练数据中的每个小批量进行随机梯度下降更新。对于每个小批量,计算机通过首先使用前馈激活计算来计算网络中每个节点的激活,来针对训练数据项估计目标的梯度。然后,计算机***2400使用被称为“反向传播”的过程来估计目标相对于学习参数的偏导数,该过程基于微积分链式法则反向前进通过网络的各层来计算偏导数。随机梯度下降、前馈计算和反向传播的过程对于训练神经网络领域的技术人员来说是已知的。然而,本申请描述了用于训练节点网络(诸如前馈网络)的其他技术,其包括图2所示的过程和本文所述的其他相关技术。
基于以上描述,应当清楚,本发明的实施例可以用于在各种应用中改进操作,包括改进包括深度神经网络的机器学习***的学习。例如,本发明的实施例可以改善推荐器***、语音识别***和分类***,包括图像和诊断分类***,仅举几个例子来说。
图中的过程可以由机器学习计算机***执行,其可以用计算机硬件和软件来实现。例如,它们可以是具有多个处理核心的集成计算机***(例如,服务器或服务器的网络)的一部分。程序指令可以存储在可以由处理核心访问的计算机存储器中,诸如RAM、ROM、处理器寄存器或处理器高速缓存等。处理器核心可以包含CPU或者图形处理单元(GPU)核心。GPU核心并行地操作并且由此通常可以更有效地处理数据,即一系列的CPU核心,但是所有的核心同时执行同一代码。各种机器学习***可以是分布式计算机***的一部分。在此类实施例中,实现以上所述技术的计算机设备(例如,服务器)可以彼此远离并利用合适的有线和/或无线数据通信链路通过数据网络进行互连,诸如LAN、WAN、因特网等。数据可以利用合适的数据链路在各种***之间共享,诸如数据总线(优选地为高速数据总线)或者网络链路(例如,以太网)。
图24是可用于实现上述实施例的计算机***计算机***2400的图。所示的计算机***2400包含多个处理器单元2402A-B,在所示的实施例中,每个处理器单元包含多(N)组处理器核心2404A-N。每个处理器单元2402A-B可以包含板载存储器(ROM或RAM)(未示出)和板外存储器2406A-B。板载存储器可以包含主易失性和/或非易失性存储装置(例如,处理器核心2404A-N可直接访问的存储装置)。板外存储器2406A-B可以包含诸如ROM、HDD、SSD、闪存等的辅助非易失性存储装置(例如,不能被处理器核心2404A-N直接访问的存储装置)。处理器核心2404A-N可以是CPU核心、GPU核心和/或AI加速器核心。GPU核心并行地操作(例如,通用GPU(GPGPU)管线)并且由此通常可以更有效地处理数据,即一系列的CPU核心,但是GPU所有的核心同时执行同一代码。AI加速器是一类被设计为加速人工神经网络的微处理器。它们通常还被用作具有主机处理器2410的设备中的协处理器。AI加速器通常具有成千上万个矩阵乘法器单元,其运算精度低于CPU核心,诸如AI加速器中的8位精度相对于CPU核心中的64位精度。
在各个实施例中,不同的处理器核心2404可以训练和/或实现不同的网络或子网或组件。例如,在一个实施例中,第一处理器单元2402A的核心可以实现图2中的框201至207的迭代循环,并且第二处理器单元2402B可以利用网络中传送给处理器2402A的变化来实现学习教练220和控制框208至210。在其他实施例中,一个或多个处理器核心2404和/或一个或多个处理器单元可以实现本文的***中的其他组件,诸如504和603的一次性学习或1102中的许多训练对和验证集的训练和验证。一个或多个主机处理器2410可以协调和控制处理器单元2402A-B。
在其他实施例中,***2400可以用一个处理器单元2402来实现。在其中存在多个处理器单元的实施例中,处理器单元可以位于同一位置或分布开。例如,处理器单元2402可以使用适当的有线和/或无线数据通信链路通过诸如LAN、WAN、因特网等的数据网络互连。数据可以利用合适的数据链路在各种处理单元2402之间共享,诸如数据总线(优选地为高速数据总线)或者网络链路(例如,以太网)。
用于本文中所述的各种机器学习***的软件以及本文中所述的其他计算机功能可以利用任何合适的计算机编程语言(诸如,.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。
除非另外具体说明,否则从前述公开内容中可明显看出,应当理解,在整个前述公开内容中,利用诸如“处理”、“计算(computing)”、“计算(calculating)”、“确定”等术语的讨论是指计算机***例如,图24的计算机***2400)或类似的电子计算设备的动作和处理,其将在计算机***的寄存器和存储器内表示为物理(电子)量的数据操纵和转换成在计算机***的存储器或寄存器或其他此类信息存储、传输或显示设备内类似地表示为物理量的其他数据。
在以下方面、实施方式和/或示例中阐述了本文所述的主题的各个方面,这些方面、实施方式和/或示例可以以各种组合方式互换地组合在一起:
在一个方面,一种用于控制节点网络的计算机实现的方法,该节点网络包含第一节点和第二节点,第一节点和第二节点包含可以根据由目标函数定义的目标在数据集上进行评估的激活函数,该方法包含:(i)通过计算机***估计由第一节点和第二节点之间存在或不存在直接连接所引起的对目标的影响;以及通过计算机***至少部分地基于对影响的估计来改变节点网络的结构。
在另一方面,估计对目标的影响包含:通过计算机***,针对数据集中的每个数据项,计算第一节点的激活和目标的偏导数的乘积相对于对第二节点的输入在数据集上的加权平均值。
在又另一方面,该数据集包含除训练数据集以外的开发数据集,节点网络在该训练数据集上进行了训练。
在另一方面,第一节点和第二节点未直接连接;估计对目标的影响包含通过计算机***估计在第一节点和第二节点之间添加直接连接对目标的影响;并且改变节点网络的结构包含通过计算机***,至少部分地基于对目标的影响的估计是否表明由于存在直接连接相对于目标而言节点网络的性能提高而在第一节点和第二节点之间添加直接连接。
在另一方面,第一节点和第二节点直接连接;估计对目标的影响包含通过计算机***估计在第一节点和第二节点之间删除直接连接对目标的影响;以及改变节点网络的结构包含通过计算机***,至少部分地基于对目标的影响的估计是否表明由于不存在直接连接相对于目标而言节点网络的性能提高而在第一节点和第二节点之间删除直接连接。
在又另一方面,在第一节点和第二节点之间删除直接连接进一步至少部分基于与第一节点和第二节点之间的直接连接相关联的连接权重的大小。
在另一方面,节点网络包含严格偏序集、加权有向无环图、人工神经网络或分层前馈神经网络或其组合中的至少一个。
在又另一方面,第一节点位于分层前馈神经网络的第一层中,并且第二节点位于分层前馈神经网络的第二层中;并且第一节点和第二节点未直接连接。
在另一方面,节点网络包含第一子网和第二子网;第一节点位于第一子网中;并且改变节点网络的结构包含通过计算机***,至少部分地基于对目标的影响的估计是否表明由于存在直接连接相对于目标而言节点网络的性能提高而添加从第一节点到第二节点的直接连接。
在一个方面,改变节点网络的结构通过由计算机***执行的机器学习***进行控制。
在又另一方面,机器学习***包含学习教练机器学习***。
在另一方面,第一节点和第二节点以与节点网络的传递闭包相对应的严格偏序形成覆盖对;并且改变节点网络的结构包含,至少部分地基于对目标的影响的估计是否表明由于以第二直接连接替换第一直接连接相对于目标而言节点网络的性能提高,而删除从第一节点到第二节点的第一直接连接并添加从第二节点到第一节点的第二直接连接。
在另一方面,该计算机实现的方法进一步包含:通过计算机***冻结第一节点和第二节点之间的直接连接,使得当直接连接被冻结时,直接连接的连接权重在训练节点网络期间不会改变。
在又另一方面,冻结的直接连接的连接权重为零。
在又另一方面,冻结的直接连接的连接权重为非零。
在又另一方面,该计算机实现的方法进一步包含:通过计算机***解冻冻结的直接连接。
在另一方面,在其上评估节点网络的数据集包含整个批量的训练数据集。
在另一方面,在其上评估节点网络的数据集包含小批量的训练数据集;并且估计对目标的影响包含通过计算机***估计用于随机梯度下降的目标函数的梯度。
在另一方面,该计算机实现的方法进一步包含:通过计算机***训练第二节点以匹配第一节点的输出。
在另一方面,(i)节点网络包含:(a)用于执行第一机器学习任务的第一子网;以及用于执行与第一机器学习任务不同的第二机器学习任务的第二子网;(ii)第一节点位于第一子网中;并且(iii)第二节点位于第二子网中。
在又另一方面,该计算机实现的方法进一步包含:通过计算机***将数据集输入到第一子网;以及通过计算机***将数据集的子集输入到第二子网。
在又另一方面,该计算机实现的方法进一步包含:通过计算机***在数据集上训练第一子网;以及通过计算机***在数据集的子集上训练第二子网。
在又另一方面,该计算机实现的方法进一步包含:通过计算机***训练第一子网以区分多个类别;以及通过计算机***训练第二子网以区分多个类别的子集。
在又另一方面,第一子网可以基于第一目标进行评估,并且第二子网可以基于第二目标进行评估,第一目标对应于多个类别,并且第二目标对应于多个类别的子集。
在又另一方面,第一子网可以基于第一目标进行评估,并且第二子网可以基于第二目标进行评估,第一目标对应于多个类别,并且第二目标对应于多个类别的子集。
在又另一方面,其中第一子网和第二子网异步操作,该计算机实现的方法进一步包含通过计算机***经由计算机***所执行的机器学习教练监测第一子网和第二子网中的每一个的单独性能;并且通过计算机***改变第一子网或第二子网中的至少一个的结构,以提高第一子网和第二子网的组合性能。
在另一方面,该计算机实现的方法进一步包含:通过计算机***根据目标在数据集上训练节点网络;通过计算机***经由学习教练机器学习***检测在训练节点网络期间节点网络的学习过程中的问题;以及通过计算机***纠正由学习教练机器学习***检测到的问题。
在又另一方面,检测节点网络的学习过程中的问题包含:通过计算机***经由学习教练机器学习***在多个随机梯度下降更新上检测估计梯度的大小是否小于阈值。
在又另一方面,数据集包含第一数据集;并且检测节点网络的学习过程中的问题包含:通过计算机***经由学习教练机器学习***检测相对于目标而言在第一数据集上节点网络的性能与相对于目标而言在与第一数据集不相交的第二数据集上节点网络的性能之间的差异是否超过阈值。
在又另一方面,检测节点网络的学习过程中的问题包含:通过计算机***经由学习教练机器学习***检测节点网络是否在多个训练纪元上对数据集的特定数据项进行了误分类。
在又另一方面,检测节点网络的学习过程中的问题包含:通过计算机***经由学习教练机器学习***检测节点网络是否将数据集的多个数据项分类为单个类别,其中指定将已分类的多个数据项分类为多个类别。
在又另一方面,检测节点网络的学习过程中的问题包含:通过计算机***检测相对于目标而言在数据集上节点网络的性能比节点网络集成的性能差的量是否超过一定标准。
在又另一方面,纠正由学习教练机器学习***检测到的问题包含:通过计算机***在第一节点和第二节点之间添加或删除连接。
在又另一方面,纠正由学习教练机器学习***检测到的问题包含:通过计算机***解冻第一节点和第二节点之间的连接权重。
在又另一方面,其中纠正由学习教练机器学习***检测到的问题包含:(i)通过计算机***将节点网络复制到多个复制节点网络中;其中多个复制节点网络各自包含复制节点的第一集合,该复制节点的第一集合是节点网络中连接到节点网络的输入节点的节点的副本;其中多个复制节点网络各自包含复制节点的第二集合,该复制节点的第二集合是节点网络中连接到节点网络的输出节点的节点的副本;(ii)通过计算机***将多个复制节点网络组合成组合节点网络;(iii)通过计算机***将复制节点的第一集合中的每一个连接到组合节点网络的相应输入节点;以及(iv)通过计算机***将复制节点的第二集合中的每一个连接到组合节点网络的相应输出节点。
在又另一方面,其中多个复制节点网络各自包含复制内层节点,该复制内层节点是节点网络的内层节点的副本,计算机方法进一步包含:通过计算机***初始化组合节点网络,使得多个复制节点网络中的每一个的复制内层节点不连接到多个复制节点网络中的另一个的复制内层节点;并且通过计算机***经由学习教练机器学习***在来自不同的复制节点网络的复制内层节点之间添加或删除连接;其中学习教练机器学习***已经过训练,以估计由于在复制内层节点之间添加或删除连接所引起的对组合节点网络的目标的影响。
在又另一方面,该计算机实现的方法进一步包含:通过计算机***在多个复制节点网络之间描绘严格偏序;通过计算机***确定多个复制节点网络中的第一复制节点网络的第一节点是否小于或不可比于多个复制节点网络中的第二复制节点网络的第二节点;以及仅当第一节点小于或不可比于第二节点时,通过计算机***添加从第一节点到第二节点的连接。
在又另一方面,所描绘的严格偏序是全序。
在又另一方面,该计算机实现的进一步包含:通过计算机***以严格偏序将第一复制节点网络和第二复制节点网络定位成使得它们是可比的。
在又另一方面,该计算机实现的进一步包含:通过计算机***以严格偏序将第一复制节点网络定位在第一位置;以及通过计算机***以严格偏序将第二复制节点网络定位在第二位置;其中第一位置低于第二位置。
在又另一方面,节点网络包含第一节点网络,并且该计算机实现的方法进一步包含:通过计算机***训练第二节点网络以执行未被第一节点网络学习的辨别任务。
在又另一方面,该计算机实现的方法进一步包含:通过计算机***经由一次性学习来训练节点网络。
在又另一方面,该计算机实现的方法进一步包含:通过计算机***训练节点网络以辨别来自数据集的第一数据项和来自数据集的第二数据项。
在又另一方面,节点网络包含第一节点网络,并且该计算机实现的方法进一步包含:通过计算机***训练第二节点网络以执行未由第一节点网络执行的机器学习任务。
在一个方面,一种用于控制节点网络的计算机实现的方法,该节点网络包含第一节点和第二节点,第一节点和第二节点包含可以根据由目标函数定义的目标在数据集上进行评估的激活函数,该方法包含通过计算机***冻结第一节点和第二节点之间的直接连接,使得当直接连接被冻结时,直接连接的连接权重在训练节点网络期间不会改变。
在另一方面,冻结的直接连接的连接权重为零。
在另一方面,冻结的直接连接的连接权重为非零。
在另一方面,该计算机实现的方法进一步包含:通过计算机***解冻冻结的直接连接。
在一个方面,一种用于控制节点网络的计算机实现的方法,该节点网络包含第一节点和第二节点,第一节点和第二节点包含可以根据由目标函数定义的目标在第一数据集和第二数据集上进行评估的激活函数,该方法包含:(i)通过计算机***为第一数据集中的每个数据项分配数据影响权重;(ii)通过计算机***经由随机梯度下降在第一数据集上训练节点网络,其包含:通过计算机***,根据第一数据集中每个数据项的数据影响权重,计算每个随机梯度下降更新中的梯度估计的加权平均值;(iii)在训练节点网络期间,通过计算机***测量在第二数据集上节点网络的性能;其中第二数据集与第一数据集不相交;并且(iv)在训练节点网络期间,通过计算机***,基于节点网络的性能来调整第一数据集中的一个或多个数据项的数据影响权重。
在另一方面,调整数据影响权重包含通过计算机***将数据影响权重设置为零。
在另一方面,测量在第二数据集上节点网络的性能是半监督的。
在另一方面,对在第二数据集上节点网络的性能的半监督测量包含通过计算机***经由识别器机器学习***标记第二数据集的数据项。
在一个方面,一种用于控制节点网络的计算机实现的方法,该节点网络包含第一节点和第二节点,第一节点和第二节点包含可以根据由目标函数定义的目标在数据集上进行评估的激活函数,该方法包含通过计算机***训练第一节点以相对于第二节点的输入最大化第一节点的激活函数和目标函数的偏导数之间的相关性的大小。
在一个方面,一种用于控制节点网络的计算机实现的方法包含实现节点网络的一个或多个节点,其中该一个或多个节点包含非单调激活函数。
在各个方面中,方法的前述方面、实施方式和/或示例中的每一个都可以由包含处理器和耦合至处理器的存储器的计算机***执行。存储器存储包含第一节点和第二节点的节点网络,第一节点和第二节点包含可以根据由目标函数定义的目标在数据集上进行评估的激活函数。此外,存储器将方法的步骤存储为指令,当指令由处理器执行时促使计算机***执行方法步骤。
本文所给出的示例旨在例示说明本发明的可能和具体实施方式。可以意识到,示例主要旨在用于为本领域技术人员例示说明本发明的目的。示例的特定方面或多个方面未必旨在限制本发明的范围。而且,应当理解的是,本发明的附图和描述已经进行了简化,以例示说明用于清楚地理解本发明而相关的元件,与此同时为简洁起见消除了其他元件。尽管本文已经描述了各种实施例,但是应当显而易见的是,在实现至少一些优点的前提下本领域技术人员可以想到对那些实施例的各种修改、改变和调整。在不脱离本文所阐述实施例的范围的前提下所公开的实施例因此旨在包括此类修改、改变和调整。
Claims (97)
1.一种用于控制人工神经网络的计算机实现的方法,所述人工神经网络包含第一节点和第二节点,所述第一节点和所述第二节点包含能根据由目标函数定义的目标在数据集上进行评估的激活函数,所述方法包含:
由计算机***的处理器通过执行存储在计算机***的随机存取存储器RAM中的软件,至少部分地基于所述第一节点的激活值和所述目标相对于所述第二节点的激活值的偏导数的估计,来计算指示由所述第一节点和所述第二节点之间存在或不存在直接连接所引起的对所述目标的影响的值;
由计算机***的处理器通过执行存储在计算机***的RAM中的软件,至少部分地基于计算的值来改变神经网络的结构;
由计算机***的处理器通过执行存储在计算机***的RAM中的软件,根据所述目标在所述数据集上训练所述神经网络;
由计算机***的处理器通过执行存储在计算机***的RAM中的软件,检测在训练所述神经网络期间所述神经网络的学习过程中的问题;以及
由计算机***的处理器通过执行存储在计算机***的RAM中的软件,纠正所述问题,其中纠正所述问题包括:
由计算机***的处理器通过执行存储在计算机***的RAM中的软件,将所述神经网络复制到多个复制神经网络中;
其中所述多个复制神经网络各自包含复制节点的第一集合,所述复制节点的第一集合是所述神经网络中连接到所述神经网络的输入节点的节点的副本;
其中所述多个复制神经网络各自包含复制节点的第二集合,所述复制节点的第二集合是所述神经网络中连接到所述神经网络的输出节点的节点的副本;
由计算机***的处理器通过执行存储在计算机***的RAM中的软件,将所述多个复制神经网络组合成组合神经网络;
由计算机***的处理器通过执行存储在计算机***的RAM中的软件,将所述复制节点的第一集合中的每一个连接到所述组合神经网络的相应输入节点;以及
由计算机***的处理器通过执行存储在计算机***的RAM中的软件,将所述复制节点的第二集合中的每一个连接到所述组合神经网络的相应输出节点。
2.根据权利要求1所述的计算机实现的方法,其中估计对所述目标的影响包含:
通过所述计算机***,针对所述数据集中的每个数据项,计算所述第一节点的激活值和所述目标的偏导数的乘积相对于对所述第二节点的输入在所述数据集上的加权平均值。
3.根据权利要求2所述的计算机实现的方法,其中所述数据集包含除训练数据集以外设置的开发数据集,所述神经网络在所述训练数据集上进行了训练。
4.根据权利要求1所述的计算机实现的方法,其中:
所述第一节点和所述第二节点未直接连接;
估计对所述目标的影响包含通过所述计算机***估计在所述第一节点和所述第二节点之间添加所述直接连接对所述目标的影响;并且
改变所述神经网络的所述结构包含通过所述计算机***,至少部分地基于对所述目标的影响的估计是否表明由于存在所述直接连接相对于所述目标而言所述神经网络的性能提高而在所述第一节点和所述第二节点之间添加所述直接连接。
5.根据权利要求1所述的计算机实现的方法,其中:
所述第一节点和所述第二节点直接连接;估计对所述目标的影响包含通过所述计算机***估计在所述第一节点和所述第二节点之间删除所述直接连接对所述目标的影响;并且
改变所述神经网络的所述结构包含通过所述计算机***,至少部分地基于对所述目标的影响的估计是否表明由于不存在所述直接连接相对于所述目标而言所述神经网络的性能提高而在所述第一节点和所述第二节点之间删除所述直接连接。
6.根据权利要求5所述的计算机实现的方法,其中在所述第一节点和所述第二节点之间删除所述直接连接进一步至少部分基于与所述第一节点和所述第二节点之间的所述直接连接相关联的连接权重的大小。
7.根据权利要求1所述的计算机实现的方法,其中所述神经网络包含严格偏序集。
8.根据权利要求1所述的计算机实现的方法,其中所述神经网络包含加权有向无环图。
9.根据权利要求1所述的计算机实现的方法,其中所述神经网络包含递归神经网络。
10.根据权利要求1所述的计算机实现的方法,其中所述神经络包含分层前馈神经网络。
11.根据权利要求10所述的计算机实现的方法,其中:
所述第一节点位于所述分层前馈神经网络的第一层中,并且所述第二节点位于所述分层前馈神经网络的第二层中;并且所述第一节点和所述第二节点未直接连接。
12.根据权利要求1所述的计算机实现的方法,其中:
所述神经网络包含第一子网和第二子网;
所述第一节点位于所述第一子网中;
所述第二节点位于所述第二子网中;并且
改变所述神经网络的所述结构包含通过所述计算机***,至少部分地基于对所述目标的影响的估计是否表明由于存在所述直接连接相对于所述目标而言所述神经网络的性能提高而添加从所述第一节点到所述第二节点的所述直接连接。
13.根据权利要求1所述的计算机实现的方法,其中改变所述神经网络的所述结构通过由所述计算机***执行的机器学习***进行控制。
14.根据权利要求13所述的计算机实现的方法,其中所述机器学习***包含学习教练机器学习***。
15.根据权利要求1所述的计算机实现的方法,其中:
所述第一节点和所述第二节点以与所述神经网络的传递闭包相对应的严格偏序形成覆盖对;并且
改变所述神经网络的所述结构包含,至少部分地基于对所述目标的影响的估计是否表明由于以第二直接连接替换第一直接连接相对于所述目标而言所述神经网络的性能提高,而删除从所述第一节点到所述第二节点的所述第一直接连接并添加从所述第二节点到所述第一节点的所述第二直接连接。
16.根据权利要求1所述的计算机实现的方法,进一步包含:
通过所述计算机***冻结所述第一节点和所述第二节点之间的所述直接连接,使得当所述直接连接被冻结时,所述直接连接的连接权重在训练所述神经网络期间不会改变。
17.根据权利要求16所述的计算机实现的方法,其中所述冻结的直接连接的所述连接权重为零。
18.根据权利要求16所述的计算机实现的方法,其中所述冻结的直接连接的所述连接权重为非零。
19.根据权利要求16所述的计算机实现的方法,进一步包含:
通过所述计算机***解冻所述冻结的直接连接。
20.根据权利要求1所述的计算机实现的方法,其中在其上评估所述神经网络的所述数据集包含整个批量的训练数据集。
21.根据权利要求1所述的计算机实现的方法,其中在其上评估所述神经网络的所述数据集包含小批量的训练数据集;并且
估计对所述目标的影响包含通过所述计算机***估计用于随机梯度下降的所述目标函数的梯度。
22.根据权利要求1所述的计算机实现的方法,其中所述数据集包含第一数据集,所述方法进一步包含:
通过所述计算机***为所述第一数据集中的每个数据项分配数据影响权重;
通过所述计算机***经由随机梯度下降在所述第一数据集上训练所述神经网络,其包含:
通过所述计算机***,根据所述第一数据集中每个数据项的所述数据影响权重,计算每个随机梯度下降更新中梯度估计的加权平均值;
在训练所述神经网络期间,通过所述计算机***测量在第二数据集上所述神经网络的性能;
其中所述第二数据集与所述第一数据集不相交;以及
在训练所述神经网络期间,通过所述计算机***,基于所述神经网络的性能来调整所述第一数据集中的一个或多个数据项的所述数据影响权重。
23.根据权利要求22所述的计算机实现的方法,其中调整所述数据影响权重包含通过所述计算机***将所述数据影响权重设置为零。
24.根据权利要求22所述的计算机实现的方法,其中测量在所述第二数据集上所述神经网络的性能是半监督的。
25.根据权利要求24所述的计算机实现的方法,其中对在所述第二数据集上所述神经网络的性能的半监督测量包含通过所述计算机***经由识别器机器学习***标记所述第二数据集的数据项。
26.根据权利要求1所述的计算机实现的方法,进一步包含:
通过所述计算机***训练所述第二节点以匹配所述第一节点的输出。
27.根据权利要求1所述的计算机实现的方法,进一步包含:通过所述计算机***训练所述第一节点以相对于所述第二节点的输入最大化所述第一节点的所述激活函数和所述目标函数的偏导数之间的相关性的大小。
28.根据权利要求1所述的计算机实现的方法,其中所述激活函数包含非单调激活函数。
29.根据权利要求1所述的计算机实现的方法,其中:
所述神经网络包含:
用于执行第一机器学习任务的第一子网;以及
用于执行与所述第一机器学习任务不同的第二机器学习任务的第二子网;
所述第一节点位于所述第一子网中;并且
所述第二节点位于所述第二子网中。
30.根据权利要求29所述的计算机实现的方法,进一步包含:
通过所述计算机***将所述数据集输入到所述第一子网;以及
通过所述计算机***将所述数据集的子集输入到所述第二子网。
31.根据权利要求29所述的计算机实现的方法,进一步包含:
通过所述计算机***在所述数据集上训练所述第一子网;以及
通过所述计算机***在所述数据集的子集上训练所述第二子网。
32.根据权利要求29所述的计算机实现的方法,进一步包含:
通过所述计算机***训练所述第一子网以区分多个类别;以及
通过所述计算机***训练所述第二子网以区分所述多个类别的子集。
33.根据权利要求29所述的计算机实现的方法,其中所述第一子网能基于第一目标进行评估,并且所述第二子网能基于第二目标进行评估,所述第一目标对应于多个类别,并且所述第二目标对应于所述多个类别的子集。
34.根据权利要求29所述的计算机实现的方法,其中所述第一子网和所述第二子网异步操作,进一步包含:
通过所述计算机***经由由所述计算机***执行的机器学习教练来监测所述第一子网和所述第二子网中的每一个的单独性能;以及
通过所述计算机***改变所述第一子网或所述第二子网中的至少一个的结构,以提高所述第一子网和所述第二子网的组合性能。
35.根据权利要求1所述的计算机实现的方法,其中检测所述神经网络的所述学习过程中的所述问题包含:
通过所述计算机***经由学习教练机器学习***在多个随机梯度下降更新上检测估计梯度的大小是否小于阈值。
36.根据权利要求1所述的计算机实现的方法,其中:
所述数据集包含第一数据集;并且
检测所述神经网络的所述学习过程中的所述问题包含:通过所述计算机***经由学习教练机器学习***检测相对于所述目标而言在所述第一数据集上所述神经网络的性能与相对于所述目标而言在与所述第一数据集不相交的第二数据集上所述神经网络的性能之间的差异是否超过阈值。
37.根据权利要求1所述的计算机实现的方法,其中检测所述神经网络的所述学习过程中的所述问题包含:
通过所述计算机***经由学习教练机器学习***检测所述神经网络是否在多个训练纪元上对所述数据集的数据项进行了误分类。
38.根据权利要求1所述的计算机实现的方法,其中检测所述神经网络的所述学习过程中的所述问题包含:
通过所述计算机***经由学习教练机器学习***检测所述神经网络是否将所述数据集的多个数据项分类为单个类别,其中指定将已分类的所述多个数据项分类为多个类别。
39.根据权利要求1所述的计算机实现的方法,其中检测所述神经网络的所述学习过程中的所述问题包含:
通过所述计算机***检测相对于所述目标而言在所述数据集上所述神经网络的性能比所述神经网络集成的性能差的量是否超过一定标准。
40.根据权利要求1所述的计算机实现的方法,其中纠正由学习教练机器学习***检测到的所述问题包含:
通过所述计算机***在所述第一节点和所述第二节点之间添加或删除连接。
41.根据权利要求1所述的计算机实现的方法,其中纠正由学习教练机器学习***检测到的所述问题包含:
通过所述计算机***解冻所述第一节点和所述第二节点之间的连接权重。
42.根据权利要求1所述的计算机实现的方法,其中所述多个复制神经网络各自包含复制内层节点,所述复制内层节点是所述神经网络的内层节点的副本,所述方法进一步包含:
通过所述计算机***初始化所述组合神经网络,使得所述多个复制神经网络中的每一个的所述复制内层节点不连接到所述多个复制神经网络中的另一个的所述复制内层节点;并且
通过所述计算机***经由学习教练机器学习***在来自不同的复制神经网络的所述复制内层节点之间添加或删除连接;
其中所述学习教练机器学习***已经过训练,以估计由于在所述复制内层节点之间添加或删除所述连接所引起的对所述组合神经网络的所述目标的影响。
43.根据权利要求42所述的计算机实现的方法,进一步包含:
通过所述计算机***在所述多个复制神经网络之间描绘严格偏序;
通过所述计算机***确定所述多个复制神经网络中的第一复制神经网络的第一节点是否小于或不可比于所述多个复制神经网络中的第二复制神经网络的第二节点;以及
仅当所述第一节点小于或不可比于所述第二节点时,通过所述计算机***添加从所述第一节点到所述第二节点的连接。
44.根据权利要求43所述的计算机实现的方法,其中所描绘的严格偏序是全序。
45.根据权利要求43所述的计算机实现的方法,进一步包含:
通过所述计算机***以所述严格偏序将所述第一复制神经网络和所述第二复制神经网络定位成使得它们是可比的。
46.根据权利要求43所述的计算机实现的方法,进一步包含:
通过所述计算机***以所述严格偏序将所述第一复制神经网络定位在第一位置;以及
通过所述计算机***以所述严格偏序将所述第二复制神经网络定位在第二位置;
其中所述第一位置低于所述第二位置。
47.根据权利要求42所述的计算机实现的方法,其中所述神经网络包含第一神经网络,所述方法进一步包含:
通过所述计算机***训练第二神经网络以执行未被所述第一神经网络学习的辨别任务。
48.根据权利要求42所述的计算机实现的方法,进一步包含:
通过所述计算机***经由一次性学习来训练所述神经网络。
49.根据权利要求42所述的计算机实现的方法,进一步包含:
通过所述计算机***训练所述神经网络以辨别来自所述数据集的第一数据项和来自所述数据集的第二数据项。
50.根据权利要求42所述的计算机实现的方法,其中所述神经网络包含第一神经网络,所述方法进一步包含:
通过所述计算机***训练第二神经网络以执行未由所述第一神经网络执行的机器学习任务。
51.一种用于训练人工神经网络的计算机***,所述计算机***包含:
处理器;以及
耦合至所述处理器的随机存取存储器RAM,所述RAM存储:
包含第一节点和第二节点的所述神经网络,所述第一节点和所述第二节点包含能根据由目标函数定义的目标在数据集上进行评估的激活函数;以及
当由所述处理器执行时促使所述计算机***执行以下操作的指令:
至少部分地基于所述第一节点的激活值和所述目标相对于所述第二节点的激活值的偏导数的估计,来计算指示由所述第一节点和所述第二节点之间存在或不存在直接连接所引起的对所述目标的影响的值;
至少部分地基于对所述目标的影响的计算的值来改变神经网络的结构;
根据所述目标在所述数据集上训练所述神经网络;
检测在训练所述神经网络期间所述神经网络的学习过程中的问题;以及
通过以下操作来纠正所述问题:
将所述神经网络复制到多个复制神经网络中;
其中所述多个复制神经网络各自包含复制节点的第一集合,所述复制节点的第一集合是所述神经网络中连接到所述神经网络的输入节点的节点的副本;
其中所述多个复制神经网络各自包含复制节点的第二集合,所述复制节点的第二集合是所述神经网络中连接到所述神经网络的输出节点的节点的副本;
将所述多个复制神经网络组合成组合神经网络;
将所述复制节点的所述第一集合中的每一个连接到所述组合神经网络的相应输入节点;以及
将所述复制节点的所述第二集合中的每一个连接到所述组合神经网络的相应输出节点。
52.根据权利要求51所述的计算机***,其中所述RAM存储指令,所述指令使得所述计算机***通过针对所述数据集中的每个数据项计算所述第一节点的激活值和所述目标的偏导数的乘积相对于对所述第二节点的输入在所述数据集上的加权平均值,来估计对所述目标的影响。
53.根据权利要求52所述的计算机***,其中所述数据集包含除训练数据集以外设置的开发数据集,所述神经网络在所述训练数据集上进行了训练。
54.根据权利要求51所述的计算机***,其中:
所述第一节点和所述第二节点未直接连接;并且
所述RAM存储促使所述计算机***执行以下操作的指令:
通过估计在所述第一节点和所述第二节点之间添加所述直接连接对所述目标的影响来估计对所述目标的影响;以及
通过至少部分地基于对所述目标的影响的估计是否表明由于存在所述直接连接相对于所述目标而言所述神经网络的性能提高,而在所述第一节点和所述第二节点之间添加所述直接连接来改变所述神经网络的所述结构。
55.根据权利要求51所述的计算机***,其中:
所述第一节点和所述第二节点直接连接;
所述RAM存储促使所述计算机***执行以下操作的指令:
通过估计在所述第一节点和所述第二节点之间删除所述直接连接对所述目标的影响来估计对所述目标的影响;以及
通过至少部分地基于对所述目标的影响的估计是否表明由于不存在所述直接连接相对于所述目标而言所述神经网络的性能提高,而在所述第一节点和所述第二节点之间删除所述直接连接来改变所述神经网络的所述结构。
56.根据权利要求55所述的计算机***,其中所述RAM存储了指令,所述指令促使所述计算机***进一步至少部分基于与所述第一节点和所述第二节点之间的所述直接连接相关联的连接权重的大小,而在所述第一节点和所述第二节点之间删除所述直接连接。
57.根据权利要求51所述的计算机***,其中所述神经网络包含严格偏序集、加权有向无环图、递归神经网络、分层前馈神经网络中的至少一个。
58.根据权利要求57所述的计算机***,其中:
所述神经网络包含所述分层前馈神经网络;
所述第一节点位于所述分层前馈神经网络的第一层中,并且所述第二节点位于所述分层前馈神经网络的第二层中;并且
所述第一节点和所述第二节点未直接连接。
59.根据权利要求51所述的计算机***,其中:
所述神经网络包含第一子网和第二子网;
所述第一节点位于所述第一子网中;
所述第二节点位于所述第二子网中;并且
所述RAM存储指令,所述指令促使所述计算机***通过至少部分地基于对所述目标的影响的估计是否表明由于存在所述直接连接相对于所述目标而言所述神经网络的性能提高,添加从所述第一节点到所述第二节点的所述直接连接来改变所述神经网络的所述结构。
60.根据权利要求51所述的计算机***,其中:
所述RAM存储用于控制所述神经网络的机器学习***;并且
所述RAM存储指令,所述指令促使所述计算机***根据所述机器学习***改变所述神经网络的所述结构。
61.根据权利要求60所述的计算机***,其中所述机器学习***包含学习教练机器学习***。
62.根据权利要求51所述的计算机***,其中:
所述第一节点和所述第二节点以与所述神经网络的传递闭包相对应的严格偏序形成覆盖对;并且
所述RAM存储指令,所述指令促使所述计算机***通过至少部分地基于对所述目标的影响的估计是否表明由于以第二直接连接替换第一直接连接相对于所述目标而言所述神经网络的性能提高,而删除从所述第一节点到所述第二节点的所述第一直接连接并添加从所述第二节点到所述第一节点的所述第二直接连接来改变所述神经网络的所述结构。
63.根据权利要求51所述的计算机***,其中所述RAM存储指令,所述指令促使所述计算机***冻结所述第一节点和所述第二节点之间的所述直接连接,使得当所述直接连接被冻结时,所述直接连接的连接权重在训练所述神经网络期间不会改变。
64.根据权利要求63所述的计算机***,其中所述冻结的直接连接的所述连接权重为零。
65.根据权利要求63所述的计算机***,其中所述冻结的直接连接的所述连接权重为非零。
66.根据权利要求63所述的计算机***,其中所述RAM存储指令,所述指令促使所述计算机***解冻所述冻结的直接连接。
67.根据权利要求51所述的计算机***,其中在其上评估所述神经网络的数据集包含整个批量的训练数据集。
68.根据权利要求51所述的计算机***,其中:
在其上评估所述神经网络的数据集包含小批量的训练数据集;并且
所述RAM存储指令,所述指令促使所述计算机***通过估计用于随机梯度下降的所述目标函数的梯度来估计对所述目标的影响。
69.根据权利要求51所述的计算机***,其中:
所述数据集包含第一数据集;并且
所述RAM存储促使所述计算机***执行以下操作的指令:
为所述第一数据集中的每个数据项分配数据影响权重;
经由随机梯度下降在所述第一数据集上训练所述神经网络,其包含:
根据所述第一数据集中每个数据项的所述数据影响权重,计算每个随机梯度下降更新中梯度估计的加权平均值;
在训练所述神经网络期间,测量在第二数据集上所述神经网络的性能;
其中所述第二数据集与所述第一数据集不相交;并且
在训练所述神经网络期间,基于所述神经网络的性能来调整所述第一数据集中的一个或多个数据项的所述数据影响权重。
70.根据权利要求69所述的计算机***,其中所述RAM存储指令,所述指令促使所述计算机***通过将所述数据影响权重设置为零来调整所述数据影响权重。
71.根据权利要求69所述的计算机***,其中在所述第二数据集上所述神经网络的性能包含经由半监督机器学习进行测量。
72.根据权利要求71所述的计算机***,其中所述RAM存储指令,所述指令促使所述计算机***经由用于所述半监督机器学习的识别器机器学习***来标记所述第二数据集的数据项。
73.根据权利要求51所述的计算机***,其中所述RAM存储指令,所述指令促使所述计算机***训练所述第二节点以匹配所述第一节点的输出。
74.根据权利要求51所述的计算机***,其中所述RAM存储指令,所述指令促使所述计算机***训练所述第一节点以相对于所述第二节点的输入最大化所述第一节点的所述激活函数和所述目标函数的偏导数之间的相关性的大小。
75.根据权利要求51所述的计算机***,其中所述激活函数包含非单调激活函数。
76.根据权利要求51所述的计算机***,其中:
所述神经网络包含:
用于执行第一机器学习任务的第一子网;以及
用于执行与所述第一机器学习任务不同的第二机器学习任务的第二子网;
所述第一节点位于所述第一子网中;并且
所述第二节点位于所述第二子网中。
77.根据权利要求76所述的计算机***,其中所述RAM存储促使所述计算机***执行以下操作的指令:
将所述数据集输入到所述第一子网;以及
将所述数据集的子集输入到所述第二子网。
78.根据权利要求76所述的计算机***,其中所述RAM存储促使所述计算机***执行以下操作的指令:
在所述数据集上训练第一子网;以及
在所述数据集的子集上训练所述第二子网。
79.根据权利要求76所述的计算机***,其中所述RAM存储了促使所述计算机***执行以下操作的指令:
训练所述第一子网以区分多个类别;以及
训练所述第二子网以区分所述多个类别的子集。
80.根据权利要求76所述的计算机***,其中所述第一子网能基于第一目标进行评估,并且所述第二子网能基于第二目标进行评估,所述第一目标对应于多个类别,并且所述第二目标对应于所述多个类别的子集。
81.根据权利要求76所述的计算机***,其中:
所述第一子网和所述第二子网异步操作;并且
所述RAM存储促使所述计算机***执行以下操作的指令:
经由由所述计算机***执行的机器学习教练来监测所述第一子网和所述第二子网中每一个的单独性能;以及
改变所述第一子网或所述第二子网中至少一个的结构,以提高所述第一子网和所述第二子网的组合性能。
82.根据权利要求51所述的计算机***,其中所述RAM存储指令,所述指令促使所述计算机***通过经由学习教练机器学习***在多个随机梯度下降更新上检测估计梯度的大小是否小于阈值来检测所述神经网络的所述学习过程中的所述问题。
83.根据权利要求51所述的计算机***,其中:
所述数据集包含第一数据集;并且
RAM存储指令,所述指令促使计算机***通过经由学习教练机器学习***检测相对于所述目标而言在所述第一数据集上所述神经网络的性能与相对于所述目标而言在与所述第一数据集不相交的第二数据集上所述神经网络的性能之间的差异是否超过阈值,来检测所述神经网络的所述学习过程中的所述问题。
84.根据权利要求51所述的计算机***,其中所述RAM存储指令,所述指令促使所述计算机***通过经由学习教练机器学习***检测所述神经网络是否在多个训练纪元上对所述数据集的数据项进行了误分类,来检测所述神经网络的所述学习过程中的所述问题。
85.根据权利要求51所述的计算机***,其中所述RAM存储指令,所述指令促使所述计算机***通过经由学习教练机器学习***检测所述神经网络是否将所述数据集的多个数据项分类为单个类别来检测所述神经网络的所述学习过程中的所述问题,其中指定将已分类的所述多个数据项分类为多个类别。
86.根据权利要求51所述的计算机***,其中所述RAM存储指令,所述指令促使所述计算机***通过检测相对于所述目标而言在所述数据集上所述神经网络的性能比神经网络集成的性能差的量是否超过一定标准,来检测所述神经网络的所述学习过程中的所述问题。
87.根据权利要求51所述的计算机***,其中所述RAM存储指令,所述指令促使所述计算机***通过在所述第一节点和所述第二节点之间添加或删除连接来纠正由学习教练机器学习***检测到的所述问题。
88.根据权利要求51所述的计算机***,其中所述RAM存储指令,所述指令促使所述计算机***通过解冻所述第一节点和所述第二节点之间的连接权重来纠正由学习教练机器学习***检测到的所述问题。
89.根据权利要求51所述的计算机***,其中:
所述多个复制神经网络各自包含复制内层节点,所述复制内层节点是所述神经网络的内层节点的副本;并且
所述RAM存储促使所述计算机***执行以下操作的指令:
初始化所述组合神经网络,使得所述多个复制神经网络中的每一个的所述复制内层节点不连接到所述多个复制神经网络中的另一个的所述复制内层节点;并且
经由学习教练机器学习***在来自不同的复制神经网络的所述复制内层节点之间添加或删除连接;
其中所述学习教练机器学习***已经过训练,以估计由于在所述复制内层节点之间添加或删除所述连接所引起的对所述组合神经网络的所述目标的影响。
90.根据权利要求89所述的计算机***,其中所述RAM存储促使所述计算机***执行以下操作的指令:
在所述多个复制神经网络之间描绘严格偏序;
确定所述多个复制神经网络中的第一复制神经网络的第一节点是否小于或不可比于所述多个复制神经网络中的第二复制神经网络的第二节点;以及
仅当所述第一节点小于或不可比于所述第二节点时,添加从所述第一节点到所述第二节点的连接。
91.根据权利要求90所述的计算机***,其中所描绘的严格偏序是全序。
92.根据权利要求90所述的计算机***,其中所述RAM存储指令,所述指令促使所述计算机***以所述严格偏序将所述第一复制神经网络和所述第二复制神经网络定位成使得它们是可比的。
93.根据权利要求90所述的计算机***,其中所述RAM存储促使所述计算机***执行以下操作的指令:
以所述严格偏序将所述第一复制神经网络定位在第一位置;以及
以所述严格偏序将所述第二复制神经网络定位在第二位置;
其中所述第一位置低于所述第二位置。
94.根据权利要求89所述的计算机***,其中:
所述神经网络包含第一神经网络;并且
所述RAM存储指令,所述指令促使所述计算机***训练第二神经网络以执行未被所述第一神经网络学习的辨别任务。
95.根据权利要求89所述的计算机***,其中所述RAM存储指令,所述指令促使所述计算机***经由一次性学习来训练所述神经网络。
96.根据权利要求89所述的计算机***,其中所述RAM存储指令,所述指令促使所述计算机***训练所述神经网络以辨别来自所述数据集的第一数据项和来自所述数据集的第二数据项。
97.根据权利要求89所述的计算机***,其中:
所述神经网络包含第一神经网络;并且
所述RAM存储指令,所述指令促使所述计算机***训练第二神经网络以执行未由所述第一神经网络执行的机器学习任务。
Applications Claiming Priority (5)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
US201862623773P | 2018-01-30 | 2018-01-30 | |
US62/623,773 | 2018-01-30 | ||
US201862647085P | 2018-03-23 | 2018-03-23 | |
US62/647,085 | 2018-03-23 | ||
PCT/US2019/015389 WO2019152308A1 (en) | 2018-01-30 | 2019-01-28 | Self-organizing partially ordered networks |
Publications (2)
Publication Number | Publication Date |
---|---|
CN111602149A CN111602149A (zh) | 2020-08-28 |
CN111602149B true CN111602149B (zh) | 2024-04-02 |
Family
ID=67478997
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201980008607.5A Active CN111602149B (zh) | 2018-01-30 | 2019-01-28 | 自组织偏序网络 |
Country Status (4)
Country | Link |
---|---|
US (11) | US11461655B2 (zh) |
EP (1) | EP3701351A4 (zh) |
CN (1) | CN111602149B (zh) |
WO (1) | WO2019152308A1 (zh) |
Families Citing this family (55)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
WO2018176000A1 (en) | 2017-03-23 | 2018-09-27 | DeepScale, Inc. | Data synthesis for autonomous control systems |
WO2018226492A1 (en) | 2017-06-05 | 2018-12-13 | D5Ai Llc | Asynchronous agents with learning coaches and structurally modifying deep neural networks without performance degradation |
WO2018226527A1 (en) | 2017-06-08 | 2018-12-13 | D5Ai Llc | Data splitting by gradient direction for neural networks |
US10885470B2 (en) | 2017-06-26 | 2021-01-05 | D5Ai Llc | Selective training for decorrelation of errors |
US11003982B2 (en) | 2017-06-27 | 2021-05-11 | D5Ai Llc | Aligned training of deep networks |
US11893393B2 (en) | 2017-07-24 | 2024-02-06 | Tesla, Inc. | Computational array microprocessor system with hardware arbiter managing memory requests |
US11157441B2 (en) | 2017-07-24 | 2021-10-26 | Tesla, Inc. | Computational array microprocessor system using non-consecutive data formatting |
US11409692B2 (en) | 2017-07-24 | 2022-08-09 | Tesla, Inc. | Vector computational unit |
US10671349B2 (en) | 2017-07-24 | 2020-06-02 | Tesla, Inc. | Accelerated mathematical engine |
US11270188B2 (en) | 2017-09-28 | 2022-03-08 | D5Ai Llc | Joint optimization of ensembles in deep learning |
US11780084B2 (en) * | 2018-01-16 | 2023-10-10 | Sony Interactive Entertainment Inc. | Robotic device, control method for robotic device, and program |
US11648672B2 (en) | 2018-01-16 | 2023-05-16 | Sony Interactive Entertainment Inc. | Information processing device and image generation method |
JP6961723B2 (ja) | 2018-01-16 | 2021-11-05 | 株式会社ソニー・インタラクティブエンタテインメント | 移動体および移動体制御方法 |
US11093830B2 (en) | 2018-01-30 | 2021-08-17 | D5Ai Llc | Stacking multiple nodal networks |
CN111602149B (zh) | 2018-01-30 | 2024-04-02 | D5Ai有限责任公司 | 自组织偏序网络 |
US11321612B2 (en) | 2018-01-30 | 2022-05-03 | D5Ai Llc | Self-organizing partially ordered networks and soft-tying learned parameters, such as connection weights |
US11561791B2 (en) | 2018-02-01 | 2023-01-24 | Tesla, Inc. | Vector computational unit receiving data elements in parallel from a last row of a computational array |
CA3043809A1 (en) * | 2018-05-17 | 2019-11-17 | Royal Bank Of Canada | System and method for machine learning architecture with adversarial attack defence |
US11215999B2 (en) | 2018-06-20 | 2022-01-04 | Tesla, Inc. | Data pipeline and deep learning system for autonomous driving |
WO2020005471A1 (en) | 2018-06-29 | 2020-01-02 | D5Ai Llc | Using back propagation computation as data |
US10922587B2 (en) | 2018-07-03 | 2021-02-16 | D5Ai Llc | Analyzing and correcting vulnerabilities in neural networks |
WO2020018279A1 (en) | 2018-07-16 | 2020-01-23 | D5Ai Llc | Building ensembles for deep learning by parallel data splitting |
US11361457B2 (en) | 2018-07-20 | 2022-06-14 | Tesla, Inc. | Annotation cross-labeling for autonomous control systems |
US11636333B2 (en) | 2018-07-26 | 2023-04-25 | Tesla, Inc. | Optimizing neural network structures for embedded systems |
WO2020033645A1 (en) | 2018-08-09 | 2020-02-13 | D5Ai Llc | Companion analysis network in deep learning |
US11074502B2 (en) | 2018-08-23 | 2021-07-27 | D5Ai Llc | Efficiently building deep neural networks |
WO2020046721A1 (en) | 2018-08-27 | 2020-03-05 | D5Ai Llc | Building a deep neural network with diverse strata |
US11037059B2 (en) | 2018-08-31 | 2021-06-15 | D5Ai Llc | Self-supervised back propagation for deep learning |
US11562231B2 (en) | 2018-09-03 | 2023-01-24 | Tesla, Inc. | Neural networks for embedded devices |
US11423284B2 (en) * | 2018-09-07 | 2022-08-23 | Black Sesame Technologies, Inc | Subgraph tile fusion in a convolutional neural network |
US11151175B2 (en) * | 2018-09-24 | 2021-10-19 | International Business Machines Corporation | On-demand relation extraction from text |
IL282172B2 (en) | 2018-10-11 | 2024-02-01 | Tesla Inc | Systems and methods for training machine models with enhanced data |
US11196678B2 (en) | 2018-10-25 | 2021-12-07 | Tesla, Inc. | QOS manager for system on a chip communications |
US11816585B2 (en) | 2018-12-03 | 2023-11-14 | Tesla, Inc. | Machine learning models operating at different frequencies for autonomous vehicles |
US11537811B2 (en) | 2018-12-04 | 2022-12-27 | Tesla, Inc. | Enhanced object detection for autonomous vehicles based on field view |
US20210232969A1 (en) * | 2018-12-24 | 2021-07-29 | Intel Corporation | Methods and apparatus to process a machine learning model in a multi-process web browser environment |
US11610117B2 (en) | 2018-12-27 | 2023-03-21 | Tesla, Inc. | System and method for adapting a neural network model on a hardware platform |
US11150664B2 (en) | 2019-02-01 | 2021-10-19 | Tesla, Inc. | Predicting three-dimensional features for autonomous driving |
US10997461B2 (en) | 2019-02-01 | 2021-05-04 | Tesla, Inc. | Generating ground truth for machine learning from time series elements |
US11567514B2 (en) | 2019-02-11 | 2023-01-31 | Tesla, Inc. | Autonomous and user controlled vehicle summon to a target |
US10956755B2 (en) | 2019-02-19 | 2021-03-23 | Tesla, Inc. | Estimating object properties using visual image data |
US11429858B2 (en) * | 2019-04-04 | 2022-08-30 | International Business Machines Corporation | Deep learning experiment content generation based on single design |
US11699064B2 (en) * | 2019-04-23 | 2023-07-11 | Arm Limited | Data processing using a neural network system |
US11526761B2 (en) * | 2019-08-24 | 2022-12-13 | Microsoft Technology Licensing, Llc | Neural network training with decreased memory consumption and processor utilization |
WO2021040944A1 (en) | 2019-08-26 | 2021-03-04 | D5Ai Llc | Deep learning with judgment |
US11762751B2 (en) * | 2019-09-17 | 2023-09-19 | International Business Machines Corporation | System-level tunable parameter identification |
CN110929394B (zh) * | 2019-11-14 | 2024-01-23 | 北京华如科技股份有限公司 | 基于超网络理论的联合作战体系建模方法以及存储介质 |
WO2021194516A1 (en) | 2020-03-23 | 2021-09-30 | D5Ai Llc | Data-dependent node-to-node knowledge sharing by regularization in deep learning |
CN115244521A (zh) * | 2020-05-06 | 2022-10-25 | 阿里巴巴集团控股有限公司 | 用于存储数据的分级方法和*** |
US11410186B2 (en) * | 2020-05-14 | 2022-08-09 | Sap Se | Automated support for interpretation of terms |
WO2021242920A1 (en) * | 2020-05-28 | 2021-12-02 | Feedzai - Consultadoria E Inovação Tecnológica, S.A. | Active learning annotation system that does not require historical data |
US11836600B2 (en) | 2020-08-20 | 2023-12-05 | D5Ai Llc | Targeted incremental growth with continual learning in deep neural networks |
US20220188632A1 (en) * | 2020-12-16 | 2022-06-16 | Micron Technology, Inc. | Evolutionary Imitation Learning |
CN112380351B (zh) * | 2021-01-18 | 2021-04-06 | 上海旻浦科技有限公司 | 一种文本分类方法、***、终端以及存储介质 |
CN114757911B (zh) * | 2022-04-14 | 2023-04-07 | 电子科技大学 | 基于图神经网络和对比学习的磁共振影像辅助处理*** |
Citations (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN105812834A (zh) * | 2016-05-10 | 2016-07-27 | 南京大学 | 基于聚类信息的视频推荐服务器、推荐方法和预缓存方法 |
CN106339756A (zh) * | 2016-08-25 | 2017-01-18 | 北京百度网讯科技有限公司 | 训练数据的生成方法、搜索方法以及装置 |
Family Cites Families (73)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US5959574A (en) | 1993-12-21 | 1999-09-28 | Colorado State University Research Foundation | Method and system for tracking multiple regional objects by multi-dimensional relaxation |
US5701398A (en) * | 1994-07-01 | 1997-12-23 | Nestor, Inc. | Adaptive classifier having multiple subnetworks |
US5745649A (en) * | 1994-07-07 | 1998-04-28 | Nynex Science & Technology Corporation | Automated speech recognition using a plurality of different multilayer perception structures to model a plurality of distinct phoneme categories |
US5909681A (en) * | 1996-03-25 | 1999-06-01 | Torrent Systems, Inc. | Computer system and computerized method for partitioning data for parallel processing |
WO2002095534A2 (en) | 2001-05-18 | 2002-11-28 | Biowulf Technologies, Llc | Methods for feature selection in a learning machine |
GB9924310D0 (en) * | 1999-10-15 | 1999-12-15 | Univ Manchester | Neural network component |
US7080053B2 (en) | 2000-08-16 | 2006-07-18 | Research Foundation Of State University Of New York | Neural network device for evolving appropriate connections |
JP4093858B2 (ja) * | 2000-10-13 | 2008-06-04 | フラウンホーファー−ゲゼルシャフト・ツア・フォルデルング・デア・アンゲヴァンテン・フォルシュング・エー・ファウ | リカレントニューラルネットワーク |
WO2002047026A2 (de) | 2000-12-07 | 2002-06-13 | Kates Ronald E | Verfahren zur ermittlung konkurrierender risiken |
US7016885B1 (en) * | 2001-08-28 | 2006-03-21 | University Of Central Florida Research Foundation, Inc. | Self-designing intelligent signal processing system capable of evolutional learning for classification/recognition of one and multidimensional signals |
US9679242B2 (en) * | 2002-03-12 | 2017-06-13 | Knowm Tech, Llc | Memristor apparatus with meta-stable switching elements |
US8781983B2 (en) | 2009-12-29 | 2014-07-15 | Knowmtech, Llc | Framework for the evolution of electronic neural assemblies toward directed goals |
US7483868B2 (en) * | 2002-04-19 | 2009-01-27 | Computer Associates Think, Inc. | Automatic neural-net model generation and maintenance |
US6895540B2 (en) | 2002-07-18 | 2005-05-17 | Faraday Technology Corp. | Mux scan cell with delay circuit for reducing hold-time violations |
US20040042650A1 (en) | 2002-08-30 | 2004-03-04 | Lockheed Martin Corporation | Binary optical neural network classifiers for pattern recognition |
US20040059695A1 (en) * | 2002-09-20 | 2004-03-25 | Weimin Xiao | Neural network and method of training |
US7497622B2 (en) * | 2003-03-12 | 2009-03-03 | Burton Kozak | Enclosure for preserving perishable goods |
US7409372B2 (en) | 2003-06-20 | 2008-08-05 | Hewlett-Packard Development Company, L.P. | Neural network trained with spatial errors |
US7426501B2 (en) * | 2003-07-18 | 2008-09-16 | Knowntech, Llc | Nanotechnology neural network methods and systems |
US7587064B2 (en) * | 2004-02-03 | 2009-09-08 | Hrl Laboratories, Llc | Active learning system for object fingerprinting |
JP2005352900A (ja) * | 2004-06-11 | 2005-12-22 | Canon Inc | 情報処理装置、情報処理方法、パターン認識装置、及びパターン認識方法 |
US20050289089A1 (en) * | 2004-06-28 | 2005-12-29 | Naoki Abe | Methods for multi-class cost-sensitive learning |
US7631198B2 (en) * | 2005-05-10 | 2009-12-08 | Seagate Technology | Protocol scripting language for safe execution in embedded system |
US20140156901A1 (en) * | 2005-10-26 | 2014-06-05 | Cortica Ltd. | Computing device, a system and a method for parallel processing of data streams |
US20070288410A1 (en) * | 2006-06-12 | 2007-12-13 | Benjamin Tomkins | System and method of using genetic programming and neural network technologies to enhance spectral data |
WO2008033439A2 (en) * | 2006-09-13 | 2008-03-20 | Aurilab, Llc | Robust pattern recognition system and method using socratic agents |
US7756799B2 (en) * | 2006-10-27 | 2010-07-13 | Hewlett-Packard Development Company, L.P. | Feature selection based on partial ordered set of classifiers |
JP6164639B2 (ja) * | 2013-05-23 | 2017-07-19 | 国立研究開発法人情報通信研究機構 | ディープ・ニューラルネットワークの学習方法、及びコンピュータプログラム |
US9730643B2 (en) * | 2013-10-17 | 2017-08-15 | Siemens Healthcare Gmbh | Method and system for anatomical object detection using marginal space deep neural networks |
US9489639B2 (en) * | 2013-11-13 | 2016-11-08 | Microsoft Technology Licensing, Llc | Memory facilitation using directed acyclic graphs |
US9239828B2 (en) * | 2013-12-05 | 2016-01-19 | Microsoft Technology Licensing, Llc | Recurrent conditional random fields |
US10235639B1 (en) * | 2014-03-14 | 2019-03-19 | Directly Software, Inc. | Al based CRM system |
US9554854B2 (en) | 2014-03-18 | 2017-01-31 | Ethicon Endo-Surgery, Llc | Detecting short circuits in electrosurgical medical devices |
US11157808B2 (en) * | 2014-05-22 | 2021-10-26 | 3M Innovative Properties Company | Neural network-based confidence assessment module for healthcare coding applications |
US10832138B2 (en) * | 2014-11-27 | 2020-11-10 | Samsung Electronics Co., Ltd. | Method and apparatus for extending neural network |
US10275719B2 (en) * | 2015-01-29 | 2019-04-30 | Qualcomm Incorporated | Hyper-parameter selection for deep convolutional networks |
US9576250B2 (en) | 2015-02-24 | 2017-02-21 | Xerox Corporation | Method and system for simulating users in the context of a parking lot based on the automatic learning of a user choice decision function from historical data considering multiple user behavior profiles |
US9633306B2 (en) * | 2015-05-07 | 2017-04-25 | Siemens Healthcare Gmbh | Method and system for approximating deep neural networks for anatomical object detection |
US10565518B2 (en) | 2015-06-23 | 2020-02-18 | Adobe Inc. | Collaborative feature learning from social media |
US20170132528A1 (en) * | 2015-11-06 | 2017-05-11 | Microsoft Technology Licensing, Llc | Joint model training |
US10832120B2 (en) * | 2015-12-11 | 2020-11-10 | Baidu Usa Llc | Systems and methods for a multi-core optimized recurrent neural network |
US10410113B2 (en) * | 2016-01-14 | 2019-09-10 | Preferred Networks, Inc. | Time series data adaptation and sensor fusion systems, methods, and apparatus |
JP6758406B2 (ja) * | 2016-04-13 | 2020-09-23 | グーグル エルエルシー | ワイドアンドディープマシンラーニングモデル |
US10755172B2 (en) * | 2016-06-22 | 2020-08-25 | Massachusetts Institute Of Technology | Secure training of multi-party deep neural network |
CA2973074A1 (en) * | 2016-07-13 | 2018-01-13 | Sightline Innovation Inc. | System and method for surface inspection |
AU2016277542A1 (en) * | 2016-12-19 | 2018-07-05 | Canon Kabushiki Kaisha | Method for training an artificial neural network |
EP3602316A4 (en) | 2017-03-24 | 2020-12-30 | D5A1 Llc | LEARNING COACH FOR AUTOMATIC LEARNING SYSTEM |
EP3612984A4 (en) | 2017-04-18 | 2021-03-24 | D5A1 Llc | MULTI-LEVEL MACHINE LEARNING AND RECOGNITION |
WO2018226492A1 (en) | 2017-06-05 | 2018-12-13 | D5Ai Llc | Asynchronous agents with learning coaches and structurally modifying deep neural networks without performance degradation |
WO2018226527A1 (en) | 2017-06-08 | 2018-12-13 | D5Ai Llc | Data splitting by gradient direction for neural networks |
WO2018231708A2 (en) | 2017-06-12 | 2018-12-20 | D5Ai Llc | Robust anti-adversarial machine learning |
US20180373986A1 (en) * | 2017-06-26 | 2018-12-27 | QbitLogic, Inc. | Machine learning using dynamic multilayer perceptrons |
US10885470B2 (en) | 2017-06-26 | 2021-01-05 | D5Ai Llc | Selective training for decorrelation of errors |
US11003982B2 (en) | 2017-06-27 | 2021-05-11 | D5Ai Llc | Aligned training of deep networks |
WO2019067960A1 (en) | 2017-09-28 | 2019-04-04 | D5Ai Llc | AGGRESSIVE DEVELOPMENT USING COOPERATIVE GENERATORS |
US10679129B2 (en) | 2017-09-28 | 2020-06-09 | D5Ai Llc | Stochastic categorical autoencoder network |
WO2019067831A1 (en) | 2017-09-28 | 2019-04-04 | D5Ai Llc | MULTI-OBJECTIVE DEEP LEARNING GENERATORS |
US11270188B2 (en) | 2017-09-28 | 2022-03-08 | D5Ai Llc | Joint optimization of ensembles in deep learning |
US11232344B2 (en) * | 2017-10-31 | 2022-01-25 | General Electric Company | Multi-task feature selection neural networks |
US11074499B2 (en) * | 2017-11-20 | 2021-07-27 | International Business Machines Corporation | Synaptic weight transfer between conductance pairs with polarity inversion for reducing fixed device asymmetries |
US11475350B2 (en) * | 2018-01-22 | 2022-10-18 | Google Llc | Training user-level differentially private machine-learned models |
CN111602149B (zh) | 2018-01-30 | 2024-04-02 | D5Ai有限责任公司 | 自组织偏序网络 |
US11651273B2 (en) * | 2018-04-19 | 2023-05-16 | National University Of Singapore | Machine learning using partial order hypergraphs |
WO2020005471A1 (en) | 2018-06-29 | 2020-01-02 | D5Ai Llc | Using back propagation computation as data |
US10922587B2 (en) | 2018-07-03 | 2021-02-16 | D5Ai Llc | Analyzing and correcting vulnerabilities in neural networks |
WO2020009912A1 (en) | 2018-07-05 | 2020-01-09 | D5Ai Llc | Forward propagation of secondary objective for deep learning |
WO2020018279A1 (en) | 2018-07-16 | 2020-01-23 | D5Ai Llc | Building ensembles for deep learning by parallel data splitting |
US20200410090A1 (en) | 2018-08-01 | 2020-12-31 | D5Ai Llc | Robust von neumann ensembles for deep learning |
WO2020033645A1 (en) | 2018-08-09 | 2020-02-13 | D5Ai Llc | Companion analysis network in deep learning |
WO2020036847A1 (en) | 2018-08-17 | 2020-02-20 | D5Ai Llc | Building deep learning ensembles with diverse targets |
US11074502B2 (en) | 2018-08-23 | 2021-07-27 | D5Ai Llc | Efficiently building deep neural networks |
WO2020046721A1 (en) | 2018-08-27 | 2020-03-05 | D5Ai Llc | Building a deep neural network with diverse strata |
US11037059B2 (en) | 2018-08-31 | 2021-06-15 | D5Ai Llc | Self-supervised back propagation for deep learning |
-
2019
- 2019-01-28 CN CN201980008607.5A patent/CN111602149B/zh active Active
- 2019-01-28 EP EP19748344.9A patent/EP3701351A4/en active Pending
- 2019-01-28 US US16/767,966 patent/US11461655B2/en active Active
- 2019-01-28 WO PCT/US2019/015389 patent/WO2019152308A1/en active Search and Examination
-
2020
- 2020-06-17 US US16/903,980 patent/US20200364625A1/en not_active Abandoned
- 2020-07-07 US US16/922,057 patent/US11151455B2/en active Active
- 2020-07-07 US US16/922,106 patent/US20210056380A1/en not_active Abandoned
- 2020-07-08 US US16/923,630 patent/US10929757B2/en active Active
- 2020-07-08 US US16/923,234 patent/US11087217B2/en active Active
- 2020-07-08 US US16/923,218 patent/US20200342317A1/en not_active Abandoned
- 2020-07-15 US US16/930,015 patent/US11010671B2/en active Active
- 2020-07-15 US US16/929,900 patent/US11748624B2/en active Active
- 2020-07-15 US US16/930,085 patent/US20200349446A1/en not_active Abandoned
-
2023
- 2023-07-13 US US18/352,044 patent/US20230368029A1/en active Pending
Patent Citations (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN105812834A (zh) * | 2016-05-10 | 2016-07-27 | 南京大学 | 基于聚类信息的视频推荐服务器、推荐方法和预缓存方法 |
CN106339756A (zh) * | 2016-08-25 | 2017-01-18 | 北京百度网讯科技有限公司 | 训练数据的生成方法、搜索方法以及装置 |
Non-Patent Citations (1)
Title |
---|
Mehrotra. Eelments of artificial neural networks . 请帮忙下载第3、10、18-20、25、33-34、37-38、43-56、62、72、80、86-88、136页. * |
Also Published As
Publication number | Publication date |
---|---|
US20210056380A1 (en) | 2021-02-25 |
US10929757B2 (en) | 2021-02-23 |
US11151455B2 (en) | 2021-10-19 |
US20200342318A1 (en) | 2020-10-29 |
US20230368029A1 (en) | 2023-11-16 |
US20200364625A1 (en) | 2020-11-19 |
US20200401869A1 (en) | 2020-12-24 |
US11010671B2 (en) | 2021-05-18 |
WO2019152308A1 (en) | 2019-08-08 |
US20200349446A1 (en) | 2020-11-05 |
US20200356861A1 (en) | 2020-11-12 |
US20200334541A1 (en) | 2020-10-22 |
US20200342317A1 (en) | 2020-10-29 |
CN111602149A (zh) | 2020-08-28 |
US11461655B2 (en) | 2022-10-04 |
EP3701351A4 (en) | 2021-01-27 |
US20210056381A1 (en) | 2021-02-25 |
US20200356859A1 (en) | 2020-11-12 |
US11748624B2 (en) | 2023-09-05 |
US11087217B2 (en) | 2021-08-10 |
EP3701351A1 (en) | 2020-09-02 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN111602149B (zh) | 自组织偏序网络 | |
US10832137B2 (en) | Merging multiple nodal networks | |
US11321612B2 (en) | Self-organizing partially ordered networks and soft-tying learned parameters, such as connection weights | |
Rajeswaran et al. | Meta-learning with implicit gradients | |
US11270188B2 (en) | Joint optimization of ensembles in deep learning | |
CN111542843A (zh) | 利用协作生成器积极开发 | |
CN110892417A (zh) | 具有学习教练的异步代理以及在不降低性能的情况下在结构上修改深度神经网络 | |
US20200394521A1 (en) | Using back propagation computation as data | |
Schilling et al. | Hyperparameter optimization with factorized multilayer perceptrons | |
US11222288B2 (en) | Building deep learning ensembles with diverse targets | |
US20230214655A1 (en) | Deep learning with judgment | |
WO2021119282A1 (en) | Hyper-opinion classification using a neural network | |
Tsai et al. | The Cramming, Softening and Integrating Learning Algorithm with Parametric ReLu Activation Function for Binary Input/Output Problems | |
US20220405599A1 (en) | Automated design of architectures of artificial neural networks | |
Purushothaman et al. | On the capacity of feed-forward neural networks for fuzzy classification | |
Feng et al. | A novel processor for dynamic evolution of constrained SAT problems: The dynamic evolution variant of the discrete Hopfield neural network satisfiability model | |
Nordenfors | A Literature Study Concerning Generalization Error Bounds for Neural Networks via Rademacher Complexity | |
Goyal et al. | DeepSaDe: Learning Neural Networks That Guarantee Domain Constraint Satisfaction | |
Interian et al. | Learning interpretable heuristics for WalkSAT | |
Marcondes et al. | Learning the hypotheses space from data through a U-curve algorithm | |
Chu et al. | Applying Deep Learning Methods on Detecting Cycles on Graphs | |
Rauber | Notes on Neural Networks |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
PB01 | Publication | ||
PB01 | Publication | ||
SE01 | Entry into force of request for substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
GR01 | Patent grant | ||
GR01 | Patent grant |