趙柏山,朱孟珍
(沈陽工業大學 信息科學與工程學院,遼寧 沈陽 110870)
隨著機器人在各個領域的發展和廣泛應用,人們對機器人的精度要求也進一步提高。機器人動力學系統由于受到很多的非線性的因素干擾,從而使得機器人的建模十分困難。與特征選擇類方法不同,特征提取方法是將原始數據映射到低維的空間,從而達到降維的目的。常用的特征提取的方法有許多,本文主要使用的是應用廣泛的主成分分析法(PCA)。極限學習機(ELM)是近年在神經網絡的基礎上發展起來的一種單隱層的前饋神經網絡[1]。與傳統的神經網絡相比,極限學習機的各方面性能都得到了提升,比如提高了訓練學習的速度,解決了傳統的神經網絡容易陷入局部極小的問題。
本文將結合PCA與ELM兩種方法,針對機械臂的狀態信號進行特征提取,提出一種改進的PCA-KELM算法,結合多分類方法分析機械臂系統中的非線性因素與特征值之間的關系,以便于以后的建模和后續研究。
通過PCA[2]方法能將原本巨大的數據量壓縮到較小的數據量,而且其基本信息不會丟失。PCA的核心思想就是降維,PCA算法的具體步驟如下。(1)整理原始的數據矩陣:Xm×n;(2)求原始矩陣Xm×n的協方差矩陣Cov(X);(3)求協方差矩陣的特征值和其對應的特征向量;(4)選取最大的K個特征值及其對應的特征向量,使其構成矩陣Wn×k;(5)計算得到矩陣Zm×k=Xm×nWn×k。
ELM算法隨機產生輸入層與隱含層間的連接權值以及隱含層神經元閾值,且在訓練過程中無須多次調整,只需要配置隱含層神經元的數目,選擇合適的激活函數,就可以獲得唯一的最優解[3]。極限學習機的網絡結構是單隱含層的,其中n是輸入層的神經元數目,l是隱含層的神經元數目,m為輸出層的神經元數目。
w為輸入層與隱含層之間的連接權值,可表示為:

β是隱含層與輸出層間的連接權值,可表示為:

隱含層閾值為:

設激活函數為g(x),則網絡的輸出為:

式(4)可以表示為:

其中,T'為矩陣T的轉置。

其中,H+為隱含層輸出矩陣H的Moore-Penrose廣義逆。關于H+的計算有多種方法,使用正交法[4]計算,當HHT矩陣為非奇異時,則H+=HT(HHT)-1。
將正則化系數1/C加在HH+的對角線上得到:

核極限學習機[5]就是在極限學習機的基礎上,引入核函數這個概念,利用Mercer條件構造核矩陣來代替其HH+。
于是式(7)可以表示為:

則極限學習機的輸出函數為:

多分類問題最初是用于支持向量機,主要的方法有一對一(OAO)算法,決策二叉樹(BT)算法以及方向無環圖(DAG)算法等。
對于K(K>2)類的分類問題,將全部的類別中的任意兩類組成一個二分類器,共計構成[K(K-1)]/2個二分類器[6]。在測試的時候,將樣本經過全部的[K(K-1)]/2二分類器,每個分類器都作出一次判斷,將這一樣本歸為某一類。最后得票最多的就是該樣本所屬的類別。
BT法在進行多類判別時,首先把全部的類別劃分為兩類,然后再將這兩個類別內部劃分為兩個子類別,直到所有的小類中都只含有一類為止[7]。這樣只需要構造K-1個二分類器。
DAG分類算法可以理解為OAO算法和BT算法的結合,把有向無環圖的思想引入到對OAO算法中,把多個分類器組合成一個多元分類器[8]。對于一個K類問題,DAG算法中有[K(K-1)]/2個節點,有[K(K-1)]/2個二分類器。
本文主要針對柔性關節機械臂的關節剛度問題做了研究[9-10]。柔性關節機械臂動力學方程為:


其中,m1,m2分別表示連桿1、2的質量,L1,L2分別表示連桿1、2的長度,l1,l2代表兩個桿的質心位置。g為重力加速度,qm1,qm2分別表示電機1、2的轉角,ql1,ql2分別表示連桿1、2的轉角,τ1,τ2分別表示兩個關節的控制力矩。Dm(qm)表示電機慣量,D1(q1)表示連桿的慣性矩陣表示科氏力和離心力,τ表示電機的輸入力矩,Ng表示齒輪的減速比,Kg表示關節剛度。
以下實驗結果均是基于關節1處的仿真數據進行的特征提取實驗。根據柔性關節的剛度不同,將數據分為5類。得到的數據集為1 600×10 001的原始特征矩陣。
針對ELM算法提出改進。ELM算法本身可以用于多分類的問題,但是其對于多分類問題的處理效果較差,于是我們考慮改進其多分類的算法。具體的改進方式是將支持向量機中多分類的方法引用到KELM中,使用OAO,BT和DAG 3種不同的算法處理分類問題時的多分類問題。得到仿真結果如圖1所示。
圖1中,粗體的圓圈代表樣本點經過測試估計的類別,偏細的點代表該樣本點正確的分類。3種方法的分類效果都不錯,粗體的圓圈幾乎把偏細的點全部覆蓋,只有零散的幾個點識別錯誤。

圖1 PCA-KELM-DAG算法結果
之后我們再使用傳統的PCA-ELM算法與其對比,對比結果如表1所示。

表1 不同算法的結果對比
從表1可以看出,改進的PCA-KELM算法對比傳統的PCA-ELM在測試集的正確率上有了很大的提升。3種多分類算法的正確率都比較高,算法效果比較優秀,其中BT分類算法的測試集正確率比其他兩種分類方法的測試集正確率稍高。
基于PCA算法的KELM算法,首先將原本高維的數據通過PCA算法進行特征提取實現降維,再利用KELM 算法結合多分類方法識別樣本的剛度屬于哪一區間。仿真結果表明,該算法的正確率相比于傳統的PCA-ELM算法有了大幅的提高。本文的研究為今后的柔性關節機械臂的建模建立了基礎,方便了后續的關于柔性關節機械臂的相關研究。