麻安鵬, 王 君, 杜金星, 楊本娟
(貴州師范大學 數學科學學院, 貴陽 550025)
隨著信息時代的到來,接收到的信息數據更加復雜多變,這些數據大多都以張量的形式表示,特別以張量的高階形式表示,例如:三階張量有彩色圖片、灰度視頻等;四階張量有彩色視頻、帶時間序列的灰度視頻等。因此基于張量數據的機器學習方法成為研究學者們廣泛探討的問題,同時也涌現出了大量針對張量數據(三階及以上)學習的算法,支持張量機算法就是其中之一。支持張量機是主要針對張量數據學習的算法,是支持向量機從向量空間到張量空間理論和方法的推導?;谥С窒蛄繖C的學習框架,Tao等人結合交替投影的思想以及多線性代數的運算,提出了有監督的張量學習框架,但這種推廣只是簡單地將向量形式的數據輸入變成張量形式的數據輸入而已,在本質上并沒有解決實際問題;接著Tao等人又將雙向最優投影算法與有監督的張量學習框架結合,提出了支持張量機(STM)算法。
支持張量機模型的求解與支持向量機模型求解相似,都需要構造一個最優分類超平面,不同的是在對支持張量機求取分類超平面時需反復迭代求解超平面所需的參數,在此過程中計算量大、時間需求長、內存要求高。但如果直接將張量數據拉成向量形式的數據輸入到支持向量機中對數據進行處理的話,可能出現以下問題:
(1)無法獲得原始數據中潛在的、更有意義的信息。因為將張量數據拉成向量數據的形式對數據進行處理,可能會使數據與數據之間的聯系遭到破壞,使數據中重要的信息丟失和數據中存在的冗余信息被掩蓋;
(2)容易產生高維向量,限制后期學習。從而導致數據分類正確率低等情況,而采用支持張量機算法對張量數據進行處理,就能很好的解決上述存在的問題,故而一些關于支持張量機算法改進方法被提出。
支持張量機是在支持向量機的基礎上推廣而來的,最初只是在支持向量機上簡單的將輸入參數從向量形式輸入變成張量形式輸入,也就是將x→X,w→W輸入,再把向量的乘積變為張量的內積即可。仔細觀察發現該模型與支持向量機并沒有什么本質上的區別,因為張量的內積與將張量展開成向量求取向量的乘積結果相同,這意味著其結果與直接將數據展開成向量并采用支持向量機的結果是一樣的,這種只改變輸入方式,而不對模型進行優化的方法,本質上只是經典支持向量機的一個線性映射。如果只將這些輸入參數變成張量的形式輸入,這種推廣無法體現支持張量機想要盡可能多的保留張量數據內部機構信息的核心目的。為了更多的保留張量內部結構信息,Cai等人提出了支持矩陣機模型;受支持矩陣機模型的啟發,Tao等人將支持張量機的張量權重限制在CP秩意義下的秩一張量中[1],故而得到了經典支持張量機模型,在此模型中,張量的權重參數W的形式(1):
(1)
再采用交替投影法求取W,得到的分類決策函數為式(2):
(2)
經典支持張量機模型式(3):
(3)
求解該模型一般轉化為其對偶問題的求解,對偶問題為式(4):
(4)
再通過SMO算法計算出W,最后再求出決策函數式(5):
(5)
優化經典支持張量機模型主要從減少儲存空間、縮短分類時間、提高模型精度和擴展模型性能等對模型進行優化,也就是從輸入數據、模型內部運算和其他方面擴展對模型進行改進。
對數據預處理,從而減少存儲空間、縮短分類時間。數據預處理主要是對數據進行降維處理,收集到的數據大多包含許多冗余信息,但這些冗余信息在數據分類和特征提取中,并不是所有特征都是有用的。因此想要在運算過程中縮短訓練時間,可在對數據分類之前對數據降維處理。對張量數據降維處理的方法有:主成分分析算法(PCA)、遞歸特征消除法(RFE)、多線性主成分分析算法(MPCA)、無關多線性主成分分析算法(UMPCA)、流行學習等。采用PCA對張量數據降維,首先要將張量數據拉成向量的形式,故而PCA主要針對向量數據降維;而采用MPCA算法可直接對張量數據降維,不僅能夠保留張量數據固有的高階結構和內在相關性,還能為后續訓練降低計算成本,故而MPCA主要針對張量(三階及以上張量)數據降維;RFE主要針對數據中冗余信息繁瑣,不相關的數據進行分類的特征選擇方法;UMPCA主要提取無關特征,以確保保存數據中更重要的信息;流行學習主要是為了保存數據內部結構被提出的。
改變張量內積求解方式,從張量模型內部提高模型精度?;谥С窒蛄繖C和支持張量機的理論與發展過程,通過研究與分析,可知支持張量機主要在張量的分解上進行了一系列的改進,期望在分類結果中體現不同張量內部的結構信息,常常使用CP分解、Tucker分解的方式來求取張量內積,從而改進支持張量機中求核矩陣的方法。
令張量Xi∈RI1×I2×…×IN和張量Xj∈RI1×I2×…×IN:
(1)CP分解求取張量內積公式(6)為:
(6)
(2)Tucker分解求取張量內積公式(7)為:
(7)
對于擴展模型的應用方面,將在線學習與支持張量機結合在一起,提出在線支持張量機算法;將半監督學習運用到支持張量機上,提出半監督支持張量機算法。
(1)在線學習與支持張量機。由于數據的未知性,無法預測數據到達的時間以及順序,也不可能將所有數據都打包存儲起來批量學習。因為這樣的批量學習,不僅浪費時間和儲存空間,還不能保證數據的時效性,故而將在線學習與支持張量機結合,提出了在線支持張量機、快速支持張量機、在線最小二乘支持張量機等算法。這些算法都是支持張量機關于在線學習方面的拓展應用,可以有效減少模型訓練的時間和儲存空間,同時能夠更好的保障數據的及時性。
(2)半監督學習與支持張量機。針對支持張量機訓練時間較長問題,將半監督學習運用到支持張量機上,以減少支持張量機訓練時間。支持張量機主要依賴于有標記的訓練樣本,對于未標記的樣本往往“束手無策”,但在大多數情況下,不可能去對所有數據進行逐個標記?;谶@種考慮,結合半監督學習的優點,將半監督學習運用到支持張量機上,提出了最小二乘半監督支持張量機學習算法、基于Tucker分解的半監督支持張量機、半監督張量學習的圖像分類等模型,這種結合不僅能充分利用未標記數據,減少時間投入,還能非常有效的提升支持張量機算法的識別率。
在人工智能領域,如人臉識別、圖像分類、遙感圖像分類等圖像處理中支持張量機算法應用十分廣泛。
(1)人臉識別。首先提取需要識別的人臉圖像的特征信息,也就是對人臉進行一個特征建模,再將提取的特征信息與數據庫中已知人臉圖像進行比較,相當于解答模型是否正確的過程,最后得到相關結論。決定人臉識別效果的關鍵,通常與選擇特征提取方法和分類器密切相關,常見的特征提取和降維算法有主成分分析(PCA)、多線性主成分分析(MPCA)、遞歸特征消除法(RFE)等;常用的分類器有最近鄰分類器(KNN)、支持向量機算法(SVM)、支持張量機算法(STM)等。首先采用MPCA對人臉數據降維處理,再用支持高階張量機對數據分類識別[2]。與PCA算法相比,MPCA算法對張量數據降維可有效地降低后續訓練時間,同時更好的保留張量數據內在的空間結構信息,從而提升識別性能。
(2)圖像分類。圖像分類是指對給定的圖像,判斷其所屬的類別。但在實際應用中,圖像往往包含多個物體,需要評估圖像分類的可行性。把基于向量空間中的模糊支持向量機推廣到張量空間中,提出了模糊支持張量機[3]。首先利用手寫體數字數據庫對模糊支持張量機模型的分類性進行實驗分析,同時驗算算法性能,最后將模糊支持張量機算法應用到羽絨菱節圖像中,通過對比表明該算法能有效提高圖像分類識別率。
(3)遙感圖像分類?;谥С謴埩繖C算法提出了支持規范張量訓練機,此算法主要用于二進制分類,可有效的避免支持張量機將張量數據投影到向量的結構信息損失[4]。特別是在小樣本的訓練集下,能得到高效的識別分類結果。
文本分類主要是根據待分類數據的關鍵特征匹配,因此必須根據某種評價標準選擇最優的匹配結果,從而完成分類,評價標準的選擇直接影響分類器的分類性能?;谥С謴埩繖C的學習框架,采用交替投影的算法推出了支持張量機算法,再將支持張量機算法應用于文本分類[5]。結果表明,對于小樣本數據該算法能有效降低數據特征維數,且在處理小樣本數據與數據偏斜問題上有明顯優勢。
支持張量機應用于醫學診斷,如:對阿爾茲海默癥、腫瘤、癲癇疾病等的診斷。將支持張量機算法應用于阿爾茲海默癥的腦白質圖像分類,并結合遞歸特征消除法對腦白質圖像進行特征選擇,取得了很好的分類效果[6]。結果表明,該算法能有效診斷阿爾茲海默癥。
支持張量機是支持向量機理論和方法到張量空間的推導,本文從減少儲存空間縮短分類時間、提高模型精度和擴展模型性能等方面對模型進行優化,同時列舉了支持張量機算法在現實生活中的一些應用。對于支持張量機的優化問題,可從以下二方面做進一步的探討:
(1)支持張量機與在線學習結合主要針對的是低階張量數據,可擴展到高階的張量數據上。
(2)目前對支持張量機的研究大多是線性的,而基于非線性方向的研究還比較少,可向非線性方向擴展。