发明名称 一种基于ELM的多类Adaboost集成学方法
摘要 本发明公开了一种基于ELM的多类Adaboost集成学方法,具体包括以下几个步骤:ELM方法、多类Adaboost方法、LBP方法,此外还通过使用PCA方法来局部替换做测试。本发明将ELM方法作为基础分类器,由于其运算简便快速以及良好的性能,与现有的经典方法相比,本申请的方法可以直接应用于多分类问题。通过人脸数据集的对比实验,实验结果表明,本方法可以使预测的分类结果更加稳定,还具有良好的泛化性能。
申请公布号 CN104598925A 申请公布日期 2015.05.06
申请号 CN201510036010.5 申请日期 2015.01.23
申请人 湖州师范学院 发明人 蒋云良;沈叶峰;刘勇;范婧
分类号 G06K9/62(2006.01)I 主分类号 G06K9/62(2006.01)I
代理机构 北京天奇智新知识产权代理有限公司 11340 代理人 韩洪
主权项 一种基于ELM的多类Adaboost集成学习方法,其特征在于:包括以下几个步骤:a)ELM方法:对于N个任样本(x<sub>i</sub>,t<sub>i</sub>),x<sub>i</sub>=[x<sub>i1</sub>,x<sub>i2</sub>,…,x<sub>id</sub>]<sup>T</sup>∈R<sup>d</sup>,t<sub>i</sub>=[t<sub>i1</sub>,t<sub>i2</sub>,…,t<sub>iK</sub>]<sup>T</sup>∈R<sup>K</sup>,带L个隐层节点且激活函数为h(x)的标准单隐藏层前馈神经网络的数学模型为:<maths num="0001" id="cmaths0001"><math><![CDATA[<mrow><msubsup><mi>&Sigma;</mi><mrow><mi>i</mi><mo>=</mo><mn>1</mn></mrow><mi>L</mi></msubsup><msub><mi>&beta;</mi><mi>i</mi></msub><msub><mi>h</mi><mi>i</mi></msub><mrow><mo>(</mo><msub><mi>x</mi><mi>j</mi></msub><mo>)</mo></mrow><mo>=</mo><msubsup><mi>&Sigma;</mi><mrow><mi>i</mi><mo>=</mo><mn>1</mn></mrow><mi>L</mi></msubsup><msub><mi>&beta;</mi><mi>i</mi></msub><msub><mi>h</mi><mi>i</mi></msub><mrow><mo>(</mo><msub><mi>w</mi><mi>i</mi></msub><mo>&CenterDot;</mo><msub><mi>x</mi><mi>j</mi></msub><mo>+</mo><msub><mi>b</mi><mi>i</mi></msub><mo>)</mo></mrow><mo>=</mo><msub><mi>o</mi><mi>j</mi></msub><mo>;</mo></mrow>]]></math><img file="FDA0000661150240000011.GIF" wi="839" he="85" /></maths>其中j=1,2,…,N,w<sub>I</sub>=[w<sub>i1</sub>,w<sub>i2</sub>,…,w<sub>id</sub>]<sup>T</sup>表示连接第i个隐层节点和输入节点的权重向量,而β<sub>i</sub>=[β<sub>i1</sub>,…,β<sub>iK</sub>]<sup>T</sup>则表示连接第i个隐藏节点和输出节点的权重向量,o<sub>j</sub>=[o<sub>j1</sub>,o<sub>j2</sub>,…o<sub>jk</sub>]<sup>T</sup>表示该单隐藏层前馈神经网络的第i个输出向量,b<sub>i</sub>则是第i个隐藏节点的阈值,(·)则表示两个向量的内积,隐层节点数为L的单隐层前馈神经网络的激活函数h(x)可以简写表示为Hβ=T;b)主成分分析方法:PCA方法的主要过程如下:<maths num="0002" id="cmaths0002"><math><![CDATA[<mrow><mi>X</mi><mo>=</mo><msub><mrow><mo>(</mo><msub><mi>x</mi><mi>ij</mi></msub><mo>)</mo></mrow><mrow><mi>n</mi><mo>*</mo><mi>p</mi></mrow></msub><mo>=</mo><mtable><mtr><mtd><mrow><mfenced open='[' close=']'><mtable><mtr><mtd><msub><mi>x</mi><mn>11</mn></msub></mtd><mtd><msub><mi>x</mi><mn>12</mn></msub></mtd><mtd><mo>.</mo><mo>.</mo><mo>.</mo></mtd><mtd><msub><mi>x</mi><mrow><mn>1</mn><mi>p</mi></mrow></msub></mtd></mtr><mtr><mtd><mo>.</mo></mtd><mtd><mo>.</mo></mtd><mtd></mtd><mtd><mo>.</mo></mtd></mtr><mtr><mtd><mo>.</mo></mtd><mtd><mo>.</mo></mtd><mtd><mo>.</mo><mo>.</mo><mo>.</mo></mtd><mtd><mo>.</mo></mtd></mtr><mtr><mtd><mo>.</mo></mtd><mtd><mo>.</mo></mtd><mtd></mtd><mtd><mo>.</mo></mtd></mtr><mtr><mtd><msub><mi>x</mi><mrow><mi>n</mi><mn>1</mn></mrow></msub></mtd><mtd><msub><mi>x</mi><mrow><mi>n</mi><mn>2</mn></mrow></msub></mtd><mtd><mo>.</mo><mo>.</mo><mo>.</mo></mtd><mtd><msub><mi>x</mi><mi>np</mi></msub></mtd></mtr></mtable></mfenced><mo>;</mo></mrow></mtd></mtr></mtable></mrow>]]></math><img file="FDA0000661150240000012.GIF" wi="710" he="190" /></maths>(b1)计算数据矩阵X的协方差矩阵V;(b2)通过公式|V‑λΕ|=0计算矩阵V的特征值λ,其中λ<sub>1</sub>≥λ<sub>2</sub>≥…≥λ<sub>p</sub>;(b3)通过(V‑λΕ)β=0计算相应的特征向量,其中β为β<sub>1</sub>,β<sub>2</sub>,…,β<sub>p</sub>;(b4)算出最后的主成分矩阵Y<sub>r</sub>=β′<sub>r</sub>X(r=1,2,…,p);其中E是一个单位矩阵,E的维度同矩阵V,矩阵Y由n行向量组成,每一个向量是矩阵X特征值所对应的特征向量;c)多类Adaboost方法:预先定义函数I(x)为:<maths num="0003" id="cmaths0003"><math><![CDATA[<mrow><mi>I</mi><mrow><mo>(</mo><mi>x</mi><mo>)</mo></mrow><mo>=</mo><mfenced open='{' close=''><mtable><mtr><mtd><mn>1</mn><mo>,</mo></mtd><mtd><mi>ifx</mi><mo>=</mo><mi>true</mi></mtd></mtr><mtr><mtd><mn>0</mn><mo>,</mo></mtd><mtd><mi>ifx</mi><mo>=</mo><mi>false</mi></mtd></mtr></mtable></mfenced><mo>,</mo></mrow>]]></math><img file="FDA0000661150240000021.GIF" wi="471" he="109" /></maths>首先给定训练数据{(x<sub>1</sub>,y<sub>1</sub>),(x<sub>2</sub>,y<sub>2</sub>),…,(x<sub>N</sub>,y<sub>N</sub>)},其中x<sub>i</sub>∈R<sup>d</sup>表示维度为d的第i个输入特征向量,相对的y<sub>i</sub>则表示第i个特征向量所属的类别标签,这里令y<sub>i</sub>∈{‑1,+1}分为两类,通过使用T<sub>j</sub>(x)函数来表示第i个若分类器,同时假定一共含有M个若分类器,执行以下步骤:(c1)初始化每个节点的观测权值ω<sub>i</sub>为1/N,i=1,2,…,N;(c2)对于每一个分类器m,m=1:M,执行如下:通过使用权值ω<sub>i</sub>在分类器T<sub>m</sub>(x)下训练相应的数据;计算对应的分类误差:<maths num="0004" id="cmaths0004"><math><![CDATA[<mrow><msub><mi>err</mi><mi>m</mi></msub><mo>=</mo><mfrac><mrow><msubsup><mi>&Sigma;</mi><mrow><mi>i</mi><mo>=</mo><mn>1</mn></mrow><mi>N</mi></msubsup><msub><mi>&omega;</mi><mi>i</mi></msub><mi>I</mi><mrow><mo>(</mo><msub><mi>y</mi><mi>i</mi></msub><mo>&NotEqual;</mo><msub><mi>T</mi><mi>m</mi></msub><mrow><mo>(</mo><msub><mi>x</mi><mi>i</mi></msub><mo>)</mo></mrow><mo>)</mo></mrow></mrow><mrow><msubsup><mi>&Sigma;</mi><mrow><mi>i</mi><mo>=</mo><mn>1</mn></mrow><mi>N</mi></msubsup><msub><mi>w</mi><mi>i</mi></msub></mrow></mfrac><mo>;</mo></mrow>]]></math><img file="FDA0000661150240000022.GIF" wi="539" he="125" /></maths>用以上求得的误差来计算相应的第m个分类器的权重<img file="FDA0000661150240000023.GIF" wi="382" he="113" />对所有i=1,2,…,N,更新数据样本的权值:ω<sub>i</sub>=ω<sub>i</sub>·exp(α<sub>m</sub>·I(y<sub>i</sub>≠T<sub>m</sub>(x<sub>i</sub>)));对所有i=1,2,…,N重新标准化权值ω<sub>i</sub>;(c3)输出C(x),由分类器进行投票得到最后的结果<maths num="0005" id="cmaths0005"><math><![CDATA[<mrow><mi>C</mi><mrow><mo>(</mo><mi>x</mi><mo>)</mo></mrow><mo>=</mo><mi>arg</mi><msub><mi>max</mi><mi>k</mi></msub><msubsup><mi>&Sigma;</mi><mrow><mi>m</mi><mo>=</mo><mn>1</mn></mrow><mi>M</mi></msubsup><msub><mi>&alpha;</mi><mi>m</mi></msub><mo>&CenterDot;</mo></mrow>]]></math><img file="FDA0000661150240000024.GIF" wi="626" he="78" /></maths><maths num="0006" id="cmaths0006"><math><![CDATA[<mrow><mi>I</mi><mrow><mo>(</mo><msub><mi>T</mi><mi>m</mi></msub><mo>=</mo><mi>k</mi><mo>)</mo></mrow><mo>.</mo><mo>;</mo></mrow>]]></math><img file="FDA0000661150240000025.GIF" wi="326" he="69" /></maths>d)LBP方法:将一幅图划分成3*3的窗口,每个窗口含一个像素灰度值,将周围点的值分别于中心点的值做比较,如果大于中心点的值就标注是1,否则就标为0;最终经过对比得到一串8位的二进制数,对应的就可以计算该值,即LBP值;对应的公式可记为:<img file="FDA0000661150240000026.GIF" wi="672" he="88" />其中(x<sub>c</sub>,y<sub>c</sub>)是中心像素,i<sub>c</sub>对应的灰度值;而i<sub>p</sub>则是相邻像素点的灰度值,s是一个符号函数:<maths num="0007" id="cmaths0007"><math><![CDATA[<mrow><mi>s</mi><mrow><mo>(</mo><mi>x</mi><mo>)</mo></mrow><mo>=</mo><mfenced open='{' close=''><mtable><mtr><mtd><mn>1</mn><mo>,</mo></mtd><mtd><mi>ifx</mi><mo>&GreaterEqual;</mo><mn>0</mn></mtd></mtr><mtr><mtd><mn>0</mn><mo>,</mo></mtd><mtd><mi>else</mi><mo>.</mo></mtd></mtr></mtable></mfenced><mo>.</mo></mrow>]]></math><img file="FDA0000661150240000027.GIF" wi="452" he="117" /></maths>
地址 313000 浙江省湖州市吴兴区学士路1号