CN101310294A - 神经网络的训练方法 - Google Patents
神经网络的训练方法 Download PDFInfo
- Publication number
- CN101310294A CN101310294A CNA2006800427797A CN200680042779A CN101310294A CN 101310294 A CN101310294 A CN 101310294A CN A2006800427797 A CNA2006800427797 A CN A2006800427797A CN 200680042779 A CN200680042779 A CN 200680042779A CN 101310294 A CN101310294 A CN 101310294A
- Authority
- CN
- China
- Prior art keywords
- ltg
- output
- constraint
- neural network
- training
- 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.)
- Pending
Links
Images
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
- G06T—IMAGE DATA PROCESSING OR GENERATION, IN GENERAL
- G06T1/00—General purpose image data processing
- G06T1/20—Processor architectures; Processor configuration, e.g. pipelining
-
- G—PHYSICS
- G05—CONTROLLING; REGULATING
- G05B—CONTROL OR REGULATING SYSTEMS IN GENERAL; FUNCTIONAL ELEMENTS OF SUCH SYSTEMS; MONITORING OR TESTING ARRANGEMENTS FOR SUCH SYSTEMS OR ELEMENTS
- G05B13/00—Adaptive control systems, i.e. systems automatically adjusting themselves to have a performance which is optimum according to some preassigned criterion
-
- G—PHYSICS
- G05—CONTROLLING; REGULATING
- G05B—CONTROL OR REGULATING SYSTEMS IN GENERAL; FUNCTIONAL ELEMENTS OF SUCH SYSTEMS; MONITORING OR TESTING ARRANGEMENTS FOR SUCH SYSTEMS OR ELEMENTS
- G05B13/00—Adaptive control systems, i.e. systems automatically adjusting themselves to have a performance which is optimum according to some preassigned criterion
- G05B13/02—Adaptive control systems, i.e. systems automatically adjusting themselves to have a performance which is optimum according to some preassigned criterion electric
- G05B13/0265—Adaptive control systems, i.e. systems automatically adjusting themselves to have a performance which is optimum according to some preassigned criterion electric the criterion being a learning criterion
- G05B13/027—Adaptive control systems, i.e. systems automatically adjusting themselves to have a performance which is optimum according to some preassigned criterion electric the criterion being a learning criterion using neural networks only
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06J—HYBRID COMPUTING ARRANGEMENTS
- G06J1/00—Hybrid computing arrangements
-
- 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
-
- 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/088—Non-supervised learning, e.g. competitive learning
Landscapes
- Engineering & Computer Science (AREA)
- Physics & Mathematics (AREA)
- Theoretical Computer Science (AREA)
- Artificial Intelligence (AREA)
- Evolutionary Computation (AREA)
- General Physics & Mathematics (AREA)
- Software Systems (AREA)
- Health & Medical Sciences (AREA)
- Mathematical Physics (AREA)
- Life Sciences & Earth Sciences (AREA)
- Computational Linguistics (AREA)
- Molecular Biology (AREA)
- Computing Systems (AREA)
- General Engineering & Computer Science (AREA)
- General Health & Medical Sciences (AREA)
- Data Mining & Analysis (AREA)
- Biophysics (AREA)
- Biomedical Technology (AREA)
- Automation & Control Theory (AREA)
- Computer Vision & Pattern Recognition (AREA)
- Medical Informatics (AREA)
- Computer Hardware Design (AREA)
- Fuzzy Systems (AREA)
- Image Analysis (AREA)
- Bioinformatics & Cheminformatics (AREA)
- Bioinformatics & Computational Biology (AREA)
- Evolutionary Biology (AREA)
- Physiology (AREA)
- Feedback Control In General (AREA)
- Management, Administration, Business Operations System, And Electronic Commerce (AREA)
- Machine Translation (AREA)
Abstract
本发明提供一种人工神经网络(NN)的训练方法(30)。该方法(30)包括以下步骤:通过选择待训练的NN的一个输出,并且为所选输出而将该NN的一个输出神经元连接到该NN输入层中的输入神经元,从而对NN进行初始化;准备该NN待学习的一个数据集;通过将所准备的数据集的一个输入向量应用到该NN的第一隐层,或者在该NN没有隐层时将其应用到该NN的输出层,并且确定该NN的每一层中所选输出的至少一个神经元是否可以学习产生该输入向量的相关输出,从而将所准备的数据集应用到该NN以进行学习。如果该NN的一层中没有一个神经元可以学习产生该输入向量的相关输出,那么将一新的神经元增加到那层中以学习那层中任何其他神经元无法学习的相关输出。这个新神经元将其输出连接到与受到训练的输出相关联的下一层中的所有神经元上。如果一输出神经元无法学习该输入向量,那么将另一神经元增加到同一层中作为当前输出神经元,将所有输入与其相连。该神经元学习旧输出无法学习的输入。将一附加神经元增加到下一层中。该神经元的输入是该NN的旧输出,而对那一层来说是新增加的神经元。
Description
技术领域
本发明一般地涉及人工神经网络及其操作,尤其但不专门涉及一种改进的神经网络训练方法和/或系统,该方法和/或系统使得神经元能够在训练过程中根据需要增加到网络中。
背景技术
随着过去十年间产生的数据集的扩增和规模,人们更感兴趣于开发能够用于找到数据集内的一些关系、也就是对数据集理解不清晰之处的工具。人们希望那些可以用来研究数据的工具能够一直在每个固定时间量内学习一次数据集,以易于确定关于输入与输出之间关系的显著信息。
一种用来研究数据的工具是前馈神经网络。由于前馈神经网络利用数据集执行许多多样且困难的任务,所以他们在过去大约40年间受到特别关注。这些包括模式归类(pattern classification)和函数逼近,因为它们具有泛化能力。由此,神经网络(以下简称为“NNs”或者“NN”)可以用于如非线性系统建模和图像压缩与重建这样的应用。
NNs对许多领域都有意义,这些领域包括科学、商业、医学和工业,因为它们能被赋予一些数据集,但不知道数据内固有什么关系,而NN可以学习如何成功地对这些数据进行归类。
在某些情况下,数据可能尚未受到任何预先的归类,并且这些情况下,一般采用诸如自组织映射的无监督训练来对数据进行归类。在其他情况下,可能已经预先将数据分解成已经归类的数据样本,并且这些情况下,一般对NN进行训练以能对另外的未归类数据进行归类。在后一情况下,传统上采用一种有监督学习算法。那些已归类的输入数据实例具有相关输出,并且在训练过程中,NN学习以再现与输入向量有关的期望输出。传统上采用有监督训练方法来训练前馈NNs。
人工NNs由许多神经元组成,这些神经元有时称为单元或者节点。它们的灵感取自生物神经元。神经元连接在一起形成网络。每一个神经元都有输入,该输入可来自许多其他神经元。响应于这个输入,该神经元通过激发(firing)或者其他方式产生输出。然后,该神经元的输出可以向许多其他神经元提供输入。这是前馈NN的基本结构。
通常,神经元形成多层。在前馈NNs中,有三种类型的层,即,输入层、隐层和输出层。第一层是输入层,它里面有一个或多个神经元。还有一输出层,它也可以有一个或者多个神经元。NN还可以有一个或者多个隐层。输入层中的所有神经元都将它们的输出送给下一层,该下一层可以是输出层或者是有一个以上隐层时的第一隐层。如果只有一个隐层,那么该隐层中的神经元接着又将把它们的输出报送给输出层。如果有一个以上的隐层,那么那些神经元将把它们的输出馈送入下一隐层中神经元的输入,等等,直到最后一个隐层的神经元把它们的输出馈送入输出层的输入。
也可以是其他网络体系架构,在这些网络体系架构中,将NN专门设计成学习一特定数据集。这尤其可以在学习输入向量的序列(sequences)的NNs中看到,这些NNs可以在各连接中有反馈环。这些NNs称为递归(recurrent)前馈NNs,一般情况下,NN的输出可能常常反馈到NN的输入中。
第一个生物神经元模型由McCulloch和Pitt于1943年开发出来。该模型成为通常所说的McCulloch-Pitt神经元。该McCulloch-Pitt神经元模型或者线性阈值门(以下简称为“LTG”或者“LTGs”)定义为具有许多输入连接,并且每个连接都有一个与其相关的权。该输入在数学上定义为一向量xi∈{0,1}n,其中n是正整数,表示输入到LTG中的输入数目,而i是第i个输入向量。由于有n个输入连接,所以连接权可以在数学上定义为一向量w,其中w∈Rn。每一个输入到LTG中的输入向量都乘以其相关的权值,这可以在数学上表达为xi·w,并将结果与LTGs阈值T相比较,其中T∈R。如果xi·w≥T,则输出为1,否则xi·w<T,则输出为0。换句话说,LTG采用阶跃函数或者Heaviside函数作为神经元的激活函数。
可以采用以下定义在数学上对LTG进行定义:
w={w1,w2,...wn}且xi={x1,x2,...xn}
令netn=xi·w且xi∈{0,1}n和w∈Rn,则LTG的行为可以总结为如下方程1.1:
xi·w<T→0和xi·w≥T→1(1.1)
这样,LTG的输出O是二元{0,1}。如果LTG激活,则输出为1,如果LTG没有激活,则输出为0。
在1962年,利用永久设定为1的附加偏置输入(bias input)修正了LTG。该偏置输入合并了阈值,然后设定为0。修正的LTG模型更名为感知器。感知器模型从xi·w中去除阈值T,因此方程变成xi·w<T≡xi·w-T<0和xi·w≥T≡xi·w-T≥0。现在,阈值可以变成输入到神经元中具有权w0的另一个输入,将输入到神经元中的该输入固定为1,这确保了它总是存在,那么T=1·w0。权w0称为偏置权。那么,方程变为:
xi·w-w0<0且xi·w-w0≥0。
在1960年,Rosenblatt将注意力集中在利用感知器模型找到权的数值。从那时至今,为一神经元中每一个权找到单个数值一直是训练神经元和NNs所建立的方法。尽管认识到可以利用命题逻辑来表达神经元所形成的关系,但是还没有尝试直接找到权值与阈值之间的符号关系。将训练过程中NN学过的数据集内的规则编码为数值,这可能造成它们不能压缩。已经尝试从权值和阈值所找到的数中找到NN学过的规则。所有这些方法都是训练之后的附加过程,它们不允许从NN中直接读取规则。
在1962年,Rosenblatt证明了感知器学习算法的收敛性,它会反复查找满足线性可分数据集的那些数。神经元通过适应连接权而进行学习,从而产生给定特定输入时的期望输出。如在方程1.2中所看到的那样,Rosenblatt的训练规则是基于输入xi和正增益率η(positive gain rate)修正权值wj,其中1≤j≤n,n是输入到感知器中的输入数目,t是时间步长,0≤η≤1。该Rosenblatt的规则用于二进制输出。如果一特定输入的感知器输出是正确的,那么什么也不做。
Wj(t+1)=wj(t)(1.2)
否则,如果输出是0,则应当为1,那么:
Wj(t+1)=wj(t)+ηxi(t)(1.3)
或者,如果输出是1,则应当为0,那么:
Wj(t+1)=wj(t)-ηxi(t)(1.4)
反复调整权值的思想现在已经变成训练前馈NNs所建立的方法。
在1969年,发现Rosenblatt的学习算法不能处理更复杂的数据集。Minsky和Papert论证单层感知器无法解决著名的异或(XOR)问题。无法处理的原因是用迭代来寻找权空间中的单个点。
不是所有的布尔函数都能够由单独一个LTG学习。N个输入变量有2n个组合,当它们与可能的输出组合时,意味着有个独特的布尔函数(它们又是知名的开关函数)。在这个函数中,只有它们中的一些函数能够用单独一个n输入LTG表示。可以用单独一个LTG表示其中输入空间是线性可分的那些布尔函数,但是,要学习那些线性不可分的布尔函数,需要有另外的LTGs。XOR是线性不可分的布尔函数的一个例子,因此,XOR无法由单独一个LTG学习。
采用LTGs的另外的层会引起待由NN学习的线性不可分的一些问题,但是,那时还没有可以使LTGs的多层能够受到训练的可用训练规则。
由此,放弃了McCulloch-Pitt神经元模型,因为没有一种迭代方法能够找到会使LTGs的多层能受到训练的权和阈值的数值。这直到研究出反向传播为止。
在1974年,Werbos提出误差反向传播(或者“反向传播”)的思想。然后在1986年的后期,Rumelhart和Hinton以及Williams在1986年,Parker在1985年也提出了同样的算法,它使多层NN模型能够受到训练以反复查找各权的数值。这使XOR问题以及单层感知器无法解决的许多其他问题得以解决。McCulloch-Pitt的神经元模型再次修正为采用S形函数来代替阶梯函数作为其激活函数。在方程1.5中给出这种S形函数的数学定义。
O=1/(1+e-kx·w)(1.5)
感知器一般采用这种S形函数作为感知器的激活函数。k项控制曲线的分布,而S形函数近似阶梯函数,当k→∞时,输出O→阶梯函数。但是,也可以采用其他的激活函数,例如tanh(kx·w)。因为这种函数的范围从-1到+1,所以如果要求NN不能输出负数,那么采用这种激活函数。
反向传播基于Rosenblatt的学习算法,该算法由方程1.2到1.4描述。它是一种有监督学习算法,并且通过将一输入向量应用到NN的输入层来而执行。该输入层将该输入分配给第一隐层。根据方程1.5计算一层中的每一个神经元的输出,它成为输入给随后一层的输入。重复计算成为输入给随后一层的输入的一层神经元的输出(或者激活量)的过程,直到可以计算NN的输出为止。在实际输出与期望输出之间将会有某种误差,并根据误差量来修正权值。为了减小NN中的误差,通过从进入输出层的连接到隐层上的连接依次调整连接权,经NN反馈或者反向传播输出中的误差。被调整的权的数量与各单元中的误差量成正比。
在方程1.6中给出反向传播delta规则,其中i是该层,j是层i-1中连接所起始的感知器,k是层i中连接转向的感知器。
其中,Δwijk=ηδijkOijk
Δwijk是在尝试减小关于NN中权的数值的误差时修正的权的数量。修正权的这个量基于神经元的输出Oijk,也称为学习率(learning rate)的增益项η和输出中的误差δijk。NN中的误差是NN的实际输出与期望输出之间的差。
当NN受到完全训练时,据说是处于误差函数的全局最小值,因为在NN中的误差最小。由于在误差中有许多潜在的局部最小值,所以可以将该误差想象为一个表面,这意味着它可以是一个函数。但是,对于任何NN来说,这个误差函数是未知的。因为误差函数基于应用到NN中的所有输入向量的期望输出与实际输出之间的差,所以只能凭经验计算该误差函数。δijk项是该误差函数的一阶导数(该导数基于输出中误差中的差)。要对该误差函数求最小值,因为反向传播试图使NN中的误差最小。通过取梯度值(一阶导数),可以确定如何改变权值以使NN中的误差最小。这称为梯度下降。
要求反向传播用于固定大小的NN,这是因为该算法中不允许增加神经元或者从NN中去除神经元。当训练一NN去学习一数据集时,对学习数据需要多少层和每一层中需要多少神经元进行猜测。在训练之后,可以尝试通过删除不需要的神经元来改善所训练的NNs性能。但是,在训练过程中,神经元的数目必需保持固定不变。
传统的反向传播算法可以总结如下:(a)初始化:定义NN中的层数目和每一层的神经元数目,并且将NNs权初始化为随机值;(b)将来自训练集的一个输入向量应用到NN。对输入层之后的第一层中的每一个神经元用方程1.5计算输出,并且将该输出作为下一层的输入。对该NN的每一层重复该过程,直到计算输出为止;(c)根据NN中出现的误差的多少,利用方程1.6修正权值;以及(d)重复步骤b)和c),直到确信NN受到训练为止。当误差低于该训练集中某些输入向量的某个任意值时,认为该NN受到了训练。
尽管采用反向传播训练NNs以学习数据集具有许多相关的好处,但是反向传播有其局限性。采用反向传播,NN要花很长时间去学习一个数据集,或者更坏的情况是,它可能根本不能学习一数据集。在某些情况下,无法确定NN不学习数据集的原因,和/或无法在训练过程中辨别NN究竟是否将学习数据集,或者是否它只不过在花很长时间学习。
采用反向传播,NN可能太小而不能学习数据。按照惯例,NN设计者必需猜测有多少神经元要用在每一个隐层中,还必需猜测需要用来学习数据集的隐层数目。如果NN太大,那么它可能无法进行适当的泛化。因此,在尝试改善该问题时,有时要从NN中删除神经元。NN可开始关注于误差空间的局部最小值问题。当NN已经学习了数据集,那么NN处于误差空间的全局最小值。由于误差函数的形状未知,所以它具有高误差区域和低误差区域。由于反向传播只能做到通过检验误差函数的一阶导数使误差最小,所以它只能检验局部区域。训练隐层中的神经元的目的是学习数据集中的不同特征。但是,当反向传播经NN反向传播误差时,用某个量来修正所有的权,由此可能减少每一个与数据集中特定特征唯一相关的神经元。这是可能的,因为一个神经元无法确定同一层中的其他神经元是否正在学习同样的特征。这可能导致已经学习了一个特定数据特征的权忘记该特征。
关于用反向传播训练NNs的主要问题是,不可能辨别上面的哪个原因是造成NN无法学习数据集的原因。它可能正在学习数据集而只是慢些,或者它可能因为NN太小而根本不能学习数据集,或者它可能关注于一个局部最小值。关于反向传播的另一个相当大的问题是,当NN已经学习了数据集时,NN已经学过的东西在权值和阈值中被高深地编码为数字。
由于用反向传播来训练NNs的各种困难,许多研究已经变成开发其他可选择的算法来训练前馈NNs。
已经开发出许多算法作为用来训练前馈NNs的反向传播的其他可选择算法。有两类其他可选择算法,它们是:(1)要求NN中有固定数目的神经元或者资源的算法;和(2)使神经元能被动态分配给NN的那些算法。
这些算法中的大多数算法依赖于具有一固定大小的NN,由此遇到与反向传播经历的同样问题。一种已知的方法使用遗传算法来找到各权的值。遗传算法可以避免局部最小值问题,但却可能花费不确定的时间量来训练,而且因为NN太小可能不能适当训练。另一种可选择方法是使用径向基函数(RBF),它只使用单层来学习NN,但需要比反向传播所需要的输入向量多得多的可用于学习数据集的输入向量。由于与固定大小NNs有关的问题,所以它可用来使NN根据需要变大以学习数据集。
已经引入将动态增加神经元的前馈NN训练算法作为预定义结构的问题的解决方案,因为其提供只有在需要确保数据中的特征能够得到学习时才能增加神经元的灵活性。因此,当其他神经元无法学习数据集中的特定特征时,增加一个神经元,由此,可以更有效地使用所训练的NN来确定训练过程中NN已经学到了什么规则。预定义的网络结构限制了NNs学习数据的能力。NNs通过适应它们的权来学习,这些权对应于生物NNs中的突触权。如前面讨论的那样,前馈NNs的灵感取自生物NNs。但是,生物NNs根据需要动态地创建与神经元的连接。
对于动态结构算法(structurally dynamic algorithm)来说已有两种方法,这些方法是:(1)那些从NN中去除神经元的方法。从NN中去除神经元的两种这样的方法是:(i)那些在训练过程中工作的方法,例如Rumelhart的权衰减方法,该方法将一惩罚操作增加到误差最小化过程中;和(ii)那些在训练后去除神经元的更一般的方法,例如最优脑外科方法,它计算将一权从NN中去除后对于全局误差的影响;以及(2)那些将神经元增加到一种NN中的方法,这种NN例如是级联相关网络(Cascade-Correlation Networks)(下文称为“CCN”),动态节点生成(Dynamic Node Creation)(下文称为“DNC”),减数分裂(Meiosis)和那类超球面分类器(hyperspherical classifier),这类分类器例如是受限库伦能量分类器(Restricted Coulomb Energy Classifier)(下文称为“RCEC”)和多项式时间训练(Polynomial-Time-Trained)超球面分类器(下文称为“PTTHCs”)。
尽管已经有许多的尝试来提供多种NN训练算法,这些算法通过在训练过程中将神经元动态分配到NN中,不过,对于在非常多种的情况下都能够对数据进行有效和/或准确的归类来说,没有算法被认为是理想的。
NNs对于科学和/或工业来说有意义的原因是,因为它们有找到数据内关系的能力,这使数据能够得到归类,然后对在训练过程中没有向其暴露NN的那些输入向量或者模式归类。这种很强的特性常被称为NN的‘泛化’能力。在训练过程中没有向其暴露NN的这些输入向量称为未见(unseen)模式或者未看见的的输入向量。对于要能进行泛化的NNs来说,它们需要训练。
在训练过程中,NN学习它受到训练所采用的数据集中的显著特征,然后能够‘预测’未见输入向量的输出。NN能够归类的东西取决于NN已经受到训练所采用的东西。
NNs能够进行泛化,这使NN能够处理数据中的噪声。
为了确保进行良好的泛化工作,认为必须有比要在NN中训练的权数多得多的训练输入向量可用。
当NN能够对它已经学过的高比例输入向量以及测试集顺利地进行归类时,确信它受到了训练。但是,可能只有有限数目的已归类数据模式可用于NN的训练和测试,因此必须考虑如何划分该数据集。有许多如何划分数据集的方法,它们用来确定NN已经受到多好的训练从而可以测试NN。
确定NN是否受到训练的一般方法是,通过计算在采用利用反向传播训练的NNs时每一个输入向量中有多少误差来确定。本领域的技术人员将明白以前曾经用来确定NN中误差的方法,其详细讨论将不在这里给出。
但是,现在将讨论可以用作训练算法之间比较基础的那些属性。
当比较各学习算法时,可以考虑许多因素,因此有一个对性能的客观测量方法。
通常,在比较时,考虑学习算法的以下四个属性:(1)精度:这是训练过程中所学习的规则的可靠性;(2)速度:这是对一输入向量归类花费多长时间的量度;(3)学习的时间:这是学习一输入向量花费多长时间的量度;和(4)可理解性:这是能够解释所学规则以使这些规则能够应用于其他可选方法的能力。这种策略难以量化。
这些属性中的两个属性将得到进一步的检验,它们是学习数据集需要的学习算法的时间,和对NN已经学过的东西的可理解性。
如前面讨论的那样,用反向传播训练NN来学习数据集可能需要很长的时间进行训练,因为可能NN根本不能学习一数据集。据说它训练一个固定大小NN所花的时间可能是指数性的。为此,训练NN花费多长时间成为可选训练算法之间比较的标准。理想的训练算法会要求最小限度的暴露来训练输入向量。只有在要受到完全训练时,在最优的情况下对训练输入向量的最小可能暴露将NN暴露给每一个输入向量。这样一种训练算法可以称为单遍(single pass)训练算法。
在一般用作训练前馈NNs的各算法之间比较基础的四个属性中,可理解性的可量化性最小,尤其是对作为数值受训的前馈NNs来说,因为训练过程中NNs所学习的规则被高深地编码为数值。一种能够提取训练过程中学习的规则的方法是,通过进行灵敏度分析。灵敏度分析可以称为防误差鲁棒性的量度。
规则提取受到关注,是因为它使用户信任该系统产生的结果,当NN用于诸如医疗外科手术、空运控制和核动力工厂的监控等重大问题领域时,或者当通过训练NNs从所收集的数据中推导出理论例如在天文学数据的情况下时,这就尤其重要。
那些希望用来保证可理解性的规则是与输入相关在一起的命题逻辑规则的形式。
经常对NNs进行灵敏度分析,因为它是发现NN内已经存储了什么信息的一种途径。这使得进行灵敏度分析对NNs来说很宝贵,因为经常将规则高深地编码为数值,这又因为常常希望发现NN已经学习了什么规则。
有两种对NN进行灵敏度分析的方法,这些方法是:(1)修正各权的作用;(2)将噪声输入应用到NN中的作用。
如果输入空间是众所周知的,那么可以产生所需要的许多数据点,然后通过以下三种方法找到所选择输入向量的NN的输出:(1)在数据空间中找到用于每一个点的输出。如果用二进制数据训练NN,那么该数据集必需是有限的;(2)从输入空间中随机选择数据点;或者(3)在输入空间中选择每一个第n个数据点(其中n>1)。这允许在输入空间上有一个均匀分布。
还可以从输入空间的一些区域中选择数据点,在这些区域中,不知道所期望的NN响应将是什么。这种情况下,将显示出在假定有未知数据时NN将如何响应。
至此已经检验了如何探究输入空间,现在将检验NN中神经元的权空间。
一个系统有许多组成部分,这些组成部分需要按照说明来运行,这又使系统能够按照要求运行。如果每一个组成部分都按照说明运行,那么各组成部分就被称为处于它们的最佳范围内。
灵敏度分析是一种对偏离系统中各组成部分的最佳值或范围的效果的检验方式。这种情况下,最佳范围用于受训NN中的各个权。建立上限和下限,以找到各个权可以在其中变化而不改变行为这种情况下NN的特性的那个范围(或者区间)。为了进行灵敏度分析,依次测试该系统中的每一个组成部分,同时所有其他的组成部分保持固定不变。受到测试的组成部分将被设定为所有可能的值,用以确定系统如何运行。在该过程中,对使系统能够表现最佳的组成部分确定上限和/或下限,当该组成部分运行到这些范围之外时,可以观察到该系统表现如何。该过程称为测距(ranging)。上限和下限可以表达为约束。
已知的灵敏度分析被认为不能产生将输入变量相关在一起的命题逻辑规则,这些规则将使NN已经学过的东西易于理解。
灵敏度分析的目的是,能够确定体积(volume)的形状,因为这精确限定了组成部分的特性。但是,由于已知NN训练方法的局限性,仍不可能找到使神经元激活的体积的表面。可能检验这些表面的唯一方法是,通过用统计学的方法确定每一个权的范围来检验。知道体积的实际表面将会很理想,因为它们限定了各权之间存在的关系,据此可以在需要时确定各权的范围。
非常希望能够确定训练过程中前馈NN已经学到的东西,由此,在试图确定数据内存在什么关系和NN已经学到的东西方面做了许多研究。这被称为可理解性,并且是用来确定一训练算法多么好的一个属性。在完成训练之后,执行这些目前用来从NN中提取规则的方法。
那些希望要求被找到的关系的类型作为命题逻辑给出。这些要求可以总结如下:(a)定义满足训练条件的所有数解,由此使得能够容易地对NN进行灵敏度分析的一个要求;和(b)使训练过程中NN所学习的规则能够对数据集进行归类以使其易于从NN中读取的一个要求。
在涉及各种动态算法的上述这些已知训练算法中,接近使规则能够直接从NN中读取的唯一一种算法是超球面分类器,它在各区域之间形成“或”OR关系。因此,各区域不能用“与”AND组合在一起,因为输入空间中的各区域属于某一分类(category)或者不属于某一分类。如果它们不归入该区域,那么增加一个球面以抑制不应激活的神经元的激活,因此“或”OR足以表达该输入空间。随着输入空间变得复杂并且最终为每一个输入向量增加一个超球面,限定超球面的半径趋向于为0。尽管隐层中的神经元所限定的区域近似于输入空间中的区域,不过它们并不限定它,除了在有象数据点那样多的超球面的最坏的情况下之外。PTTHCs试图改善输入空间的覆盖,由此以增加计算的复杂性为代价改善泛化性能,因而导致变慢很多。
CCN,减数分裂和DNC所有这些都将各权作为数字训练,由此不易于确定训练过程中已经在数据内找到什么关系。
对于泛化,所有这些算法利用改变性能成效(performance success)的程度,将神经元动态地分配给NN。某些算法对某些数据集来说优于其他算法,除了超球面分类器以外,所有算法都丢失权空间的分界线条件信息,因此对规则提取并不很有用。
某些算法学习一些数据集比其他算法更快,例如基于倾向于甚至比反向传播更慢的退火的减数分裂算法。
据报告,CCN和DNC对于特定数据集来说具有快速的训练时间,但是这些不是单遍算法,因为这两种都依靠迭代来减少将神经元增加到NN中之前系统中的误差量。
至今,仍然没有这样一种NN训练算法,即,该算法以单遍方式学习,它还按照要求将神经元增加到NN中,并且使规则能够从NN中直接读取。
因此,本发明的一个目的是提供一种NN训练方法,在可以按照需要将神经元分配到NN中以学习一数据集的意义上,该方法既是关系性的,也是动态的。
本发明的再一个目的是提供一种能够以单遍方式学习一数据集的NN训练方法。
再有,本发明的另一个目的是提供一种使规则能从一NN中直接读取的NN训练方法。
发明内容
根据本发明的一个方面,提供一种人工NN的训练方法,所述方法包括以下步骤:(i)通过选择待训练的NN的一个输出,并且为所选输出而将该NN的一个输出神经元连接到该NN输入层中的输入神经元,从而对该NN进行初始化;(ii)准备该NN所要学习的数据集;并且(iii)通过将所准备的数据集的一个输入向量应用到该NN的第一隐层,或者在该NN没有隐层时将其应用到该NN的输出层,并且确定该NN的每一层中所选输出的至少一个神经元是否可以学习以产生该输入向量的相关输出,从而将所准备的数据集应用到该NN以进行学习,其中:如果该NN每一层中所选输出的至少一个神经元可以学习以产生该输入向量的相关输出,而且如果存在所准备数据集的更多输入向量可以学习,那么,对下一个输入向量重复步骤(iii),另外,如果有更多的输出要受到训练,那么对该NN的下一个输出重复步骤(i)至(iii);如果该NN所选输出的隐层中没有神经元可以学习以产生输入向量的相关输出,那么将一新神经元增加到那一层中以学习所选输出的那一层中任何其他神经元无法学习的相关输出,而且,如果存在该数据集的更多输入向量可以学习,那么,对下一个输入向量重复步骤(iii),另外,如果有更多的输出要受到训练,那么对该NN的下一个输出重复步骤(i)至(iii);如果该NN所选输出的输出神经元无法学习产生输入向量的相关输出,那么该输出神经元变成该NN的隐层的一个神经元,将一新神经元增加到该隐层中以学习该输出神经元无法学习的相关输出,并且为所选输出而将一新输出神经元增加到该NN中,而且,如果存在该数据集的更多输入向量可以学习,那么,对下一个输入向量重复步骤(iii),另外,如果有更多的输出要受到训练,那么对该NN的下一个输出重复步骤(i)至(iii)。
根据本发明的另一个方面,提供一种人工NN的训练方法,所述方法包括以下步骤:(i)准备该NN所要学习的数据集;(ii)通过选择所要训练的NN的一个输出,并且为所选输出而将该NN的一个输出神经元连接到该NN输入层中的输入神经元,从而对该NN进行初始化;并且(iii)通过将所准备的数据集的一个输入向量应用到该NN的第一隐层,或者在该NN没有隐层时将其应用到该NN的输出层,并且确定该NN的每一层中所选输出的至少一个神经元是否可以学习以产生该输入向量的相关输出,从而将所准备的数据集应用到该NN以使其得到学习,其中:如果该NN每一层中所选输出的至少一个神经元可以学习以产生该输入向量的相关输出,而且如果存在所准备数据集的更多输入向量可以学习,那么,对下一个输入向量重复步骤(iii),另外,如果有更多的输出要受到训练,那么对该NN的下一个输出重复步骤(ii)和(iii);如果该NN所选输出的隐层中没有神经元可以学习以产生输入向量的相关输出,那么将一新神经元增加到那一层中以学习所选输出的那一层中任何其他神经元无法学习的相关输出,而且,如果存在该数据集的更多输入向量可以学习,那么,对下一个输入向量重复步骤(iii),另外,如果有更多的输出要受到训练,那么对该NN的下一个输出重复步骤(ii)和(iii);如果该NN所选输出的输出神经元无法学习以产生输入向量的相关输出,那么该输出神经元变成该NN的隐层的一个神经元,将一新神经元增加到该隐层中以学习该输出神经元无法学习的相关输出,并且为所选输出而将一新输出神经元增加到该NN中,而且,如果存在该数据集的更多输入向量可以学习,那么,对下一个输入向量重复步骤(iii),另外,如果有更多的输出要受到训练,那么对该NN的下一个输出重复步骤(ii)和(iii)。
在如上所限定的NN的训练方法的一个实际优选实施例中,该NN的神经元是线性阈值门(LTGs)。
优选的是,在将所准备的数据集应用到NN中以使其得到学习的所述步骤(iii)中,确定LTG是否能够学习以产生输入向量的相关输出,就是确定多个权与LTG阈值之间的关系是否具有为LTG以前所学过而给定的解。在一个实际的优选实施例中,所述关系是一约束,其中输入向量和LTG的权向量基于该NN的所选输出而与LTG的阈值形成一个关系。在该实际的优选实施例中,学习一个约束就是能够将该约束增加到一LTG的约束集中。为了能够将该约束增加到一LTG的约束集中,必须在所有的约束之间有一个解。
优选的是,初始化该NN的步骤还包括以下步骤:清除输出LTG的约束集以使输出LTG的约束集为空。
优选的是,准备该NN所要学习的数据集的步骤包括以下步骤,以下步骤中的每一步都可以以任意顺序执行:在将该数据集提供给该NN进行训练之前,将该数据集转换为预定义数据格式;在将该数据集提供给该NN进行训练之前,确定该数据集中是否存在任何矛盾;在将该数据集提供给该NN进行训练之前,对该数据集进行分类;并且,在将该数据集提供给该NN进行训练之前,确定该数据集中是否有0输入向量可用,如果该数据集中有0输入向量可用,那么对该数据集排序以便首先将该0输入向量提供给该NN进行训练。在将该数据集提供给该NN进行训练之前,将该数据集转换为预定义数据格式的所述步骤的一个实际的优选实施例中,所述预定义数据格式是二进制数据格式或者浮点数据格式。优选的是,所述在将该数据集提供给该NN之前,确定该数据集中是否存在任何矛盾的步骤包括:确定是否有产生不同输出的两个或者更多相同的输入向量。在所述确定该数据集中是否有任何矛盾的步骤的一个实际优选实施例中,如果确定有两个或者更多的相同输入向量产生不同输出,那么只采用这些输入向量中的一个。优选的是,所述在将该数据集提供给该NN进行训练之前,对该数据集进行分类的步骤包括:将该数据集的输入向量分成两组,将输出1的那些向量与为该输出产生0的那些向量分开,并且首先选择两组中的一组进行训练;用自组织映射(SOM)对数据进行分类;采用任何其他合适的方法对数据进行分类。还优选在将数据提供给该NN进行训练之前,从所分类的数据中为每一个输入层创建单独的列表。
在一个实际的优选实施例中,根据步骤(iii),当将一新LTG增加到一层中以学习那层中任何其他LTG无法学习的约束时:将该新LTG连接到下一层的所有LTGs上,该所有LTGs用于该NN的所选输出,并且更新接收来自新LTG的输入的该下一层的这些LTGs的约束集以接受来自新LTG的输入;如果具有新LTG的层不是该NN的第一层,那么将该新LTG连接到来自前面一层的所有LTGs的输入,并接收该输入,该前面一层的所有LTGs用于该NN的所选输出;并且,更新该新LTG的约束集以包括那层中前一个LTG的修正约束集副本和那层中任何其他LTG无法学习的约束。
在一个实际的优选实施例中,根据步骤(iii),当将一新输出LTG增加到该NN中时:将该新输出LTG连接到隐层中的LTGs的输入并且接收该输入;如果该隐层不是该NN的第一层,那么将该隐层中的该新LTG连接到来自前面一层中的所有LTGs的输入并且接收该输入,该所有LTGs用于该NN的所选输出;更新增加到该隐层中的新LTG的约束集以包括那层中前面输出LTG的修正约束集副本和该前面输出LTG无法学习的约束;并且,根据该前面输出LTG无法学习的内容,该新输出LTG以一预定义的逻辑关系结合其输入。优选的是,当根据步骤(iii)将一新输出LTG增加到该NN中时,在输入给该新输出LTG的各输入之间形成的预定义逻辑关系是逻辑“或”OR,逻辑“与”AND,或者其他合适的逻辑关系。在该实际的优选实施例中,如果该前面输出LTG无法学习的输入向量产生输出1,则采用逻辑“或”OR,而如果该前面输出LTG无法学习的输入向量产生输出0,则采用逻辑“与”AND。
根据本发明的又一方面,提供一种在训练过程中将一新神经元增加到一NN的一层中的方法,当所选输出的那层中没有其他神经元能够学习与受到学习数据集的输入向量相关的关系时,将该新神经元增加到该NN中,所述方法包括以下步骤:利用来自那层中用于该NN所选输出的前一个神经元的所有修正数据的副本,以及无法由那层中任何其他神经元学习的关系来更新该新神经元;并且,更新输出神经元以接受来自该新神经元的输入。
在一个实际的优选实施例中,该NN的神经元是LTGs。
优选的是,所述关系是各权与一LTG阈值之间的关系。在一个实际的优选实施例中,所述关系是一约束,其中该数据集的输入向量和LTG的权向量基于该NN的输出而与LTG的阈值形成一个关系。
根据本发明的再一个方面,提供一种将二进制格式数据集以外的数据集转换为要由一NN学习的二进制数据集的方法,所述方法包括以下步骤:(i)分别确定用于以二进制表示该数据集每一个属性的位数;(ii)用以下方程计算该数据集的属性范围:范围=(最大-最小)+1;并且,利用步骤(i)中确定的位数将该数据集的属性范围编码为二进制数。
优选的是,根据以上所限定的NN训练方法的数据准备步骤(步骤(ii)或者步骤(i)),使用将一数据集转换为一二进制格式数据集的方法。
根据本发明的另一方面,提供一种对待由一NN训练的数据集进行分类的方法,所述方法包括以下步骤:将该数据集的输入向量分为两组,将输出1的那些向量与输出0的那些向量分开,并且,选择两组中的一组由该NN首先学习。
根据本发明的又一方面,提供一种用来确定一输入向量是否为一神经元所知的方法,所述方法包括以下步骤:由该输入向量构建一约束及其补数;交替地将该约束及其补数增加到该神经元的约束集中;测试该约束集以确定两种情况下是否有解,其中:如果对该约束或者其补数来说没有解,那么确定该输入向量为该神经元所知;而如果当约束及其补数都交替增加到该约束集中时都有解,那么确定该输入向量不为该神经元所知。
优选的是,所述约束集是LTG神经元构建而成的NN的神经元的约束集。还优选的是,所述方法用于确定根据以上限定的NN的训练方法所训练的NN中未见输入向量的输出。在一个实际的优选实施例中,其中所述方法用于确定根据本发明的NN的训练方法所训练的NN的LTG的未见输入向量,根据数据集将未见输入向量的默认缺省输出为1或者0。
根据本发明的再一个方面,提供一种用来确定一约束集的最小激活体积(MAV)的方法,所述方法包括以下步骤:(i)每次从该约束集中去除一个约束,同时使该约束集中剩余的约束保持不变;(ii)将所去除的约束的补数增加到该约束集中;(iii)测试该新的约束集,以注意是否有解,其中:如果有解,那么将从约束集中去除的原始约束增加到定义MAV的约束集中,去除增加到该约束集中的约束的补数,并将原始约束返回到该约束集中,如果该约束集中有更多的约束需要测试,那么重复步骤(i)到(iii),另外MAV是包含在定义MAV的约束集内的那组约束;如果没有解,那么去除增加到该约束集中的约束的补数,将原始约束返回到该约束集中,如果该约束集中有更多的约束需要测试,那么重复步骤(i)到(iii),另外MAV是包含在定义MAV的约束集内的那组约束。
优选的是,所述约束集是LTG神经元所构建的NN的神经元的约束集。在一个实际的优选实施例中,所述方法用来确定根据以上限定的NN的训练方法训练的NN中每一个LTG的MAV。
发明的优点
本发明在一个方面中提供一种训练神经元的新方法。这种方法定义输入给一神经元的输入连接与一输出之间的关系,因而使规则提取的任务变得简单。根据本发明的这种神经元的训练方法如同用传统的方法训练的神经元的情况一样,使得能够进行泛化并且使所学的数据能够找回。另外,它用一个简单的测试就确定一神经元是否能够或者不能学习一输入向量。该测试构成将一个或者更多神经元增加到一NN中以学习一数据集中一个特征的自然判据。根据数据集的复杂性,可以将神经元分配给隐层,或者增加一个新的输出层。
因此,本发明的NN训练方法可以称为动态关系(下文称“DR”)训练方法。
由于可以测试根据本发明的DR训练方法训练的NN,以确定是否可以学习一输入向量以及是否可以仅仅根据需要将一神经元动态地分配给NN,所以当以一单遍(single pass)方式将数据提供给NN时,可以学习数据。
用来训练前馈NNs的传统方法需要一个固定大小的NN,而且必需猜测有多少神经元的隐层和每一层中有多少神经元需要用于NN去学习一数据集。猜测NN的大小是一个相当大的问题,因为如果它太小,那么它将不能学习数据集,而如果它太大,那么可能降低NNs的性能。对猜测NN大小问题的最佳解决方案是,采用按照需要并且只有在需要时将神经元动态分配到NN中的训练方法。因此,将神经元动态分配到一NN中,这克服了与固定大小NNs有关的问题。根据本发明的DR训练方法,只有在NN无法学习一输入向量时才可以将一神经元分配到一NN中。当一新神经元分配给NN时,它相对已经在NN中的神经元形成一命题逻辑关系,因此本发明的这种训练方法是关系性的。
当每一个输入向量提供给一NN时,学习每一个输入向量。这意味着本发明的DR训练方法可以以单遍方式学习数据。
根据本发明的神经元的训练方法使关于一数据集的信息能得到学习,它还将识别使神经元增加到NN中的输入向量,以及表示出哪些输入向量对于数据集的归类很重要。本发明的该方法还用于输入空间的清晰分界线,同时仍能提供训练前馈NNs的其他算法的即使不是全部也是大多数的益处。
在另一方面下的本发明,提供一种在将数据提供给NN用于训练之前,将数据转换为一适当格式的方法。有许多与在训练前转换数据有关的优点。一个优点是,数据转换使提供给一NN用于训练的输入数目最小,同时仍能准确地对数据进行编码。在本发明的DR训练方法的情况下,使提供给NN的输入数目最小的动作,转化为更快的训练时间,假定NN每一次学习一个输入向量,那么必须测试约束以确定NN是否能够学习它。
在又一方面下的本发明,提供一种在将数据提供给NN用于训练之前,对数据分类的方法。在训练之前对数据进行预先分类,提高了数据归类效率。该预先分类优选用于所训练的NN运行很不好的情况。只要NN所要学习的数据集足以复杂到需要将神经元增加到NN中,就高度推荐该预先分类步骤。
在训练之前将数据转换为一适当格式的方法,和在将数据提供给NN用于训练之前对数据分类的方法都被认为对所有的NN训练方法有用。因此,本发明的这些方案是独立的,并不受到本发明的DR训练方法的限制。
在测试过程中,一个相当大的优点是,可以以100%的精确度找回NN所学习的数据。在另一方案中,本发明提供一种方法,它能够用来确定NN是否知道未见输入向量的输出是什么,而且能够清楚地识别哪些输入向量是未知的。因此,NN能够表示出它不知道该数据集的一个特征的时间,并且能够识别它需要对哪些输入向量进行额外训练。
对一受训NN进行灵敏度分析的目的一直是试图在尝试确定神经元已经学过的和就此NN已经学过的东西中确定各权可以取的数值范围。
本发明的DR训练方法的一个相当大的优点是,可以在一NN受到训练之后确定权空间中区域的边界线。在另一个方案中,本发明还通过提供一种方法来实现它,该方法使权空间的实际表面能够被找到,而不是简单地找到每一个权可以取的数值范围。由此,可以确定训练过程中一神经元已经学过的和就此NN已经学过的东西。
本发明的DR训练方法具有即使不是全部也是大多数传统前馈NNs训练方法的已有优点和有用之处,而且还解除了对要求NN是固定大小的主要限制,另外它还不会遭受局部最小值问题的困扰,因为它以单遍的方式学习。本发明的DR训练方法连同本发明的所有其他方面都将对所有采用前馈NNs的应用极其有用。人工NNs的目的是模仿生物学习,但是已知的系统仍无法实现该目的。相信本发明的DR训练方法能够提供一种似乎合理的生物学习策略,该策略与神经系统科学,神经生物学,神经的生物学建模有关,也可能与细胞生物学有关。
本发明的规则提取方法,即确定权空间的实际表面的方法,以及确定输入向量是否已知或者未知的方法都不受NNs的限制。这些方法还可能对采用约束系统的其他领域有用,例如约束满足问题(下文称为“CSP”或者“CSPs”),优选法或者运筹学类型问题,或者对分析数据串有用,数据串象例如DNA那样。因此,本发明的这些方面是独立的,并不受本发明的DR训练方法的限制。
最后,由于本发明的DR训练方法使规则能够从一NN中提取,所以将导致对NN已经学过的东西和NN所产生的输出有更大的信赖。因此,本发明的方法将提高对采用前馈NNs的系统的信赖。
附图说明
为了可以更清楚地理解本发明并将其付诸实践,现将详细描述根据本发明的NN训练方法和/或训练系统的优选结构。参照附图,并且仅通过非限制性的实例给出随后的描述,这些附图中:
图1示意性地示出2输入、1输出的前馈NN的基本结构实例;
图2是一流程图,表示根据本发明一优选实施例所做的一种NN训练方法;
图3是一流程图,表示根据图2的NN训练方法所训练的NN输出单模式的优选学习方法;
图4是一流程图,表示将一新神经元分配到根据图2的NN训练方法所训练的NN隐层中的优选方法;
图5是一流程图,表示将一新输出神经元分配到根据图2的NN训练方法所训练的NN中的优选方法;
图6a和图6b示意性地示出如何将新神经元分配到根据本发明NN训练方法的优选实施例的NN中;
图7示意性地示出2输入LTG NN的基本结构实例;
图8示意性地示出具有三个输出的NN优选实施例,它已经利用模8问题(Modulo-8 Problem),根据本发明的NN训练方法得到训练;
图9示意性地示出如何将神经元分配到根据本发明NN训练方法的优选实施例的NN隐层中;
图10a和图10b示意性地示出如何将新输出层增加到根据本发明NN训练方法的优选实施例的NN中;
图11示意性地示出3输入LTG NN的基本结构实例;
图12是一流程图,表示根据本发明一优选实施例所做的确定一约束集的输入向量是否已知的方法;
图13示出得到训练的LTGs的权空间的概括图;
图14a至图14g根据一优选实施例示意性地示出用能够解决模8问题的本发明NN训练方法训练的NN;
图15是一流程图,表示根据本发明一优选实施例所做的确定一约束集最小激活体积(MAV)的方法;
图16a至图16e示出根据本发明一优选实施例的激活体积以及训练一NN过程中所学习的其他约束的概括图;
图17示出双螺旋问题(Two-Spiral Problem)数据集的图,它是一种公认用来测试NN训练的数据集;
图18示意性地示出解决图17测试数据集双螺旋问题的NN,该NN是根据本发明NN训练方法的一个优选实施例产生的;
图19示出图18的NN结果图,它是以图17的双螺旋问题测试数据集得到训练的;
图20a至图20e示出当以图17的双螺旋问题测试数据集训练时,图18中NN的隐层中每一个神经元利用本发明的NN训练方法已经学过的内容的图;以及
图21示意性地示出一解决德国信贷数据集问题的NN,该NN是根据本发明NN训练方法的一个优选实施例产生的。
具体实施方式
现将参照附图描述本发明的详细优选结构。仅借助一优选实施例,LTG神经元模型将用于以下的讨论。应理解的是,也可用许多其他的神经元模型,因而它们可以用来根据本发明的DR训练方法或者算法构建NNs。因此,本发明并不限于附图中示出的特定神经元模型。所以,在整个随后的描述中,对“LTG”或者“LTGs”的任何引用都应解释为仅仅意味为“任何合适的神经元模型”。
就像现在将要描述的那样,本发明的DR训练算法连同本发明的其他方面都可以利用任何适当的计算机软件和/或硬件实现。因此,本发明并不限于任何特定的实际实现方式。为了评价本发明的DR训练算法的实绩并且进行试验以证明本发明的该算法和其他方面如期起作用,将该算法编程为代码并利用软件在计算机上执行。
NN是以各种构造形式连接在一起以形成一网络的神经元的结合。一种2输入前馈NN 10的基本结构借助一个实例示意性地表示于图1中。NN 10包括设置在第一层或者输入层16中的两个输入神经元12,14。每一个输入神经元12,14将其输出提供给设置在隐层24中的三个神经元18,20,22。每一个隐层神经元18,20,22又将其输出提供给设置在输出层28中的单个神经元26。
NNs用来确定数据集内的各个关系。在NN受到训练之前,将可用数据分成两个集,一个集将用于训练,另一个集将用于测试。训练集用来训练NN。测试数据集保留到NN受到训练之后为止。在训练之后,将测试数据集提供给NN,以确定该NN是否已经充分彻底地学习了该数据,或者确定NN是否遗漏了该数据的某方面。在整个随后的描述中,规定用对“训练NN”或者“训练”的任何引用表示以一训练数据集训练NN。
大多数NN训练算法都寻找试图满足训练条件的单个数值,并且基于NN的理想输出与实际输出之间的误差通过反复修正权值来学习。
本发明的DR训练算法采用一种不同的方法来训练神经元。该训练算法并不基于找到满足训练条件的各权的单个值。本发明的DR训练算法代之以找到满足训练条件的所有权值。为此,优选将输入向量转换为一约束,该约束将输入权与阈值相关联。每一个神经元有一组彼此间形成关系的输入权和满足训练条件的阈值。将一约束增加到该神经元上,这使得另一约束置于权空间中的区域上,这将引起神经元激活。
虽然关于转换为约束的输入向量描述本发明,但是应当理解的是,本发明并不仅限于约束的使用。约束只代表各个输入权与阈值之间的关系。可以以其他的方式表达相同的关系,就像例如以电子或者磁的方式,同样,本发明并不限于所提供的特定实例。
采用这种训练神经元的方法,允许通过动态地将神经元增加到NN中而形成NN。这种方法提供一种将神经元增加到NN中的精确判据,可以如前描述过的将神经元增加到标准前馈拓扑。
这种训练方法允许以单遍方式学习数据集。而且,由于约束定义每一个神经元的权与阈值之间的关系,当将神经元增加到NN中时,根据命题逻辑增加它们,所以,在训练过程中提取所学习的规则就变成了简单的事情。
对于用本发明的DR训练算法学习数据集的NN来说,优选开始一序列过程。每一个数据集都是独特的,并且具有许多输出,这取决于该数据集。该序列可以简要概括如下:(1)NN初始化;(2)准备NN要学习的数据;(3)应用NN要学习的数据;和(4)根据需要将神经元分配给NN。
如已经讨论过的那样,根据本发明优选实施例使用的神经元是LTG或者McCulloch-Pitt神经元,它已修正为包括一约束集。LTGs的初始化阶段(1)需要将输入神经元连接到输出神经元,并且选择首先受到训练的输出。
数据准备阶段(2)优选包括用来准备NN要学习的数据的许多步骤,其中注意以下步骤:(i)如果提供给NN的数据不是适于训练的适当格式,那么优选将该数据集在提供给NN之前转换为适当格式。根据本发明的一个优选实施例,适当的数据格式是二进制数据。因此,把要以本发明的DR训练算法训练的数据集在提供给NN之前转换为二进制格式。根据本发明的另一方面,在本说明书中稍后提供数字化数据的适当方法的讨论,其中讨论试验结果。虽然提出二进制数据作为用于训练的优选数据格式,不过应当理解的是,本发明的DR训练算法还可以以其他数据格式的方式工作,例如浮点数据,同样,本发明不应解释为受到所给特定实例的限制;以及(ii)由于本发明的DR训练算法是单遍算法,所以优选对输入向量的表示顺序给予一些关注,因为这可以影响NN学习什么规则和它运行得如何。尽管很值得考虑,不过输入向量的表示顺序并不是基本条件,因为本发明的DR训练算法构建了一种NN,该NN能够检查和报告关于哪些输入向量使得神经元增加到NN中的情况。该步骤优选用于所训练的NN运行很不好的情况。只要数据集足以复杂到需要将LTGs增加到NN中,就高度推荐采用该步骤。
下一阶段(3)将数据应用到NN输入上,其中优选将其转换为一约束,该约束是各权与所要学习的LTG阈值之间的关系。如果有隐层,那么LTGs的输出变成送给下一层LTGs的输入,下一层LTGs又将它们接收的输入向量转换为它们能够有希望学习的约束。一直重复该过程,直到NN产生期望的输出为止。如果可以由NN学习它,那么对下一个输入向量继续进行训练,否则该过程转至下一阶段(4),将一个或者更多LTGs增加到该NN中。
有至少两种其中无法学习输入向量的可能情形。这些情形是:(i)如果隐层无法学习输入向量,那么将一新的LTG增加到该隐层中;和(ii)如果输出层无法学习其输入向量,那么这种情况下,将一新的层增加到NN中,而旧的输出变成隐层中的一个LTG。然后,将另一个LTG增加到该新的隐层中,以学习旧的输出单元无法学习的东西,这两个LTG都连接到新的输出,新的输出结合输出。
在将LTGs分配给NN之后,重要的是:(a)将新的LTGs连接到NN中现有的LTGs上;(b)将最近增加的LTGs的约束集设定为空,或者将来自前面最后的LTGs的约束复制给新LTGs;和(c)确保新LTGs的增加不会导致NN忘记它以前曾经学习的内容。实质上,最近增加的LTGs允许NN仍然产生NN以前学习的东西,因为这是一个单遍训练算法。
尽管根据编号为(1)到(4)的过程顺序提出本发明的DR训练算法,不过应当意识到的是,也可以以与所提出的顺序不同的顺序执行这些步骤或者这些步骤中每一步的至少儿方面。例如,在步骤(1)和(2)的情况下,在选择所要训练的NN输出之前,可以将可用数据集转换为适当的数据格式(见图2)。类似地,在步骤(4)的情况下,在增加新的输出LTG之前,可以将一个新的隐层LTG增加到NN中,反之亦然。因此,本发明的DR训练算法并不限于各步骤的特定顺序或者所提供的序列。
现在将根据以上概括出的各阶段提出本发明的DR训练算法的优选实施例连同本发明的其他方面:(1)初始化NN;(2)数据准备;(3)将数据提交给NN学习;和(4)最后,在需要时分配LTGs。
DR训练算法的描述
在图2中,示出了根据本发明一优选实施例所做的NN训练方法或者算法30的流程图。
该训练过程开始于LTGs的输入层。现在,以以下步骤概述提出用来动态地将LTGs增加到NN中的DR训练算法30:
(1)NN初始化
根据DR训练算法30的NN初始化在图2中一般由方框32表示。方框32中,NN初始化的过程优选包括以下步骤:
a)分别训练输出向量的每一维度(dimension)。选择学习维度Oj。
b)将输出LTG Oj的约束集设定为空。
c)将输出LTG Oj完全连接到输入层。
(2)准备NN所要学习的数据
根据DR训练算法30准备NN所要学习的数据的过程在图2中一般由方框31和33表示。该准备NN所要学习的数据的过程包括至少以下步骤:
a)由于本发明的DR训练算法30优选以二进制数据进行工作,因此,可能需要如图2的方框31中所示,将数据集转换为二进制。根据本发明的另一方面,后面将提供对将数据集提供给NN进行训练之前将各种类型的数据集转换为二进制的适当技术的讨论。应理解的是,根据本发明的DR训练算法30,可以采用其他的数据格式,这样,方框31仅指将可用数据集向适当的数据格式的转换。
b)确定训练集中是否有任何矛盾数据(inconsistent data)。矛盾数据出现在有产生不同输出的两个或者更多相同输入向量xi的情形下。矛盾数据的实例是xi→0和xi→1,其中在数据集中,同一输入向量出现一次以上并产生不同输出。如果有任何矛盾之处,那么应当仅采用输入向量xi之一。尽管NN将能够学习该数据,不过NN不会运行良好。如果NN学习矛盾数据,它将对所有输入都输出0。优选的是,对输入向量进行检查,确定是否有矛盾输出,以避免这种情况。图2中没有明确示出确定训练集中是否有任何矛盾数据的过程。但是,同一过程可以作为方框31或者33的一部分来执行。
c)如图2的方框33中所示,优选采用任何适当的分类技术对所要学习的数据进行分类。对于DR训练算法30来说,可以随机学习数据,但是所产生的结果NN可能没有对数据进行有效的分类。因此,优选的分类技术包括:
.将输入向量分类为2组,对那个输出来说,将输出1的那些向量与产生0的那些向量分开。将输入向量分成两个集,即输出1的那些向量和输出0的那些向量。这两个集中的任意一个都可以首先得到学习:或者
.用SOM(自组织映射)对数据进行分类。
如已经讨论的,本发明不限于任何特定分类技术。
d)由输入向量集创建单个列表。这一步是方框33所表示的分类步骤的一部分。
e)确定所要学习的数据集中是否有0输入向量可用。该0向量令所有的输入维度设定为0。如果该输入向量是可用的,那么将该输入向量分类为首先得到学习而不考虑其输出。优选的是,0向量可用于训练,并可以首先得到学习而不考虑其输出是什么,但是,如果它不可用,那么它就不重要了。再次说明,这一步是方框33所表示分类步骤的一部分。
(3)应用NN所要学习的数据
根据DR训练算法30应用NN所要学习的数据的过程在图2中一般由方框34和33表示。在方框34中可以看到,对NN的输出学习每一个模式(或者一输入向量及其相关输出的结合),直到不再有模式要学习为止。图3中给出了根据DR训练算法30学习一输出的单个模式的过程40的优选实施例。
过程40开始于方框41,以NN的第一层开始。然后,对于训练集中的每一个输入向量来说:
a)在方框42,为下一层中的每一个LTG构建一约束,该约束基于应用到输入层中的输入向量。为了创建该约束,采用LTG的定义(在前面对LTGs进行定义的内容中讨论过这项内容),基于NN的输出,输入向量xi和LTG的权向量w与LTG的阈值T之间形成关系。因此,如果LTG要产生1,那么所构建的约束为:
xi·w≥T→1
或者如果输出为0,那么所构建的约束为:
xi·w<T→0
b)还是在方框42,进行一项测试,以确定由输入向量xi所构建的约束是否能够由该层中的LTG所学习。学习约束,就是能够将该约束增加到一LTG的约束集中。如果可以找到一个数解,那么可以增加一约束。对于该算法来说,对该数解是什么并不感兴趣,实质内容仅仅是可以找到一个数解。这等同于约束之间必须有一个交集(intersection)。该测试组成了将LTGs增加到NN中的判据。如果没有LTGs能够学习由输入向量形成的约束,那么这就变成了将新LTG(s)分配到NN中的判据。
.如果LTG能够学习输入向量,那么在方框43将约束增加到LTG的约束集中。增加新约束的步骤减少了使LTG能够得到激活的LTG的权空间中的区域。然后,在方框45将来自该层的输出应用到下一层,重复过程40(返回方框42),直到NN输出正确的输出为止。在方框44,确定当前层是否是输出层,如果是,则过程40结束于方框46,其中如果有任何更多的模式要学习,就学习下一个模式。如果在某个点上,无法在一层总学习输入向量,那么它就变成用来分配LTGs(由图3的方框47至49示出——见下面的步骤4)的场所。每一层必须有一个能够输出NN期望输出的LTG。该层接收来自前一层的输入的目的是,结合前一层的输出以产生NN的期望输出。
.如已经描述的那样,在方框44做检查之后,如果在方框45,NN输出正确的响应并且有更多的输入向量要受到学习,那么过程40返回步骤3的开始处(方框42)。
.如果在方框44,NN产生正确的响应并且不再有输入向量要受到学习,那么NN的这一训练输出完成训练,过程40结束于方框46,其中如果有任何更多的模式要学习,就学习下一个模式。
.如果在方框35,DR训练算法30确定有更多的NN输出要受到训练,那么DR训练过程返回到如图2中所示的初始化步骤1(方框32)。
(4)根据需要将新LTG(s)分配给NN
根据需要将新LTGs分配到一NN中的过程一般由图3中的方框47至49表示。方框47表示将一新LTG分配到一NN隐层中,同时,方框49表示将一新输出LTG分配到一NN中。用来将新隐层LTGs分配到一NN中的过程50的优选实施例示于图4的流程图中。类似地,用来将新输出LTGs分配到一NN中的过程60的优选实施例示于图5的流程图中。为了提供对将新LTGs分配到一NN中的这些过程50,60更好的理解,还将参照图6a和6b,它们示意性地表示出根据本发明DR训练算法30的过程50,60的NN70的结构。
在图3中所示的学习一输出的单个模式的优选过程40中,将新隐层LTGs分配到NN(方框47)步骤表示为在分配新输出LTGs(方框49)步骤之前执行。在图3中,表示出如果在方框42一LTG无法学习输入向量(或者模式),那么在方框47将一新LTG增加到当前(隐)层以学习输入向量。在方框47将一新LTG增加到当前层之后,在方框48进行一项测试,用以确定当前层是否是NN的输出层。如果在方框48确定当前层不是NN的输出层,那么过程40继续进行到方框45,其中来自这一(当前)层的输出之后应用到下一层。然后,重复过程40(返回方框42),直到NN输入如前所述的正确输出为止。如果在方框48确定当前层是NN的输出层,那么过程40继续进行到方框49,其中将一新输出LTG增加到NN中。在方框49将一新输出LTG分配给NN之后,过程40结束于方框46,其中如果有任何更多的模式要学习,就学习下一个模式。
尽管图3的过程40表示出在将新输出LTGs分配给NN(方框49)之前将新LTGs分配到一隐层中(方框47),不过应意识到的是,可以在分配新隐层LTGs之前将新输出LTGs分配给NN。因此,本发明并不限于所提供的特定实例。为了说明根据本发明的DR训练算法30,可以在分配新隐层LTGs之前将新输出LTGs分配给NN,现在以与图3的优选过程40相反的顺序提出图6a和6b中的将LTG分配到NN70中的过程。
现参照图5描述将新输出LTGs分配到NN70中的过程60(图6a和6b)。
.如果在方框42,输出LTG无法产生输入向量的期望输出(图3),那么将一新输出LTG分配给如图6a中的NN70,就像图3的方框49所示的那样。
I.见图6a(i),当前输出LTG——LTG A处于层N中。见图6a(ii),将另一个LTG——LTG B增加到层N中。优选将LTG B的约束集初始化为空集。图5的流程图中没有表示出将新LTG——LTG B分配到NN70的层N中,但是应当将其理解为现在将要描述的方框61的一部分。类似地,可以在将新输出LTG——LTG C分配到层N+1中之后进行将新LTG——LTG B分配到层N中的步骤。
II.在方框61,增加一个新输出层——层N+1,对于输出Oj来说,该层中有一个单个新LTG——LTG C。然后,根据步骤V和VI优选初始化LTGC的约束集。
III.如果层N>1,在方框62,从连接到LTG A的前一层——层N-1(图中未示出)中的LTGs,把连接加到新LTG——LTG B上。
IV.还在方框62,把层N中LTG A和LTG B中每一个的输出都连接到层N+1中新输出LTG——LTG C的输入上。
V.如果所要学习的输入向量随后产生输出0,那么在方框63:
a)训练层N中的新LTG B以学习输入给该层约束的输入。增加这些LTGs——LTG B和LTG C,因为LTG A无法学习该输入。
b)把来自LTG A的约束复制到新LTG——LTG B的约束集中,将所有约束设定为≥LTG B中的阈值。
c)在层N中的LTG A与LTG B之间,把形成“与”AND的约束加到层N+1中的新输出LTG——LTG C中。
VI.如果所要学习的输入向量产生输出1,那么,在方框64:
a)训练层N中的新LTG B,以学习该输入的约束。
b)把来自LTG A的约束复制到新LTG——LTG B的约束集中,将所有约束设定为<LTG B中的阈值。
c)在层N中的LTG A与LTG B之间,把形成“或”OR的约束加到层N+1中的新输出LTG——LTG C中。
.如果在方框42,层N中没有LTGs能够学习产生期望的输出(图3),那么将一新的LTG——LTG D分配给如图6b中NN 70中的那一层——层N,就像图3的方框47所示的那样。
现在将参照图4描述把新隐层LTGs分配到NN 70中的过程50(图6a和6b):
I.在方框51,将一附加LTG——LTG D增加到其中没有LTG能够学习数据的层N中。然后,根据步骤V和VI优选初始化约束集。剩下的步骤一一步骤II到VI一般可以互换,因此,这些过程步骤的顺序可以变为图4中所示的顺序。
II.在方框53,对于该NN输出Oj来说,从LTG D的输出向形成层N的输出层的层N+1中所有的LTGs建立连接。在方框54,更新层N+1中的LTGs(这种情况下是LTG C),以便它们基于层N中其他LTGs——LTG A和B不会学习的东西,知道要用从新LTG——LTG D来的输入做什么。
III.如果层N>1,那么在方框52,对于该NN输出Oj来说,从形成前一层——层N-1(图中未示出)中输入的所有LTGs,把连接加到LTG D上。
IV.在方框55,训练新LTG——LTG D,以使其学习层N无法学习的输入向量。为了提供对训练新LTG——LTG D以使其学习层N中其他LTGs无法学习的输入向量的过程(方框55)更好的理解,提供另一个方框——方框56,它包括所涉及的优选过程更详细的分解内容。
V.如果所要学习的输入向量随后产生输出0,那么在方框57和58:
a)在该层——层N中,把前一个LTG——LTG B中的约束复制到新LTG——LTG D的约束集中(方框57),将所有约束设定为≥新阈值(方框58)。
b)对于来自LTG D和层N中其他LTGs的输入,LTG C在其约束集中形成“与”AND,见方框54。逻辑为(A...B)AND D。
VI.如果所要学习的输入向量随后产生输出1,那么,在方框57和59:
a)在该层——层N中,把前一个LTG——LTG B中的约束复制到新LTG——LTG D的约束集中(方框57),将所有约束设定为<新阈值(方框59)。
b)对于来自LTG D和层N中其他LTGs的输入,LTG C在其约束集中形成“或”OR,见方框54。逻辑为(A...B)OR D。
.回去参见图3,如果在方框47,在分配新的LTG——LTG D之后,NN70输出正确的响应并且有更多的输入向量要受到学习(方框48),那么过程40返回到步骤3的开始(方框42到方框45)。
.再次参见图3,如果在方框47,在分配新的LTG——LTG D之后,NN70输出正确的响应并且不再有输入向量要受到学习而是有更多的输出要受到学习(方框48),那么过程40返回到步骤1的初始化(图2的方框32)。
应意识到的是,当在层N中把来自前一个LTG——LTG B的约束复制给新LTG——LTG D时,可以有其他的逻辑组合。已经提出的具体实例就是,在把LTGs分配给NN 70的两种情况(过程50,60)下工作的优选逻辑组配。所采用的具体学习逻辑对本发明来说并不是主要的,但是,必须以某种形式将数据复制过去,否则NN 70将完全忘掉它曾经学过的每一样东西。
现在应意识到的是,可以以任何顺序执行根据DR训练算法30将LTGs分配到NN 70中的步骤。因此,根据图6a和6b,在把LTG C加到新输出层——层N+1中之前,LTG D可能已经加到层N中了。类似地,还应意识到的是,在把LTGs分配到NN 70中的两种情况(过程50,60)下,过程步骤——步骤I到VI通常是可以互换的,这样,本发明并不限于所提供步骤的特定顺序。
DR训练算法的各阶段详述
为了尽可能提供对DR训练算法30和本发明其他方面更好的理解,现在将提供对算法30每一阶段或者步骤更详细的描述。该训练算法30基于前馈NN架构,不过它变换自训练LTGs的NN的传统方法,该传统方法试图找到满足训练条件的单个数值。正如已经简要讨论过的那样,该方法代之以找到满足每一个LTG训练条件的权空间中的区域,它以单遍训练数据集的方式学习,允许将LTGs动态分配给NN,能够确定是否可以对输入向量进行分类,并且能使训练过程中所学的规则易于从NN中提取。
初始化:具体参见图2的DR训练算法30的方框32。在训练输出的一开始,优选至少有两个步骤,即,选择哪一个输出训练,以及为那个输出增加输出LTG。
第一步——选择要学习的输出:NN学习为数据集分别产生NN的每一个输出。把每一个输出或者输出向量的每一个维度作为一个单独的学习过程对待。这被证明是有道理的,因为输出向量的每一个维度都是独立的。
每一个LTG尽管共享一个公共输入,但是在不考虑训练算法函数的情况下,每一个LTG都独立于那层中其他的LTG,那层要么是NN的隐层,要么是NN的输出层。这在以反向传播训练NN时可能引起问题,即,当通过NN反馈NN中的误差时,不可能确定哪一个权应当增大或者减小。Fahlman等人将此称为信贷分派(credit assignment)问题。这个新算法30开发出每一个LTG的独立特性(behaviour),分别训练每一个输出LTG。这形成了如何构建NN的主要原理。一旦选择了输出向量的维度,就将输出LTG增加到NN中。
第二步——增加输出LTG:最初,输入层的LTGs完全连接到输出层LTGs。而且,输出LTG中的约束集优选为空。现在可以准备数据以为输出LTG学习。
数据准备:具体参见图2的DR训练算法30的方框31和33。由于这是一个单遍训练算法,所以,把数据提供给NN进行学习的顺序很重要。优选有至少四个步骤涉及准备数据。
第一步——如果所要提供给NN的数据不是适于训练的适当格式,那么优选在将该数据集提供给NN之前,将该数据集转换为适当的格式,如图2的方框31所示。
第二步——对数据进行矛盾检查:矛盾数据会在训练NN时引发问题。需要就对数据进行矛盾检查,因为存在产生冲突输出的两个或者更多输入向量xi的情况。换句话说,就是xi既产生输出0又产生输出1的时候。尽管NN可以学习该数据,但是该数据是矛盾的,优选用独特的输入向量训练NN以避免该问题。可以在图2的DR训练算法30的方框31或者方框33执行这一步骤。
第三步——在训练NN之前对训练集中的数据排序:对于用来学习其中输入向量0要求输出为1的数据集而包括采用负约束(negative constriants)的单纯形法(simplex method)的许多系统和采用反向传播训练的前馈NN来说,学习0向量会导致不稳定。对于NN来说,成问题的原因在于,要求神经元的阈值为负。本发明的DR训练算法30通过在训练NN之前对训练集中的数据排序来避免这种情况。将0向量定义为其中所有输入维度都为0的输入向量。例如,有3个输入的神经元或者NN的0向量为[000]。当0向量在该训练集中可用时,首先由NN学习它,因为这避免了在0向量导致NN输出1时NN可能经历的不稳定情况。
第四步——如果输入向量0已知,那么如果它可用,就应当首先学习它。然后,在方框33,特别是如果需要在训练过程中将LTGs分配给NN,就优选在训练NN之前将输入向量分类成某个顺序。本发明的算法30没有一个内部(in-built)检索机制,因为随着把数据提供给NN,数据就受到学习。这是因为DR学习以单遍方式训练NN,所以必须能够一提供就学习所有的数据集。
根据本发明的另一方面,优选的分类方法(方框33)是,根据数据集,把数据分成分别产生1和0的各个集,首先学习那些产生1或者0的向量。作为一个粗略的准则(guide line),如果0→0,那么首先学习那些输出0的向量,否则首先学习输出1的向量。
另一种可能的分类方法是采用SOM——自组织映射,它模仿一种生物脑的分类技术。生物脑在脑皮层的表面上采用一种类似于SOM的机制。SOM通过将输入向量组织或者分类成为数据集中的二维类别特征代表而进行工作。这些特征对输入向量进行归类而不考虑它们的输出。可以把那些被归为属于SOM中某些特征的输入向量分开并分类成各个特征,并且把它们集中起来送入训练机制中。这种方式下,DR训练可以将LTGs聚集在一起,学习如何对数据集中的特定特征进行归类。
可以将这种结构映像为3维的——2维度SOM,第三维度是DR训练的NN。具有一SOM的大致为圆屋顶形的生物脑简化图位于表面和从该表面发出的前馈NNs上。一种可能的模型可以是,脑皮层由与前馈神经元连接在一起的SOM各层组成。
应意识到的是,还可能有许多可以以本发明的DR训练算法30的方式使用的其他分类技术,这样,本发明并不限于所提供的特定实例。
将数据应用到NN中:具体见图2的DR训练算法30的方框34和35,更详细地,见图3的过程40。本发明的DR训练算法30优选采用前面已经描述过的LTGs。另外,DR训练算法30优选采用Heaviside函数或者阶梯函数作为其传递函数。优选使用这种门,因为它在输入空间中的各个类别之间设置清晰的分界线,将输入向量的各个类别完全分开。
本发明的DR训练算法30与LTG一起工作良好,因为它不查找满足训练条件的权和阈值的单个数值。作为替代,它通过约束LTG的权空间来学习。所以,不是找到满足权和阈值的权空间中的单个值,而是找到空间的区域。根据有监督训练的概念,各约束由输入向量和期望的输出形成。
阈值T在LTG中作为一个常数对待。已经由Kohavi说明,一LTG中的阈值可以如此对待。Kohavi用补数权(complement weights)(采用逻辑“非”NOT)来说明T≤0和T>0两种情况的阈值。在本发明的训练算法30中,该数据确定训练过程中是T≤0还是T>0。
对原始LTG所做的唯一修正是包含一约束集,它被初始化为空。为了实现的目的而要求这一条件,因为它用来存储LTG曾经关于各权与神经元阈值之间关系而学过的东西。如已经讨论过的那样,本发明并不限于仅使用约束。约束只代表输入权与阈值之间的关系,它们只是本发明的一个优选特征。
现给出对如何建立训练单个LTG的约束的讨论。
建立单个LTG的约束:具体见图3中的优选过程40,它用于根据DR训练算法30学习输出的单个模式。把要在方框42学习的输入向量(或者模式)供给LTG。将这些输入向量转换为约束,它们记录在LTG的约束集中。在学习之前,该约束集优选初始化为空。
为了开始训练,构建约束中的第一步(方框42)是将每一个输入向量xi应用到LTG的引入权向量(incoming weight vector)w上,以产生xi·w。基于定义LTG特性的方程1.1,所产生的xi·w与LTG的阈值T具有至少两个可能的关系。这两个可能的关系每一个都产生一个相关输出。以方程2.1和2.2表达与T的关系和相关输出。
xi·w≥T→1(2.1)
或者
xi·w<T→0(2.2)
在本说明书的前面已经解释了有监督学习(supervised learning)。利用有监督学习原理,如果要求的输出是1,那么要求的约束是xi·w≥T。同样,如果所要产生的输出是0,那么w受到约束,xi·w<T。现在将该新的约束增加到那个LTG的约束集中,假定该约束连同以前增加的其他约束有一个解。这一点将在以后更详细地讨论。对该约束集中的所有n个输入向量重复这样一个增加约束的过程,即,把由输入向量和LTG的权构成的约束增加到LTG的约束集中的过程。
图7示出一个2输入LTG NN 80的实例。在该实例中,令权向量为[w1w2]T,输入向量为[x1x2],[Oj]为LTG的输出。如果对于输入[01]来说,输出为1,那么关于LTG 82的约束就为w2≥T。如果希望另一个输入向量[11]产生输出0,那么还增加约束w1+w2<T。这两个输入将产生该LTG 82的约束集{w2≥T,w1+w2<T}。通过建立约束集,LTG 82学习对输入/输出进行归类。
现已表示了如何由将要训练LTG的输入向量构建约束。但是,在可以学习任何新的输入向量和其相关约束增加到LTG的约束集中之前,必须核实LTG是否能够学习输入向量形成的约束。现给出用来学习输入向量的判据的讨论,它将确定是否能够学习新的输入向量,并由此确定约束是否增加到LTG的约束集中。
用来学习输入向量的判据:具体见图3中的过程40的方框42。当将约束增加到LTG的约束集中时,最重要的问题是确定它是否能够学习那些已经被教授的东西。这已在本说明书的前面更详细地论及过。
对于建立LTGs的NN来说,重要的是测试LTG是否能够学习输入向量。如果单个LTG无法学习所有的数据,那么需要另外的LTGs。
当本发明的DR训练算法30将输入向量和相关输出转换为一约束时,可以测试该新的约束以确定具有LTG曾经学习过的所有约束的权空间中是否有一个解。这可以用单形法(simplex method)来做。该测试确保可以对各权和阈值找到数值,不过不必找到每一个权和阈值的具体数。知道可以找到满足约束的数解就足够了。
现给出关于这一内容的讨论,即,为什么找到学习问题的通解更优于找到每一个权和阈值的具体数解。
传统的方式是,为每一个权找到单个的数值,因为不可能找到一个通解。
如果可以对用传统的训练方法例如反向传播所训练的NNs中各权找到一个解,那么,当从w∈Rn中选择各权时,对于所有的权来说,有无穷个解。这无穷个解在每一个LTG的权空间中形成一个区域。通常以反向传播选择的解倾向于成为所找到的第一组数值,这组数值在预定容错范围内产生一NN。为每一个LTG找到的x是该LTG的权空间内该区域的单个值。
这些权值的解试图成为基于训练过程中增加到NN中的输入值的一种平均数,这些输入值中的端值丢失了,因为为找到一单个解而使得各值的范围丢失。
根据本发明的神经元训练方法能够在找到一个通解时,使训练过程中学到的所有信息都得以保存。通解能使权空间内的区域得到分析,以找到能使LTG激活和不能使LTG激活的各权之间的分界线。通解定义各个相互关系,因为似乎所有事物都是彼此相关的,而且只有在与其他一切相关时才能被理解。找到一个通解,就能使各权之间的关系得到分析,结果是能使输入之间的关系得到分析。最后,如果是绝对必要,那么可以找到明确地具体表达数据集内各个关系的具体数值。
因此,有一种测试可以用来确定新的约束是否可以由本发明的DR训练算法30训练的LTG来学习。该测试也是用来将LTGs增加到NN中的判据。如果无法学习输入向量,那么将一LTG增加到NN中。
将LTGs分配给NN:具体见图3中过程40的方框47和49,以及图4和5中的优选过程50,60,它们用于将LTGs分配给根据本发明DR训练算法30的NN中。以上已经介绍了如何训练单个LTG。单个LTG的特性形成建立LTGs的NN的基础。训练单个LTG包括以下三个步骤:
1)将输入向量转换为各权与阈值之间的关系;
2)确定一LTG是否能够学习一个新的输入向量。通过在将一约束增加到LTG的约束集中时是否可以找到一个数解,确定一LTG是否能够学习一输入向量的判据;以及
3)如果该LTG能够学习该输入向量,那么把由该输入向量构建的约束增加到该LTG的约束集中。
如果在方框42,该LTG无法学习该输入向量,那么需要另外的LTGs。因此,步骤2形成用来将LTGs分配给一NN的基础判据。现介绍如何增加LTGs以建立一NN。
只有在一输入向量无法产生需要的输出时,才分配LTGs。该过程包括以下步骤:
1)在新LTGs之间形成连接,并且形成至已经在NN中的LTGs的连接(图3的方框52和53以及图5的方框62);以及
2)确保新LTGs不会导致NN忘记它曾经学习过的东西。
以下的讨论将更详细地描述这些过程中的每一个过程。首先描述关于NN架构的总的方法。然后介绍对输出的选择,以及对将输出分为分离的问题的论证过程。
NN架构:最初,将输入LTGs完全连接至输出LTGs。输入和输出LTGs的数量取决于NN学习的数据集。把每一个输出视为其他输出的独立学习任务(图2的方框32)。
为了这个讨论,首先假定有具有单个输出的NNs。本发明的DR训练算法30逐渐形成(grow across and up)拓扑,形成与采用反向传播所形成的传统NN相类似的NN。它可以将各单元分配给一隐层(图4的过程50),并且可以增加一个含有单个LTG的新输出层(图5的过程60).然后,前一个输出层就变成该NN中的一个隐层。这个新的隐层具有分配给它的一个附加LTG,用以学习那层中另一个LTG无法学习的东西。图8中示出具有三个输出O1,O2,O3的NN 90的一个实例。NN 90已经用模8问题数据集,采用本发明的DR训练算法30得到训练。
在图8所示的NN 90中,可以看到,O3不需要隐层以能在完全训练后产生需要的解。但是O1和O2需要隐层。在训练开始时,具有阈值T11和T13的LTGs是原始输出。但是,它们无法学习数据,因而将T12增加到隐层92中,T21就变成O1的输出。同样,当T13无法产生O2时,增加T14。
在本说明书中用来命名LTGs的转换是,LTG有一阈值T,它归入一层L。由于每一个函数都可以在仅仅三层中受到学习,所以只分配单个数字来标识该层。每一层中有N个LTGs,它们在那一层中以k=1...N编号。每一个LTG可以表示为LTGLk,并且有一个与其相关的阈值,该阈值称为TLk。每一个LTG都有一组输入连接权。权向量的各个分量表示为wLkj,其中j是接收输入的前一层中的LTG。
建立NN:只有在NN无法学习一输入向量时才将LTGs增加到NN中(见方框42)。有两个时候LTGs需要增加到NN中:(1)第一个时候出现在一个输出无法产生需要的输出时(方框49);(2)第二个时候出现在隐层中没有LTG能够学习输入向量时(方框47).如以前所讨论过的那样,把输出LTGs和隐层LTGs分配给一NN可以以任何顺序出现。
当将LTGs增加到一NN中时,需要优先考虑的事情是:
a)把需要从NN中现有的LTGs做出的所有连接都连接到新LTG(图4的方框52和53,以及图5的方框62);
b)在将新LTG增加到NN中之后,重要的是,最新增加的LTGs学习NN以前曾经学过的所有东西(方框55).这能防止出现所谓遗忘的情况,因为它意味着NN以前所学习的东西可能被忘掉。在本说明书的后面介绍学习逻辑时,将讨论如何避免这种情况;和
c)必须准备好那些已经在NN中并且要从最新分配的LTG接收输入的LTGs,以使其接受输入(方框54)。如果没有准备好那些要从最新分配的LTG接收该新输入的LTGs,那么它们将忽略新LTG的输出。
将LTGs增加到隐层中:具体见图4中的过程50,它用于把新的LTGs分配到根据本发明DR训练算法30的NN的隐层中。本讨论将考虑输入向量首先应用到只有一个输出的NN中的情形。用第一隐层中的第一LTG形成约束。如果该层中的第一LTG无法学习前面讨论过的测试所确定的约束(图3的方框42),那么该层的下一个LTG尝试去学习由该输入向量及其输出形成的约束等等,直到该层中的一个LTG学习它。但是,如果该层中没有LTG能够学习该约束,那么必须将另一个LTG增加到该层中去学习它(方框47)。这在图6b的NN 70中说明过,其中将LTG D增加到层N中。
例如,当图6b中LTG A或者LTG B都无法学习一个新的输入向量时,如图所示,将LTG D增加到层N中。LTG D基于输入到该层——层N中的输入学习该新约束(方框55或者56)。该新的LTG——LTG D的输出也输入到具有输出Oj的NN 70的输出层——层N+1中的输出LTG——LTG C中。
现在考虑任意一个隐层。当一个输入向量应用到一NN中时,第一隐层中的每一个LTG都通过受到激活与否而做出响应,这取决于LTG的训练。这些LTGs响应用作下一层的输入向量,下一层又对所给定的它们的训练做出响应,等等。如果任何一个隐层都无法学习把它接收的输入(方框42)归类为任一输入向量的结果,那么将一新的LTG增加到该层中(见图4)。重复把LTGs增加到隐层中的这一过程,直到已经学习了所有的输入数据为止。
以下面的算法给出动态地将LTGs分配到所建立的隐层中的优选形式或者过程50:
a)形成至层N-1中所有LTGs的连接(方框52)。这些连接起到输入到最新分配的LTG的输入作用;
b)形成至层N+1中所有LTGs的连接(方框53),用于受到学习的输出。这些连接起到来自最新分配的LTG的输出作用;
c)层N+1中的LTGs形成层N中已有LTGs与新LTG之间的逻辑关系(方框54);并且
d)为最新分配的LTG准备层N中其他LTGs曾经学过的东西(方框55或者56)。
连接的形成示于图9中,其中NN 100已经在用足够复杂的数据训练之后建立起来。
将LTG H分配给层N中的NN 100(方框51)。把来自LTG H的输出形成为连接到下一隐层而不是输出层——层N+1中的LTG F和LTG G的输入上(方框53)。这可在前面曾经讨论过把每一个输出解释为分开的学习任务的地方见到。在前一层——层N-1中,建立来自LTGs——LTG A,LTG B和LTG D的输入连接(方框52)。
总之,如果没有隐层LTGs能够学习输入给那一层的输入所形成的约束,即,没有解,那么就将一LTG增加到该隐层中。这个新的LTG将其输出连接至与Oj相关的下一层中的所有LTGs。如果输出LTG无法学习一输入约束,那么根据图5的过程60,当前输出层就变成隐层,并且增加一新输出而输出给NN。
因为已经讨论过如何将LTGs增加到隐层中,现在就研究如何将一新输出增加到NN中。
增加新输出:具体见图5中的过程60,它用于将新输出LTGs增加到根据本发明DR训练算法30的NN中。在选择输出Oj进行训练(图2的方框32)之后,如前面所描述的那样,将所有的输入源直接连接到单个输出LTG上。又如前面参照图3所描述的那样,通过将输入向量接连应用到LTG上并且形成约束,训练该单个输出LTG。在图10a(i)中,表示出一NN 110的示意图,该NN 110有一安排在一输出层112中的单个LTG——LTG A,它具有输出Oj,当前正受到训练。
用输入向量形成的每一个约束来测试LTG A的约束集中的约束(方框42)。前面曾提到所采用的测试。
如果该新约束与现有的约束有一个解,那么将它增加到该约束集中。但是,如果没有解(在方框42),那么增加另一个输出层114,并且如图10a(ii)所示增加新LTG——LTG C(方框61)。LTG C变成NN 110的新输出LTG——Oj。由于在隐层112(原始输出层112)中有一个无法学习输入向量的LTG——LTGA,因此如图10a(ii)所示,将一新LTG——LTG B增加到隐层112中(还是在方框61)。此刻,LTG B就能够学习LTG A无法学习的输入向量。将LTG A和LTG B的输出连接至输出层114中的LTG C的输入(方框62)。此刻,LTGA和LTG B形成NN 110的隐层112。
再者,如果在图10b中,NN 110的LTG C无法学习某个输入,那么增加一个新隐层114(以前的输出层114),创建一个新输出层116。这种方式下,创建新隐层并且增加输出层。见图10b,其中将新隐层LTG——LTG E增加到隐层114中,并且将新输出LTG——LTG F增加到新输出层116中。
总之,如果一输出LTG无法学习输入向量,那么将另一个LTG增加到作为当前输出层的同一层中,将所有输入直接与其相连。该LTG学习旧输出无法学习的输入。将另一个LTG增加到下一层中。输入给该LTG的输入是NN的旧输出,而对那一层来说是最新增加的LTG。
既然已经建立了如何将连接增加到动态分配给NN的LTGs上的方式,那么重要的是要考虑如何训练LTGs以使NN接着再现以前曾经学过的东西。现在对此进行讨论。
学习逻辑:由于本发明的DR训练算法30是一种单遍算法,所以当将LTGs增加到一NN中时,该NN必须还产生正确的响应以输出以前学过的向量。因此,增加LTGs不应导致NN忘记它以前曾经学过的东西。这可能发生在以下的时候:(a)将一LTG分配给一隐层;或者(b)将一新输出层增加到该NN中。这种情况下,将一新LTG分配到一隐层中。
为了避免该问题:(a)必须根据具体逻辑规则,为最新分配到该隐层中的LTG准备该层中其他LTGs曾经学过的东西(图4的方框55或者56);并且,(b)直接从其中已经分配有最新分配的LTG的层接收输入的LTGs的那一层,也需要具有它们基于最新分配的LTG期望特性而更新的曾经学过的东西(方框54)。这种情况包括对新输出层的分配。
现在对最新分配的LTG所学习的东西给予考虑。首先,假定有一个没有隐层的NN,例如图10a(i)中所示的NN。
至少有LTG无法学习输入向量的两种情形,这两种情形是:(1)受到学习的输入向量需要输出1,而LTG只能基于它以前学习的东西为该输入向量输出0的时候;和(2)受到学习的输入向量需要输出0,而LTG只能基于它以前学习的东西为该输入向量输出1的时候。
如前面所讨论过的那样,这种情况下,如图10a(ii)中所示,将一新输出分配给NN。
有至少两种可能的方式使后面的层能够结合来自分配有LTG的隐层的输入,这两种方式是:(1)输出LTG用逻辑“或”OR结合来自隐层LTGs的输入向量(方框64);和(2)输出LTG用逻辑“与”AND结合来自隐层LTGs的输入向量(方框63)。
学习“或”OR:具体见图5中过程60的方框64。最初,对旧LTG无法学习的输入向量给予考虑。如果假定该向量使NN输出1,并且该LTG只能输出0作为LTG以前学习的东西的结果,那么新输出需要在其输入之间形成一个“或”OR。
再次参见图10a(ii),还要求NN 110的输出——LTG C在激活LTG A时得到激活,但是,这种情况下需要激活LTG A而它不能被激活,因此LTG B学习该输入中的这一特征。还要求LTG B学习NN 110以前学习过的输入向量。这能确保LTG B不会导致该输出在它不应被激活时而受到激活。为此,将LTGA的约束集中所有的约束复制给LTG B的约束集,但是,将所有约束学习为<T。LTG B已经学习了LTG A无法学习的新约束,它将通过对该输入向量的检查而受到激活。在LTG C已经学到将其两个输入“或”OR在一起并且根据要求输出1时,这使得LTG C得到激活。
学习“与”AND:具体见图5中过程60的方框63.如果要求输出为0而LTG代之以输出1,那么该新输出学习把来自LTG A的输入和最新分配的LTG——LTG B“与”AND在一起。这种情况下,从设定为≥T的LTG A的约束中复制这些约束,除非是0<T在LTG A的约束集中。这种情况下,照原样复制该约束。
这种情况下,当把LTGs进一步分配给一现有的隐层时,如上所述,根据那层中以前的LTG(LTG B)复制和修正这些约束。但是,如果将LTG增加到层N中,那么LTGs在层N+1中曾经学过的东西需要修正。
下一层学习的逻辑是(...(x1Op1x2)Op2x3)Op3x4)...),其中Op1...OpN是逻辑“与”AND或者“或”OR,而x1...xN是从分配了新LTG的隐层中接收的输入。如果将最新分配的LTG分配给一现有的隐层,那么从该层接收输入的LTGs可能基于要更新的逻辑需要其约束。例如,如果该层具有现有逻辑(x1AND x2),那么它将有约束{wn1+wn2≥Tn,wn1<Tn,wn2<Tn,0<Tn}。如果该逻辑变成(x1 AND x2)AND x3,那么约束集就变成{wn1+wn2+wn3≥Tn,wn1+wn3<Tn,wn2+wn3<Tn,wn3<Tn,wn1+wn2<Tn,wn1<Tn,wn2<Tn,0<Tn}。
当可以学习一输入向量时,通过一层中的LTGs学习的逻辑是根据它们增加到NN中的逻辑。如果增加LTG以形成“与”AND,那么该LTG学习约束xi·w≥T,而如果增加LTG以形成“或”OR,那么该LTg学习约束xi·w<T。
完全学习与泛化的描述
现在说明NN受到完全训练的情况,或者换句话说,NN可以再现它曾经学过的东西并且还能泛化的情况。首先说明LTG能够恢复它曾经学过的输入从而受到完全训练的情况。
LTG的完全训练:当LTG受到训练时,所得到的约束集可以用来确定LTG的输出。这通过利用方程1.1,将输入应用到所训练的LTG的约束集的方式实现,方程1.1定义了McCulloch-Pitt LTG的特性。在以下实例中描述这一过程。
如图7中所示,假定有一个2输入LTG 82,它受到训练以产生以下约束集:{w1+w2<T,w2≥T}。然后,应用输入向量[11],LTG将产生一0输出,因为1.w1+1.w2=w1+w2<T。因此,对于受到完全训练的LTG来说,不需要各权的数值。
以上论证表明,LTG可以再现它曾学过的东西而无需找到各权和阈值的数值。而且它还表明,可以以100%的准确率恢复受到训练的NN曾经学过的东西。
尽管本发明主要涉及训练NN以确定与输入向量有关的适当输出,不过这里还将给出关于用来训练NNs的数据的讨论,以及可能在训练过程中引发问题的两个问题。
泛化:本发明的优选实施例采用前馈NNs,因为可以用一个样本数据集训练它们,然后它们可以成功地对训练过程中NN以前一直不能发现的数据模式进行归类。这称为泛化。
尽管有一个黑盒子(black box)NN归类系统可能更理想,在该系统中,关于数据空间所知道的信息很少,不过,在训练NN时,对于数据来说至少有两方面是至关重要的,如下列出这些方面:(1)面临一个很大而且有噪声的数据集的一个问题是,它可能有矛盾,例如,有某个输入向量xi,如果在一个实例中xi→0而在另一个实例中xi→1,那么NN将经历学习该向量的困难。对于所有学习算法来说,这个问题是普遍的;和(2)确保用于训练一个NN的训练样本是数据集的有代表性的部分。现将对此做如下更详细的说明。
每一个数据集中都有某些特征。希望在训练过程中NN容易受具影响的那个数据集表示出所有需要用来完全训练NN的特征。但是,当数据集很大而且被了解得很少时,没有方法能够确定那个训练集是完全数据集中所有特征的有代表性的部分。这种情况下,将该数据集称为“未知数据集”。
通过测试受到训练的NN,可以确定NN是否已经学习了该数据集中所有的特征。用附加的已归类输入向量来测试NN,这是实现它的优选方法。前面已经给出了关于把用于训练前馈NNs的数据集分开的讨论。但是,尽管那样,如果数据集并不能被很好了解而且很大,该数据集中的其他特征也可能不会变得很明显。现在给出为什么推演不总是起作用的讨论。当在训练数据集中有遗漏的特征时,推演失败,这个问题可以称为“不充分训练”。
LTG的不充分训练:训练LTG所采用的每一个数据集都可能有任意个数据特征。该训练数据集可能具有在其内部表示的这些特征中的一些特征;但是,不能担保一个未知数据集内部存在的所有特征也表示于该训练集中。
因此,如果存在该训练集内部没有表示的特征,那么LTG仍不能在训练期间容易受到该数据集中所有特征的影响。这样,当用未见输入向量测试LTG时,它可能输出错误的结果。因而,这就是为什么这种LTG可以称作不充分训练的LTG的原因。
例如,假定只用两个输入向量:[00]→0和[01]→1来训练图7中所示的2输入LTG 82。
到现在为止,LTG 82仍未受到任何其中已经设定了输入向量中第一位的向量的影响,因此它可能无法对[10]和[11]进行准确的归类。该LTG 82从以上训练集学习的约束集为{0<T,w2≥T},尽管有一些关于w2的信息,不过尚未建立与w1的任何关系。例如,并不知道w1+w2或者w1与T有什么关系。因此,可能无法推演输入向量[11]和[10]的输出。根据输入之间形成的逻辑关系,这些可以是x2,x1 OR x2,或者x1 XOR x2,但是不可能在没有进一步信息的情况下断定是哪一个。
根据本发明的DR训练算法30,如果一LTG受到不充分训练,那么它优选输出1,不过这取决于数据集,也可能代之以输出0。换句话说,该LTG将保持活性,直到它学习了如何对数据输入做出响应为止。但是,这可能根据NN正在学习的数据集而变化。
因此,应当理解的是,如果在训练集中有遗漏的特征,那么LTGs可能在输出正确的响应方面遇到困难。这也是用其他训练方法如反向传播训练的其他神经元经历的问题。但是,与用反向传播训练的感知器不同,对于本发明的DR训练算法30来说,可以识别出LTG仍未学习如何对数据模式进行归类的时间。换句话说,用本发明的DR训练算法30训练的LTG可以指示出它不知道如何对一输入向量进行正确归类的时间。
现给出对LTGs最有用特性中的一个特性的讨论,这个特性即为LTG的一个能力,该能力在假定进行充分训练时能够推演未见输入向量的输出。
推演未见输入向量:当NN受到训练时,用一组输入向量训练它,然后,用NN在训练过程中尚未受其影响的一些输入向量测试它。这些输入向量称为“未见输入向量”,它们确定NN是否能够正确地确定它们的相关输出。
为使NN能够确定对训练过程中未见数据模式进行的归类,要求NN能够从它之前已经学过的东西中推演出对未见输入向量进行的归类。可能无法正确地推演该输出,因为不能担保在训练过程中已经学到所有的特征,除非通过使LTG受到所有可能的输入向量及其相关输出的影响。经常是,不是所有的数据模式或者输入向量都可用,而且可能不知道如何对它们进行归类,即使已经通过完全列举出输入数据集找到了它们。不太可能有一种方法来确定是否一个只是一输入数据集一部分的训练集是NN正在受到训练而学习的那个数据集的有代表性的部分。因此,只可能这样表示,即,通过用一特定数据集进行训练,在某些情况下,未见数据模式的输出可以由NN正确地确定。
定理(proposition)3.1:如果与一个未见输入向量的LTG阈值的关系可以由它以前曾经学过的约束推演出来,那么就能够确定未见输入向量的输出。
假定有图11中所示的LTG 120,用以下输入和输出向量训练该LTG:[000]→0;[001]→1;[010]→1;和[111]→0。
那么,LTG 120将具有以下约束集:{0<T,w3≥T,w2≥T,w1+w2+w3<T}。
在训练过程中,LTG 120尚未发现输入向量[100],对该向量所要求的输出是0。如果LTG 120不能推演出与阈值的关系,那么就不能确定输出为0。
由于0<T,w2≥T并且w3≥T,那么T,w2和w3就都是正数,同时w2和w3≥T。因此,w2+w3也必须≥T。但是,w1+w2+w3<T意味着w1很小而且为负数,因此<T。所以,输入向量[100]在应用到LTG 120并且采用定义LTG特性的方程1.1时,推演出1.w1+0.w2+0.w3=w1<T。因此LTG将输出0。
因而,LTG 120能够推演出正确的输出。因为LTG 120能够推导出正确的输出,所以,显示出在假定它已经受到充分训练的情况下,它能推演输出。
由于本发明的DR训练算法30优选使用LTGs来构建NN,所以可以根据本发明采用推演原理来推演如何对NN未见输入向量归类。作为选择,还可以根据本发明的另一方面,采用一个不同的方法,该方法用来确定如何对训练过程中未见数据模式的归类。现在描述这个用来确定如何对数据模式归类的可选择方法,或者用来确定一约束集的输入向量是已知还是未知的方法。
现给出一个新颖的测试,它用来确定NN是否已经学习了如何对一输入向量归类,而不考虑是否已经明确地学习过该向量。以下的测试指示出对于一个输入向量来说,NN输出是否已知。
测试LTG是否知道输入向量:优选能够从一个受到训练的LTG中找到如何对模式或者输入向量归类。当把一输入向量应用到一个受到训练的LTG时,它将做一件以下的事情:(1)激活;(2)无法激活;或者(3)它可能不知道如何对作为不充分训练结果的输入向量归类。
传统的训练算法无法使一LTG识别这一情形,即,LTG不知道如何对一输入向量归类时的情形。本发明的DR训练算法30提供对LTG不知道如何对其归类的输入向量的识别。
根据本发明的另一方面,现参照图12的流程图描述方法130的一个优选实施例,该方法用来确定一个约束集的输入向量是已知还是未知。优选的是,该约束集是一个根据本发明的DR训练算法30训练的NN神经元的约束集。应意识到的是,确定一输入向量是已知还是未知的方法130并不受NNs的限制。对输入向量归类的方法130还被认为对采用约束系统的其他领域有用,例如分析数据串(strings of data),象例如DNA。同样地,对输入向量归类的方法130还可以用于CSPs和运筹学的应用。因此,本发明的这个方面是独立的,并不限于以本发明的DR训练算法30方式使用。
按照确定根据本发明的DR训练算法30训练的LTG的输出的方式,描述以下对输入向量归类的方法130。该描述仅仅是本发明的方法130的一个可能用法的实例。
为了确定一LTG是否已经受到充分训练,或者换句话说,是否知道如何对一输入向量xi归类,首先在方框131,由前面描述过的输入向量构建约束及其补数。所形成的约束是:xi·w<T,其补数是xi·w≥T,或者xi·w≥T,其补数是xi·w<T。
假定与该输入向量相关的输出尚未已知。将约束xi·w<T或者xi·w≥T增加到受到训练的LTGs约束集中,然后在方框132,用任何适当约束满足算法进行测试,以确定是否有一个解(要么可以找到一个数解,但找到一个具体解并不重要,要么如图12中所示,可以等效地找到这些约束定义的各个体积的交集)。如果没有解,那么LTG必须输出1或者方框133表示的0,LTG受到充分训练,并且知道如何对该输入向量归类。换句话说,对于xi·w≥T或者xi·w<T来说,必须有一个解。
但是,在方框132,如果在约束xi·w<T或者xi·w≥T增加到受到训练的LTG的约束集中时有一个解,那么在方框134,去除约束xi·w<T或者xi·w≥T,代之以增加其补数。如果在方框135进行检查时没有解,那么LTG知道如何对该输入向量归类,并且输出0或者输出如方框136所表示的1。
但是,如果在方框135进行检查时,LTG在方框134交替增加约束及其补数时有一个解,那么并不知道如何对输入向量归类,因为它已受到不充分的训练,这由方框137表示。应意识到的是,这些步骤的顺序并不重要。
可以采用任何适当的约束满足方法或者算法来测试是否可以学习约束。为权和阈值找到具体的数解并不重要,但是,重要的是确定是否可以找到它们。这可以等效表示为找到约束定义的各个体积中的交集。
当将输入向量转换为一约束时,它在LTG的权空间中形成一个平面(plane)。每一次LTG学习一个输入向量,它就形成一个平面,该平面将该权空间截成两部分,减少了满足训练条件的体积。这示于图13(a)中,其中封闭的凹进(concave)区域就是满足目前为止所学习的训练条件的权空间。将该区域截成两部分的平面由供给该LTG的输入向量形成。这种情形下,LTG可以学习xi·w<T或者xi·w≥T,如分别在图13(b)和13(c)中所看到的那样。这种情况下,不知道如何对输入向量归类。在图13(d)中,LTG只可以学习该平面以上而不是以下的区域,因此这一一个约束确定该输出,即,该约束与满足训练条件的权空间中的体积相交。
在图13(e)中,由xi·w=T形成的平面与凸出的(convex)体积相交,但是在图13(f)中,LTG只能学习一个由那个平面形成的约束。该凸出的区域缩小到一个凹进的区域,因为只对所有这些约束的交集所形成的区域给予关注。
如果该输入向量刚好在该训练集中,那么,它将形成关于训练过程中所构建的约束集定义的体积的一个表面,该输入向量由此可知。
总之,约束及其补数两者都由输入向量形成(方框131和134),并且用存在交集的受到训练的LTG的约束集来测试(方框132和135)。如果任何一个约束都无法产生一个解(方框133和136),那么这意味着该输入向量的特征已经在训练过程中受到学习。但是,对于具有LTG曾经学习的东西的两约束来说,如果有解(方框137)可用,那么就有从该约束集中遗漏的特征。以上性质可以正式表示如下:
法则(Theorem):通过将约束xi·w<T或者xi·w≥T及其补数交替增加到LTG已经学习的约束列表中(方框131和134),然后为一交集而进行测试(方框132和135),可以确定是否已经学习过向量xi。如果在两种情况下都有一个解(方框137),那么尚未学习该约束。但是,如果只有xi·w<T或其补数有一个带以前学过的约束的解,那么LTG已经学习过该向量(方框133和136)。
证明(Proof):在图13中,在给出的权空间的图中,表示出LTG已经学过的东西所定义的两个体积的代表。凹进的区域示于图13(a)至13(d)中,而凸出的区域示于图13(e)和13(f)中。把该向量形成的平面应用到该权空间,即,xi·w=T。它既不象如图13(d)中那样,也不象所有其他情况那样与所定义的体积相交。如果不相交,那么已经学习过输入向量。这种情况下,它既不使LTG激活,也不使其不激活,这取决于哪一个体积——即,xi·w<T还是xi·w≥T与LTG已经学习的约束形成的体积相交。否则尚未学习xi·w。
在该平面与一个例如如图13(e)和13(f)中那样的凸出区域相交的情况下,这些中只有一个可以受到学习,因为该区域必须为LTG以前曾经学过的所有约束所共有(应注意的是,图13(e)和13(f)中的该区域缩小为一个凹进区域,因为只对而这共有的区域——即,它们的交集给予关注。)为了论证这样的情况,现给出一个实例。
假定在图11中给出3输入LTG 120。如果用以下输入向量——[010]→1和[011]→0训练LTG 120,那么LTG 120已经学习的约束集为{w2≥T,w2+w3<T}。向量[100]和[001]的输出将受到确定。
对于输入向量[100]来说,发现平面w1=T与区域{w2≥T,w2+w3<T}相交,因此w1<T和w1≥T两者都与LTG 120所学习的区域相交。因而,LTG 120不知道输出应当是什么。前面曾经说过,输出应当为1,但是,如果需要,这可能根据正在学习的数据集而受到修正。
对于输入向量[001],发现平面w3=T没有与区域{w2≥T,w2+w3<T}相交,唯一与其相交的区域是w3<T。因而,知道该向量[001]的输出将为0。
尽管关于输入空间并没有知道很多东西,根据本发明用来训练LTGs的DR训练算法30给出了关于权空间的许多信息。
将每一个约束增加到约束集中的动作,缩小了满足该LTG所有训练条件的权空间中的这个区域。
现在应当理解这样一个优选方式,即,其中,确定一输入向量的输出,就是用LTG已经学过的约束,把它可能形成的两个可能的约束与阈值相比。这将使LTG激活或者不激活,或者它不知道正确的输出。
因为已经论证了NN如何能够受到训练和测试以推演未见输入,那么现在将给出一个完全处理过的实例,以论证根据本发明的DR训练算法30和泛化。
假定模8问题的DR训练算法的应用实例
在下面的讨论中,以例举的方式说明本发明的DR训练算法30的细节。在该实例中,采用解决模8问题的NN 140的一个优选实施例。数据集包括一个二进制数的三维输入向量,输出是该序列中的下一个二进制数。随机选择输入向量[101]并为测试而保存它。创建训练NN 140的约束集,然后显示出NN能够推演出该输入向量[101]的输出,该输出是[110]。
该数据集列于表1中,它具有下列输入和相关输出。
表1——定义模8的输入和输出向量
构建约束集:将输入向量定义为[x1x2x3],而输出向量为[O1O2O3]。在该输出向量中选择第一个输出以使其首先受到训练(图2的方框32)。用LTGs的阈值所具有的下标来标引它们。例如,LTG11具有阈值T11首先,确定0向量——这种情况下为[000]——是否可用于学习。如果是,则将向量{0<T11}增加到该约束集中。对输入向量排序(方框33),以便首先学习这样一些向量,即,这些向量输出正位于当前受训的输出向量中的1。见图14a。
根据图3的过程40,对输出O1的训练使LTG11定义为:{0<T11,w113<T11,w112<T11,w112+w113≥T11,w111≥T11,w111+w112≥T11}。
当在方框42检查时,这有一个解。但是,增加以下约束并没有解:w111+w112+w113<T11
因而LTG11将为输入向量[111]输出一个1而不是0。根据图4的过程50,将一个新的LTG——LTG12增加到NN 140中,以学习输入向量[111]。参见图14b的NN 140的新拓扑。把约束{w121+w122+w123<T12}增加到LTG12的约束集中(方框55)。把LTG11已经学过的信息复制过来并且修正该信息,LTG12的约束集就变成:
{w121+w122+w123<T12,0≥T12,w123≥T12,w122≥T12,w122+w123≥T12,w121≥T12,w121+w122≥T12}。
由于LTG11当前是输出(检查方框48),所以根据图5的过程60把一个新的输出LTG——LTG21增加到NN 140中。参见图14c的NN 140的新拓扑。由于输出是1而不是0,所以这意味着新输出LTG21将在LTG11与LTG12之间形成一个“与”AND关系(方框63)。
由于LTG21要在其输入之间形成“与”AND关系,因此其约束集变为:{0<T21,w211<T21,w211+w212≥T21,w212<T21}。
要求用来学习第一输出O1的3个LTGs的约束集是:LTG11:{0<T11,w113<T11,w112<T11,w112+w113≥T11,w111≥T11,w111+w112≥T11,w111+w112+w113≥T11};LTG12:{w121+w122+w123<T12,0≥T12,w123≥T12,w122≥T12,w122+w123≥T12,w121≥T12,w121+w122≥T12};和LTG21:{w211<T21,w211+w212≥T21,w212<T21,0<T21}。
既然已经训练了输出O1的输出,那么该过程就转至训练输出O2(在方框35检查之后返回方框32)。如表2中所列出的那样对数据排序(方框33)。重要的是,应当注意已经为测试目的而不再考虑输入向量[101]。图14d给出了关于现有NN 140的O2的初始输出LTG——LTG13的示意图。
表2——模8数据集的第二个输出
LTG13学习(方框34)约束{0<T13,w133≥T13,w132≥T13,w131+w123≥T13}。
但是,当在图3中的过程40的方框42做检查时,将输入向量[011]的约束增加到约束集w133+w132<T13中是没有解的。根据图4中所示的过程50,将一新LTG——LTG14分配给NN 140以形成具有LTG13的隐层142。LTG14将学习输入向量[011]的约束w143+w142<T14。参见图14e的NN 140的新拓扑。
由于LTG13输出1而不是输出输入向量[011]所要求的0,所以这意味着输出LTG必须在其输入之间形成“与”AND关系(方框54)。
因而这就是为什么要增加新LTG14以学习该条件以及LTG14学习输入向量[011]的原因。LTG14:{0≥T14,w143+w143<T14,w143≥T14,w142≥T14}
再一次根据图5的过程60,为输出O2增加一新的输出LTG——LTG22,它学习用“与”AND把其输入组合在一起(方框63),从而产生约束集:{0<T22,w223<T22,w223+w224≥T22,w224<T22}。参见图14f的NN 140的新拓扑示意图。
LTG13学习下一个向量[100],其约束集变为:LTG13:{0<T13,w133≥T13,w132≥T13,w131<T13,w131+w132≥T13}。LTG14的约束集变为:LTG14:{w143+w143<T14,w143≥T14,w142≥T14,0≥T14,w141≥T14}。
LTG13无法学习最后一个向量[111]形成的约束,但是LTG14可以学习它,因此这里列出所有三个LTGs的最终约束集:LTG13:{0<T13,w133≥T13,w132≥T13,w131<T13,w131+w132≥T13,w131+w132+w133≥T13,w133+w132≥T13};LTG14:{0≥T14,w143+w142<T14,w143+w142+w141<T14,w143≥T14,w142≥T14,w141≥T14,w141+w142≥T14};和LTG22:{0<T22,w223<T22,w223+w224≥T22,w224≥T22}。
既然已经训练了第二个输出,那么必须训练最后一个输出O3(在方框35做检查之后返回方框32)。最初在方框34(用图3的过程40)发现,LTG15学习以下约束集:LTG15:{0≥T15,w153<T15,w152≥T15,w153+w152<T15,w151≥T15,w151+w152+w153<T15,w152+w151≥T15}。图14g表示出关于现有NN 140的输出O3的最初输出LTG——LTG15的示意图。
在方框42做检查时,LTG15已经受完全训练集的影响并且有一个解,因此无需向NN 140增加新LTGs,因此,图14g变成已经学习过模8数据集的最终受到完全训练的NN 140的示意图。
现在考虑如何根据图12中所示确定输入向量是已知还是未知的方法,推演未见输入。
推演测试输入向量的输出:现在评价NN 140对未见输入向量进行归类有多好,这种情况下,未见输入向量是[101],而相关输出是[110]。如果它能做到,那么NN 140就能够根据它曾经用来受到训练的数据进行泛化。
首先,推演输出O1:由于T11>0,w113<T11,w112<T11和w112+w113≥T11,所以0<w113<T11,假定w111≥T11因此w111+w113≥T11。因而LTG11的输出是1。而且,如果把w111+w113<T11增加到LTG11的约束集中,就没有解。
增加w121+w123<T12和w121+w123≥T12这二者就有解(方框137),例如象这些的情况下,缺省默认输出1。
由于LTG21具有1.w211+1.w212,而且由于w211+w212≥T21,那么O1将为1。
现在推演O2的输出:由于LTG13能够学习w131+w133≥T13和w131+w133<T13中的任何一个,所以LTG13的输出为1。
LTG14也可以学习w141+w143≥T14和w141+w143<T14中的任何一个,因此它将输出1。由于LTG22具有1.w231+1.w242,而且由于w231+w232≥T22,那么O3将为1。
最后,推演O3的输出:由于w151+w152+w153<T15并且0≥T15以及w151+w152≥T15,那么w153<T15<0。尽管w151≥T15,不过w151+w152+w153<T15,因此输出将为O。
就此推演出正确的输出,或者将正确的输出泛化为[110]。图14g表示出最终得到的NN 140。可以发现,仅在必要时在隐层与输出层之间建立连接,而且仅在需要时增加隐层LTG,如在O3中那样。
在该NN 140中,有意思的是,注意到训练实例远远少于NN中的各个权和各个阈值,NN受到完全训练。普遍相信的是,需要有比NN中各个权和各个阈值的数目多很多的输入向量来训练NN。在本实例中发现,这并不是在所有的情况下都如此,即,需要比变量更多的训练实例。
该实例中的LTGs数:当采用本发明的DR训练算法30时,本实例中,需要有七个LTGs来学习数据集。可以在图14g中看到,输出层144中的LTGs只从隐层142中那些它们需要来自那里的输入的LTGs接收输入。而且,没有不必要的LTGs分配给NN 140。例如,由于LTG15能够在所有情况下产生所要求的输出,所以没有附加的LTGs增加以产生O3。
现已论证了DR训练算法30是如何以一个实例进行工作的,下面将检验该算法在NN训练过程中所学习规则(extracting rules)的提取中是多么有用。
DR训练算法对于规则提取(rule extraction)的适用性
本发明的DR训练算法30的一个重要的优点是,它能够用于规则提取,因为它至少表现出以下的特性:
a)当把一LTG增加到NN中时,在那一层中的新LTG与其他LTGs之间确定建议的逻辑规则;
b)通过增加关于权空间中体积的约束,使各个权变得合适,这种增加缩小了使LTG激活的区域。这是因为LTG采用这样的约束,即,它们是划定该LTG权空间中激活区域的平面。这使得权空间能受到象征性的定义;以及
c)优选的约束定义该LTG内各权与阈值之间的关系,它们对训练过程中NN所学习的规则进行编码。
由于在输入向量与划定使LTG激活的权空间中体积的超平面(hyper-planes)之间存在映射,所以,找到提供最多信息的那些精确的输入向量是可能的。现在给出对DR训练算法30找到那些输入向量的能力的讨论,那些输入向量提供激活LTGs的权空间上的分界线。
采用传统方法训练前馈NNs的目的是,找到表示最好的可能平均值的NN中每一个权的单个数值,这个最好的可能平均值满足NN已经学习的数据集的训练条件。由于一NN中每一个LTG的所有权(和阈值)都表示为单个(有希望)的平均数值,所以,在学习过程中丢失了该数据集中的很多信息。某些所关心但却在训练过程中丢失的信息是使LTG激活的那个区域的所有表面信息。由于大多数LTGs具有两个以上的输入,所以该区域在LTG的权空间中定义为一个(超)体积。因此,使LTG激活的那个区域称为“激活体积”。根据该表面信息:(a)输入给LTG并由此输入给NN的各输入之间的关系可以得到确定;以及(b)每一个权可以设定的值的范围可以推导出,该范围允许NN在需要时工作。
对用传统方法训练的NNs进行一个灵敏度分析,这是一种尝试找回该丢失的表面信息的方式。
尽管灵敏度分析无法确定各权与输入给神经元的各个输入之间的关系,不过它可以用来确定系统的每一个组成部分能够取的值的范围,这个范围能够使系统在需要时运行。这种情况下,各组成部分是NN中每一个神经元的权。每一个权都有一个使NN象它受到训练那样能运行的值的范围。该范围可以称为‘最优范围’。
用来对用传统的训练方法训练的NNs进行灵敏度分析的通常方法是,对NNs响应进行统计学分析。进行统计学分析以学习神经元的一般特性而不是实绩特性,因为还没有确定神经元权空间中每一个权的范围的分析方法。而且,当通过传统的方法训练神经元时,灵敏度分析只能允许有在一次学习时间修正一个以上权的作用。因此,不可能确定各个权的单个数值表达所要求神经元学习的各个关系的平均值有多好。
但是,灵敏度分析能够做到的最好的地方是,获得神经元中各权范围的统计估量。灵敏度分析根部不可能确定激活体积的表面。这是因为,一次检验一个权,而希望的是,当执行灵敏度分析时,每一个其他的权都稍微靠近权平均值。
采用本发明的DR训练算法30,可以找回表面信息,这使系统能够:(a)确定各权之间的关系并由此输入到LTG中;以及(b)找到比每一个LTG的各权的统计学范围更多的东西。不仅可以确定各权的准确范围,还可以确定使LTG激活的激活体积的表面。
由于DR训练算法30优选将LTGs训练称为一个约束集,所以在训练过程中不丢失关于训练集的信息,并且可以分析这些约束集以找到各权的范围。
根据本发明的另一方面,现在将参照图15的流程图,讨论一优选方法150,该方法150使每一个LTG的激活体积的表面能够得到确定。
激活体积:前面已经表示了如何训练一NN学习一数据集,其中通过将输入向量应用到该NN上来训练LTGs。利用形成一(超)平面的公式xi·w将输入向量转换为约束,该(超)平面将权空间截成两部分。由于xi·w与阈值T一起形成约束,所以用该约束定义一(超)体积,从而:
a)如果LTG已经学习了xi·w≥T,那么这意味着,根据LTG已经学过的其他约束,该区域或者该区域的子集将使LTG受到激活。补数约束xi·w<T定义一个完全无法激活LTG的区域;以及
b)如果LTG已经学习了xi·w<T,那么该区域将无法使LTG受到激活。但是,满足补数约束xi·w≥T的各个点可能使LTG激活。
因此,(超)平面xi·w形成那个可以使LTG激活的区域的一个表面。如果已经学习了许多输入向量,那么在可以使LTG激活的权空间中定义一个体积,该体积可以称为激活体积。为了在计算上实现它,用它能够学习的每一个LTG存储每一个输入向量的约束。这可能导致约束冗余,因为只有那些形成激活LTG的权空间中最小体积表面的约束是所关心的。为了找到权空间中最小激活体积(下文称“MAV”)的表面,可以分析这些约束。该激活体积的表面包含该约束集中其他约束提供的所有信息。
假定LTG已经接受了训练,MAV是它迄今已经学过的约束所约束的最小体积。可能这并不是最小的可能体积,因为可能存在训练过程中不可用的其他向量,这些向量会进一步缩小激活体积。
那些不在MAV中的、训练过程中所学习的其他约束形成略似关于MAV轮廓线一样的东西。
一旦已经找到MAV的表面,就可以通过检验MAV来确定每一个权的范围以及各权之间的关系。
总之,分析训练过程中学习的约束,以找到MAV。如果进行传统灵敏度分析,MAV可以用来确定每一个LTG的权的范围和各权之间的关系。
用来训练前馈NNs中LTGs的传统训练方法依赖于找到每一个输入连接权的单个数值。由于每一个LTG有n个输入,所以可以将输入连接权视为一个向量。这些权的单个数值并不唯一地对训练条件给出解,因为有一个满足训练条件的数值范围。
确定各个权的单个数值的训练过程试图找到一个平均数值,该数值表示各权之间的一些关系,这些关系表示训练过程中NN所要学习的数据中嵌入的规则。
但是,是激活体积的分界线来定义各权之间的关系,这些关系又定义输入向量中的哪些特征对数据集的归类更重要。这就是为什么在可以进行规则提取的情况下需要能够确定LTG激活体积的分界线的原因。当采用传统的训练方法时,在训练算法集中于找到给出训练条件的解的平均值的时候,丢失了关于输入向量的哪些维度对于数据集归类来说至关重要的信息。已经采用统计学的方法和概率来解释NNs的特性。但是,统计学和概率这二者都解释用随机数据集训练的受训NNs的平均特性,而不能解释关于已经学过一具体数据集的NNs的具体信息。从NNs中提取规则的要求是,确定使一具体数据集能够受到归类的具体规则。由于无法确定用数字训练的神经元的激活体积的分界线,所以不可能确定权值在训练过程中找到的数值有多么接近训练集内固有关系的平均特性。
由于可以确定每一个受训LTG的精确激活量,所以,找到MAV,就从该体积中去除冗余表面,留下定义LTG已经学过的东西的最小的可能体积。据此,可以确定LTG以及NN在训练过程中已经学习的规则,因此,这证明找到MAV是有道理的。
确定最小激活体积(MAV)
在一NN的训练过程中,学习许多约束。激活体积的形状取决于LTG正在学习的数据集。它可能在更多维度中的一个维度中没有边界。
图16a表示出激活体积以及训练过程中学习的其他约束的概括图。与阈值一起形成的这些约束必须与激活体积相交;否则LTG无法学习约束。
在图16a中,表面(a),(b),(c),(d)和(e)是各种输入向量xi和w形成的(超)平面。MAV 160由图16a中的(a),(b)和(c)定义的表面限定边界。表面(d)和(e)并不与MAV 160相交,因此它们不形成最小体积的表面。但是,它们形成的体积与MAV 160相交。如可以在图16b中所看到的那样,表面(d)形成的体积162与MAV 160相交,表面(d)是浅灰色阴影区域,MAV 160是深灰色区域。
在图16c中,可以看到,表面(d)形成的补数区域164不予(深灰色)MAV区域160相交,因此无法学习它。
当分析LTG已经学习的约束时,如在图16c中看到的那样,在有约束(a)的时候,无法学习不形成最小体积即图16d中的(d)的这些约束的补数。如果去除(a),那么可以学习(d)的补数,见图16d,因为在形成MAV 160的约束和(d)的补数之间存在交集166。在图16d中,表面(a)保留在图中以表示出它的原始位置。
但是,当有(d)和(e)时,LTG可以学习约束(a)的补数,见图16e。换句话说,在(a)的补数,形成MAV 160的其他约束,以及LTG已经学习的其他约束之间有一个交集168。
法则:如果当从一个约束集中去除一个约束时,可以学习其补数,那么,该约束形成激活体积的一个表面。
证明:当一个约束形成关于激活体积的一个表面时,就意味着它与形成激活体积表面的任何其他约束之间没有约束xi·w与阈值T之间的关系的约束。因此,当去除形成激活体积表面的约束时,LTG可以学习约束的补数。
这将通过一个实例得到说明。如果在训练过程中一LTG已经学习了以下约束集:{w1+w2<T,w2≥T};那么,可知平面w2=T形成MAV的一个表面,因为如果从该约束集中去除约束w2≥T,那么LTG将能够学习其补数w2<T。
但是,如果在训练过程中一LTG已经学习了以下约束集:{w1+w2≥T,w2≥T,0<T,w1≥T};那么,可知平面w1+w2=T不在MAV的该表面上,因为如果从该约束集中去除约束w1+w2≥T,那么LTG不能学习其补数w1+w2<T。
现在参照图15描述找到MAV的方法150的一个优选实施例。
对于如方框151所表示的那样的该LTG的约束集中每一个约束来说,至少进行以下操作:在方框152,每一次从该约束集中去除一个约束,同时令该约束集中剩下的约束保持不变;所去除的约束令其补数增加到该约束集中,然后在方框153测试它,看是否有一个解;如果有解,那么在方框154,把原始从该约束集中去除的约束增加到定义MAV的约束集中;把该原始约束的补数从该约束集中去除而该原始约束回到它;如果没有解,那么如果在方框156确定该约束集中有更多的约束,就在方框155对下一个约束继续进行方法150;并且,对训练过程中LTG所学习的约束集中的每一个约束重复该方法150(返回方框152)。如果在方框156确定没有了更多的约束,该方法150结束于方框157。
假定该LTG已经接受了训练,增加到用于激活的最小约束集中的约束就定义MAV。这些约束现在可以用来分析该体积,从而找到该LTG内各个权之间的关系,并且对该LTG进行灵敏度分析,其中可以在必要时精确地找到这些权什么时候将移出该范围。
应当意识到的是,找到MAV的方法150并不仅受NNs的限制。这种找到MAV的方法150被认为对其他一些领域也是有用的,这些领域采用约束系统,例如用于最优化和运筹学类型问题的CSPs。因此,本发明的这个方面是独立的,并不限于一本发明的DR训练算法30的方式使用。
如何确定MAV的实例
假定用以下约束训练一LTG:{0<T,w1+w2<T,w1<T,w2<T,w3<T,w1+w3<T,w2+w3<T,w1+w2+w3≥T}。已知对于以上约束来说有一个解。方法150开始于方框151。
首先,在方框152,去除0<T,增加0≥T,从而所考虑的约束集变成:{0≥T,w1+w2<T,w1<T,w2<T,w3<T,w1+w3<T,w2+w3<T,w1+w2+w3≥T}。
在方框153,可以用Sicstus序言例程(prolog routines)或者其他合适的例程来测试这些约束。如果在方框153没有找到这些约束的解,那么可知0<T不是形成关于MAV的表面的约束之一。在方框155,可以对剩下的约束集去除该约束,因为剩余的约束包含所有的信息,换句话说,该约束没有提供关于LTG曾经学习的东西的新信息。
然后,在方框156做检查之后,在方框152测试下一个约束w1+w2<T。去除该约束,并且将其补数增加到该约束集中:{w1+w2≥T,w1≥T,w2<T,w3<T,w1+w3<T,w2+w3<T,w1+w2+w3≥T}。这种情况下,在方框153找到一个解,因此可以说,该原始约束对于LTG曾经学过的东西来说很重要,必须保留(方框154)在该约束集中。
在方框152要测试的下一个约束是w1<T。去除该约束,并且将其补数增加到该约束集中:{w1+w2<T,w1≥T,w2<T,w3<T,w1+w3<T,w2+w3<T,w1+w2+w3≥T}。当在方框153测试这些约束时,发现没有解。因此,可以在方框155去除约束w1<T。
在方框152要测试的下一个约束是w2<T。去除该约束,并且将其补数增加到该约束集中:{w1+w2<T,w2≥T,w3<T,w1+w3<T,w2+w3<T,w1+w2+w3≥T}。当在方框153测试这些约束时,发现没有解。因此,可以在方框155去除约束w2<T。
在方框152要测试的下一个约束是w3<T。去除该约束,并且将其补数增加到该约束集中:{w1+w2<T,w3≥T,w1+w3<T,w2+w3<T,w1+w2+w3≥T}。当在方框153测试这些约束时,发现没有解。因此,可以在方框155去除约束w3<T。
在方框152要测试的下一个约束是w1+w3<T。去除该约束,并且将其补数增加到该约束集中:{w1+w2<T,w1+w3≥T,w2+w3<T,w1+w2+w3≥T}。这种情况下,在方框153测试时找到一个解,因此该原始约束对于LTG曾经学过的东西来说很重要,必须如方框154所表示的那样,保留在该约束集中。
在方框152要测试的下一个约束是w2+w3<T。去除该约束,并且将其补数增加到该约束集中:{w1+w2<T,w1+w3<T,w2+w3≥T,w1+w2+w3≥T}。这种情况下,在方框153找到一个解,因此该原始约束对于LTG曾经学过的东西来说很重要,必须保留在该约束集中(方框154)。
在方框152要测试的下一个约束是w1+w2+w3≥T。去除该约束,并且将其补数增加到该约束集中:{w1+w2<T,w1+w3<T,w2+w3<T,w1+w2+w3<T}。这种情况下,在方框153找到一个解,因此该原始约束对于LTG曾经学过的东西来说很重要,必须再次如方框154所表示的那样,保留在该约束集中。
因此,通过方法150确定的最小约束集就是:{w1+w2<T,w1+w3<T,w2+w3<T,w1+w2+w3≥T}。
测试约束的顺序:用本发明确定MAV的方法150在约束集中测试约束的顺序并不重要。可以从待测试的约束集中的任何地方选出约束。而且,是否选择形成MAV的约束首先进行测试也并不相关。因此,本发明并不限于所给出的具体实例。
包含在MAV内的信息:MAV包含关于所学约束的所有信息。可以去除不形成MAV表面的约束,因为关于LTG已经学习的东西的所有信息都包含在MAV的表面内。不必恢复这些约束,不过下面将论证出可以这样做。
实例:假定最小激活体积为:{w1+w2<T,w1+w3<T,w2+w3<T,w1+w2+w3≥T};所去除的约束集为:{0<T,w1<T,w2<T,w3<T}。
可以论证出的是,可以通过将约束及其补数增加到LTG中来恢复所去除的约束。这表示要论证出的是,当对于一个LTG来说找到MAV时,没有信息丢失,由此对训练过程中学习的数据进行无损压缩(lossless compression)。
如果该约束以前已经与其他去除的约束受到过测试,那么仍然能够学习该约束的补数。
用MAV测试0<T:将0<T增加到MAV中有一个解。但是,将0≥T增加到MAV中没有解。因此,在把向量0<T从该约束集中去除之前,该LTG仍然继续象原始受训那样动作。
用MAV测试w1<T:将w1<T增加到MAV中有一个解。但是,将w1≥T增加到MAV中没有解。因此,在把向量w1<T从该约束集中去除之前,该LTG仍然继续象原始受训那样动作。
用MAV测试w2<T:将w2<T增加到MAV中有一个解。但是,将w2≥T增加到MAV中没有解。因此,在把向量w2<T从该约束集中去除之前,该LTG仍然继续象原始受训那样动作。
用MAV测试w3<T:将w3<T增加到MAV中有一个解。但是,将w3≥T增加到MAV中没有解。因此,在把向量w3<T从该约束集中去除之前,该LTG仍然继续象原始受训那样动作。
换句话说,原始约束集:{0<T,w1<T,w2<T,w3<T,w1+w2<T,w1+w3<T,w2+w3<T,w1+w2+w3≥T};和最小约束集:{w1+w2<T,w1+w3<T,w2+w3<T,w1+w2+w3≥T}根据LTG的特性是等同的。
找到MAV有许多好处。这些好处中的一些好处是:(a)潜在地减少了学习过程中和确定LTGs输出时需要受到测试的约束数量;(b)必要时允许对受训的LTG进行灵敏度分析;和(c)使各权之间的关系能够得到确定。
在去除了所有冗余输入向量之后,可以将函数最简化技术例如Quine-McCluskey和迭代合意用于那些用独立输入构建的输入向量,这就是找到MAV时所做的事情。
DR训练算法的实绩评价
现在描述在本发明的DR训练算法30上运行的试验结果。这些试验评价本发明DR训练算法30的实绩。
本发明DR训练算法30的一个主要目的是,找到使NN能够产生输入向量的相关输出的数据集内的规则。
因此,所进行的试验的目的是,论证DR算法30是这样一种算法,即,它将学习各种数据类型,并且使规则能够从所训练的NN中提取出来。
在这些试验中所遵循的标准程序是:(a)有某种数据准备;(b)用该数据训练NN;(c)测试该NN,以确定它是否能够产生与训练它所采用的那些输入向量有关的输出,以及随后是否能够正确地产生训练过程中未见那些输入向量的输出;(d)根据来自测试集的正确输入向量的百分比,在用反向传播和本发明的DR训练算法30训练的NNs之间做比较。在训练NNs之前,为测试而留出该测试集。然后,将该百分比与其他学习算法的有用结果进行比较;以及(e)记录暴露给需要用来训练NN的训练输入向量的暴露量。
除了量化DR对一个数据集的学习时间之外,提出的另一个问题是,确定训练过程中NN所学习的规则。通过利用根据本发明的其他方面在前面描述过的那些优选方法来对受训NN进行灵敏度分析,提取这些规则。这给出了关于训练NN所采用的数据集的信息。现在将讨论用来评价本发明DR训练算法30实绩的数据集类型。
测试域:前馈NNs既可以用来对数据归类,又可以用来进行函数逼近。这两个性质是同一特性的两个方面,因为,对将输入空间中的数据进行归类的分界线建模,等同于函数逼近。尽管有许多可能得益于使用前馈NNs的潜在应用,不过那些就使用前馈NNs的应用正在利用它们的函数逼近或者数据归类性质。
为了评价DR训练算法30的特性,采用数据集来进行:(a)函数逼近;和(b)数据归类。
所选择用来评价DR训练算法30进行函数逼近的能力的数据集是双螺旋问题,而用于归类的则是德国信贷问题。这两种数据集都是用于测试前馈NNs的标准问题。
经常用于函数逼近的一种数据集是双螺旋问题。这种数据集(见图17)被认为极其难以解决,因为这种数据集包括两个螺旋,它们有一个公共的起始点,但彼此偏离180度。因此,它是不容易线性可分离的。一个神经元通常采用线性可分离性来分出类,对于复杂的数据集来说,有许多神经元要分出类。当采用笛卡尔坐标来描述双螺旋问题中的那些螺旋时,数据集是不容易线性可分离的。
德国信贷问题具有一个德国信贷机构的1000个债务人的记录。这些记录包含许多的信贷人特征,例如他们的年龄,他们的居住状况,他们的信贷历史,他们是否被雇佣,贷款用于什么,等等,而对这些记录的归类表明该债务人是否是一个良好的信贷风险。所训练的NN的目的是,预测那些寻求贷款的客户是否应当被批准。该机构还表现出在要发生误差(error)时对误差的优先选择。他们会宁愿错误地将某人识别为一个坏的信贷风险,也不错误地将某人识别为一个良好的信贷风险。
这些数据集的正式定义如下:
数据集1:双螺旋问题——MITRE公司的Alexis Wieland首先提出这种数据集。它定义为具有双扭结螺旋(entwined spirals)的194个输入向量,这些数据点中的一半产生输出-1,另一半产生输出1。每一个螺旋具有三节(periods),180度分开每个螺旋。输入向量有2维度,它们代表每一个数据点位置的浮点笛卡尔坐标。
数据集2:德国信贷问题——这种数据集由Universitat Hamburg的HansHofmann教授提出。它有1000个申请信贷的客户实例。每一个实例就是24个正整数属性(attributes)的一个输入向量,这些属性例如是申请信贷的个人的年龄,他们的信贷历史以及其他的认为与申请信贷相关的属性。NN的输出将客户归类为良好的信贷风险或者坏的信贷风险。
选择数据集的判据用来论证DR学习是(a)象反向传播那样好,换句话说,它能够学习反向传播能够学习的数据集;和(b)在令规则从受训NN中提取方面比反向传播要好。
选择德国信贷问题数据集,因为它非常适于反向传播学习,而选择双螺旋问题是因为它被认为对于反向传播来说难以解决。
数据准备:首先,根据本发明的另一个方面,讨论用来将数据准备(方框31)为一种格式的优选方法,这种格式将用于在在这些试验中用DR训练算法30训练NNs。准备数据的一个目的是,使输入给NN的输入数目最小,同时仍能准确地对数据进行编码。使输入给NN的输入数目最小的动作,转化为更快的训练时间,假定NN每一次学习一个输入向量,那么必须测试约束以确定NN是否能够学习它。应意识到的是,象将要讨论的那样的数据转化方法并不限于以本发明的DR训练算法30的方式使用。这些数据转化方法可以用于其他的已知训练算法,并被同样考虑为本发明的独立方面。
二进制数据:如前面讨论过的那样,优选以形式为{0,1}n的二进制输入向量训练本发明的DR训练算法30,其中n是输入给NN的输入数目,它产生二进制输出。将输入向量转换为基于所需要的输出的二进制值而产生期望输出的约束。如果该数据是二进制的,那么不必修正将要学习的数据。但是,数据经常不是二进制格式,因此优选在用本发明的算法30学习数据之前,将数据转换为二进制格式。
整数:输入向量中的每一个维度都代表输入的某个属性。如果这些属性之一是一个整数,那么优选将该整数转换为DR训练算法将要学习的二进制数。现在讨论本发明的DR训练算法30如何能够学习整数。
最初,需要确定所需用来以二进制方式标识该属性的位数。为此,把该属性能够取的整数值范围计算为:范围=(最大-最小)+1。然后确定所需的位数以用二进制的形式对该范围进行编码。
这是一个用来确定对该属性进行编码所需位数的简单方法,它不考虑是否(a)该属性具有负整数。如果有负整数,那么可以用两个中任意一个的补数来表示这些数目。但是,必须将一个附加位用于所用来代表该属性正值的位数。作为选择,也可以调整该范围以便不用负整数;和(b)该属性可以离开该范围。因此,可能有一个具有个体年龄的属性。在输入向量的人口分布(polulation)中,可能只有从18到84的年龄。但是,可能需要将受训NN暴露给85的年龄属性。这种情况下,可能可以根据小范围例如40到59岁,60岁以上来对该数据进行编码。
在德国信贷数据集中,没有负整数需要考虑。但是,客户的年龄属性范围从18到75。为了对那一范围内的精确年龄进行编码,需要6位。不过,可能那个年龄范围可以对针对客户的年龄进行的编码更有用,客户的年龄例如是18到25,25到40,40到60和60<,它们也会允许仅用2位来对该区段(field)进行编码。这可以做到从而使输入给LTG的输入数目最小,而且仍然在该数据区段内保持最多的信息。例如,如果试图确定是否某人将能够偿还银行贷款,那么一个特定年龄如37的人不太可能将比那些38的人更可能偿还贷款。但是,假定超过60的人比那些40的人较少可能正在工作,那么年龄范围可能起到很大作用。
需要为每一个属性分开来考虑所需用来对属性的值进行编码的位数。一旦建立了所需用来对一属性能够取的整数值范围进行编码的位数,那么就可以考虑将每一位的位置作为输入给NN的一个分开的输入。因此,单个属性可能变成输入给NN的几个输入。
该过程既用于输入,也用于输出。
浮点数据:由于训练NN所采用的大多数数据是浮点数据,所以,能够训练NN学习这种数据就很有用。因此,有用而且优选的是,能够将浮点数据转换为二进制数据。
如同是整数的那些属性一样,必须分派许多位从而以二进制表示浮点数。此外,关于属性是否能够取其范围之外的值和属性是否可以取负值,考虑属性能够取的值的范围。但是,还必须考虑需要多大的精度来表示属性的数据点,以及在表示属性时可接受的误差度。
该过程既用于输入,也用于输出。
现给出本发明的DR训练算法30能够如何学习浮点数据的优选实施例。
对于双螺旋问题来说,所要学习的数据集位于形式为(x,y)的笛卡尔坐标系中,其中x,y∈R,NN的输出表示数据点属于哪一个螺旋。
两类数据取自阿基米德螺旋的极坐标公式r=θ和r=-θ。关于每一个螺旋,有97个数据点,每一个螺旋有三节,这使这些点大约分开7.4度。然后,按照问题具体要求的需要,将这些点转换为笛卡尔坐标。
为了确保在这些数据点中有足够的精度,优选将这些数据点四舍五入到两个小数位。然后,将这些数据点乘以100,随后将其转换为二进制。该数目的两个补数用于负浮点数。为了能够对输入向量进行编码,对每一个属性使用12个二进制数字,它们是数据点的笛卡尔坐标(x,y)。不是具有两个输入给NN的输入,而是有24位。将坐标限制到12个二进制位置,是确保可以以足够的精度接近输入空间。
考虑来自螺旋的一个实例数据点,极坐标中的r=-θ是(-∏/2,∏/2)。将该点转换为笛卡尔坐标,该点变成(0,-1.5708)。将这些值乘以100并四舍五入到最近的整数,它们变成(0,-157)。然后,最终将这些值转换为12个数字二进制数(000000000000,111101100011)。应用到NN上的输入向量变成000000000000111101100011。
因为已经论及了二进制数据和浮点数据,下面将讨论符号数据(symbolicdata)。
符号数据:符号数据是用于计算目的的非数字数据,既不是二进制数据,也不是浮点数据。它可以指数据具有的某些不可量化的属性。现给出本发明的DR训练算法如何能够学习符号数据的优选实施例。
对于诸如性别之类的属性来说,该属性具有两个可能的值,因此可以分派单个二进制输入来对数据进行编码,例如,女性为1而男性为0。也可以赋予其他符号属性二进制值。一个关于颜色的符号属性的稍微更复杂的实例可能具有三个值:绿,蓝和黄。可以分派两位来对该属性的值进行编码。例如,可以分派两位来对该区段进行编码,可以任意分派二进制值,01——绿,10——蓝,11-黄。应当理解的是,这只是许多可能的编码技术中的一种,因为还有能够替代使用的许多其他可能的组合,例如01——蓝,00——绿,10-黄,等等。还可以替代使用其他的编码策略,例如用三位而不是两位。或者,根据这种情况下该属性中颜色正在受到多少个值的测试,位数可以是不同的。
关于何时选择数据编码策略的那些主要考虑取决于被归类的数据和数据所要求的归类方式。
例如,如果一NN所要学习的一个数据属性是信贷历史,其值是不足,一般,良好和优秀,受训NN要把那些是良好信贷风险的客户与那些不是良好信贷风险的客户分开。可以假定,在具有良好信贷历史的客户与他们再次偿还贷款的潜在能力之间有一个关联。
由于有四个可以分派给该属性的符号值,所以只需有两位来对所有四个值进行编码。必须选择注意分派关于要求数据有什么输出的值。例如,如果将不足编码为01,一般为10,良好为11而优秀为00,那么如果要将‘良好’和‘优秀’与‘不足’和‘一般’的其他值分开,则数据在输入空间中形成XOR,并由此不是线性可分离的。尽管本发明的DR训练算法30能够学习这个,但是由于它等同于XOR,所以需要附加的LTGs来学习该数据。这可以称为对一‘符号冲突(symbolic conflict)’进行编码。通过不同地进行编码,从而使这些值在输入空间中是线性可分离的,就可以避免符号冲突。例如,将‘良好’编码为11而‘优秀’为10,‘不足’为00而‘一般’为01,这就避免了这个问题。这种方式‘良好’/‘优秀’与‘不足’/‘一般’是线性可分离的。对数据进行编码的最好方法取决于受到编码的数据,由此必须单独考虑每一个属性。
但是,这是简化的情况,因为已知有除了信贷历史之外的额外属性关系,它们也影响对任一客户是否是良好的信贷风险的预测。
尽管可能在输出与属性值之间没有明显的连接,但是可能并不总是能够避免符号冲突。本发明的DR训练算法20能够学习符号冲突,因为它能够在需要时将LTGs增加到NN中。
因为已经考虑本发明的DR训练算法30要学习准备非二进制数据的方法,所以现在对试验过程进行检验。
试验过程:对上述域中的每一个都进行同样的试验。用数据集训练NNs,记录暴露给数据集的暴露量。根据训练后NN能够概括未见数据有多好,评价NN的实绩,将其结果与用同样的已经公开的数据所训练的NNs的结果做比较。
一旦完成训练,就测试NN以确保NN能够再现该训练集的正确输出,并且能够对一测试集的某个部分进行归类。
以上概述过关于各个NNs测试的数据集。利用与以上定义的那些方法相同或者类似的优选方法,将这些数据集转换为二进制。
试验结果
现在检验两个数据集的测试结果。有两组所关心的结果,它们来自于训练和测试阶段。在训练阶段,所关心的是,需要多少训练关口(passes)来学习该数据集。在测试阶段,所关心的是,成功归类了多少未见输入向量。
双螺旋问题
已知算法的公开结果:Weiland以150,000-200,000历元(epochs)用一种修正版反向传播训练一NN。而用标准反向传播永远找不到一个解。但是,Lang和Witbrock用2-5-5-5-1架构训练一NN,该架构为2个输入,每一个都有5个隐藏单元的3个隐层和1个输出单元,它以20,000历元用标准反向传播学习数据集。但是,它们的NN利用“快捷”连接令每一个隐层单元直接从所有前面各层中的每一个单元接收输入。
本发明DR训练算法的试验结果:图17中示出了训练NN所采用的数据集170.每一个螺旋具有97个数据点。所得到的训练过的NN具有24个输入,5个隐藏LTGs和1个输出LTG。在所有的情况下,用“与”AND将这些LTGs连接在一起。该NN在单独一个历元中学习。
讨论:图18中示出了所产生的NN 180的示意图。NN 180以单遍方式利用本发明的DR训练算法30训练,未知输入向量的缺省默认要输出1。DR学习所得到的NN 180相对于需要反向传播的NN来说有一个标准的简单架构。在所有的情况下,通过输出层184中的LTG T21,用“与”AND将隐层182中的这些LTGs(LTG11,LTG12,LTG13,LTG14,和LTG15)连接在一起,如可以在图18中看到的那样。训练NN 180所采用的数据集170(图17)具有两个螺旋,每个螺旋有3节。每个螺旋有97个数据点。NN 180能够100%正确地找回训练向量。
用每一个螺旋的80个输入向量测试NN 180,没有数据点来自该训练集。对于那些要输出1的来自该螺旋的输入向量来说,21/80个输入向量受到不正确的归类。这产生26%的误差率。
在那些受到训练要输出0的来自该螺旋的80个输入向量中,35/80个输入向量受到不正确的归类。这产生43%的误差率。该结果很高的原因是,因为对于其中输入向量的输出未知的LTGs来说,缺省默认输出为1。
两个螺旋的平均误差率为34.5%。难以找到双螺旋问题的可比较误差率,因为当NN 180能98%地预测训练集的正确输出时,就认为它受到了训练。还难以找到级联相关架构(Cascade-Correlation Architecture)(“CAS”)的误差率,因为可能是1>.5,和0<.5。Teng等人认为,当它>.8时神经元能够激活,否则不能激活。Fu等人,Teng等人和Fahlman等人更关心的东西是,隐层中的单元数目以及训练NN所需要的历元数目或者时间。在所有情况下,本发明的DR训练算法30需要最少的隐藏单元数目来以100%的精确度学习数据集,而且只需要1个历元。该DR训练算法30需要5个隐藏神经元,CAS需要平均12个隐藏神经元和1700个历元;2082±478个历元的21.1±2.3个为1个或者更多神经元的小NNs;以及10个隐藏单元,并且在最小1073.45CPUs中学习。本发明的DR训练算法30学习最后一个输入向量的时间是15分钟,因此它学习双螺旋问题的任何其他输入向量的最长时间是54秒。这是由于使用了约束满足库(libraries),全部只有隐层182中的5个LTGs学习最后一个输入向量。测试一个输入向量的平均时间大约为30秒。学习该数据集的时间大大短于用反向传播的时间,因为用反向传播训练的NNs需要一个固定大小的NN。
对数据集内部来说,该误差率更小。在每一个螺旋的第一个1.5节内,误差率分别为23%和33%。误差方面的增大归因于数据集内部中数量数据点更高的密度。
但是,在预测具有r=θ的螺旋方面更成功。在图19中,表示出测试数据集的结果。
‘o’曲线上的‘+’是得到正确识别的输入向量,‘o’曲线上的‘x’表示也受到正确识别的输入向量。其他的都得到不正确的识别。这里,可以看到输入空间的哪些部分需要给予额外的训练以改善NN的180进行泛化的能力。注意到的是,这是在传统上训练前馈NNs所采用的一个非常难的数据集。
对于所有的输入向量来说,存在对NN 180的隐层182中一个或者更多LTGs不完全学习的情况,除了对最后一个输入向量的学习以外。最经常的是在LTG15中的不完全学习。
所产生的NN 180比采用反向传播时产生的NN复杂性低。另外,它是一个很难的数据集。相信通过用增多数目的输入向量来训练能够改善这些结果。
因此,考虑到其进行泛化的能力,本发明的DR训练算法30能够象训练前馈NN的其他方法那样运行良好。DR训练算法是训练类似结构的一种不同的训练方法。
现在检验NN 180中每一个LTG的MAV以确定每一个LTG学过的东两。
确定双螺旋问题中LTGs的MAV:对于(具有阈值T11的)LTG11来说,用图15的方法150找到MAV将约束的数目从194减少到29。这是85.1%的缩减量或者压缩量。如前面所讨论过的那样,可以从剩下的形成LTG的MAV的这些点中恢复该LTG所学习的所有其他输入向量。该权空间有24个维度。
在这些约束中,13个输入向量形成xi·w11≥T11,而其他16的约束形成xi·w11<T11。
通过检验形成使LTG激活的权空间中那个区域表明的平面,可以绘制出LTGs已经学习的东西。这些平面表示为xi·w11。该权空间是输入空间的变换(transformation)。为了能够确定LTG已经学习的东西,将MAV中的约束转换回以前形成它们的输入向量。然后,可以将如何形成原始输入向量的过程倒转过来,从十进制向二进制转换。前面给出了如何进行这一过程的讨论,其中讨论了如何准备浮点数。现在说明隐层182中的每一个LTG利用本发明的方法已经学习的东西。
在图20a中,可以看到隐层182中第一LTG——LTG11已经学过的东西。‘o’和‘o’表示原始输入向量。‘o’代表r=θ螺旋,而‘o’代表r=-θ。‘+’表示在找到LTG11的MAV之后剩下的输入向量,并且代表对针对该数据集进行归类来说很重要的输入向量。‘x’表示用xi·w11<T11学习的约束。‘+’表示用xi·w11≥T11学习的约束。对随后的LTGs也遵循该约定(convention)。这就是该LTG11已经精确学习的东西。还值得注意的是,通过对作为权空间而不是输入空间中定义的体积表面的数据进行编码,学习该数据集。
按照惯例,分析输入空间以将受到学习的各类分开。不可能考虑权空间,因为它是一个24维度空间。这对隐层182中的剩余LTGs来说也是同样的。但是,该LTG——LTG11无法学习整个数据集。。现在考虑LTG12学过的东西。
对于LTG12来说,找到MAV将约束的数目从194减少到34。这是82.5%的缩减量或者压缩量。所有约束产生形成xi·w12≥T12的约束,除了形成xi·w12<T12的16。在图20b中,可以看到隐层182中第二LTG——LTG12已经学过的东西。
利用与图20a中相同的约定,可以发现LTG12已经学习了不同的输入向量。关于‘o’螺旋r=θ,可以发现所有学过的输入向量都是那类,即xi·w12≥T12。但是,有许多关于o’螺旋r=-θ的输入向量,它们也在这类中。这是因为该LTG——LTG12不能学习该数据集中的每样东西。而且,隐层182输出中的LTGs用“与”AND由输出LTG——LTG21连接在一起。这意味着,如果该LTG——LTG12对那些输入向量产生错误的结果1而不是0,那么这一层中只有1个其他的LTG能够学习那些输入向量并产生0。现在考虑LTG13已经学过的东西。
对于LTG13来说,找到MAV将约束的数目从194减少到51。这是73.7%约束的缩减量。所有约束产生形成xi·w13≥T13的约束,除了形成xi·w13<T13的10。在图20c中,可以看到隐层182中第三LTG——LTG13已经学过的东西。
对于LTG14来说,找到MAV将约束的数目从194减少到81。这是58%的缩减量或者压缩量。所有约束产生形成xi·w14≥T14的约束,除了形成xi·w14<T14的6个约束。在图20d中,可以看到隐层182中第四LTG——LTG14已经学过的东西。
现在考虑LTG15已经学过的东西。对于LTG15来说,找到MAV将约束的数目从194减少到159。这是18%的缩减量或者压缩量。该LTG所学习的所有约束产生形成xi·w15≥T15的约束,除了1个输入向量。在图20e中,可以看到隐层182中LTGs中的最后一个——LTG15已经学过的东西。
该LTG——LTG15的主要目的是,学习‘x’所表示的输入向量。在r=θ螺旋中还有‘o’表示的许多点。
对于隐层182中的LTGs来说,可以发现,它们已经学过了两个螺旋的各个曲线的不同部分。记住NN 180能够以100%的准确度再现其被教授的内容这样一件事很重要。
还为LTG21或者NN 180的输出LTG找到MAV。由于它在所有它的连接之间形成“与”AND,所以有32个约束。这在MAV中减小到6个约束。这是81%的缩减量或者压缩量。
无法将函数最简化应用于所找到的输入向量以定义MAV,这是因为该数据是有依赖的,换句话说,输入向量定义单个值,由此函数最简化会给出没有意义的信息。
德国信贷问题
该数据集有一个与其相关的成本矩阵(cost matrix)。该成本矩阵列于表3中。各列给出预测的类,而各行给出真实的类。如果预测一个客户为良好并且该客户在偿还贷款方面是良好的,而且类似地,如果预测一个用户是一个坏的信贷风险并且被证明就是一个坏的信贷风险,那么就没有成本。但是,如果预测某人是一个坏的信贷风险其实他们实际上是良好的,这将花费贷款机构的利益。然而,更坏的是预测一个客户是一个良好的信贷风险其实该客户是一个坏的信贷风险时的情况。当计算NN的成本时,有两类误差需要得到考虑。
好 | 坏 | |
好 | 0 | 1 |
坏 | 5 | 0 |
表3——德国信贷问题数据集的成本矩阵
已知算法的公开结果:反向传播的误差率列于表4中。这些数字并不包括成本矩阵,因为反向传播并不按照成本矩阵的要求区分各类误差。
训练误差 | 测试误差 | |
反向传播 | 0.446 | 0.772 |
表4——反向传播的误差率
利用反向传播用该数据集训练和测试NN所需的时间列于表5中。
训练时间(秒) | 测试时间(秒) | |
反向传播 | 5950.0 | 3.0 |
表5——反向传播的训练时间
本发明DR训练算法的试验结果:用该数据集进行训练,产生具有1个输出和2个隐层LTGs的NN。这些隐层LTGs通过一个“或”OR连接而连接在一起。该数据集中有1000个输入向量。从1000个向量的数据集中随机选择100个输入向量的测试集。图21中表示出训练后所产生的NN 190的示意图。
为测试目的而留出的100个输入向量中,在对一个输出产生0的89个输入向量中,有4个被不正确地识别。因此,正确地识别了85个输入向量。测试集中对一个输出产生1的11个输入向量中,有9个输入向量被正确地识别。因此,不正确地识别了2个输入向量。这些结果汇总在表6中。
不正确 | 正确 | 总和 | 百分比 | |
输出1 | 2 | 9 | 11 | 18% |
输出0 | 4 | 85 | 89 | 4.4% |
总和 | 6 | 94 | 100 | 6% |
表6——德国信贷问题的结果汇总
已经发现,产生1的输入向量的误差率稍微高至18%。产生0的输入向量的误差率为4.4%。总误差率为6%。相信额外的训练能够减小具有两种输出的输入向量的误差率。NN 190能够以100%的精确度再现其已经学过的东西。
所有误差结果都比反向传播的那些结果好,反向传播中训练误差为0.446,测试误差为0.772。其训练和测试结果在表4中给出。
该试验表示出本发明的DR训练算法30所表现出的超过已知训练算法例如反向传播的相当大的优点。对于反向传播来说,误差永远不可能减小到0,因为各权代表一个平均值,该平均值试图对它们正在尝试学习的数据集中固有的规则进行编码。当采用反向传播时,每一个感知器中的单个权值无法精确地表达每一个输入向量的所需权值,这些权值将使它能够学习从而为每一个输入向量产生准确的输出。这是在权空间内找到该区域的一个好处,因为它使得能够产生每一个输入向量的准确输出。
用总共268个输入向量训练NN 190,这些输入向量中的168个输入向量产生1,而其他100个输入向量产生0。从剩余的900个输入向量中随机选择这些输入向量,它们不用于测试。过去可能用更多的输入向量来进行训练。
用<1/3的可用于训练的数据集来训练NN 190,NN 190产生比反向传播的误差率更好的误差率。
这些试验的结果显示,如果要将本发明的DR训练算法30用于真实的数据集,那么优选更快的约束测试方法。
这些实验的结果还显示,学习每一个输入向量的时间量根据已经学过的输入向量数据增加。这可以在至少两种方式上得到改善,这两种方式是:(1)使用并行的处理器;或者(2)使用更有效的约束测试算法。相信具有大量存储器的最新处理器也能够改善该DR训练算法30的工作。
在为测试而保存的这一百个输入向量中,11个输入向量产生1的输出,其他89个输入向量产生0作为输出。在整个数据集中,有比例较小的产生1的输入向量。但是,由于在不知道输出应当是什么的时候有一个输出0的偏向,所以决定用那些比例较大数目的输出1的输入向量进行训练,从而NN 190学习如何成功地输出1。选择优先于1而输出0的偏向,是因为指定有5∶1的错误否定(false negative)比错误肯定(false positive)的优先选择。这是基于一个成本矩阵,该成本矩阵表示它优选5∶1的错误否定比错误肯定的归类误差。换句话说,会优选在实际上客户为良好的信贷风险时将客户归类为坏的信贷风险,优先于在客户实际上是坏的信贷风险是将客户识别为良好的信贷风险。
因此,当将该成本矩阵应用到表3中时,成本花费为14。不可能确定采用传统NN训练算法的成本花费,因为在测试NNs时,只收集了一个平均误差。
尽管由于测试约束的库函数(library functions)的原因,训练时间比反向传播的训练时间长,但是本发明的DR训练算法30只需要一个数据集关口来学习输入向量,而且只需要1/3的可用数据集来训练NN 190。
确定德国信贷问题中LTGs的MAV:利用确定图15中MAV的方法150找到NN 190中LTGs的MAV。已发现的是,对于该层中的最后一个LTG或者当前输出LTG来说,在训练过程中找到LTGs的MAV可能意味着NN 190会忘记它曾经学过的东西。这是因为如前面讨论如何在将LTGs增加到一NN中时实施该逻辑所描述的那样,当将最新增加的LTGs复制到一层中时,这些约束受到修正。
在训练过程中形成的268个约束中,在找到LTG11的MAV之后,剩下45个。这是定义该LTG权空间的约束的83%缩减量。在这些约束中,18个产生形式为xi·w11≥T11的约束。
当检验训练过程中形成的约束时,可以以(xi·w11≥T11 OR xi+1·w11≥T11OR...OR xi+n·w11≥T11)AND NOT(xj·w11<T11)AND NOT(xj+1·w11<T11)ANDNOT...的形式读取LTG已经学过的东西。
由于它是这种形式,所以它适合于逻辑分析,并且可以推导出哪些变量与对这些数据集的归类不相关。
使用函数最简化技术例如Quine-McCluskey或者迭代合意来找到特别关注的变量,这里假定输入就象通常情况那样是独立的。由于可以通过找到MAV来去除所有的冗余输入向量,所以可以使得使用函数最简化的任务更容易执行,并且有助于克服它们潜在的指数复杂性(exponential complexity)。
但是,更感兴趣的是知道那些向量都代表什么,因为原始数据集中的一些向量被转换为多位位置(multiple bit positions)。
输入向量[100011101010100000100011001101010001010001]→1使第二LTG——LTG12增加到隐层192和新输出LTG中。将该向量分成几段[100011101010100000100011001101010001010001]。该向量翻译成:‘客户没有支票账户,贷款将<12个月,所有现有信贷已及时偿还,希望为家具/设备贷款,希望借款在1000与5000DM之间,客户已受雇<1年,可自由使用的收入百分比<1%,女性已婚/离异,没有担保人,居住在同一地址4年或4年以上,该客户有一些存款或者人寿保险,她的年龄在25与40之间,不计划分期付款,她有自己的房子,在该银行没有其他的信贷,她是一位技术工人,她不容易提供对任何人的生活费用,她名下没有电话,她是一位外国工人’。
在训练过程中形成的268个约束中,在找到LTG12的MAV之后,剩下139个。这是定义该LTG权空间的约束的48%缩减量。在这些约束中,14个产生xi·w11≥T12这样的约束。
输出LTG——LTG21在其输入连接之间形成“或”OR。因此,它形成4个约束。在确定MAV后,约束数目减小到3。这是对约束数目的25%的缩减量。
对于具有42个维度的数据集例如此数据集来说,极其希望使该过程自动化。即使在找到隐层192中每一个LTG的MAV之后,仍然有45和139个约束或者规则要检验,不使该过程自动化,就可能很困难。但是,一个基于LTGs已经学过的东西来确定那些是良好信贷风险的客户的粗略规则(rough rule)可以说成大约这样:‘没有租借或者拥有他们自己的住宅,或者有财产/存款或者(重大债务(critical debts)和担保人)’。
但是,假定NN 190没有从该测试集中对两种输入向量正确地归类,那么至少有一个尚未被NN 190学习的该数据集中的附加特征(additional feature)。
两种数据集的实验结果总结
基于比较判据,已知在两种情况下,NN 180和NN 190能够以100%的精确度再现训练集,那么两种情况下学习的规则的准确性都极高。这与反向传播在训练过程中确定的平均权值形成对照。当利用反向传播时对NN关于训练它所使用的数据进行测试的时候,输出中必然会有某种误差。用来对输入向量归类的速度是基于控制所要执行例程的约束所需的时间。已知该算法还依靠控制各库的约束,那么学习一数据集的时间相对较慢。但是,相信用来运行该算法的适当编码和/或硬件会在不到1秒的时间内学习一输出向量。而且,可以以单遍数据集的方式学习该数据集。这与其中不知道NN是否要不断学习数据集的反向传播形成对照。
此外,已看到的是,训练过程中学习的规则极易理解,而用数值算法例如反向传播训练的NNs中所编码的规则近乎完全不易理解。
因此,本发明具有与使用前馈NNs有关的许多好处。主要的贡献可以总结如下:(a)一种训练优选是LTGs的神经元的新方法;(b)基于这种训练LTGs的新方法来训练前馈NNs的算法30,它(i)按照学习数据集的要求动态地分配LTGs;(ii)以单遍方式学习;和(iii)使简单的方法150能够确定训练过程中学习的易于从所得到的NN中读取的规则;以及(c)使得能有一种分析LTG已经学过的东西的简单方法130。
这种训练LTGs的新方法找到各权与LTG的每一个阈值之间的关系。这使LTGs能够精确地学习和找回输入。换句话说,可以准确地再现该输入,而不是训练神经元的传统方法希望产生的一个近似值。
根据本发明的这种训练LTGs的方法找到使LTG激活的每一个LTG权空间中的各体积,并且把输入给该LTG的各输入之间的关系编码为体积的表面。
该方法使LTGs能够受到询问(interrogate)以确定它们是否已经学习或者能够学习一输入向量,由此确定它是否知道如何对一输入向量归类。该测试提供了一种容易的方法来确定它什么时候需要将一LTG分配到NN中。
该方法使LTGs能够执行用传统方法训练的神经元所执行的所有功能,例如找回以前学习的输入和泛化。
这种根据本发明的训练优选为LTGs的神经元的新方法的主要应用是开发DR学习算法30,该算法按照需要将神经元分配给一NN以学习一数据集。这是对NNs领域的一个重大贡献。
这种前馈NNs的训练方法解决了固定大小NNs的问题,在这种NN中,可能有过多或者过少的神经元。
本发明的DR训练算法30最重要的特征之一是它具有以单遍方式学习一数据集的能力。这是对NNs领域的一个主要贡献,因为它消除了潜在的指数性训练时间的问题。同时,训练时间取决于一些约束的速度,这些约束控制所需用来询问LTG以确定是否已经学过一输入或者是否能够学习它的软件,这意味着NN将以一个确定的时间量来学习。
还提供了一种用来在训练前将数据转换为一适当格式的有用方法,可以用它来改善NN的训练时间。同样,还提供一种用来对NN所训练的数据预先分类的有用方法,可以用它来提高数据归类效率。这些方法被认为对所有的NN训练算法都有用。
本发明的另一个主要的好处是它具有提供对前馈NNs特性的了解的能力,尤其是对训练过程中已经学到的规则的了解。因为该训练方法是关系性的,这意味着它正在寻找输入之间的关系,这些关系存储为使LTG激活的体积的权空间中区域的表面。提供一种有用的方法150,它通过找到一MAV来使这些关系得到恢复,该MAV随后能够用来做一个传统的灵敏度分析。用来将LTGs连接到各层中的逻辑关系还可以直接从NN中读取。
前馈NNs的传统训练方法将训练过程中学到的规则压缩为单个数值,在该单个数值中丢失了许多关于数据集的信息。不可能根据传统训练方法确定该数值如何准确地表达该数值正在试图表达的最佳可能平均值。
本发明的DR训练算法30优选将所有的输入向量转换为约束,并且存储包含在作为激活lTG的权空间内体积的各表面的约束中。这使所有的输入能够被找回,并且提供一种方法,该方法能够利用根据本发明的另一方面的确定MAV的方法150,将约束集缩小到最少量的约束。通过找到一LTG的MAV,当从LTGs约束集中去除约束时,没有信息丢失。
找到MAV的方法150并不受NNs的限制。这种找到MAV的方法被认为对其他一些领域也是有用的,这些领域采用约束的系统,例如用于最优化和运筹学类型问题的CSPs。
所进行的试验表明,需要比所要训练的NN中各权更多的输入向量来训练NN的情况并不是必须的。这是因为每一个输入向量在训练NN中的每一个权。DR学习提供了一种简单的测试,用以易于识别哪些输入向量能使LTGs增加到NN中。并不总是需要用全部的数据集训练。
前面曾讨论过使NNs未能泛化的潜在原因,该讨论中表明,NN受到不充分训练,由此不知道未见输入向量的输出。相反,根据本发明的另一方面,提供一种方法130,它能够用来确定NN是否知道未见输入向量的输出是什么,并且能够明确地识别出哪些输入向量是未知的。因而,NN可以识别它需要对哪些输入向量做额外的训练。
确定输入向量是否已知或者未知的方法130并不受NNs的限制。对输入向量归类的方法还被认为对采用约束系统的其他领域有用,例如分析数据串,象例如DNA。同样地,对输入向量归类的方法还可以用于CSPs和运筹学的应用。
本发明将理解为包括许多其他变型,因为它们对本领域的普通技术人员来说是很容易显而易见的,而且认为它们将落在本发明的宽范围和界限之内,这里借助实例仅仅列出本发明的主要实质内容和某些具体实施例。
Claims (39)
1.一种人工神经网络的训练方法,所述方法包括以下步骤:
(i)通过选择待训练的神经网络的一个输出,并且为所选输出而将该神经网络的一个输出神经元连接到该神经网络输入层中的输入神经元,从而对该神经网络进行初始化;
(ii)准备该神经网络待学习的数据集;并且
(iii)通过将所准备的数据集的一个输入向量应用到该神经网络的第一隐层,或者在该神经网络没有隐层时将该输入向量应用到该神经网络的输出层,并且确定该神经网络的每一层中所选输出的至少一个神经元是否可以学习以产生该输入向量的相关输出,从而将所准备的数据集应用到该神经网络以进行学习,其中:
如果该神经网络每一层中所选输出的至少一个神经元可以学习以产生该输入向量的相关输出,而且如果存在所准备数据集的更多输入向量可以学习,那么,对下一个输入向量重复步骤(iii),另外,如果有更多待训练的输出,那么对该神经网络的下一个输出重复步骤(i)至(iii);
如果该神经网络的所选输出的隐层中没有神经元可以学习以产生输入向量的相关输出,那么将一新神经元增加到那一层中以学习所选输出的那一层中任何其他神经元无法学习的相关输出,而且,如果存在该数据集的更多输入向量可以学习,那么,对下一个输入向量重复步骤(iii),另外,如果有更多待训练的输出,那么对该神经网络的下一个输出重复步骤(i)至(iii);
如果该神经网络的所选输出的输出神经元无法学习以产生输入向量的相关输出,那么该输出神经元变成该神经网络的隐层的一个神经元,将一新神经元增加到该隐层中以学习该输出神经元无法学习的相关输出,并且为所选输出而将一新输出神经元增加到该神经网络中,而且,如果存在该数据集的更多输入向量可以学习,那么,对下一个输入向量重复步骤(iii),另外,如果有更多的待训练输出,那么对该神经网络的下一个输出重复步骤(i)至(iii)。
2.一种人工神经网络的训练方法,所述方法包括以下步骤:
(i)准备该神经网络待学习的数据集;
(ii)通过选择待训练的神经网络的一个输出,并且为所选输出而将该神经网络的一个输出神经元连接到该神经网络的输入层中的输入神经元,从而对该神经网络进行初始化;并且
(iii)通过将所准备的数据集的一个输入向量应用到该神经网络的第一隐层,或者在该神经网络没有隐层时将其应用到该神经网络的输出层,并且确定该神经网络的每一层中所选输出的至少一个神经元是否可以学习以产生该输入向量的相关输出,从而将所准备的数据集应用到该神经网络以进行学习,其中:
如果该神经网络的每一层中所选输出的至少一个神经元可以学习以产生该输入向量的相关输出,而且如果存在所准备数据集的更多输入向量可以学习,那么,对下一个输入向量重复步骤(iii),另外,如果有更多的待训练输出,那么对该神经网络的下一个输出重复步骤(ii)和(iii);
如果该神经网络的所选输出的隐层中没有神经元可以学习以产生输入向量的相关输出,那么将一新神经元增加到那一层中以学习所选输出的那一层中任何其他神经元无法学习的相关输出,而且,如果存在该数据集的更多输入向量可以学习,那么,对下一个输入向量重复步骤(iii),另外,如果有更多的待训练输出,那么对该神经网络的下一个输出重复步骤(ii)和(iii);
如果该神经网络的所选输出的输出神经元无法学习以产生输入向量的相关输出,那么该输出神经元变成该神经网络的隐层的一个神经元,将一新神经元增加到该隐层中以学习该输出神经元无法学习的相关输出,并且为所选输出而将一新输出神经元增加到该神经网络中,而且,如果存在该数据集的更多输入向量可以学习,那么,对下一个输入向量重复步骤(iii),另外,如果有更多的待训练输出,那么对该神经网络的下一个输出重复步骤(ii)和(iii)。
3.如权利要求1或2所述的方法,其特征在于,该神经网络的神经元是线性阈值门(LTGs)。
4.如权利要求3所述的方法,其特征在于,在所述步骤(iii)中,确定LTG是否能够学习以产生输入向量的相关输出,就是确定多个权与LTG阈值之间的关系是否具有为LTG以前所学而给定的解。
5.如权利要求4所述的方法,其特征在于,所述关系是一约束,而且,其中输入向量和LTG的权向量基于该神经网络的所选输出而与LTG的阈值形成一个关系。
6.如权利要求5所述的方法,其特征在于,学习一个约束就是能够将该约束增加到一LTG的约束集中。
7.如权利要求6所述的方法,其特征在于,为了能够将该约束增加到一LTG的约束集中,必须在所有的约束之间有一个解。
8.如权利要求6或7所述的方法,其特征在于,初始化该神经网络的所述步骤还包括以下步骤:清除输出LTG的约束集以使输出LTG的约束集为空。
9.如前面任一权利要求所述的方法,其特征在于,准备该神经网络待学习的数据集的步骤包括以下步骤,以下步骤中的每一步都可以以任意顺序执行:在将该数据集提供给该神经网络进行训练之前,将该数据集转换为预定义数据格式;在将该数据集提供给该神经网络进行训练之前,确定该数据集中是否存在任何矛盾;在将该数据集提供给该神经网络进行训练之前,对该数据集进行分类;并且,在将该数据集提供给该神经网络进行训练之前,确定该数据集中是否有0输入向量可用,如果该数据集中有0输入向量可用,那么对该数据集排序以便首先将该0输入向量提供给该神经网络进行训练。
10.如权利要求9所述的方法,其特征在于,所述预定义数据格式是二进制数据格式或者浮点数据格式。
11.如权利要求9或10所述的方法,其特征在于,所述在将该数据集提供给该神经网络之前,确定该数据集中是否存在任何矛盾的步骤包括:确定是否有产生不同输出的两个或者更多相同的输入向量。
12.如权利要求11所述的方法,其特征在于,如果确定有两个或者更多相同的输入向量产生不同输出,那么只采用这些输入向量中的一个。
13.如权利要求9至12中任一权利要求所述的方法,其特征在于,所述在将该数据集提供给该神经网络进行训练之前,对该数据集进行分类的步骤包括:将该数据集的输入向量分成两组,将输出1的那些向量与为该输出产生0的那些向量分开,并且首先选择两组中的一组进行训练;用自组织映射(SOM)对数据进行分类;和/或采用任何其他合适的方法对数据进行分类。
14.如权利要求13所述的方法,其特征在于,在将数据提供给该神经网络进行训练之前,从所分类的数据中为每一个输入层创建单独的列表。
15.如权利要求5所述的方法,其特征在于,根据步骤(iii),如果将一新LTG增加到一层中以学习那层中任何其他LTG无法学习的约束:那么将该新LTG连接到下一层的所有LTGs上,所述所有LTGs用于该神经网络的所选输出,并且更新接收来自新LTG的输入的该下一层的这些LTGs的约束集以接受来自新LTG的输入;如果具有新LTG的层不是该神经网络的第一层,那么将该新LTG连接到来自前面一层的所有LTGs的输入,并接收该输入,该前面一层的所有LTGs用于该神经网络的所选输出;并且,更新该新LTG的约束集以包括那层中前一个LTG的修正约束集副本和那层中任何其他LTG无法学习的约束。
16.如权利要求5或15所述的方法,其特征在于,根据步骤(iii),如果将一新输出LTG增加到该神经网络中:那么,将该新输出LTG连接到隐层中的LTGs的输入并且接收该输入;如果该隐层不是该神经网络的第一层,那么将该隐层中的该新LTG连接到来自前面一层中的所有LTGs的输入并且接收该输入,该所有LTGs用于该神经网络的所选输出;更新增加到该隐层中的新LTG的约束集以包括那层中前面输出LTG的修正约束集副本和该前面输出LTG无法学习的约束;并且,根据该前面输出LTG无法学习的内容,该新输出LTG以一预定义的逻辑关系结合其输入。
17.如权利要求16所述的方法,其特征在于,当根据步骤(iii)将一新输出LTG增加到该神经网络中时,在输入给该新输出LTG的各输入之间形成的预定义逻辑关系是逻辑“或”OR,逻辑“与”AND,或者其他合适的逻辑关系。
18.如权利要求17所述的方法,其特征在于,如果该前面输出LTG无法学习的输入向量产生输出1,则采用逻辑“或”OR,而如果该前面输出LTG无法学习的输入向量产生输出0,则采用逻辑“与”AND。
19.一种在训练过程中将一新神经元增加到一神经网络的一层中的方法,当所选输出的那层中没有其他神经元能够学习与受到学习数据集的输入向量相关的关系时,将该新神经元增加到该神经网络中,所述方法包括以下步骤:
利用来自那层中用于该神经网络所选输出的前一个神经元的所有修正数据的副本,以及无法由那层中任何其他神经元学习的关系来更新该新神经元;并且
更新输出神经元以接受来自该新神经元的输入。
20.如权利要求19所述的方法,其特征在于,该神经网络的神经元是LTGs。
21.如权利要求20所述的方法,其特征在于,所述关系是各权与LTG阈值之间的关系。
22.如权利要求20或21所述的方法,其特征在于,所述关系是一约束,而且,其中该数据集的输入向量和LTG的权向量基于该神经网络的输出而与LTG的阈值形成一个关系。
23.一种将二进制格式数据集以外的数据集转换为要由一神经网络学习的二进制数据集的方法,所述方法包括以下步骤:
(i)分别确定用于以二进制表示该数据集每一个属性的位数;
(ii)用以下方程计算该数据集的属性范围:范围=(最大-最小)+1;并且
利用步骤(i)中确定的位数将该数据集的属性范围编码为二进制数。
24.权利要求23的方法的使用,用于根据权利要求1或者权利要求2的神经网络训练方法准备要受到训练的数据。
25.一种对待由神经网络训练的数据集进行分类的方法,所述方法包括以下步骤:将该数据集的输入向量分为两组,将输出1的那些向量与输出0的那些向量分开,并且,选择两组中的一组由该神经网络首先学习。
26.权利要求25的方法的使用,用于对根据权利要求1或者权利要求2的神经网络训练方法训练的数据进行分类。
27.一种用来确定一输入向量是否为一神经元所知的方法,所述方法包括以下步骤:由该输入向量构建一约束及其补数;交替地将该约束及其补数增加到该神经元的约束集中;测试该约束集以确定两种情况下是否有解,其中如果对该约束或者其补数来说没有解,那么确定该输入向量为该神经元所知;而如果当约束及其补数都交替增加到该约束集中时都有解,那么确定该输入向量不为该神经元所知。
28.如权利要求27所述的方法,其特征在于,所述约束集是LTG神经元构建而成的神经网络的神经元的约束集。
29.权利要求27的方法的使用,用于确定根据权利要求1或者权利要求2的神经网络训练方法所训练的神经网络的未见输入向量的输出。
30.权利要求27的方法的使用,用于确定根据权利要求3的神经网络训练方法所训练的神经网络的LTG的未见输入向量,其中根据数据集将未见输入向量的默认缺省输出设定为1或者0。
31.一种用来确定-约束集的最小激活体积(MAV)的方法,所述方法包括以下步骤:
(i)每次从该约束集中去除一个约束,同时使该约束集中剩余的约束保持不变;
(ii)将所去除的约束的补数增加到该约束集中;
(iii)测试该新的约束集,以注意是否有解,其中:
如果有解,那么将原始约束增加到定义MAV的约束集中,去除增加到该约束集中的约束的补数,将原始约束返回到该约束集中,如果该约束集中有更多的约束需要测试,那么重复步骤(i)到(iii),另外MAV是包含在定义MAV的约束集内的那组约束;
如果没有解,那么去除增加到该约束集中的约束的补数,将原始约束返回到该约束集中,如果该约束集中有更多的约束需要测试,那么重复步骤(i)到(iii),另外MAV是包含在定义MAV的约束集内的那组约束。
32.如权利要求31所述的方法,其特征在于,所述约束集是LTG神经元所构建的神经网络的神经元的约束集。
33.权利要求32的方法的使用,用来确定根据权利要求1或者权利要求2的神经网络训练方法训练的神经网络中每一个LTG的MAV。
34.一种人工神经网络的训练方法,基本上参照附图如前所述。
35.一种在训练过程中将一新神经元增加到一神经网络的一层中的方法,基本上参照附图如前所述。
36.一种将二进制格式数据集以外的数据集转换为要由一神经网络学习的二进制数据集的方法,基本上参照附图如前所述。
37.一种用来对待由一神经网络训练的数据集进行分类的方法,基本上参照附图如前所述。
38.一种用来确定一约束集的输入向量是否已知的方法,基本上参照附图如前所述。
39.一种用来确定一约束集的最小激活体积(MAV)的方法,基本上参照附图如前所述。
Applications Claiming Priority (2)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
AU2005906330A AU2005906330A0 (en) | 2005-11-15 | Method for training neural networks | |
AU2005906330 | 2005-11-15 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN101310294A true CN101310294A (zh) | 2008-11-19 |
Family
ID=38048203
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CNA2006800427797A Pending CN101310294A (zh) | 2005-11-15 | 2006-11-15 | 神经网络的训练方法 |
Country Status (8)
Country | Link |
---|---|
US (3) | US8862527B2 (zh) |
EP (2) | EP1949313A4 (zh) |
JP (2) | JP2009516246A (zh) |
KR (1) | KR101326914B1 (zh) |
CN (1) | CN101310294A (zh) |
CA (1) | CA2629069C (zh) |
NZ (1) | NZ567815A (zh) |
WO (1) | WO2007056803A1 (zh) |
Cited By (14)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN102054199A (zh) * | 2010-12-31 | 2011-05-11 | 中国人民解放军63983部队 | 基于bp神经网络算法对涂层老化的分析方法 |
CN102622515A (zh) * | 2012-02-21 | 2012-08-01 | 北京联合大学 | 一种天气预测方法 |
CN103890787A (zh) * | 2011-10-19 | 2014-06-25 | 高通股份有限公司 | 用于尖峰神经网络中的自然多尖峰序列的神经学习的方法和装置 |
CN105260773A (zh) * | 2015-09-18 | 2016-01-20 | 华为技术有限公司 | 一种图像处理装置以及图像处理方法 |
CN105844331A (zh) * | 2015-01-15 | 2016-08-10 | 富士通株式会社 | 神经网络系统及该神经网络系统的训练方法 |
CN106650922A (zh) * | 2016-09-29 | 2017-05-10 | 清华大学 | 硬件神经网络转换方法、计算装置、编译方法和神经网络软硬件协作系统 |
CN107077637A (zh) * | 2014-03-24 | 2017-08-18 | 高通股份有限公司 | 神经网络中的差分编码 |
CN107729999A (zh) * | 2016-08-12 | 2018-02-23 | 北京深鉴科技有限公司 | 考虑矩阵相关性的深度神经网络压缩方法 |
CN108229689A (zh) * | 2013-01-17 | 2018-06-29 | 应用材料公司 | 在半导体处理设备中使用径向基函数网络与超立方体进行偏离分类 |
CN108229667A (zh) * | 2016-12-21 | 2018-06-29 | 安讯士有限公司 | 基于人工神经网络类别的修剪 |
CN109978158A (zh) * | 2017-12-28 | 2019-07-05 | 北京中科寒武纪科技有限公司 | 集成电路芯片装置及相关产品 |
CN110546655A (zh) * | 2017-05-04 | 2019-12-06 | 牛津楠路珀尔科技有限公司 | 纳米孔测量结果的机器学习分析 |
CN113554145A (zh) * | 2020-04-26 | 2021-10-26 | 伊姆西Ip控股有限责任公司 | 确定神经网络的输出的方法、电子设备和计算机程序产品 |
US11449737B2 (en) * | 2016-09-07 | 2022-09-20 | Robert Bosch Gmbh | Model calculation unit and control unit for calculating a multilayer perceptron model with feedforward and feedback |
Families Citing this family (99)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US8862527B2 (en) | 2005-11-15 | 2014-10-14 | Bernadette Garner | Neural networks and method for training neural networks |
US9342780B2 (en) | 2010-07-30 | 2016-05-17 | Hewlett Packard Enterprise Development Lp | Systems and methods for modeling binary synapses |
KR101140025B1 (ko) * | 2010-12-14 | 2012-05-02 | 김기태 | 부정 계측 검출 방법 및 시스템 |
US8577820B2 (en) * | 2011-03-04 | 2013-11-05 | Tokyo Electron Limited | Accurate and fast neural network training for library-based critical dimension (CD) metrology |
US11507548B1 (en) * | 2011-09-21 | 2022-11-22 | Amazon Technologies, Inc. | System and method for generating a classification model with a cost function having different penalties for false positives and false negatives |
KR101910576B1 (ko) * | 2011-11-08 | 2018-12-31 | 삼성전자주식회사 | 인공신경망을 이용하여 신속하게 입력 패턴을 분류하는 방법 및 장치 |
US20140006471A1 (en) * | 2012-06-27 | 2014-01-02 | Horia Margarit | Dynamic asynchronous modular feed-forward architecture, system, and method |
KR101997566B1 (ko) | 2012-08-07 | 2019-07-08 | 삼성전자주식회사 | 수술 로봇 시스템 및 그 제어방법 |
CN102930336A (zh) * | 2012-10-29 | 2013-02-13 | 哈尔滨工业大学 | 电阻阵列自适应校正方法 |
EP2973315A4 (en) * | 2013-03-15 | 2016-11-16 | Adityo Prakash | SYSTEMS AND METHODS FOR FACILITATING INTEGRATED BEHAVIORAL SUPPORT |
US9967546B2 (en) | 2013-10-29 | 2018-05-08 | Vefxi Corporation | Method and apparatus for converting 2D-images and videos to 3D for consumer, commercial and professional applications |
US20150116458A1 (en) | 2013-10-30 | 2015-04-30 | Barkatech Consulting, LLC | Method and apparatus for generating enhanced 3d-effects for real-time and offline appplications |
US10158847B2 (en) | 2014-06-19 | 2018-12-18 | Vefxi Corporation | Real—time stereo 3D and autostereoscopic 3D video and image editing |
JP5899272B2 (ja) | 2014-06-19 | 2016-04-06 | ヤフー株式会社 | 算出装置、算出方法及び算出プログラム |
JP5844854B2 (ja) | 2014-06-19 | 2016-01-20 | ヤフー株式会社 | 提供装置、提供方法及び提供プログラム |
CN105446959B (zh) * | 2014-09-02 | 2019-05-28 | 阿里巴巴集团控股有限公司 | 日志内容审核优化方法及装置 |
US10832138B2 (en) * | 2014-11-27 | 2020-11-10 | Samsung Electronics Co., Ltd. | Method and apparatus for extending neural network |
US11221990B2 (en) | 2015-04-03 | 2022-01-11 | The Mitre Corporation | Ultra-high compression of images based on deep learning |
KR102154676B1 (ko) * | 2015-05-14 | 2020-09-10 | 한국과학기술원 | 인공 신경망의 하향식 선택적 주의집중 트레이닝 방법 |
AU2015207945A1 (en) * | 2015-07-31 | 2017-02-16 | Canon Kabushiki Kaisha | Method for training an artificial neural network |
CN108293046A (zh) | 2015-09-18 | 2018-07-17 | Mms美国控股有限公司 | 通用标识 |
US20190279236A1 (en) * | 2015-09-18 | 2019-09-12 | Mms Usa Holdings Inc. | Micro-moment analysis |
US10242448B2 (en) | 2015-11-13 | 2019-03-26 | Vefxi Corporation | 3D system including queue management |
US10284837B2 (en) | 2015-11-13 | 2019-05-07 | Vefxi Corporation | 3D system including lens modeling |
US10277879B2 (en) | 2015-11-13 | 2019-04-30 | Vefxi Corporation | 3D system including rendering with eye displacement |
US10277877B2 (en) | 2015-11-13 | 2019-04-30 | Vefxi Corporation | 3D system including a neural network |
US10277880B2 (en) | 2015-11-13 | 2019-04-30 | Vefxi Corporation | 3D system including rendering with variable displacement |
US10121280B2 (en) | 2015-11-13 | 2018-11-06 | Vefxi Corporation | 3D system including rendering with three dimensional transformation |
US10225542B2 (en) | 2015-11-13 | 2019-03-05 | Vefxi Corporation | 3D system including rendering with angular compensation |
US10148932B2 (en) | 2015-11-13 | 2018-12-04 | Vefxi Corporation | 3D system including object separation |
US10148933B2 (en) | 2015-11-13 | 2018-12-04 | Vefxi Corporation | 3D system including rendering with shifted compensation |
US10122987B2 (en) | 2015-11-13 | 2018-11-06 | Vefxi Corporation | 3D system including additional 2D to 3D conversion |
WO2017083509A1 (en) * | 2015-11-13 | 2017-05-18 | Craig Peterson | Three dimensional system |
CN108427990B (zh) * | 2016-01-20 | 2020-05-22 | 中科寒武纪科技股份有限公司 | 神经网络计算系统和方法 |
US10154244B2 (en) | 2016-02-18 | 2018-12-11 | Vefxi Corporation | 3D system including a marker mode |
KR102522924B1 (ko) | 2016-03-18 | 2023-04-19 | 한국전자통신연구원 | 음성인식을 위한 초벌학습 장치 및 방법 |
CN106096727B (zh) | 2016-06-02 | 2018-12-07 | 腾讯科技(深圳)有限公司 | 一种基于机器学习的网络模型构造方法及装置 |
US10140979B2 (en) * | 2016-08-10 | 2018-11-27 | Conduent Business Services, Llc | Modeling a class posterior probability of context dependent phonemes in a speech recognition system |
DE102017215420A1 (de) * | 2016-09-07 | 2018-03-08 | Robert Bosch Gmbh | Modellberechnungseinheit und Steuergerät zur Berechnung eines RBF-Modells |
KR20180069452A (ko) * | 2016-12-15 | 2018-06-25 | 삼성전자주식회사 | 뉴럴 네트워크의 학습 방법 및 뉴럴 네트워크를 이용한 인식 방법, 및 그 장치 |
US10140574B2 (en) * | 2016-12-31 | 2018-11-27 | Via Alliance Semiconductor Co., Ltd | Neural network unit with segmentable array width rotator and re-shapeable weight memory to match segment width to provide common weights to multiple rotator segments |
US10586148B2 (en) * | 2016-12-31 | 2020-03-10 | Via Alliance Semiconductor Co., Ltd. | Neural network unit with re-shapeable memory |
US10565492B2 (en) * | 2016-12-31 | 2020-02-18 | Via Alliance Semiconductor Co., Ltd. | Neural network unit with segmentable array width rotator |
US10565494B2 (en) * | 2016-12-31 | 2020-02-18 | Via Alliance Semiconductor Co., Ltd. | Neural network unit with segmentable array width rotator |
US10997492B2 (en) | 2017-01-20 | 2021-05-04 | Nvidia Corporation | Automated methods for conversions to a lower precision data format |
US10776697B2 (en) | 2017-04-18 | 2020-09-15 | Huawei Technologies Co., Ltd. | System and method for training a neural network |
CN109284826A (zh) * | 2017-07-19 | 2019-01-29 | 阿里巴巴集团控股有限公司 | 神经网络处理方法、装置、设备及计算机可读存储介质 |
CN110663048B (zh) * | 2017-09-05 | 2023-10-24 | 松下电器(美国)知识产权公司 | 用于深度神经网络的执行方法、执行装置、学习方法、学习装置以及记录介质 |
US11138505B2 (en) * | 2017-12-21 | 2021-10-05 | Fujitsu Limited | Quantization of neural network parameters |
US10634081B2 (en) * | 2018-02-05 | 2020-04-28 | Toyota Jidosha Kabushiki Kaisha | Control device of internal combustion engine |
US11138333B2 (en) | 2018-03-07 | 2021-10-05 | Private Identity Llc | Systems and methods for privacy-enabled biometric processing |
US11502841B2 (en) | 2018-03-07 | 2022-11-15 | Private Identity Llc | Systems and methods for privacy-enabled biometric processing |
US11392802B2 (en) * | 2018-03-07 | 2022-07-19 | Private Identity Llc | Systems and methods for privacy-enabled biometric processing |
US11210375B2 (en) * | 2018-03-07 | 2021-12-28 | Private Identity Llc | Systems and methods for biometric processing with liveness |
US10721070B2 (en) | 2018-03-07 | 2020-07-21 | Private Identity Llc | Systems and methods for privacy-enabled biometric processing |
US11265168B2 (en) | 2018-03-07 | 2022-03-01 | Private Identity Llc | Systems and methods for privacy-enabled biometric processing |
US11394552B2 (en) | 2018-03-07 | 2022-07-19 | Private Identity Llc | Systems and methods for privacy-enabled biometric processing |
US11170084B2 (en) | 2018-06-28 | 2021-11-09 | Private Identity Llc | Biometric authentication |
US11789699B2 (en) | 2018-03-07 | 2023-10-17 | Private Identity Llc | Systems and methods for private authentication with helper networks |
US11489866B2 (en) | 2018-03-07 | 2022-11-01 | Private Identity Llc | Systems and methods for private authentication with helper networks |
US10938852B1 (en) | 2020-08-14 | 2021-03-02 | Private Identity Llc | Systems and methods for private authentication with helper networks |
US11875251B2 (en) * | 2018-05-03 | 2024-01-16 | Samsung Electronics Co., Ltd. | Neural network method and apparatus |
US11669914B2 (en) | 2018-05-06 | 2023-06-06 | Strong Force TX Portfolio 2018, LLC | Adaptive intelligence and shared infrastructure lending transaction enablement platform responsive to crowd sourced information |
US11550299B2 (en) | 2020-02-03 | 2023-01-10 | Strong Force TX Portfolio 2018, LLC | Automated robotic process selection and configuration |
US11544782B2 (en) | 2018-05-06 | 2023-01-03 | Strong Force TX Portfolio 2018, LLC | System and method of a smart contract and distributed ledger platform with blockchain custody service |
CA3098670A1 (en) | 2018-05-06 | 2019-11-14 | Strong Force TX Portfolio 2018, LLC | Methods and systems for improving machines and systems that automate execution of distributed ledger and other transactions in spot and forward markets for energy, compute, storage and other resources |
US11368758B2 (en) * | 2018-05-21 | 2022-06-21 | Gdflab Co., Ltd. | VOD service system based on AI video learning platform |
US11449363B2 (en) * | 2018-05-31 | 2022-09-20 | Neuralmagic Inc. | Systems and methods for improved neural network execution |
KR102068676B1 (ko) * | 2018-07-31 | 2020-01-21 | 중앙대학교 산학협력단 | 다중 계층 엣지 컴퓨팅에서 패턴 식별을 이용하여 실시간으로 작업을 스케쥴링 하는 방법 및 그 시스템 |
CN110888401B (zh) * | 2018-09-11 | 2022-09-06 | 京东科技控股股份有限公司 | 火力发电机组燃烧控制优化方法、装置及可读存储介质 |
KR102082999B1 (ko) | 2018-09-14 | 2020-02-28 | 한국항공대학교산학협력단 | Rce 신경망 학습 장치 및 방법 |
US11922314B1 (en) * | 2018-11-30 | 2024-03-05 | Ansys, Inc. | Systems and methods for building dynamic reduced order physical models |
WO2020112141A1 (en) | 2018-11-30 | 2020-06-04 | Halliburton Energy Services, Inc. | Flow rate management for improved recovery |
EP3663206B1 (en) | 2018-12-06 | 2023-09-06 | AIRBUS HELICOPTERS DEUTSCHLAND GmbH | An attachment for suspending an aircraft engine |
US20200233855A1 (en) * | 2019-01-21 | 2020-07-23 | saf.ai | Methods For Self-Aware, Self-Healing, And Self-Defending Data |
US10642723B1 (en) | 2019-02-05 | 2020-05-05 | Bank Of America Corporation | System for metamorphic relationship based code testing using mutant generators |
CN110110854B (zh) * | 2019-04-01 | 2022-04-22 | 南京邮电大学 | 一种基于边状态的深度神经网络测试充分性的方法 |
CN111797986A (zh) * | 2019-04-09 | 2020-10-20 | Oppo广东移动通信有限公司 | 数据处理方法、装置、存储介质及电子设备 |
EP3742345A1 (en) * | 2019-05-20 | 2020-11-25 | Robert Bosch GmbH | A neural network with a layer solving a semidefinite program |
US20220222534A1 (en) * | 2019-05-23 | 2022-07-14 | The Trustees Of Princeton University | System and method for incremental learning using a grow-and-prune paradigm with neural networks |
KR102545066B1 (ko) * | 2019-07-05 | 2023-06-20 | 한국전자통신연구원 | 뉴로모픽 컴퓨팅을 위한 신경망 생성 방법 및 이를 위한 장치 |
US11829861B2 (en) | 2019-07-17 | 2023-11-28 | Unist (Ulsan National Institute Of Science And Technology) | Methods and apparatus for extracting data in deep neural networks |
US20210089924A1 (en) * | 2019-09-24 | 2021-03-25 | Nec Laboratories America, Inc | Learning weighted-average neighbor embeddings |
WO2021097302A1 (en) * | 2019-11-13 | 2021-05-20 | University Of South Florida | Systems and methods of deep learning for colorectal polyp screening |
US11244198B2 (en) | 2019-11-21 | 2022-02-08 | International Business Machines Corporation | Input partitioning for deep learning of large image data |
FR3103600B1 (fr) * | 2019-11-27 | 2023-04-14 | Univ Montpellier | Procede de determination automatique de parametres d’un reseau de neurones artificiels et microcontroleur pour la mise en œuvre du procede |
US11170448B2 (en) * | 2019-12-20 | 2021-11-09 | Akasa, Inc. | Claim analysis with deep learning |
US10934964B1 (en) * | 2020-02-03 | 2021-03-02 | Ford Global Technologies, Llc | Methods and system for storing and activating a calibration for a vehicle |
US11982993B2 (en) | 2020-02-03 | 2024-05-14 | Strong Force TX Portfolio 2018, LLC | AI solution selection for an automated robotic process |
WO2021260612A1 (en) * | 2020-06-24 | 2021-12-30 | Gsi Technology Inc. | Neural hashing for similarity search |
EP4176387A1 (en) * | 2020-07-06 | 2023-05-10 | Huawei Technologies Co., Ltd. | Construction of binary neural networks |
TWI740613B (zh) * | 2020-08-18 | 2021-09-21 | 中國鋼鐵股份有限公司 | 使用類神經網路的辨識方法、電子裝置與電腦程式產品 |
KR102406414B1 (ko) * | 2021-01-04 | 2022-06-08 | (주)뤼이드 | 잠재인자에 기반한 협업 필터링을 사용하여 사용자의 정답확률을 예측하는 학습 컨텐츠 추천 시스템 및 그것의 동작방법 |
WO2022187898A1 (en) * | 2021-03-09 | 2022-09-15 | The University Of Adelaide | Pipeline anomaly detection method and system |
US20220374327A1 (en) * | 2021-04-29 | 2022-11-24 | International Business Machines Corporation | Fair simultaneous comparison of parallel machine learning models |
CN113311702B (zh) * | 2021-05-06 | 2022-06-21 | 清华大学 | 一种基于Master-Slave神经元的人工神经网络控制器 |
US11983102B2 (en) | 2021-11-19 | 2024-05-14 | Bank Of America Corporation | Electronic system for machine learning based anomaly detection in program code |
US11537502B1 (en) | 2021-11-19 | 2022-12-27 | Bank Of America Corporation | Dynamic system for active detection and mitigation of anomalies in program code construction interfaces |
US11556444B1 (en) | 2021-11-19 | 2023-01-17 | Bank Of America Corporation | Electronic system for static program code analysis and detection of architectural flaws |
Family Cites Families (21)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US5093899A (en) * | 1988-09-17 | 1992-03-03 | Sony Corporation | Neural network with normalized learning constant for high-speed stable learning |
US5107442A (en) * | 1989-01-12 | 1992-04-21 | Recognition Equipment Incorporated | Adaptive neural network image processing system |
JPH0738186B2 (ja) * | 1989-03-13 | 1995-04-26 | シャープ株式会社 | 自己拡張形ニユーラル・ネットワーク |
US5033066A (en) | 1990-02-16 | 1991-07-16 | Hughes Aircraft Company | Event tagging time delay |
JP3329806B2 (ja) * | 1990-11-09 | 2002-09-30 | 株式会社日立製作所 | ニューラルネット構築装置 |
JP3109748B2 (ja) * | 1991-02-26 | 2000-11-20 | 株式会社東芝 | ニューラル・ネットを用いた高速ソータ |
JPH05266227A (ja) * | 1992-03-19 | 1993-10-15 | Fujitsu Ltd | ニューロ利用サービス |
EP0574937B1 (en) * | 1992-06-19 | 2000-08-16 | United Parcel Service Of America, Inc. | Method and apparatus for input classification using a neural network |
JPH076147A (ja) * | 1993-06-21 | 1995-01-10 | Toshiba Corp | ニュ―ラルネットワ―ク演算装置 |
JPH0895941A (ja) * | 1994-09-29 | 1996-04-12 | Hitachi Ltd | 神経回路網の構成方法 |
JP3737841B2 (ja) * | 1995-08-22 | 2006-01-25 | 株式会社ジャストシステム | ニューラルネットワーク |
US6192360B1 (en) * | 1998-06-23 | 2001-02-20 | Microsoft Corporation | Methods and apparatus for classifying text and for building a text classifier |
US6269351B1 (en) * | 1999-03-31 | 2001-07-31 | Dryken Technologies, Inc. | Method and system for training an artificial neural network |
JP2001331839A (ja) * | 2000-05-22 | 2001-11-30 | Glory Ltd | 紙幣識別方法及び装置 |
JP3650578B2 (ja) * | 2000-09-28 | 2005-05-18 | 株式会社立山アールアンドディ | 画像の歪みを補正するためのニューラル・ネットワークを用いたパノラマ画像ナビゲーションシステム |
US7089592B2 (en) * | 2001-03-15 | 2006-08-08 | Brighterion, Inc. | Systems and methods for dynamic detection and prevention of electronic fraud |
DE10139682B4 (de) * | 2001-08-11 | 2004-08-05 | Deneg Gmbh | Verfahren zum Generieren von neuronalen Netzen |
US7496546B2 (en) * | 2003-03-24 | 2009-02-24 | Riken | Interconnecting neural network system, interconnecting neural network structure construction method, self-organizing neural network structure construction method, and construction programs therefor |
US8862527B2 (en) | 2005-11-15 | 2014-10-14 | Bernadette Garner | Neural networks and method for training neural networks |
US20080241805A1 (en) | 2006-08-31 | 2008-10-02 | Q-Track Corporation | System and method for simulated dosimetry using a real time locating system |
JP6176161B2 (ja) | 2014-03-18 | 2017-08-09 | 富士ゼロックス株式会社 | 印刷制御装置及びプログラム |
-
2006
- 2006-11-15 US US12/093,435 patent/US8862527B2/en active Active
- 2006-11-15 CN CNA2006800427797A patent/CN101310294A/zh active Pending
- 2006-11-15 EP EP06804525A patent/EP1949313A4/en not_active Ceased
- 2006-11-15 KR KR1020087014170A patent/KR101326914B1/ko active IP Right Grant
- 2006-11-15 WO PCT/AU2006/001708 patent/WO2007056803A1/en active Application Filing
- 2006-11-15 JP JP2008539194A patent/JP2009516246A/ja not_active Ceased
- 2006-11-15 CA CA2629069A patent/CA2629069C/en active Active
- 2006-11-15 NZ NZ567815A patent/NZ567815A/en unknown
- 2006-11-15 EP EP12183557A patent/EP2533176A1/en not_active Withdrawn
-
2012
- 2012-09-27 JP JP2012215316A patent/JP5395241B2/ja active Active
-
2014
- 2014-10-14 US US14/514,345 patent/US11263528B2/en active Active
-
2022
- 2022-03-01 US US17/684,397 patent/US20220366258A1/en active Pending
Cited By (23)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN102054199A (zh) * | 2010-12-31 | 2011-05-11 | 中国人民解放军63983部队 | 基于bp神经网络算法对涂层老化的分析方法 |
CN103890787A (zh) * | 2011-10-19 | 2014-06-25 | 高通股份有限公司 | 用于尖峰神经网络中的自然多尖峰序列的神经学习的方法和装置 |
CN102622515A (zh) * | 2012-02-21 | 2012-08-01 | 北京联合大学 | 一种天气预测方法 |
CN108229689A (zh) * | 2013-01-17 | 2018-06-29 | 应用材料公司 | 在半导体处理设备中使用径向基函数网络与超立方体进行偏离分类 |
CN108229689B (zh) * | 2013-01-17 | 2022-04-05 | 应用材料公司 | 在半导体处理设备中使用径向基函数网络与超立方体进行偏离分类 |
CN107077637B (zh) * | 2014-03-24 | 2021-07-20 | 高通股份有限公司 | 神经网络中的差分编码 |
CN107077637A (zh) * | 2014-03-24 | 2017-08-18 | 高通股份有限公司 | 神经网络中的差分编码 |
CN105844331B (zh) * | 2015-01-15 | 2018-05-25 | 富士通株式会社 | 神经网络系统及该神经网络系统的训练方法 |
CN105844331A (zh) * | 2015-01-15 | 2016-08-10 | 富士通株式会社 | 神经网络系统及该神经网络系统的训练方法 |
CN105260773B (zh) * | 2015-09-18 | 2018-01-12 | 华为技术有限公司 | 一种图像处理装置以及图像处理方法 |
CN105260773A (zh) * | 2015-09-18 | 2016-01-20 | 华为技术有限公司 | 一种图像处理装置以及图像处理方法 |
CN107729999A (zh) * | 2016-08-12 | 2018-02-23 | 北京深鉴科技有限公司 | 考虑矩阵相关性的深度神经网络压缩方法 |
CN107729999B (zh) * | 2016-08-12 | 2021-02-02 | 赛灵思电子科技(北京)有限公司 | 考虑矩阵相关性的深度神经网络压缩方法 |
US11449737B2 (en) * | 2016-09-07 | 2022-09-20 | Robert Bosch Gmbh | Model calculation unit and control unit for calculating a multilayer perceptron model with feedforward and feedback |
CN106650922A (zh) * | 2016-09-29 | 2017-05-10 | 清华大学 | 硬件神经网络转换方法、计算装置、编译方法和神经网络软硬件协作系统 |
CN106650922B (zh) * | 2016-09-29 | 2019-05-03 | 清华大学 | 硬件神经网络转换方法、计算装置、软硬件协作系统 |
CN108229667B (zh) * | 2016-12-21 | 2019-09-10 | 安讯士有限公司 | 基于人工神经网络类别的修剪 |
CN108229667A (zh) * | 2016-12-21 | 2018-06-29 | 安讯士有限公司 | 基于人工神经网络类别的修剪 |
CN110546655A (zh) * | 2017-05-04 | 2019-12-06 | 牛津楠路珀尔科技有限公司 | 纳米孔测量结果的机器学习分析 |
CN109978158B (zh) * | 2017-12-28 | 2020-05-12 | 中科寒武纪科技股份有限公司 | 集成电路芯片装置及相关产品 |
CN109978158A (zh) * | 2017-12-28 | 2019-07-05 | 北京中科寒武纪科技有限公司 | 集成电路芯片装置及相关产品 |
CN113554145A (zh) * | 2020-04-26 | 2021-10-26 | 伊姆西Ip控股有限责任公司 | 确定神经网络的输出的方法、电子设备和计算机程序产品 |
CN113554145B (zh) * | 2020-04-26 | 2024-03-29 | 伊姆西Ip控股有限责任公司 | 确定神经网络的输出的方法、电子设备和计算机程序产品 |
Also Published As
Publication number | Publication date |
---|---|
EP1949313A1 (en) | 2008-07-30 |
US20080281767A1 (en) | 2008-11-13 |
KR20080098357A (ko) | 2008-11-07 |
JP2013020638A (ja) | 2013-01-31 |
JP2009516246A (ja) | 2009-04-16 |
CA2629069C (en) | 2016-07-19 |
US8862527B2 (en) | 2014-10-14 |
KR101326914B1 (ko) | 2013-11-11 |
JP5395241B2 (ja) | 2014-01-22 |
WO2007056803A1 (en) | 2007-05-24 |
US20220366258A1 (en) | 2022-11-17 |
US20180101769A9 (en) | 2018-04-12 |
EP2533176A1 (en) | 2012-12-12 |
US11263528B2 (en) | 2022-03-01 |
CA2629069A1 (en) | 2007-05-24 |
EP1949313A4 (en) | 2010-03-31 |
NZ567815A (en) | 2011-08-26 |
US20170169331A1 (en) | 2017-06-15 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN101310294A (zh) | 神经网络的训练方法 | |
CN111542843A (zh) | 利用协作生成器积极开发 | |
CN108108854B (zh) | 城市路网链路预测方法、系统及存储介质 | |
Tettamanzi et al. | Soft computing: integrating evolutionary, neural, and fuzzy systems | |
JP2009516246A5 (zh) | ||
Lingireddy et al. | Artificial neural networks in water supply engineering | |
Rabuñal et al. | A new approach to the extraction of ANN rules and to their generalization capacity through GP | |
Zanganeh et al. | Applying adaptive neuro-fuzzy model for bankruptcy prediction | |
Pahariya et al. | Software cost estimation using computational intelligence techniques | |
Benjamin et al. | Comparing BP and ART II neural network classifiers for facility location | |
Duch et al. | Initialization and optimization of multilayered perceptrons | |
AU2015207873B2 (en) | Method for training neural networks | |
Kuo et al. | Applying genetic programming technique in classification trees | |
Ru et al. | Probabilistic ordinal regression methods for multiple criteria sorting admitting certain and uncertain preferences | |
Heaton | Automated feature engineering for deep neural networks with genetic programming | |
Ledesma et al. | Feature selection using artificial neural networks | |
Lemke et al. | Self-organizing data mining for a portfolio trading system | |
Garcıa-Pedrajas et al. | Cooperative coevolution of generalized multi-layer perceptrons | |
Hirn et al. | A deep Generative Artificial Intelligence system to predict species coexistence patterns | |
AU2013237728A1 (en) | Method for Training Neural Networks | |
Sun et al. | Evolutionary Deep Neural Architecture Search: Fundamentals, Methods, and Recent Advances | |
Stjernefeldt | Enabling the future of Operational Risk Management: A research on the encoding of categorical data insupervised deep learning models | |
He | Topological optimisation of artificial neural networks for financial asset forecasting | |
Ramesh et al. | UPLIFT: Usage of Poverty Level Indicators to Facilitate Transformation | |
Schmidt | An aggregate connectionist approach for discovering association rules |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
C06 | Publication | ||
PB01 | Publication | ||
C10 | Entry into substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
C02 | Deemed withdrawal of patent application after publication (patent law 2001) | ||
WD01 | Invention patent application deemed withdrawn after publication |
Open date: 20081119 |