多示例學習:包(bags) 和 示例 (instance).
包是由多個示例組成的,舉個例子,在圖像分類中,一張圖片就是一個包,圖片分割出的patches就是示例。在多示例學習中,包帶有類別標簽而示例不帶類別標簽,最終的目的是給出對新的包的類別預測。
多示例學習是弱監督學習中的一個popular的方法。用於訓練分類器的instance是沒有類別標記的,但是bags卻是有類別標記的,這一點與以往所有框架均不甚相同。
多示例學習中的規則:如果一個bag 里面存在至少一個instance被分類器判定標簽為+(或者1)的示例,則該包為正包;如果一個bag里面所有的instance都被分類器判定標簽為-,則該包為負包。
問題的實際應用:做檢測問題,標記訓練圖片樣本的時候需要給出一個矩形框指明目標的位置,有可能標的不夠准確,導致不同的樣本之間對不齊,這時候可以將標記的矩形框做一些局部擾動得到一些新的矩形框,將它們一起看成一個bag,其中總有一個是最佳的正樣本,也就是標記為正。而取一張沒有目標的圖片,作為負樣本包,無論在里面怎么截取圖片,都是負樣本。
解決這個問題的方法:迭代優化(alternative optimization)。分為兩步:監督學習,標記更新
首先假設已知所有樣本的標記,使用一個監督學習的方法得到一個分類模型;用這個模型對每個訓練樣本進行預測,更新它們的標記。------以上是一個過程
之后再根據新得到的標記樣本重新訓練分類器,再對每個訓練樣本進行預測;再訓練分類器,再預測標記;再訓練,再預測。。。。。。
需要注意的地方:
1)訓練監督學習模型的時候,只從正樣本包里挑選被預測的“最像正確”(也就是分類得到最高)的那一個,正樣本包里面其他的樣本,不管預測出來的是正還是負的都不要了。這是因為,其中多示例的問題也可以描述為,正樣本包里面“最正確”的一個樣本標記是正的,跟其他樣本無關。所以,這種選擇策略恰恰是符合問題定義的。
2)如果負樣本足夠多的話,可以只挑選每個負樣本包里面被預測“最像正確”的一個樣本作為負樣本進行訓練,這樣的負樣本也叫做hard sample 或者 most violated sample。實踐中,它們對於模型快速收斂是最有效的。
流程圖:
輸入:數據矩陣
MILL (MIL Library) is an open-source toolkit for multiple instance learning algorithms written in Matlab. Multiple-instance learning (MIL) is a form of semi-supervised learning where there is only incomplete knowledge on the labels of the training data. Specifically, instances in MIL are grouped into a set of bags. The labels of the bags are provided, but the labels of instances in the bags are unknown. However, a bag is labeled positive if at least one instance in the bag is positive, and a bag is negative if all the instances in it are negative. MIL algorithms attempt to learn a classification function that can predict the labels of bags and/or instances in the testing data. The applications of MIL include molecule activity prediction (分子活動預測), text categorization(文本分類), image classification and retrieval (圖像分類和檢索), etc.