趙柏山,朱孟珍
(沈陽工業(yè)大學 信息科學與工程學院,遼寧 沈陽 110870)
隨著機器人在各個領域的發(fā)展和廣泛應用,人們對機器人的精度要求也進一步提高。機器人動力學系統(tǒng)由于受到很多的非線性的因素干擾,從而使得機器人的建模十分困難。與特征選擇類方法不同,特征提取方法是將原始數(shù)據(jù)映射到低維的空間,從而達到降維的目的。常用的特征提取的方法有許多,本文主要使用的是應用廣泛的主成分分析法(PCA)。極限學習機(ELM)是近年在神經(jīng)網(wǎng)絡的基礎上發(fā)展起來的一種單隱層的前饋神經(jīng)網(wǎng)絡[1]。與傳統(tǒng)的神經(jīng)網(wǎng)絡相比,極限學習機的各方面性能都得到了提升,比如提高了訓練學習的速度,解決了傳統(tǒng)的神經(jīng)網(wǎng)絡容易陷入局部極小的問題。
本文將結合PCA與ELM兩種方法,針對機械臂的狀態(tài)信號進行特征提取,提出一種改進的PCA-KELM算法,結合多分類方法分析機械臂系統(tǒng)中的非線性因素與特征值之間的關系,以便于以后的建模和后續(xù)研究。
通過PCA[2]方法能將原本巨大的數(shù)據(jù)量壓縮到較小的數(shù)據(jù)量,而且其基本信息不會丟失。PCA的核心思想就是降維,PCA算法的具體步驟如下。(1)整理原始的數(shù)據(jù)矩陣:Xm×n;(2)求原始矩陣Xm×n的協(xié)方差矩陣Cov(X);(3)求協(xié)方差矩陣的特征值和其對應的特征向量;(4)選取最大的K個特征值及其對應的特征向量,使其構成矩陣Wn×k;(5)計算得到矩陣Zm×k=Xm×nWn×k。
ELM算法隨機產(chǎn)生輸入層與隱含層間的連接權值以及隱含層神經(jīng)元閾值,且在訓練過程中無須多次調(diào)整,只需要配置隱含層神經(jīng)元的數(shù)目,選擇合適的激活函數(shù),就可以獲得唯一的最優(yōu)解[3]。極限學習機的網(wǎng)絡結構是單隱含層的,其中n是輸入層的神經(jīng)元數(shù)目,l是隱含層的神經(jīng)元數(shù)目,m為輸出層的神經(jīng)元數(shù)目。
w為輸入層與隱含層之間的連接權值,可表示為:
β是隱含層與輸出層間的連接權值,可表示為:
隱含層閾值為:
設激活函數(shù)為g(x),則網(wǎng)絡的輸出為:
式(4)可以表示為:
其中,T'為矩陣T的轉置。
其中,H+為隱含層輸出矩陣H的Moore-Penrose廣義逆。關于H+的計算有多種方法,使用正交法[4]計算,當HHT矩陣為非奇異時,則H+=HT(HHT)-1。
將正則化系數(shù)1/C加在HH+的對角線上得到:
核極限學習機[5]就是在極限學習機的基礎上,引入核函數(shù)這個概念,利用Mercer條件構造核矩陣來代替其HH+。
于是式(7)可以表示為:
則極限學習機的輸出函數(shù)為:
多分類問題最初是用于支持向量機,主要的方法有一對一(OAO)算法,決策二叉樹(BT)算法以及方向無環(huán)圖(DAG)算法等。
對于K(K>2)類的分類問題,將全部的類別中的任意兩類組成一個二分類器,共計構成[K(K-1)]/2個二分類器[6]。在測試的時候,將樣本經(jīng)過全部的[K(K-1)]/2二分類器,每個分類器都作出一次判斷,將這一樣本歸為某一類。最后得票最多的就是該樣本所屬的類別。
BT法在進行多類判別時,首先把全部的類別劃分為兩類,然后再將這兩個類別內(nèi)部劃分為兩個子類別,直到所有的小類中都只含有一類為止[7]。這樣只需要構造K-1個二分類器。
DAG分類算法可以理解為OAO算法和BT算法的結合,把有向無環(huán)圖的思想引入到對OAO算法中,把多個分類器組合成一個多元分類器[8]。對于一個K類問題,DAG算法中有[K(K-1)]/2個節(jié)點,有[K(K-1)]/2個二分類器。
本文主要針對柔性關節(jié)機械臂的關節(jié)剛度問題做了研究[9-10]。柔性關節(jié)機械臂動力學方程為:
其中,m1,m2分別表示連桿1、2的質(zhì)量,L1,L2分別表示連桿1、2的長度,l1,l2代表兩個桿的質(zhì)心位置。g為重力加速度,qm1,qm2分別表示電機1、2的轉角,ql1,ql2分別表示連桿1、2的轉角,τ1,τ2分別表示兩個關節(jié)的控制力矩。Dm(qm)表示電機慣量,D1(q1)表示連桿的慣性矩陣表示科氏力和離心力,τ表示電機的輸入力矩,Ng表示齒輪的減速比,Kg表示關節(jié)剛度。
以下實驗結果均是基于關節(jié)1處的仿真數(shù)據(jù)進行的特征提取實驗。根據(jù)柔性關節(jié)的剛度不同,將數(shù)據(jù)分為5類。得到的數(shù)據(jù)集為1 600×10 001的原始特征矩陣。
針對ELM算法提出改進。ELM算法本身可以用于多分類的問題,但是其對于多分類問題的處理效果較差,于是我們考慮改進其多分類的算法。具體的改進方式是將支持向量機中多分類的方法引用到KELM中,使用OAO,BT和DAG 3種不同的算法處理分類問題時的多分類問題。得到仿真結果如圖1所示。
圖1中,粗體的圓圈代表樣本點經(jīng)過測試估計的類別,偏細的點代表該樣本點正確的分類。3種方法的分類效果都不錯,粗體的圓圈幾乎把偏細的點全部覆蓋,只有零散的幾個點識別錯誤。
圖1 PCA-KELM-DAG算法結果
之后我們再使用傳統(tǒng)的PCA-ELM算法與其對比,對比結果如表1所示。
表1 不同算法的結果對比
從表1可以看出,改進的PCA-KELM算法對比傳統(tǒng)的PCA-ELM在測試集的正確率上有了很大的提升。3種多分類算法的正確率都比較高,算法效果比較優(yōu)秀,其中BT分類算法的測試集正確率比其他兩種分類方法的測試集正確率稍高。
基于PCA算法的KELM算法,首先將原本高維的數(shù)據(jù)通過PCA算法進行特征提取實現(xiàn)降維,再利用KELM 算法結合多分類方法識別樣本的剛度屬于哪一區(qū)間。仿真結果表明,該算法的正確率相比于傳統(tǒng)的PCA-ELM算法有了大幅的提高。本文的研究為今后的柔性關節(jié)機械臂的建模建立了基礎,方便了后續(xù)的關于柔性關節(jié)機械臂的相關研究。