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