发明名称 一种基于结构可调极限学机的在线建模方法
摘要 一种基于结构可调极限学机的在线建模方法,属于自动控制、信息技术和先进制造领域,具体涉及在极限学机的在线学过程中调整其结构和参数以容纳新获得数据的方法。其特征在于包括以下步骤:定义类别球概念,在每次学过程中,判断新获得的数据是否在类别球外且会导致建模精度下降,若是则添加新隐层节点,否则仅调整类别球的球心和半径,最后更新极限学机的输出层权值。本发明首先引入类别球概念用以包含之前训练过程已用过的数据,在确定新增隐层节点参数时,通过使该节点在距类别球最近点的输出足够小,以确保该节点在上述已用过的数据上的输出值为0,并给出了输出层权值更新公式。本发明可通过增加隐层节点以提高在线建模精度。
申请公布号 CN101807046B 申请公布日期 2011.08.17
申请号 CN201010119408.2 申请日期 2010.03.08
申请人 清华大学 发明人 刘民;李国虎;董明宇;吴澄
分类号 G05B13/04(2006.01)I 主分类号 G05B13/04(2006.01)I
代理机构 北京鸿元知识产权代理有限公司 11327 代理人 陈英俊
主权项 1.一种基于结构可调极限学习机(ELM)的在线建模方法,其特征在于,所述方法是在计算机上依次按如下步骤实现的:步骤(1):模型选择和参数初始化设置单隐层极限学习机的隐层节点数M,输入层节点个数与训练样本维数n相同,输出节点个数与训练目标的维数m相同;隐层节点的激励函数G(a<sub>i</sub>,b<sub>i</sub>,x)采用高斯函数,随机确定每个隐层节点的中心a<sub>i</sub>和宽度b<sub>i</sub>,i=1,2,…M;根据最初的N个样本<img file="FDA0000059392620000011.GIF" wi="304" he="56" />训练极限学习机,获得初始的隐层输出矩阵H<sub>0</sub>和输出层连接矩阵β<sub>0</sub>,其中,β=(H<sub>0</sub><sup>T</sup>H<sub>0</sub>)<sup>-1</sup>H<sub>0</sub>T<sub>0</sub><img file="FDA0000059392620000013.GIF" wi="876" he="213" /><maths num="0001"><![CDATA[<math><mrow><msub><mi>T</mi><mn>0</mn></msub><mo>=</mo><mfenced open='[' close=']'><mtable><mtr><mtd><msub><mi>t</mi><mn>11</mn></msub><mo>.</mo><mo>.</mo><mo>.</mo><msub><mi>t</mi><mrow><mn>1</mn><mi>m</mi></mrow></msub></mtd></mtr><mtr><mtd><mo>.</mo><mo>.</mo><mo>.</mo></mtd></mtr><mtr><mtd><msub><mi>t</mi><mrow><mi>N</mi><mn>1</mn></mrow></msub><mo>.</mo><mo>.</mo><mo>.</mo><msub><mi>t</mi><mi>Nm</mi></msub></mtd></mtr></mtable></mfenced><mo>=</mo><msub><mfenced open='[' close=']'><mtable><mtr><mtd><msubsup><mi>t</mi><mn>1</mn><mi>T</mi></msubsup></mtd></mtr><mtr><mtd><mo>.</mo><mo>.</mo><mo>.</mo></mtd></mtr><mtr><mtd><msubsup><mi>t</mi><mi>N</mi><mi>T</mi></msubsup></mtd></mtr></mtable></mfenced><mrow><mi>N</mi><mo>&times;</mo><mi>m</mi></mrow></msub></mrow></math>]]></maths>初始化矩阵K,使得<img file="FDA0000059392620000015.GIF" wi="346" he="56" />计算<img file="FDA0000059392620000016.GIF" wi="187" he="56" />保存β<sub>0</sub>、K<sub>0</sub>和P<sub>0</sub>;用一个类别球O包围初始训练样本集X<sub>0</sub>,使该球恰好将X<sub>0</sub>中的所有样本点包围在其内部,确定此球的球心C<sub>0</sub>和半径R<sub>0</sub>;步骤(2):在线学习过程新增训练数据x<sub>1</sub>=(x<sub>N+1</sub>,t<sub>N+1</sub>)到来时,按照如下步骤训练ELM,使其既能保存X<sub>0</sub>的知识,又可以容纳x<sub>1</sub>所包含的新知识步骤(2.1):维持网络结构不变,仅根据x<sub>1</sub>调整输出层连接矩阵β<sub>0</sub>,更新后的输出层权值连接矩阵为β<sub>1</sub>,同时更新矩阵K<sub>0</sub>和P<sub>0</sub>为K<sub>1</sub>和P<sub>1</sub>,<maths num="0002"><![CDATA[<math><mrow><msub><mi>&beta;</mi><mn>1</mn></msub><mo>=</mo><msub><mi>&beta;</mi><mn>0</mn></msub><mo>+</mo><msub><mi>P</mi><mn>1</mn></msub><msubsup><mi>H</mi><mn>1</mn><mi>T</mi></msubsup><mrow><mo>(</mo><msub><mi>T</mi><mn>1</mn></msub><mo>-</mo><msub><mi>H</mi><mn>1</mn></msub><msub><mi>&beta;</mi><mn>0</mn></msub><mo>)</mo></mrow></mrow></math>]]></maths><maths num="0003"><![CDATA[<math><mrow><msub><mi>P</mi><mn>1</mn></msub><mo>=</mo><msubsup><mi>K</mi><mn>1</mn><mrow><mo>-</mo><mn>1</mn></mrow></msubsup><mo>=</mo><msub><mi>P</mi><mn>0</mn></msub><mo>-</mo><msub><mi>P</mi><mn>0</mn></msub><msubsup><mi>H</mi><mn>1</mn><mi>T</mi></msubsup><msup><mrow><mo>(</mo><mi>I</mi><mo>+</mo><msub><mi>H</mi><mn>1</mn></msub><msub><mi>P</mi><mn>0</mn></msub><msubsup><mi>H</mi><mn>1</mn><mi>T</mi></msubsup><mo>)</mo></mrow><mrow><mo>-</mo><mn>1</mn></mrow></msup><msub><mi>H</mi><mn>1</mn></msub><msub><mi>P</mi><mn>0</mn></msub></mrow></math>]]></maths><maths num="0004"><![CDATA[<math><mrow><msub><mi>K</mi><mn>1</mn></msub><mo>=</mo><msub><mi>K</mi><mn>0</mn></msub><mo>+</mo><msubsup><mi>H</mi><mn>1</mn><mi>T</mi></msubsup><msub><mi>H</mi><mn>1</mn></msub></mrow></math>]]></maths>其中,H<sub>1</sub>和T<sub>1</sub>分别为ELM对新样本x<sub>1</sub>的隐层输出矩阵和训练目标矩阵,即H<sub>1</sub>=[G(a<sub>1</sub>,b<sub>1</sub>,x<sub>N+1</sub>)…G(a<sub>M</sub>,b<sub>M</sub>,x<sub>N+1</sub>)]<sub>1×M</sub><maths num="0005"><![CDATA[<math><mrow><msub><mi>T</mi><mn>1</mn></msub><mo>=</mo><mo>[</mo><msub><mi>t</mi><mrow><mrow><mo>(</mo><mi>N</mi><mo>+</mo><mn>1</mn><mo>)</mo></mrow><mn>1</mn></mrow></msub><mo>.</mo><mo>.</mo><mo>.</mo><msub><mi>t</mi><mrow><mrow><mo>(</mo><mi>N</mi><mo>+</mo><mn>1</mn><mo>)</mo></mrow><mi>m</mi></mrow></msub><mo>]</mo><mo>=</mo><msub><mrow><mo>[</mo><msubsup><mi>t</mi><mrow><mi>N</mi><mo>+</mo><mn>1</mn></mrow><mi>T</mi></msubsup><mo>]</mo></mrow><mrow><mn>1</mn><mo>&times;</mo><mi>m</mi></mrow></msub></mrow></math>]]></maths>步骤(2.2):计算调整参数后的ELM对新增样本x<sub>1</sub>的训练误差e,判断新样本x<sub>1</sub>是否在球O外,若在球O外且e大于设定阈值,放弃上述所有调整,转向步骤(2.3),否则,转向步骤(3);步骤(2.3):增加一个隐层节点,设定其中心a为x<sub>1</sub>,宽度b由下式确定,即<maths num="0006"><![CDATA[<math><mrow><mi>b</mi><mo>&le;</mo><mo>-</mo><mfrac><mrow><mo>|</mo><mo>|</mo><msub><mi>x</mi><mi>c</mi></msub><mo>-</mo><mi>a</mi><mo>|</mo><mo>|</mo></mrow><mrow><mi>ln</mi><mi>&epsiv;</mi></mrow></mfrac></mrow></math>]]></maths>其中,ε为预设定的阈值,x<sub>c</sub>为类别球O上距新样本点x<sub>1</sub>最近点的坐标,可由下式确定x<sub>c</sub>=x<sub>o</sub>+λ<sub>1</sub>(x<sub>a</sub>-x<sub>o</sub>)其中,x<sub>o</sub>为球O的球心坐标,λ<sub>1</sub>可由下式确定<maths num="0007"><![CDATA[<math><mrow><msub><mi>&lambda;</mi><mn>1</mn></msub><mo>=</mo><mfrac><mrow><mo>|</mo><mo>|</mo><msub><mi>x</mi><mi>c</mi></msub><mo>-</mo><msub><mi>x</mi><mi>o</mi></msub><mo>|</mo><mo>|</mo></mrow><mrow><mo>|</mo><mo>|</mo><msub><mi>x</mi><mi>a</mi></msub><mo>-</mo><msub><mi>x</mi><mi>o</mi></msub><mo>|</mo><mo>|</mo></mrow></mfrac><mo>=</mo><mfrac><mi>R</mi><mrow><mo>|</mo><mo>|</mo><msub><mi>x</mi><mi>a</mi></msub><mo>-</mo><msub><mi>x</mi><mi>o</mi></msub><mo>|</mo><mo>|</mo></mrow></mfrac></mrow></math>]]></maths>上式中的x<sub>a</sub>即为新样本点x<sub>1</sub>的坐标;重新调整输出层连接矩阵β<sub>0</sub>为β<sub>1</sub>,并相应地更新矩阵K<sub>0</sub>和P<sub>0</sub>为K<sub>1</sub>和P<sub>1</sub>,使得<maths num="0008"><![CDATA[<math><mrow><msub><mi>&beta;</mi><mn>1</mn></msub><mo>=</mo><msub><mi>P</mi><mn>1</mn></msub><mfenced open='[' close=']'><mtable><mtr><mtd><msub><mi>K</mi><mn>0</mn></msub><msub><mi>&beta;</mi><mn>0</mn></msub><mo>+</mo><msubsup><mi>H</mi><mn>1</mn><mi>T</mi></msubsup><msub><mi>T</mi><mn>1</mn></msub></mtd></mtr><mtr><mtd><msubsup><mi>H</mi><mn>11</mn><mi>T</mi></msubsup><msub><mi>T</mi><mn>1</mn></msub></mtd></mtr></mtable></mfenced><mo>,</mo></mrow></math>]]></maths><maths num="0009"><![CDATA[<math><mrow><msub><mi>K</mi><mn>1</mn></msub><mo>=</mo><mfenced open='[' close=']'><mtable><mtr><mtd><msub><mi>K</mi><mn>0</mn></msub><mo>+</mo><msubsup><mi>H</mi><mn>1</mn><mi>T</mi></msubsup><msub><mi>H</mi><mn>1</mn></msub></mtd><mtd><msubsup><mi>H</mi><mn>1</mn><mi>T</mi></msubsup><msub><mi>H</mi><mn>11</mn></msub></mtd></mtr><mtr><mtd><msubsup><mi>H</mi><mn>11</mn><mi>T</mi></msubsup><msub><mi>H</mi><mn>1</mn></msub></mtd><mtd><msubsup><mi>H</mi><mn>11</mn><mi>T</mi></msubsup><msub><mi>H</mi><mn>11</mn></msub></mtd></mtr></mtable></mfenced><mo>,</mo></mrow></math>]]></maths><maths num="0010"><![CDATA[<math><mrow><msub><mi>P</mi><mn>1</mn></msub><mo>=</mo><msubsup><mi>K</mi><mn>1</mn><mrow><mo>-</mo><mn>1</mn></mrow></msubsup><mo>=</mo><mfenced open='[' close=']'><mtable><mtr><mtd><msub><mi>A</mi><mn>11</mn></msub></mtd><mtd><msub><mi>A</mi><mn>12</mn></msub></mtd></mtr><mtr><mtd><msub><mi>A</mi><mn>21</mn></msub></mtd><mtd><msub><mi>A</mi><mn>22</mn></msub></mtd></mtr></mtable></mfenced></mrow></math>]]></maths><maths num="0011"><![CDATA[<math><mrow><msub><mi>A</mi><mn>11</mn></msub><mo>=</mo><msubsup><mi>P</mi><mn>1</mn><mo>&prime;</mo></msubsup><mo>+</mo><msubsup><mi>P</mi><mn>1</mn><mo>&prime;</mo></msubsup><mrow><mo>(</mo><msubsup><mi>H</mi><mn>1</mn><mi>T</mi></msubsup><msub><mi>H</mi><mn>11</mn></msub><mo>)</mo></mrow><msup><mi>R</mi><mrow><mo>-</mo><mn>1</mn></mrow></msup><mrow><mo>(</mo><msubsup><mi>H</mi><mn>11</mn><mi>T</mi></msubsup><msub><mi>H</mi><mn>1</mn></msub><mo>)</mo></mrow><msubsup><mi>P</mi><mn>1</mn><mo>&prime;</mo></msubsup><mo>,</mo></mrow></math>]]></maths><maths num="0012"><![CDATA[<math><mrow><msub><mi>A</mi><mn>12</mn></msub><mo>=</mo><mo>-</mo><msubsup><mi>P</mi><mn>1</mn><mo>&prime;</mo></msubsup><mrow><mo>(</mo><msubsup><mi>H</mi><mn>1</mn><mi>T</mi></msubsup><msub><mi>H</mi><mn>11</mn></msub><mo>)</mo></mrow><msup><mi>R</mi><mrow><mo>-</mo><mn>1</mn></mrow></msup><mo>,</mo></mrow></math>]]></maths><maths num="0013"><![CDATA[<math><mrow><msub><mi>A</mi><mn>21</mn></msub><mo>=</mo><msubsup><mi>A</mi><mn>12</mn><mi>T</mi></msubsup><mo>,</mo></mrow></math>]]></maths>A<sub>22</sub>=R<sup>-1</sup><maths num="0014"><![CDATA[<math><mrow><mi>R</mi><mo>=</mo><msubsup><mi>H</mi><mn>11</mn><mi>T</mi></msubsup><msub><mi>H</mi><mn>11</mn></msub><mo>-</mo><mrow><mo>(</mo><msubsup><mi>H</mi><mn>11</mn><mi>T</mi></msubsup><msub><mi>H</mi><mn>1</mn></msub><mo>)</mo></mrow><msubsup><mi>P</mi><mn>1</mn><mo>&prime;</mo></msubsup><mrow><mo>(</mo><msubsup><mi>H</mi><mn>1</mn><mi>T</mi></msubsup><msub><mi>H</mi><mn>11</mn></msub><mo>)</mo></mrow></mrow></math>]]></maths><maths num="0015"><![CDATA[<math><mrow><msubsup><mi>P</mi><mn>1</mn><mo>&prime;</mo></msubsup><msup><mrow><mo>(</mo><msub><mi>K</mi><mn>0</mn></msub><mo>+</mo><msubsup><mi>H</mi><mn>1</mn><mi>T</mi></msubsup><msub><mi>H</mi><mn>1</mn></msub><mo>)</mo></mrow><mrow><mo>-</mo><mn>1</mn></mrow></msup><mo>=</mo><msub><mi>P</mi><mn>0</mn></msub><mo>-</mo><msub><mi>P</mi><mn>0</mn></msub><msubsup><mi>H</mi><mn>1</mn><mi>T</mi></msubsup><msup><mrow><mo>(</mo><mi>I</mi><mo>+</mo><msub><mi>H</mi><mn>1</mn></msub><msub><mi>P</mi><mn>0</mn></msub><msubsup><mi>H</mi><mn>1</mn><mi>T</mi></msubsup><mo>)</mo></mrow><mrow><mo>-</mo><mn>1</mn></mrow></msup><msub><mi>H</mi><mn>1</mn></msub><msub><mi>P</mi><mn>0</mn></msub><mo>,</mo></mrow></math>]]></maths><maths num="0016"><![CDATA[<math><mrow><msub><mi>P</mi><mn>0</mn></msub><mo>=</mo><msubsup><mi>K</mi><mn>0</mn><mrow><mo>-</mo><mn>1</mn></mrow></msubsup></mrow></math>]]></maths>其中,H<sub>01</sub>和H<sub>11</sub>分别为新增隐层节点对原样本集X<sub>0</sub>和新样本点x<sub>1</sub>的隐层输出矩阵,即<img file="FDA0000059392620000031.GIF" wi="1011" he="214" /><img file="FDA0000059392620000032.GIF" wi="1015" he="235" />N<sub>1</sub>和L分别为x<sub>1</sub>中的样本点个数和新增隐层节点个数,本方法仅考虑新样本点逐个到达的情况,故N<sub>1</sub>=L=1;步骤(3):更新类别球O的参数更新类别球O的参数,即更新其球心坐标和半径,使得新球O<sub>1</sub>恰好将X<sub>0</sub>和x<sub>1</sub>中的所有样本点都包围在其中,其更新公式为:<maths num="0017"><![CDATA[<math><mrow><msub><mi>R</mi><mi>new</mi></msub><mo>=</mo><mfrac><mrow><mo>|</mo><mo>|</mo><msub><mi>x</mi><mi>a</mi></msub><mo>-</mo><msub><mi>x</mi><mi>b</mi></msub><mo>|</mo><mo>|</mo></mrow><mn>2</mn></mfrac></mrow></math>]]></maths><maths num="0018"><![CDATA[<math><mrow><msub><mi>x</mi><mrow><mi>o</mi><mo>_</mo><mi>new</mi></mrow></msub><mo>=</mo><mfrac><mrow><msub><mi>x</mi><mi>a</mi></msub><mo>+</mo><msub><mi>x</mi><mi>b</mi></msub></mrow><mn>2</mn></mfrac></mrow></math>]]></maths>其中,x<sub>a</sub>和x<sub>b</sub>分别为新样本点x<sub>1</sub>的坐标和球O上距x<sub>1</sub>最远点的坐标,x<sub>b</sub>可由下式计算,x<sub>b</sub>=x<sub>o</sub>+λ<sub>2</sub>(x<sub>o</sub>-x<sub>a</sub>)其中,x<sub>o</sub>为球心O的坐标,λ<sub>2</sub>可由下式计算,<maths num="0019"><![CDATA[<math><mrow><msub><mi>&lambda;</mi><mn>2</mn></msub><mo>=</mo><mfrac><mrow><mo>|</mo><mo>|</mo><msub><mi>x</mi><mi>b</mi></msub><mo>-</mo><msub><mi>x</mi><mi>o</mi></msub><mo>|</mo><mo>|</mo></mrow><mrow><mo>|</mo><mo>|</mo><msub><mi>x</mi><mi>o</mi></msub><mo>-</mo><msub><mi>x</mi><mi>a</mi></msub><mo>|</mo><mo>|</mo></mrow></mfrac><mo>=</mo><mfrac><mi>R</mi><mrow><mo>|</mo><mo>|</mo><msub><mi>x</mi><mi>o</mi></msub><mo>-</mo><msub><mi>x</mi><mi>a</mi></msub><mo>|</mo><mo>|</mo></mrow></mfrac></mrow></math>]]></maths>
地址 100084 北京市100084信箱82分箱清华大学专利办公室