什么是主動學(xué)習(xí)? 原創(chuàng)
如果數(shù)據(jù)是無標(biāo)簽的,我們很難構(gòu)建一個監(jiān)督學(xué)習(xí)系統(tǒng)。
使用無監(jiān)督技術(shù)是一種可行的解決方案,但它們能完成的任務(wù)類型有限。
另一種可能的方法,是依賴自監(jiān)督學(xué)習(xí)。
自監(jiān)督學(xué)習(xí)是指我們有一個無標(biāo)簽的數(shù)據(jù)集,但我們通過某種方式能夠從中構(gòu)建一個監(jiān)督學(xué)習(xí)模型。
這通常依賴于任務(wù)的固有屬性。
例如,ChatGPT自回歸地基于當(dāng)前詞預(yù)測下一個單詞。
這樣我們就可以簡單地將文本左移一位在海量文本上構(gòu)造訓(xùn)練數(shù)據(jù)集。
輸入:"The cat sat on"
標(biāo)簽:"cat sat on the"
或者像BERT那樣,通過將文本中的某些單詞替換為占位符,并預(yù)測這些占位符的單詞。
"The cat sat on the [MASK]。"
"I went to the [MASK] to buy some milk."
但并不是所有任務(wù)都有這種屬性,所以它的應(yīng)用場景也有限。
現(xiàn)在唯一能想到的方法就是標(biāo)注數(shù)據(jù)集。然而,數(shù)據(jù)標(biāo)注既困難、昂貴、耗時,又枯燥乏味。
主動學(xué)習(xí)是一種相對簡單、便宜、快速且有趣的解決方法。
顧名思義,它的想法是通過主動獲取人工反饋,幫助模型改進(jìn)其在難以處理樣本上的表現(xiàn)。下圖總結(jié)了這一過程:
讓我們看下細(xì)節(jié)。
我們先手動標(biāo)注一小部分?jǐn)?shù)據(jù)。
根據(jù)經(jīng)驗,標(biāo)注約1%的數(shù)據(jù)集是個不錯的選擇。
接下來,在這個小的標(biāo)注數(shù)據(jù)集上訓(xùn)練一個模型。
當(dāng)然,這個模型不會是完美的,但沒關(guān)系。
接下來,使用訓(xùn)練好的模型在未標(biāo)注的數(shù)據(jù)上生成預(yù)測:
很明顯,我們無法確定這些預(yù)測是否正確,因為我們沒有標(biāo)簽。
但我們可以得到這些預(yù)測的置信度。
因為在主動學(xué)習(xí)中,我們通常會選擇能夠在其預(yù)測中提供置信水平的模型。
概率模型(即為每個類別提供概率估計的模型)通常在這里是一個很好的選擇。
這是因為可以從概率輸出中確定置信度的水平。
在上述兩個例子中,考慮第1和第2大概率之間的差距:
● 在例子#1中,差距較大。這可能表示模型對它的預(yù)測非常有信心。
● 在例子#2中,差距較小。這可能表示模型對它的預(yù)測信心不足。
現(xiàn)在,回到上面生成的預(yù)測,并按照置信度的大小對它們進(jìn)行排名:
在上面的圖像中:
● 模型已經(jīng)對前兩個實例非常有信心。沒有必要再檢查它們了。
● 相反,最好由我們(人類)來標(biāo)注模型信心最弱的實例。
為了更好地理解,考慮下面的圖像。從邏輯上講,哪個數(shù)據(jù)點的人工標(biāo)簽將為模型提供更多信息?我知道你已經(jīng)知道答案。
因此,在下一步中,我們對置信度低的預(yù)測進(jìn)行人工標(biāo)注,并將其與先前標(biāo)注的數(shù)據(jù)集一起去繼續(xù)改進(jìn)模型。
多次重復(fù)這個過程,直到你對模型的表現(xiàn)感到滿意為止。
根據(jù)我的經(jīng)驗,主動學(xué)習(xí)是處理無標(biāo)注數(shù)據(jù)集的一個極大節(jié)省時間的辦法。唯一需要小心的是生成置信度度量。
如果你搞錯了這一步,它會影響之后的每一個訓(xùn)練步驟。
另外,除了人工標(biāo)注的低置信度數(shù)據(jù)和種子數(shù)據(jù),還可以使用高置信度數(shù)據(jù)。它們的標(biāo)簽將是模型的預(yù)測結(jié)果。
這種主動學(xué)習(xí)的變體稱為合作學(xué)習(xí)。
本文轉(zhuǎn)載自公眾號人工智能大講堂
