沈小霞,許哲源,於東軍,賈修一
(南京理工大學 計算機科學與工程學院,江蘇 南京 210094)
標記多義性問題是機器學習領域的熱門研究方向。在現(xiàn)有的機器學習范式中,解決標記多義性問題的框架主要有兩種,即單標簽學習(Single-label learning,SLL)和多標簽學習(Multi-label learning,MLL)[1]。SLL即為標準監(jiān)督學習的特例,其假設每個樣例只屬于單個類,對應于現(xiàn)實世界中每個實例只有一個標簽的情況。MLL是SLL框架的擴展。在MLL中,一個實例可以同時與多個類別標記相關聯(lián)。實際上這兩種傳統(tǒng)標簽學習都旨在回答一個基本問題,“哪個/些標簽可以描述實例?”。相對于SLL而言,MLL允許答案由多個標簽構成,從而可以在一定程度上處理標簽的歧義問題。然而,SLL和MLL都不能應用到更詳盡的問題,即它們沒有辦法進一步回答“每個標記描述實例的程度是多少?”。也就是說,傳統(tǒng)的標簽學習范式不能給出標簽所占實例描述的相對比重。
在現(xiàn)實世界中,標簽間相對比重所隱含的信息可能比許多人想象的更常見。一個典型例子是面部表情的情緒分析。面部表情經常傳達多種基本情緒的復雜混合,每種基本情感在表達中起著不同的作用,所有基本情緒的相對強度自然形成面部表情的情緒分布。通過將具有最高強度的情緒或具有高于閾值的強度的情緒視為陽性標記,該問題可以選擇SLL或MLL作為解決方案。然而這樣做的代價是,將會失去相關情緒的不同強度的重要信息,這也就意味著,單靠SLL或MLL框架無法準確預測人物在現(xiàn)實圖片所表現(xiàn)的復雜情感。因此,針對該問題,文獻[3]提出了標記分布學習范式(Label distribution learning,LDL)。標記分布可以給出標簽強度的分布,所以能夠很好地回答“每個標簽描述實例的程度是多少?”,進而可以得到更加準確的預測結果。也就是說,相對于傳統(tǒng)標簽學習而言,LDL范式可以提供更豐富的實例描述信息,分配給實例的標簽的不同相對重要性,能更好地表示標記多義性問題。
LDL已廣泛應用于許多現(xiàn)實世界的應用中。Geng等為解決通過圖片預測人物年齡問題首次顯式提出標記分布學習的概念[4,5],隨后將LDL范式應用于預測圖片中頭部姿勢[6],并將LDL的應用拓展到面部圖片表情識別上,通過面部圖片來預測人物表情的情緒分布[7,8],緊接著又發(fā)表了一項結合圖片相關文本進行表情預測的研究[9]。另外,Geng等還將LDL應用在電影評級預測[10]、美感感知[11]等工作中。Xue等則應用LDL范式嘗試對人格傾向進行預測[12]。除此之外還有Zhang等提出以LDL范式對視頻監(jiān)控中的人群計數(shù)[13],Sun等應用LDL范式對視頻中出現(xiàn)的異常行為進行識別[14]。
盡管越來越多的LDL算法被提出并取得了良好的效果,但是關于LDL的集成學習研究則很少,僅有Geng等提出的LogitBoost算法[15]、Shen等提出的LDL forests算法[16]和Zhai等提出的集成神經網絡(Ensemble neural networks,ENN)算法[17]。LogitBoost算法使用LDL模型族來學習樣本以避免特定模型的潛在影響。LDL forests算法則是利用可微決策樹進行算法集成。ENN算法則是使用具有不同標簽集的訓練集來訓練具有偏好的神經網絡。然而,上述的算法都是作為獨立算法而設計的,目前沒有用于提升LDL算法的通用集成框架。本文希望通過集成學習的方式,設計出一種適用于LDL算法的通用集成框架,能夠有效地對目前各種獨立算法進行提升。
本文中使用的主要符號如下所示。實例變量用x表示,標簽變量用y表示,x的屬性集用X={x1,x2,…,xn}表示,在特定的第j個標簽上的描述度用dj表示,而x的描述度分布則用D={d1,d2,…,dn}來表示,其中n為標簽的總數(shù)。LDL是一種通過為每個標簽y指定描述度來標記實例x的方法,即輸入屬性集X,輸出為描述度分布D。同時需滿足歸一化條件,即對任意給定實例而言,描述度之和為1。
Adaboost是一種實用的Boosting方法,它依賴于大量的分類器,使用一種基于權重的多數(shù)投票機制。分類器的權重是基于它的性能而分配的,可靠程度越高,權重就越大。它的核心思想是根據(jù)樣本的概率分布來訓練分類器,使得被前面分類器錯誤分類的樣本在之后被選中的概率更大,從而使分類器組可以逐漸地聚焦于樣本集中難以處理的方面。
Adaboost逐個創(chuàng)建分類器,每個分類器都由不同的訓練子集產生,而訓練子集的構成依賴于前一個分類器。Adaboost依據(jù)當前概率分布來選取訓練子集的成員。設訓練集的樣本總數(shù)為m,則開始時每個樣本被選取的概率是相同的,以概率矩陣P1生成了訓練子集T1,并訓練出第一個分類器C1。然后,樣本被選中的概率會根據(jù)C1的結果進行修改。具體而言,被分類器C1正確分類的樣本再被T2選中的概率降低,而被分類器C1錯誤分類的樣本再被T2選中的概率會增加,分類器C2則依據(jù)修改后的概率矩陣P2生成訓練子集T2,并按照這樣的方式繼續(xù)迭代下去直到指定迭代次數(shù)。
與傳統(tǒng)Boosting算法另一個不同之處是最終結果的投票機制。Adaboost使用一種基于權重的多數(shù)投票機制,分類器的權重是基于它的性能而分配的,可靠程度越高,權重就越大。在實際應用中準確地賦予各分類器權重是非常重要的,可以使用感知機的學習方法來確定權重。剛開始時給每個分類器相等的權重,然后不斷用不同樣本去訓練這個系統(tǒng)。每次系統(tǒng)錯分一個樣本,就可以根據(jù)系統(tǒng)預測值和真實值之間的關系來增加或減少某些分類器的權重。因此,Adaboost算法是一種實用的Boosting方法,它既考慮到分類器間的互補性,也相對于傳統(tǒng)boosting方法減少了對于樣本的選擇代價,是結合LDL研究的優(yōu)選方案。
Adaboost是一種實用的Boosting方法,然而Adaboost僅適用于傳統(tǒng)分類問題,不能夠直接應用到LDL問題上來。本文設計了一種適用于LDL問題的Adaboost集成框架,并將其命名為Adaboost-LDL,能夠將Adaboost框架擴展到標記分布學習上來。
為了能夠在集成學習中有效地區(qū)分樣本的預測質量好壞,本文從Learning To Rank問題和多標記問題上的PRO損失[18]獲得啟發(fā),設計了一種LDL問題專用的量化排序損失評價指標,并將其命名為SortLoss。
給定描述度分布D={d1,d2,d3,d4},在LDL問題中描述度的和為1,即
(1)
假設比例關系為
d1∶d2∶d3∶d4=2∶3∶4∶1
(2)
那么便可以通過式(1)和式(2),解得D={0.2,0.3,0.4,0.1}。接下來對描述度序列進行由高到低的排序,便得到排序后的序列H={h1,h2,h3,h4},在上例中h1、h2、h3、h4分別對應著d3、d2、d1、d4,本文將該索引序列記為I={3,2,1,4}。
(3)
式中:
(4)
本文所實現(xiàn)的Adaboost框架針對LDL問題做了一些調整,區(qū)別于傳統(tǒng)分類問題中以分類是否正確來修改樣本選擇概率,它是根據(jù)預測結果的SortLoss來修改樣本選擇概率,并將每輪迭代中分類器在訓練全集上的SortLoss作為最終確定分類器權重的指標,具體算法如表1所示。其中迭代次數(shù)boostTimes和迭代進化因子α被設置為自由參數(shù),L為基礎學習器。boostTimes即在集成中所使用的分類器數(shù)量,也是進行迭代的次數(shù),每輪迭代將會訓練出一個由基礎學習算法產生的分類器,每個分類器對應于一個從特征域X映射到標記域D的權重矩陣W。α為每輪迭代結果對樣本選擇概率矩陣P與上一輪相比影響的比重,α越大,當前迭代對選擇概率矩陣P的影響也就越大,同時前一輪迭代對P所殘留的影響也就越小。概率矩陣P中的元素對應著訓練集中每個樣本在重采樣中被選入子訓練集概率的大小。概率矩陣P的更新公式為表1的第8行公式,即在每一輪子訓練集的選取中,使得那些有較高排序損失的樣本對應著較高的被重采樣的概率。權重矩陣W則依賴于基準算法所用模型進行更新,以BFGS算法為例,在每一輪迭代i中采用最大熵模型學習權重矩陣Wi,并將其作為下一輪迭代的初始化矩陣。此外,本文對集成框架在LDL問題上做了一些優(yōu)化,對于需要輸入初始特征權重矩陣的一類算法,則將上輪迭代所產生的特征權重作為當前迭代中的初始特征權重矩陣輸入,這樣優(yōu)化措施可以減少之后迭代中分類器的訓練時間。
表1 Adaboost-LDL算法
本實驗采用了13個數(shù)據(jù)集,包括10個酵母菌基因數(shù)據(jù)集、2個面部表情數(shù)據(jù)集和1個自然景色數(shù)據(jù)集,如表2所示。
表2 實驗所用13個真實數(shù)據(jù)集的基本信息
Yeast系列共10個數(shù)據(jù)集是從出芽酵母的生物實驗中收集的真實數(shù)據(jù)集。每個數(shù)據(jù)集記錄一次實驗的結果,包括總共2 465個酵母基因,每個基因由長度為24的系統(tǒng)發(fā)育譜向量表示。對于每個數(shù)據(jù)集,每個標記對應于一個生物學實驗期間的離散時間點。每個時間點的歸一化后基因表達水平則提供了相應標記描述程度的自然測量。10個酵母基因數(shù)據(jù)集中的標記數(shù)量總結在表2中。所有標記(每個標記對應一個實驗離散時間點)的描述度(對應歸一化后的基因表達水平)構成特定酵母基因的標記分布。SJAFFE和SBU_3DFE是兩個廣泛使用的面部表情圖像數(shù)據(jù)庫的擴展,即JAFFE和BU_3DFE。JAFFE數(shù)據(jù)庫包含由10個日本女模特構成的213個灰度表達圖像。Geng等人通過局部二值模式(LBP)的方法從每個圖像中提取243維特征向量。每個圖像由6個人在6個基本情緒標記(即:快樂,悲傷,驚訝,恐懼,憤怒和厭惡)上進行評分,具有5級量表。每種情緒的平均得分用于表示情緒強度。本文中使用的數(shù)據(jù)集SJAFFE(Scored JAFFE)保留了所有得分,并將它們標準化為所有6個情感標記上的標記分布。類似地,對于包含2 500個面部表情圖像的較大數(shù)據(jù)庫BU_3DFE,每個圖像由23個人以與JAFFE評分相同的方式評分,從而得到數(shù)據(jù)集SBU_3DFE(Scored BU_3DFE)的標記分布版本。Natural Scene收集自2 000張擁有不一致排序的自然景色圖片。每張圖片分別由10個人對9個可能的標簽進行排序,即植物、沙漠、天空、山、云、水、雪、建筑物和太陽。對于每張圖片,每個人類排序者挑選相關的標簽,并對這些挑選出來的標簽按相關度進行降序排序。因此,每個人的多標記排序的結果將會是高度不一致的。然后,利用一個非線性規(guī)劃過程將多標記排序結果轉換為標記分布。最后,每張圖片被提取為一個294維的向量。
表3 實驗所用評價指標
本文設計的Adaboost框架希望通過集成基礎分類器做出加權預測,所以實現(xiàn)了LDL問題上7種不同算法的集成,即PT-BAYES[19]、CNPP[4]、SA-IIS[18]、BFGS-LDL[19]、LC-LDL[20]、LDL_LCLR[21]和LDL-LS[22]。PT-Bayes是問題轉化算法的代表,將貝葉斯規(guī)則計算的后驗概率作為預測的描述度。CNPP則是利用類似于Modha神經網絡的網絡結構,但是以受監(jiān)督的方式接受培訓。在訓練神經網絡時已知真實的標簽分布,然后可以基于網絡結構預測新的分布。SA-IIS和BFGS-LDL屬于LDL專門算法,其思想在于最小化以KL散度為核心的目標函數(shù),不同之處在于兩種算法采取的優(yōu)化方法不同。BFGS-LDL在SA-IIS的基礎上采用了擬牛頓法BFGS來加速迭代收斂。LC-LDL利用標記間的相關性設計了目標函數(shù),同樣采用擬牛頓法進行優(yōu)化。LDL_LCLR利用標簽之間的全局和局部相關性為訓練模型提供更多的信息。LDL-LS同時學習所有標簽的共同特征和每個標簽的特定特征,以增強LDL模型。本文在實驗中對單獨算法和集成算法采用論文默認參數(shù)。在13個真實世界數(shù)據(jù)集中,對單獨算法和集成算法進行10次留出法驗證,并記錄每個評估量度的平均值和標準偏差。
本文將7個LDL算法分別進行Adaboost集成,在13個數(shù)據(jù)集上對集成前后的算法進行實驗對比。文中把基準算法名稱的一部分作為后綴來區(qū)分不同基準算法的Adaboost框架。在實驗中統(tǒng)一設定自由參數(shù)boostTimes=5,α=1.0。需要說明的是,由于下載的源碼PT-BAYES和SA-IIS在兩個表情數(shù)據(jù)集上無法正常工作,所以未給出其在SJAFFE和SBU_3DFE上的結果。表4給出了SortLoss指標上對比實驗的完整實驗數(shù)據(jù),表5給出了KL散度指標上的完整實驗數(shù)據(jù)。
本文給出以SortLoss指標評價的完整實驗數(shù)據(jù)表格,SortLoss指標越小表明預測結果越好。由于數(shù)據(jù)集過多,本文將其分為3張表格,每張表格包含4個數(shù)據(jù)集的結果,其中單獨算法與相應集成算法放置于上下兩行以供對比。表4實驗結果表明,Adaboost-LDL集成后的算法在SortLoss指標上平均下降至原先指標的41.2%,提升效果是非常顯著的。
為了能夠在距離指標上也能客觀的反映Adaboost-LDL框架的性能,本文也同時給出了KL散度和Intersection指標上實驗結果,如表5和表6所示,7個算法在KL散度的提升效果則有較大差異,平均下降到原先指標的68.5%。對于BFGS-LDL,CPNN和LC-LDL一類以距離為優(yōu)化目標函數(shù)的算法而言,其距離指標未發(fā)生顯著變化。對于PT-BAYES和SA-IIS算法這一類自身性能欠佳的算法,通過框架可以大幅提升。這也就意味著本文的集成框架不僅能夠降低各類算法的排序損失,而且會對一些算法上的距離評價指標帶來提升,這與本文所期望的結果相一致。
表5 KL↓(mean±std)指標在13個數(shù)據(jù)集上的實驗結果
表6 Intersection↑(mean±std)指標在13個數(shù)據(jù)集上的實驗結果
Adaboost是一種有效減少樣本偏差的集成學習方法,但過去的研究僅對傳統(tǒng)分類問題有效,在標記分布問題上沒有可以直接使用的方案。本文設計了一種在LDL問題上進行Adaboost的可行方案,并提出了一種用于衡量排序損失的評價指標SortLoss。與以往工作所設計的集成算法不同,Adaboost-LDL是一種強魯棒性的集成方案,可以對目前存在的各種LDL單獨算法進行提升。在算法的對比實驗中,單獨算法與集成后的算法進行了對比。實驗結果表明,本文設計的Adaboost框架對于LDL中的基準算法是非常有效的,能夠對所有實驗中使用的單獨算法在排序指標上進行大幅度提升。同時,PT-Bayes和SA-IIS算法在Adaboost-LDL集成后在KL散度指標上也有大幅提升。當結合距離指標和排序損失指標對LDL算法預測質量進行評價時,通過Adaboost-LDL集成后的算法在預測質量上有大幅提升。