1 為什麼要自監督學習 self-supervised learning

自監督學習是無監督學習的一種特殊方式。我們在無監督學習中講過了,標註label是十分寶貴的,一般需要人工打標,時間和人力成本都十分高昂。但現實中,獲取無標註data確實相對比較easy的事情。我們可以在網路上爬取很多很多的文字、圖片、語音、商品資訊等。如何利用這些無標註data,一直以來都是無監督學習的一個重要方向。而自監督學習則給出了一種解決方案。

自監督學習透過data的一部分,來predict其他部分,由自身來提供監督訊號,從而實現自監督學習。利用自監督學習,可以學到一定的文字或圖片的表徵,從而有利於下游任務的展開。這就是pretrain-finetune

機器學習13 -- 無監督學習之自監督 self-supervised

2 自監督學習實現方案

自監督學習實現方案主要有

利用部分data來重建整個data。這其實就是Denoising Auto-Encoder的一種。NLP方面BERT系列的Mask language model,和CV領域的影象還原In-painting,都是採用了這種方案

CV領域的一些任務。比如將圖片分割為9塊,打亂後,進行拼圖。將圖片旋轉一定角度,然後predict旋轉的角度。

對比學習。比如word2vec,Contrastive Predictive Coding,SimCLR

3 NLP領域的自監督學習

各種NLP預訓練模型,就是利用自監督學習實現的。比如Elmo、GPT、BERT、XLNet、Electra、T5等。它們可以看做是一種去噪自編碼器denoising Auto-Encoder。

機器學習13 -- 無監督學習之自監督 self-supervised

3。1 Auto-Encoder和Auto-regressive LM

它們又分為兩種

自編碼器Auto-Encoder。比如BERT所採用的Mask language model。它將sequence中的部分token,進行mask,然後讓模型對mask位置進行predict。它的優點是可以充分利用兩個方向的語句資訊,在分類、QA、NER等任務上表現很好。缺點是sequence中只有mask位置參與了predict,訓練效率較低。另外訓練時有mask,而下游任務fine-tune時沒有mask,導致兩階段不一致。

自迴歸語言模型 Auto-regressive LM。嚴格來說MLM掩碼語言模型不能認為是一種語言模型。GPT等自迴歸方式的模型才是真正的語言模型。它利用上文來預測下文的token。它在生成任務上表現較好。優點是pretrain和fine-tune兩階段一致,且sequence中每個位置均參與了predict,訓練效率很高。缺點是隻能看到上文,無法看到下文,也就是單方向,大大影響了對語句的語義理解。

Auto-Encoder示例如下,它可以獲取兩個方向的上下文,有助於語義理解

機器學習13 -- 無監督學習之自監督 self-supervised

Auto-regressive LM示例如下,不論是從前到後,還是從後到前,均只能單向

機器學習13 -- 無監督學習之自監督 self-supervised

3。2 XLNet和PLM

XLNet則結合了二者的優點,它提出了排序語言模型PLM(Permutation LM)。它分為兩步

排序,將sequence中的token位置打亂,實操中沒有直接對token打亂,而是利用了attention mask

自迴歸語言模型predict。由於token的位置打亂了,所以訓練語言模型時,可以獲取到下文的資訊了,有助於對整個sequence的理解。

機器學習13 -- 無監督學習之自監督 self-supervised

4 CV領域的自監督學習

CV任務上,也很容易實現自監督學習

4。1 predict missing pieces

將圖片中部分割槽域挖空,然後讓模型進行預測,使輸出能儘量還原輸入圖片。

機器學習13 -- 無監督學習之自監督 self-supervised

4。2 Jigsaw Puzzles 拼圖遊戲

將圖片分割為多個區域並打亂,然後讓模型將它還原為原始圖片。和拼圖遊戲很像。

機器學習13 -- 無監督學習之自監督 self-supervised

4。3 Rotation 旋轉

將圖片旋轉一定角度,讓模型預測旋轉了多少度。或者將圖片旋轉0、90、180、270度四種類別,讓模型預測旋轉的類別。

機器學習13 -- 無監督學習之自監督 self-supervised