1
雷鋒網(wǎng) AI 科技評論按:眾所周知,深度學習在多種實際應用中取得了突破,其背后的主要推動力來自于大數(shù)據(jù)、大模型及算法。在很多問題中,獲取標注準確的大量數(shù)據(jù)需要很高的成本,這也往往限制了深度學習的應用。而主動學習通過對未標注的數(shù)據(jù)進行篩選,可以利用少量的標注數(shù)據(jù)取得較高的學習準確度。因此,深度學習中的主動學習方法也成為了研究的熱點。
近期,在雷鋒網(wǎng) GAIR 大講堂上,來自德州大學奧斯汀分校的在讀博士沈彥堯基于亞馬遜實習項目延伸探討了主動學習在深度學習中的應用與思考,并分享了多篇深度主動學習的 ICLR,ICML 文章。視頻回放地址:http://www.mooc.ai/course/487/learn#lesson/2671
沈彥堯,德州大學奧斯汀分校博士生,第三年在讀;清華大學電子工程系本科畢業(yè),主要研究方向為機器學習理論及其應用,曾在亞馬遜,微軟亞研院實習。
分享主題:主動學習在深度學習中的應用與思考
分享提綱
主動學習的背景介紹及研究意義
主動學習相關理論
主動學習在深度學習中的前沿研究及方法
主動學習在深度學習中的挑戰(zhàn)
分享內容:
本次分享基于本人去年在亞馬遜的實習項目「基于深度主動學習的命名實體識別 Deep Active Learning for Named Entity Recognition」而展開,關于該項目的論文「Deep Active Learning for Named Entity Recognition. ICLR, 2018.Shen et al.」已被深度學習領域頂會 ICLR 2018 接收。本文基于該項目,并延伸探討了深度主動學習在各類人工智能或者機器學習問題中扮演的角色。
主動學習和強化學習、半監(jiān)督學習、在線學習類似,它們都介于監(jiān)督學習和無監(jiān)督學習之間,但主動學習又和該三項概念有所不同,可以借助下方圖例來具體理解主動學習。
對比監(jiān)督學習、半監(jiān)督學習和主動學習的概念圖例,可以看到:在主動學習中,模型 (learner) 會主動向 worker 提供想標記的數(shù)據(jù),而非由 worker 提供。下圖最后一欄中從模型 (learner) 到 worker 的藍線即為主動學習的主動部分,在該階段模型會主動甄別需要標記的數(shù)據(jù),判斷哪些樣本值得學習,哪些不值得學習。
主動學習具有 membership query synthesis,stream-based selective sampling 和 pool-based sampling 三種情景(方法)。
pool-based sampling,顧名思義,即所有的數(shù)據(jù)均存在于一個池子中。我們的工作就是在該池子中選出一些樣本進行標記。在這樣的設定下,所有樣本都提供給模型,模型來選擇一部分樣本進行標記。在實際中,pool-based sampling 在三種方法中所使用的最多。
相較于 pool-based sampling,其他的兩種設定更類似人來學習事物的方式。
membership query synthesis,是指模型可以生成新的樣本,即模型可以操控樣本的生成。這類似于人在學習的過程中進行舉一反三,自己生成一些新的問題,然后通過更深入的研究新問題來提高自己的認知。
stream-based selective sampling,是指樣本不在池子中,而是按一定次序被模型看到,而模型需要決定是否對每個新看到的樣本進行標記。這一過程類似于人每天都在接受新的概念和定義并從中選擇出需要的內容進行專門學習,不需要的則拋棄或忘記。
概括來講,最近十多年或者二十多年來的研究中,主動學習領域大部分文章和方法主要基于 pool-based sampling,但實際上要真正進行主動學習,我們更需要模型能夠適應 membership query synthesis 和 stream-based selective sampling 這兩種和人類學習模式更為相似的情景。
在主動學習框架中,模型具有 query strategy(即判斷哪些樣本需要進行標記的方法)。在主動學習過程中,模型會持續(xù)進行上圖的循環(huán)操作,模型的準確率也會隨之不斷提高,并且通過 query strategy 的設定模型準確率可能好于隨機選取數(shù)據(jù)進行標記,當在準確率達到一定程度之后,即可停止標記。
接下來講解主動學習的一種廣泛使用的 query strategy,即基于不確定性的采樣方法(Uncertainly Sampling Methods)。它基于一個簡單概念,即當有一個分類器或者模型時,選取那些在概率上最不確定的樣本進行標注?!父怕噬献畈淮_定」存在多種定義方式,最常用的幾種定義方式列在下圖中。
常用的幾種定義方式包括 Least confidence、Margin(主要存在于多分類問題)、Token entropy、Sequence entropy 以及 N-best SE 等。
需要注意的是,上面提及的基于不確定性方法來采樣(Uncertainly Sampling Methods)僅是諸多主動學習經(jīng)驗方法中的一種。接下來的內容中還會提及另一種(即 Query-by-Committee),另外還有基于所有點之間距離關系的一種采樣方法(選擇最具表現(xiàn)性的點,而非只針對每一個點來判斷它的不確定性多高)??傮w而言,大家可以提出很多種類似的經(jīng)驗方法。另一方面,也有很多人在進行主動學習的理論研究。下面我們就簡單了解一下這些相關理論的基本原理。
下面來簡單介紹主動學習的相關理論。
Query-by-Committee 是一種很重要的算法,它在 1992 年被提出(前面提到的 Uncertainly Sampling Methods 也在同時期被提出)。
關于 Query-by-Committee 最初想法和基本理論,我們借助下面這個圖例進行解釋。
線性分類的問題中,綠點和紅點為已標記的點,列出的幾條線代表可能的分類方法(這幾條線是假設空間的采樣,假設空間可由斜率連續(xù)變動的一組線表示,其中每一條線都正確的區(qū)分開了綠點和紅點)。根據(jù) QBC 算法,當有一個新的樣本進來(圖示標記),我們隨機挑選兩條線并通過這兩個假設來判斷該點屬于哪一類(紅或綠),當兩條線得出的分類表現(xiàn)一致時(都分類為紅點時),就不選擇標記該點。隨后再選擇下一個樣本,這時再次隨機挑選兩條線,如果一條線預測為紅點,另一條線預測為綠點的情況出現(xiàn)時(即結果不一致),模型就會嘗試標記這個點(標記為紅色)并通過刪除錯誤的假設縮小假設空間(去掉那些預測為綠點的線)。
假設空間會根據(jù)這個點來淘汰很多線性分類器,該過程持續(xù)循環(huán),即當樣本落在該區(qū)域內再選擇進行標記。假設空間的大小會逐漸變小,并最終生成一個十分準確的模型。
這里,我們來總結主動學習理論中常用的幾種假設:首先,假設分類器是 linear separable,即存在一條可以完美分類所有樣本的線性分類器。其次,假設二分類任務而非多分類任務,第三,假設樣本沒有噪聲。第四,維持一個假設空間是可行的。
部分文獻中會對這四點中的一點進行松弛并研究,但是我們實際中遇到的問題屬于以上四個假設均不滿足的情況,這就導致大家更傾向于在實際中使用不確定性的采樣方法之類的經(jīng)驗方法。因此,主動學習理論對于實際應用中的算法設計缺乏指導性的原因可以總結為以下三個原因:
維持一個假設空間十分難以承受
相較于假設理論常用的 stream-based selective sampling,實際中更偏向使用 pool-based sampling
實際任務分類復雜程度遠超二分類任務
以上所提及的這些問題因深度學習的到來而愈加關鍵。我們可以看到,深度學習取得明顯效果的幾個應用均具有復雜的模型和巨大的數(shù)據(jù)量,同時因模型的非線性導致維持一個假設空間十分難以承受。這些應用包括了下圖中我們最熟悉的、已經(jīng)廣泛運用深度學習模型的兩類應用:CV 和 NLP。
基于以上兩種模型,近期有兩篇文章研究了在以上兩種深度學習模型中的主動學習。它們主要探討如何利用 Convolution 中學習出來的中間層來更好的選擇樣本(比如該中間層是否會提供更豐富的 embedding 信息來判斷樣本與樣本之間是否相似等)。
深度主動學習并不只包含解決以上這兩個任務,它們只是圖像和語言中最容易建模的兩種問題:它們都被建模成了簡單的分類問題。
而我們在實際應用中遇到的深度學習應用任務更加復雜,例如序列問題(sequential problems)。在復雜任務中,有兩點問題顯得尤為突出:
深度模型訓練速度很慢(預測的速度同樣慢或更慢)
此前的經(jīng)驗方法是否還能在復雜的問題中繼續(xù)發(fā)揮作用?
這就引出了去年在亞馬遜的實習項目「利用深度主動學習進行命名實體識別(Named Enity Recognition, NER)」。在這個項目中,我們需要在一個序列標記任務中來驗證深度主動學習的好處。NER 問題的一個應用場景是:給出亞馬遜用戶的一段評論,利用深度學習模型自動識別出代表人、組織、地點、時間等等多類具有實體名詞意義的詞匯。研究該問題有助于機器理解網(wǎng)站用戶留言的含義,這也是很多 NLP 上層任務的一個基礎。我們可以想象,在收集有標注的數(shù)據(jù)集的時候,需要依靠大量的人工標注,準確的標注出正確的命名實體類別是非常耗時耗力的,這也是我們寄希望于深度主動學習能夠減少標注量的主要原因和動機。
首先,我們先了解一下在普通 NER 任務下,能夠取得最好預測結果的模型是怎樣設計的。下圖為訓練 NER 模型的一個十分流行的深度模型。該模型以 Bi-LSTM 為基礎,最后通過 CRF 來生成概率最高的預測序列。
除該典型模型之外,近幾年也出現(xiàn)了各種不同的模型,包括使用 Character-Level Encoder(字母級詞向量),Word-Level Encoder(詞向量),隨后使用 RNN 或者 CRF 來做最終的預測。各種不同的模型列在下圖中的表格內。
具體到本任務中,除去進行監(jiān)督學習,我們的模型需要能夠迅速的對樣本進行預測和評估不確定度。為了能夠進一步加快主動學習中利用模型判斷不確定性的過程,我們進一步對深度模型進行加速,提出了一個基于 CNN-CNN-LSTM 結構的模型,即 Character-Level Encoder 和 Word-Level Encoder 我們都是用 CNN 進行學習,而最終利用 LSTM 而非 CRF 層進行預測。
如上圖所示,左邊是一個 Character-Level Embedding 模型;中間是 world-level embedding 模型;右邊是 LSTM 序列生成模型。
通過實驗,我們可以比較模型利用 CNN 作為 encoder 的效果,以及 LSTM 作為 decoder 的效果??梢钥闯?,使用我們的 CNN-CNN-LSTM 結構顯著的提升了訓練以及預測時的速度。這對于我們使用和驗證深度主動學習算法是非常重要的。
上圖左側是在一個較小的數(shù)據(jù)集上的測試結果(句子數(shù)量較少,且預測標簽僅為 4 類);右側是在一個較大數(shù)據(jù)集上的測試結果(幾十萬句子,預測標簽 18 種)??梢钥吹皆趦蓚€數(shù)據(jù)集下,encoder 使用 CNN 相比 LSTM 能得到較好的速度提升。右側提升速度更為明顯,達到了將近十倍的提升速度,并且不損失精度和準確度。這里利用 LSTM 做 decoder 的速度要優(yōu)于 CRF,因為 CRF 算法的計算復雜度和標簽數(shù)量的平方呈正比,而 LSTM 只是正比于標簽數(shù)量 x 時間長度,當標簽數(shù)量多時,利用 LSTM 要優(yōu)于 CRF。這也就是我們不用 CRF 來做機器翻譯的原因,其輸出可能性太多(光詞就有上萬種選擇)。
結構設計完畢之后,我們可以開始嘗試深度主動學習的方法。我們主要考慮了以下四種算法,并通過實驗驗證各自的表現(xiàn):
第一種即 Least Confidence(簡稱 LC),計算預測中最大概率序列的對應概率值。
第二種,Maximum Normalized Log-Probality(MNLP),基于 LC 并且考慮到生成中的序列長度對于不確定性的影響,我們做一個 normalization(即除以每個句子的長度),概率則是用每一個點概率輸出的 log 值求和來代替。
第三種是一個基于 Disagreement 的主動學習方法,主要利用 dropout 在深度學習中的另一個作用(dropout 本來的作用是在訓練中為了讓模型 generalize 得更好)。去年 Gal et al. 的一篇文章就告訴我們,如果在做 inference 的時候也用 dropout 實際上是等價于來計算模型的不確定性的。這里我們也就需要在做 inference 的過程中也要同時做 dropout,在得到的 M 種結果中計算有多少是不一致的。
第四種方法是基于每一個點是否具有代表性的采樣方法,除去考慮每一個點的不確定性外,通過計算樣本與樣本之間的相似度,來進一步判斷該選擇那些樣本更具有代表性。這樣的方法在大量數(shù)據(jù)的情況下需要更加有效的計算方法。我們重新把它處理成一個 submodular maximization 的問題,并利用 streaming algorithm 得到近似最優(yōu)解。
第五種方法是隨機生成樣本并且標記,作為 baseline。
為了檢測剛才提及的五種算法的有效性,先做一個較簡單的檢驗。
三種顏色代表利用不同數(shù)據(jù)訓練出來的模型,隨后在所有未標記和未訓練的樣本中,利用不確定性的采樣方法(Uncertainly Sampling Methods)來計算出最不確定的 1000 個樣本和他們的分布。例如 nw 代表新聞,如果我們此前的訓練模型都未使用任何的 nw 樣本作為訓練信息(橙色模型),那么通過不確定性的采樣方法我們就可以發(fā)現(xiàn) nw 在前 1000 個不確定樣本中比例最高,這也間接證明了該算法最有效。
最終結果可以參考下圖。
首先,baseline 方法遠低于其他分類方法。在各種方法上,我們跑了多次實驗來證明 NER 上的結果準確性,每一種方法跑 10 組,圖中也將標準差畫了出來,可以看到:LC 稍微差一點,MNLP 和 BALD 最優(yōu)。盡管 BALD 與 MNLP 同樣很好,但是由于在計算 BALD 的實驗中需要對每一個樣本進行 100 次的 inference,計算代價要高于簡單的不確定性的采樣方法,因此 MNLP 是更值得采取的方法。另外,我們發(fā)現(xiàn)在深度主動學習的問題中,基于代表性的選擇方法并沒有取得相較 LC 而言任何的提高,我們認為其中的原因主要在于在序列問題任務中,很難學習到一個非常好的表示向量,也就是說 embedding 并沒有很好的表示真正的樣本之間的相似度。所以只需要預測每一個樣本的概率的不確定性,就已經(jīng)能達到很好的效果了。
我們簡單介紹一下其他的幾篇關于深度主動學習的工作。在上述討論中提到的在 Inference 階段利用 dropout 可以估計模型的不確定性是 ICML 2017 的一篇文章,主要側重于深度模型本身的特點。另一篇 NIPS 2017 的文章其研究重點在于主動學習上,通過利用兩個 deep network 來模仿從假設空間中采樣這一過程,不斷更新這兩個 deep network,將更新后的 deep network 認定為兩個采樣假設,依次判斷樣本需不需要被標記。這相當于 QBC 算法的一個變種,并利用了深度模型的強標示性。這些相關文章的具體題目和作者信息可參考 ppt 和視頻。
下面,我們再簡單回顧主動學習的基本框架??梢钥闯?,我們現(xiàn)在針對的主要是第三種的 pool-based sampling,那么有沒有針對另外兩種的研究呢?
近期有研究人員提出利用增強學習來模擬主動學習選擇樣本的過程,把選擇樣本進行標記看作是增強學習中的行為:標記或者不標記。ICML2017 的這篇文章就是用增強學習的 agent 來模擬主動學習選擇樣本的過程。ICLR2018 的這篇文章中,作者考慮在一個更為復雜的任務中,利用增強學習生成更有價值的問題的方法。這兩篇文章均屬于主動學習基本框架中的另外兩種情景。
最后一部分來介紹主動學習在深度學習中的挑戰(zhàn)。在一些傳統(tǒng),定義得比較好的任務中,我們需要更快的訓練過程和更快的 Inference,而其中 inference 速度更為重要。因為在實際的序列任務中,訓練其實是相對較快的。而我們在沒有標記的句子中去判斷哪些句子更加重要這就比較困難。例如在機器翻譯中每翻譯一個句子是遠低于訓練一個句子,因為進行 inference 的過程是非并行的,這是深度主動學習需要研究的一個方面。
第二種就是主動學習和生成模型的結合,也就是剛才看到的三種模型框架,第一種是模型可以主動生成樣本,目前這一方面點研究很少且挑戰(zhàn)巨大。
第三種是優(yōu)化,Optimization 是任何任務中都十分重要的一個環(huán)節(jié),但還尚不清楚設計 network 和優(yōu)化來讓深度模型更有效的來學習任務,深度主動學習其實是在 Optimization 之上的,所以 Optimization 也是主動學習需要關注的一個問題。
在研究深度主動學習的過程中我們可以借與人進行對比來思考深度主動學習的過程。拿公認較難的機器翻譯任務來舉例,目前機器學習在做機器翻譯任務的時候,需要幾百萬句子對的數(shù)據(jù)集來訓練模型,但該種過程與人為翻譯不同:主動學習在人翻譯的過程中扮演了一個十分重要的角色。思考機器和人在翻譯過程中的學習方式,我們可以發(fā)現(xiàn)主動學習(包括主動深度學習)尚有較大提升空間。再舉個例子,之前的 NER 任務中,模型通過計算生成出來的概率值來表示不確定性,但人無需計算概率性的精確值,人在看到一個句子時是通過簡單的模糊判讀來決定該樣本是否需要學習,即無需進入 decoder 那一層,在之前的 encoder 階段就可做出判斷。而這一點是目前的深度主動學習還無法解決的一項巨大挑戰(zhàn)。
以上就是本期嘉賓的全部分享內容。更多公開課視頻請到雷鋒網(wǎng) AI 慕課學院觀看。關注微信公眾號:AI 科技評論,可獲取最新公開課直播時間預告。
雷峰網(wǎng)原創(chuàng)文章,未經(jīng)授權禁止轉載。詳情見轉載須知。