最近在學習半監督學習方面的內容,一開始便遇到了這么幾個概念:主動學習(active learning)、半監督學習(semi-supervised learning)和直推學習(transductive learning)。想必剛開始大家都覺得有點迷糊,下面就讓我來詳細把它們之間的聯系與區別講述一下,相信讀完大家一定會思路清晰,至少在概念上不會再搞錯了。
什么是主動學習?
主動學習指的是這樣一種學習方法:有的時候,有類標的數據比較稀少而沒有類標的數據是相當豐富的,但是對數據進行人工標注又非常昂貴,這時候,學習算法可以主動地提出一些標注請求,將一些經過篩選的數據提交給專家進行標注。這個篩選過程也就是主動學習主要研究的地方了。
什么是半監督學習?
半監督學習特指的是學習算法不需要人工干預,基於自身對未標記數據加以利用,來提高學習模型的泛化性能。
一般認為半監督學習包含純半監督學習和直推學習。
三者的聯系:
主動學習、純半監督學習、直推學習都屬於利用未標記數據的學習技術,只是其基本思想不同。
它們的區別:
主動學習與半監督學習的區別:
主動學習的主動指的是主動提出標注請求,也就是說還需要一個外在的能夠對其進行標注的實體(通常是相關人員),即主動學習是交互進行的。其目標是使用盡量少的“查詢”(query)來獲得盡量好的性能。主動學習引入了額外的專家知識,用過與外界的交互來將部分未標記樣本轉變為有標記樣本。
純半監督學習與直推學習的區別:
假設有如下的數據集,其中訓練集為XL+XU,測試集為Xtest,標記樣本數目為L,未標記樣本數目為U,L<<U
- 標記樣本(XL,YL)={(x1:L,y1:L)}
- 未標記樣本XU={xL+1:N},訓練時可用
- 測試樣本Xtest={xN+1:},只有在測試時才可以看到
純半監督學習是一種歸納學習(inductive learning),可以對測試樣本Xtest進行預測。也即純半監督學習是基於“開放世界”的假設。
直推學習是transductive學習,僅僅可以對未標記樣本XU進行標記,模型不具備對測試樣本Xtest進行泛化的能力。直推學習是基於“封閉世界”的假設。
直推學習假設未標記的數據就是最終要用來測試的數據,學習的目的就是在這些數據上取得最佳泛化能力。相對應的,純半監督學習在學習時並不知道最終的測試用例是什么。
---------------------------------
參考:1.機器學習西瓜書 周志華著