2018 NeurIPs Unsupervised Learning Tutorial Note
2020/6/12 Update Tutorial Session 2
此文章由數個舊 facebook 貼文修改而成,內容主要是 NeurIPs 2018 大會上,九個 tutorial 主題中,其中的一個:非監督式學習 (unsupervised learning)。
在這個 tutorial session 中,分別請到了 DeepMind 的 Alex Graves 和 Facebook 的 Marc’Aurelio Ranzato 分別對自己研究中關於非監督式學習的部分做教學。完整的 tutorial 根據講者做分割,以 Part I 和 II 兩個 sessions 作完整介紹。
在第一個階段的 tutorial, 由 Alex Graves 主講,演講的題目包括了 auto-regressive model , representation learning 和 unsupervised reinforcement learning。Auto-regressive model 在深度學習的領域,就是 LSTM 或 RNN 模型。在進入這些題目之前, Graves 先重新定義了「學習」,也就是小編重製投影片所做成的附圖。
在 Graves 所提供的新的定義中,傳統的監督式(supervised)和非監督示學習屬於被動學習(passive learning),在這個維度中學習的方式主要為「從訓練資料中,學習資料的模式,並且無任何的『主動』對訓練資料的修改」。
而主動學習(active learning)則涵蓋一個學習代理人,並藉由與環境主動互動來動態修改決策函示。
至於監督式學習和非監督式學習的不同。除了大家所熟知的定義,有無提供正確答案的標註外,非監督式學習並無如監督式學習般,清楚定義學習的任務和目標,而造成定義損失函式的困難。然而這樣的困難卻使非監督式學習更容易泛化到不同的任務中。
Auto-regressive Model
在 NeurIPs 2018 的 tutorial 中定義了非監督式學習的問題後,接下來 Alex Graves 介紹如何使用 autoregressive model 作為捕捉序列型資料,如:間序列,語言和音訊資料等,的機率模型。
Autoregressive model 的優點在於使用一個「過於」簡化的模型,避免對多如天文數字般,列舉所有變數之間關聯後來做 joint probability 作估算。一般簡化的方式是將序列切斷成為較短的數個獨立序列處理,並依賴機率模型的 chain rule (這裡指的是 Markov chain,非反向傳播的 chain rule)來對最終的 joint probability 作估算,
然而,autoregressive model 最具有爭議的地方,在於模型與序列呈現順序高度相依,以至於必須引入一個偏見歸納(inductive bias)來作為模型的先驗知識架構。
最常見用於 autoregressive model 的類神經網路架構,包括了 LSTM 和該架構的變異(GRU)。另外,Graves 也提及幾個使用非傳統序列模型架構,來學習序列資料。如,近年發展了使用 mask 來遮蔽某些特徵向量,而達成只對過去狀態相依的 Convolutional Network 架構或利用 Attention 機制來捕捉與過去狀態相依關聯的 Transformer 架構。
在 autoregressive model 的主題中,Graves 還涵蓋了幾個應用 autoregressive model 產生影像的研究。在這些研究中,其中一個方法稱為 Pixel RNN,該模型是 RNN-based ,可以用來產生手寫影像和人臉影像。在人臉影像中,雖然不如 GAN 的方法產生的影像真實,但 autoregressive model 提供了一個新的 representation learning 方式。在此方式中可以將物體偵測的任務視為一個語言模型,透過將影像分割為較小的 slice,如語言中的單詞一般,捕捉每個 slice 之間的序列關係,以階層式的方式架構影像的語言模型。這樣的方式有助於了解影像物體間的語義,並透過 非監督式學習的方法,習得更為通用的 representation。
而這些功能性的「語言模型」中,構成模型的每一個 building block 的 representation 則可以由下列演算法來學習:
- variational autoencoder
- associative compression model:透過 k-nearest neighbors 建立 conditional prior
- Contrastive Predictive Coding:和 Noise Predictive Coding 相近的實現方式。
Unsupervised Reinforcement Learning
在 NeurIPs 2018 的非監督式學習 tutorial 最後一個主題,則是 unsupervised reinforcement learning。不過關於這個主題,很不幸地 Mr. Graves 沒有多少時間可以細談這個主題,結果就以閃電秀的方法匆匆帶過。不過,我們還是可以從 Graves 快速的演講中,大致的了解 Unsupervised Reinforcement Learning 的輪廓以及該演算法想要解決的重點。
Unsupervised Reinforcement Learning 主要是希望解決傳統 Reinforcement Learning (強化學習)中需要長時間和大量資料學習的方式。非監督式學習的方法應用在強化學習,就如同應用在深度學習上,主要透過同時最佳化多個輔助任務(auxiliary tasks)來學習資料的 representation。
除此之外,非監督式學習亦可以用來指引 policy 透過使用內在動機(intrinsic motivation)來探索世界,而非傳統的強化學習多用外在獎勵(extrinsic rewards)來驅動智慧代理人行動。在內在動機上,目前由兩種方法實現,其中一個是創造一個好奇寶寶代理人(curious agent),就如同新生兒主動去探索世界,並與過去的經驗比較而學習。另外一個方法則是想要控制環境的代理人(empowsered agent),藉由了解在特定狀態下的某些行為,所導致的因果關係或最後的狀態,而決定行為。
另外讀者在閱讀投影片時,在第 88 頁標題為 “Curiouser and Curiouser”的投影片,Graves 特別提到紅字的標題”Complexity Gain”應該改為”Compression Progress”,比較符合該投影片的主題。在這個投影片中主要是提到 ”Compression Progress” 這篇論文中,提到智慧代理人可以從過去的所有經驗中學習,然而在實現上則需要一個得以將過去所有經驗壓縮的記憶容量。
因為 Graves 在這個主題真的講得很快(他講話又特別快),所以對這個主題有興趣的人,可以閱讀延伸閱讀中來自 DeepMind 的兩篇文章 ([1] 和 [2])。
在第二階段有關於非監督學習的部分由來自 Facebook AI Research center (FAIR)的研究者 Marc’Aurelio Ranzato 主講。演講的內容先從電腦視覺領域開始,然後再提及自然語言。不管在哪一個領域,非監督式學習方式都如第一部分的演講內容所談到的,便是利用非監督式學習非特定任務,產生較容易泛化的特徵表徵(representation)。
在這個部分的演講中包括了兩大主題:Learning representations 和 Domain adaptation。演講的最後則提到一些目前的研究領域中尚未解決的問題。
Learning representations
Learning representations 的內容中,Ranzato 先提到可使用矩陣分解,如主成份分析(PCA)或 K-Means 的方式來作為表徵學習的基準。隨後又分別對影像(連續資料)和自然語言(離散資料)這兩個領域做討論。我們先介紹影像的部分。內容包含了 self-supervised learning (簡稱為 SSL)和 learning by clustering 兩種非監督式學習的技術。
Self-Supervised Learning(SSL)
Self-supervised learning,是藉著建立一個監督式的預測任務,來輔助學習非監督式任務,亦即學習具有功能語義的表徵。這個預測任務通常需要該領域的專家來定義。而這個任務通常是基於一個由專家選定的輸入變數子集,去除非監督學習缺乏標注的非確定性,並同時達到降維的目的。電腦視覺領域中,Self-supervised learning 的應用包括了由部份影像來預測在原影像的位置或藉由預測正常和倒轉的影片,而找到與時序相關的特徵。又如自然語言中的 word2vec 利用預測單詞在一個片語中相鄰的單詞,來產生對文本脈絡敏感的 word embedding。
Learning by Clustering
至於 learning by clustering,則是利用 K-Means clustering 的方法來建立輸入影像的暫時標注,再用 Convolutional Neural Net (CNN)以監督式學習的方法,來學習和 clustering 結果相關的特徵。由 CNN 學到的特徵會再次用於 K-Means 建立新的 clusters,最後以多次迭代的方式進行改善後,得到最終的結果。這個方法,根據 Ranzato 的演講,是基於 CNN 模型即使在任意初始化權重的情況下仍具有選取特定頻率特徵的功能(稱為 inductive bias)。在演講中,Ranzato 提到該方法的表現要較 self-supervised learning 佳,但也有幾個需要注意的地方:如 clustering 時,最佳的結果是當 clustering 的成員呈均勻分佈,或產生成員數量相同的 clusters,並非由一個主要的 cluster 支配多數成員數目而導致快速收斂於一個 trivial solution。
在這個階段的演講,Ranzato 也提到使用 ImageNet pre-training 模型與不使用 ImageNet pre-training (以一個隨意初始化的權重矩陣重新訓練起)的表現是否有差異的爭議,有興趣的讀者可以參考延伸閱讀中的論文([3] 或 [4])
BERT & Word2Vec
在 Marc’Aurelio Ranzato 的演講中,關於自然語言的部分,先比較了影像和自然語言之間的原資料差異。 Ranzato 表示自然語言由單字構成,屬於離散性質的資料,在輸出的部分可藉由 Softmax 函式來模擬單詞分布的機率,並捕捉輸出的非確定性。相對地,對於原資料屬於連續數域的影像,欲捕捉像素層級輸出的非確定性,卻不如自然語言容易。然而,屬於連續資料的影像,在搜尋上卻可以直接使用數值最佳化的方式,卻又勝屬於離散資料的自然語言,只能以經驗法則(heuristic)的方式來進行搜尋(如,Beam search)。
關於 word2vec,讀者可以參考筆者在 IT 2019 鐵人賽的拙作 ,接下來的貼文都會專注在 BERT上。BERT 其實是 Bidirectional Encoder Representations for Transformer 的縮寫,如同其英文名,架構上使用多層的 Transformer (attention block)layers,如同 Open AI 提出的 GPT (Generative Pre-trained Transformer)架構。但不同於 GPT 遵循傳統單向語言模型的架構,BERT 對在同一脈絡中的單詞,同時建構兩個方向(前,後)的相依關係。
為了能訓練這樣複雜的網路架構,在原本的 BERT 論文中,提出兩個層級的訓練方式。在單字層級(token-level ),使用 Mask 語言模型,在這個模型中任一單詞會被以 <MASK> token 或任一不相關的單詞取代。而在單句層級(sentence-level) 的訓練任務,則訓練一個二元分類器。該二元分類器負責分辨任一隨意句子是否為輸入句子的下一個句子或毫不相關的句子。
在下圖的投影片總結圖片中,可以看到同時捕捉雙向相依關係的 BERT 模型,在 GLUE (General Language Understanding Evaluation) 資料集中,達到新的 State of The Arts (SoTA)。在 BERT 的論文中也提到,同時捕捉雙向相依關係,在各式語言任務中,超越僅模擬單向的傳統語言架構,也比起在 Seq2Seq 模型中,簡單地用 forward 和 backward 的 LSTM 堆疊出的 shallow 雙向模型表現更佳。
在 BERT 原始論文發表後,一系列利用 BERT 架構,但使用多任務訓練方式所建立的 pre-trained 語言模型,不斷超越原本的模型,而引領自然語言領域進入 ImageNet 的時代。
Marc’Aurelio Ranzato 在 NeurlPs 2018 的非監督式 tutorial session,除了包括之前與大家分享的 “Learning representations” 主題外,還有以飛快的速度提及的如何使用非監督式去學得輸入例子的分佈,建立一個 generative 模型,該模型會產生一個與原訓練實例分佈相近的句子。在自然語言中,這部分的進展,還是以 Alex Graves 演講,提及 autoregressive model 或 Recurent Neural Network 為主,而該研究領域,最大的問題則是成功地捕捉長依賴關係,並產生較長的句子。
Domain Adaptation
“Domain adaptation”,指的是將一個 domain 的輸入映射到與第二個 domain 共享的特徵表示區,經過轉換的 domain 1 輸入,在使用共享的特徵表示時,不會與 domain 2 的輸入相差太遠。這個共享的特徵表示區,又可以被稱為共享的 latent 空間,因為和統計學習中不被觀察到的隱藏變數相關。一個在電腦視覺上的應用,便是 Visual CycleGAN,或是循環對抗式類神經網路。雖然名為 GAN (對抗性網路),Visual CycleGAN 第一個版本是不考慮以 adversarial 損失來建立兩 domain 共享特徵表示區,而是直接使用 “Cycle Consistency” 的限制,來確定無論是從 domain 1 或 domain 2 作轉換,其重建誤差都會很小。 然而,即使使用 cycle consistency 卻仍舊無法確定產生的例子是否來自於同一分佈,所以加上了 GAN 的 Adversarial 損失或 Discriminator 的 Cross-entropy 損失。
Ranzato 企圖應用 Visual CycleGAN 到自然語言上,並希望能解決非監督式機械翻譯 ,尤其是低資源語言配對的機械翻譯問題。雖然都是使用 Cycle Consistency 來迫使 domain 1 和 domain 2 的輸入都是可重建的,但在模型上則採用完全不同的類神經網路。在 CycleGAN 中,作者使用的是兩個 CNN,分別用於兩 domain 間的映射和重建,然而在 Muse (Ranzato 團隊發展的 unsupervised machine translation 演算法)則是使用兩組 sequence to sequence 的架構。
為何用到兩組 sequence to sequence 架構,那是因為非監督式機械翻譯通常缺乏正確的翻譯輸出,所以 sequence to sequence 監督式機械翻譯架構中的解碼器輸出無法立即使用。但 MUSE 透過將第一組 sequence to sequence 視為翻譯對中的輸入語言的編碼器(outer encoder),第二組的 sequence to sequence 架構則視為解碼器(outer decoder),並使用除噪的方式來建構目標損失函式來解決這個問題。更多架構上的細節,請見下圖。
其次為了能夠更有效的找到兩語言共享的 latent 空間,Ranzato 的團隊更應用一些限制,如限定編碼器(encoder)和 解碼器(decoder) 的參數共享等等來實現。MUSE 的結果,使大數據的非監督學習為可能,也讓低資源或訓練例子稀少的語言可以搭上深度學習這班熱門的列車。更重要的是,如 Ranzato 所示,MUSE 雖然是一個接著一個單詞的方式翻譯,但可以當作完整句子翻譯的踏腳石,使長句翻譯可以透過非監督學習的方式習得。
在 NeurIPs 2018 非監督學習 tutorial session 的最後,由 Ranzato 提到幾個 非監督學習目前面臨的挑戰,分別是:downstream tasks 和 metrics,general principles 和將不確定性納入模型(model uncertainty)。
對於特徵或表徵學習,該如何定義一個好的 downstream task,而使非監督學習所學到的表徵,能有實際應用上的意義(task-oriented unsupervised learning)。目前有 GLUE 資料集定義一個集合內有許多自然語言的任務可當作 benchmark 使用。至於生成模型(generative),則需要一個定義良好的 metrics,使生成模型生成例子時,能近似訓練例子的分佈。
對於 general principle 中,Ranzato 想要問的是,是否能在非監督式學習中找到普遍性的原則。Ranzato 基於目前的 SOTA,如 BERT,在預測的下一個字詞,似乎仍侷限在局部的相依關係。為了能有更佳的進步空間,他建議一個更普遍化的架構,如由 Yan Lecun 在 2006 提出的 energy model / EBM去學習。
在這個模型中,只要該位置的資料密度高於基準(同時造成低機率值)energy 會在低點,並透過除噪(高密度低機率)的方法來進行學習 energy function。一個 energy-based 學習的方式,就是使用 negative examples 學習的 contrastive energy 模型(如 word2vec)。為了能使學習更有效率,不浪費時間在學習顯然錯誤的 negative examples,可以使用不同的限制,包括了 sparsity, low-dimensionality 等。
而將不確定性納入模型,則是因為預測本身就具有不確定性,現在已有許多方法可以納入不確定性於模型,如,latent variables 和 GAN 等。而哪一種方法能最有效的學習,則缺乏共識。
在目前,大多的訓練方式都仰賴大量未標注的訓練資料,然而,未來的人工智慧,將要面臨標注資料稀少的大問題。該如何從稀少的訓練資料來學習呢?
這個問題在 2017 Yan LeCun (楊立坤)到台灣來演講時就曾提過。如果整個人工智慧是個大櫻桃蛋糕,那麼身為櫻桃的強化學習和身為糖霜的監督式學習,這兩者的預測能力,遠遠不如身為蛋糕的非監督式學習!為了能更加理解非監督學習在這個人工智慧領域所扮演的角色,Ranzato 和 Graves 都不約而同重新解釋 LeCun 的櫻桃蛋糕。
尤其 Graves 為了要解釋多獎勵和單一稀疏獎勵,而另外創作了一個櫻桃蛋糕,只是蛋糕上排滿了櫻桃,對應了多獎勵的強化學習概念。
到此 NeurIPs 2018 非監督學習的 tutorial session 結束了!現在該來吃櫻桃蛋糕囉!(字面上和非字面上意義都有)
參考資料:
- NeurIPs 2018 unsupervised learning tutorial #1 slide
- NeurIPs 2018 unsupervised learning tutorial #2 slide
- PixelRNN, Generating High Fidelity Images with Subsample Pixel Networks and Multi-dimensional Upscaling
- Yan LeCun 的 2016 訪台演講
- Yann LeCun Cake Analogy 2.0 :櫻桃蛋糕照片來源
延伸閱讀:
- DeepMind, Reinforcement learning with unsupervised auxiliary tasks:(英) 使用 auxiliary tasks 做 unsupervised reinforcement learning
- DeepMind, Deep Reinforcement Learning:(英)Deep Reinforcement learning 包含 intrinsic motivation 介紹
- Rethinking ImageNet Pre-training(英,論文):由中國的何愷明博士發表關於 ImageNet pre-training 的文章。
- Rethinking ImageNet Pre-training(英,部落格):作者對於上述論文的讀後感想。
- Phrase-Based & Neural Unsupervised Machine Translation (英,論文): MUSE 論文
- Unpaired Image-to-Image Translation using Cycle-Consistent Adversarial Networks (英,論文):CycleGAN 論文
- Y. LeCun et al. “A tutorial on energy-based learning” MIT Press 2006
、、