struct output SVM
(論文分析) Machine Learning -- Support Vector Machine Learning for Interdependent and Structured Output Spaces
Support Vector Machine Learning for Interdependent and Structured Output Spaces
?
這篇文章主要描述了如何處理結構化的SVM。這篇文章是Learning Structural SVMs with Latent Variables的基礎。
?
結構化SVMs(Structural SVMs)
什么稱為結構化的SVM呢?輸入和輸出對構成了來自于某個固定但未知的概率分布。不像一般的多分類問題,其中可互換(arbitrarily numbered labeles),而在這里所考慮的是結構化的輸出空間。例如,在這個空間中的元素可能是sequences, strings, labeled trees, lattices,?或者graphs。
?
?
我們的目的是:
使用輸入輸出訓練樣本對來學習得到一個映射函數。現在以自然語言解析的例子來說明。我們感興趣的函數是,其映射一個給定的句子到一個解析樹上。這個解析樹如下圖所示:
?
現在我們想要學習一個建立在輸入輸出對上的discriminant function?,從而我們可以對一個給定的輸入x來尋找某個y從而最大化這個discriminant function,從而實現預測。我們可以看到由于y的結構性,我們不可以獨立進行考慮。我們建立假設
其中代表參數向量。
在這里我們假設,是輸入輸出對的聯合特征表示(的具體形式依賴于具體問題)
?
我們依然可以使用自然語言解析的例子來形象地說明。對于一個句子x的解析樹(parse tree),每個結點都對應著一個語法規則,并且其擁有一個分數。對于一個解析樹,可以使用其上所有結點的的和對解析樹進行打分。這個分數可以寫為:
,其中是一個統計每個語法規則在解析樹中出現的次數的直方圖。使用CKY算法,能夠依靠尋找結構來最大化從而有效地計算。
?
?
當然為了學習結構化的y,我們必須定義loss functions,其是定量衡量真實的y和預測的之間的差異的標準:
loss functions: ?。
?
?
Margins and Margin Maximization
?
零訓練誤差的條件可以寫成如下的非線性約束的集合:
對于上面式子中的每個非線性不等式都可以使用個線性不等式來替換,其導致了個線性約束:
其中
?
?
?
hard-margin optimization
?
?
為了允許在訓練集中的誤差,我們引入slack variables,從而對a soft-margin criterion進行優化。
?
在這種定義下,其隱藏地考慮了zero-one classification loss,也就是說分錯了代價就是1,分對了代價就是0。但是對于像natural language parsing問題來說(很大),是不恰當的。作者提出兩個解決途徑,(1)根據代價函數來re-scale the slack variables,也就是說與真實y偏離越大的預測,應該給與更大的懲罰(我們可以看(9)式的右側),
(2)re-scale the margin。這個方法由Taskar?針對于Hamming loss提出,
?
?
至此,我們已經建立好了SVM模型。
?
接下來作者便看是進行Support Vector Machine learning。這塊好難啊!
總結
以上是生活随笔為你收集整理的struct output SVM的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: RankSVM
- 下一篇: 奇异值(Singular value d