但是除了它們,今年還是有很多非常美的想法,例如強行解積分的強大流模型 Glow、基於圖結構的廣義神經網絡,以及擁有連續層級的神經常微分方程。它們爲深度學習開拓了新方向,也爲未來提供了更多選擇。
在這篇文章中,我們從想法到實踐介紹了 2018 年令人矚目的研究工作,它們共同構建了機器學習的當下。我們主要按領域從模型到開源工具展開,其中算法或模型的選擇標準主要是效果和潛力,而開源工具的選擇主要憑藉 GitHub 的收藏量與效果。本文的目錄如下所示:
自然語言處理
預訓練語言模型
機器翻譯
谷歌 Duplex
生成模型
大大的 GAN
流模型
神經網絡新玩法
圖神經網絡
神經常微分方程
計算機視覺
視覺遷移學習
強化學習與遊戲
徳撲
星際爭霸
Dota
量子計算
絕對界限
相對界限
開源工具
強化學習框架 Dopamine
圖網絡庫(Graph Nets library)
圖神經網絡框架 DGL
Auto Keras
TransmogrifAI
目標檢測框架 Detectron
NLP 建模框架 PyText
BERT 開源實現
大規模稀疏框架 XDL
面向前端的 TensorFlow.js
自然語言處理
在即將過去的 2018 年中,自然語言處理有很多令人激動的想法與工具。從概念觀點到實戰訓練,它們爲 NLP 注入了新鮮的活力。其中最突出的就是機器翻譯與預訓練語言模型,其中機器翻譯已經由去年的 Seq2Seq 到今年大量使用 Transformer,而預訓練語言模型更是從 ELMo 到 BERT 有了長足發展。
預訓練語言模型
大概在前幾年,很多人認爲預訓練的意義不是特別大,都感覺直接在特定任務上做訓練可能效果會更好。但是隨着計算機視覺領域中預訓練模型的廣泛使用,很多 NLP 的研究者也在思考是不是能有一種方法,它可以將通用的語言知識遷移到不同的 NLP 任務中。
很快大家就選定了語言模型,首先它是一種無監督方式,所以訓練樣本很容易獲取。其次語言模型能預測一個詞序列是人類話語的概率,因此某種意義上它包含了通用的語言知識。因此在 2018 年中,使用預訓練語言模型可能是 NLP 領域最顯著的趨勢,它可以利用從無監督文本中學習到的「語言知識」,並遷移到各種 NLP 任務中。
這些預訓練模型有很多,包括 ELMo、ULMFiT、OpenAI Transformer 和 BERT,其中又以 BERT 最具代表性,它在 11 項 NLP 任務中都獲得當時最佳的性能。不過目前有 9 項任務都被微軟的新模型超過。
ULMFiT
ULMFiT 由 Sebastian Ruder 和 fast.ai 的 Jeremy Howard 設計,是首個將遷移學習應用於 NLP 的框架。ULMFiT 表示 Universal Language Model Fine-Tuning(通用語言模型微調)。ULMFiT 真的實現了「通用」,該框架可用於幾乎所有 NLP 任務。
論文:Universal Language Model Fine-tuning for Text Classification
論文地址:https://arxiv.org/pdf/1801.06146.pdf
ULMFiT 最好的地方在於我們不用再從頭訓練模型了。研究者把最難的部分做好了,直接將他們做好的模型用到自己的項目中即可。ULMFiT 在六個文本分類任務上優於之前最優的方法。
ULMFiT 主要可以分爲三個階段:
在通用領域實現語言模型的預訓練
在目標任務實現語言模型的微調
在目標任務的分類器微調
如上所示,ULMFiT 主要由三階段組成。(a)中的預訓練語言模型能捕獲自然語言的一般特徵,而(b)中的語言模型會使用判別性的微調(Discr)和斜三角式的學習率來進行調整,它將在目標任務上學習到特定的特徵。最後(c)表示分類器在目標任務上的微調,其中灰色表示不固定權重的階段,而黑色表示固定權重的階段,這樣能保留低級表示而適應地調整高級表示。
感興趣的讀者可參考以下內容:
https://github.com/prateekjoshi565/ULMFiT_Text_Classification
http://nlp.fast.ai/category/classification.html
ELMo
ELMo 是 Embeddings from Language Models 的縮寫。ELMo 一經發布即引起了機器學習社區的關注,它使用語言模型來獲取每個單詞的詞嵌入,同時考慮單詞在句子或段落中的語境。這種添加了語境信息的詞表徵可以表示複雜的語言知識,因此也就可以編碼整個句子的信息。
論文:Deep contextualized word representations
論文鏈接:https://arxiv.org/pdf/1802.05365.pdf
具體而言,研究者使用從雙向 LSTM 中得到的向量,該 LSTM 是使用正向和反向兩個語言模型(LM)在大型文本語料庫上訓練得到的。用這種方式組合內部狀態可以帶來豐富的詞表徵。研究者使用內在評價進行評估,結果顯示更高級別的 LSTM 狀態捕捉詞義的語境依賴方面(如它們不經修改就可以執行監督式詞義消歧任務,且表現良好),而較低級別的狀態建模句法結構(如它們可用於詞性標註任務)。同時揭示所有這些信號是非常有益的,可以幫助學得的模型選擇對每個任務最有幫助的半監督信號。
與 ULMFiT 類似,ELMo 極大提升了在大量 NLP 任務上的性能,如情感分析和問答任務。如下展示了 ELMo 在不同 NLP 任務中的效果,將 ELMo 加入到已有的自然語言系統將顯著提升模型效果。
更多信息及預訓練 ELMo 模型可查看:https://allennlp.org/elmo
NAACL 2018 | 最佳論文:艾倫人工智能研究所提出新型深度語境化詞表徵
BERT
BERT 是一種新型語言表徵模型——來自 Transformer 的雙向編碼器表徵。與最近的語言表徵模型不同,BERT 旨在基於所有層的左、右語境來預訓練深度雙向表徵。BERT 是首個在大批句子層面和 token 層面任務中取得當前最優性能的基於微調的表徵模型,其性能超越許多使用任務特定架構的系統,刷新了 11 項 NLP 任務的當前最優性能記錄。
我們曾解讀過 BERT 的的核心過程,它會先從數據集抽取兩個句子,其中第二句是第一句的下一句的概率是 50%,這樣就能學習句子之間的關係。其次隨機去除兩個句子中的一些詞,並要求模型預測這些詞是什麼,這樣就能學習句子內部的關係。最後再將經過處理的句子傳入大型 Transformer 模型,並通過兩個損失函數同時學習上面兩個目標就能完成訓練。
如上所示爲不同預訓練模型的架構,BERT 可以視爲結合了 OpenAI GPT 和 ELMo 優勢的新模型。其中 ELMo 使用兩條獨立訓練的 LSTM 獲取雙向信息,而 OpenAI GPT 使用新型的 Transformer 和經典語言模型只能獲取單向信息。BERT 的主要目標是在 OpenAI GPT 的基礎上對預訓練任務做一些改進,以同時利用 Transformer 深度模型與雙向信息的優勢。
這種「雙向」的來源在於 BERT 與傳統語言模型不同,它不是在給定所有前面詞的條件下預測最可能的當前詞,而是隨機遮掩一些詞,並利用所有沒被遮掩的詞進行預測。
更詳細的論文解讀可以查看:谷歌終於開源 BERT 代碼:3 億參數量,全面解讀
此外,BERT 的開源項目非常有誠意,谷歌研究團隊開放了好幾種預訓練模型,它們從英語到漢語支持多種不同的語言。很多開發者在這些 BERT 預訓練語言模型上做二次開發,並在不同的任務上獲得很多提升,BERT 開源項目將放在文章後面,並與其它開源庫一起介紹。
機器翻譯
在 2018 年裏,神經機器翻譯似乎有了很大的改變,以前用 RNN 加上注意力機制打造的 Seq2Seq 模型好像都替換爲了 Tramsformer。大家都在使用更大型的 Transformer、更高效的 Transformer 組件。例如阿里根據最近的一些新研究對標準 Transformer 模型進行一些修正。這些修正首先體現在將 Transformer 中的 Multi-Head Attention 替換爲多個自注意力分支,其次他們採用了一種編碼相對位置的表徵以擴展自注意力機制,並令模型能更好地理解序列元素間的相對距離。
有道翻譯也採用了 Transformer,他們同樣會採取一些修正,包括對單語數據的利用、模型結構的調整、訓練方法的改進等。例如在單語數據的利用上,他們嘗試了回譯和對偶學習等策略,在模型結構上採用了相對位置表徵等。所以總的而言,儘管 Transformer 在解碼速度和位置編碼等方面有一些缺點,但它仍然是當前效果最好的神經機器翻譯基本架構。
Sebastian Ruder 非常關注無監督機器翻譯模型,如果無監督機器翻譯模型是能行得通的,那麼這個想法本身就很驚人,儘管無監督翻譯的效果很可能遠比有監督差。在 EMNLP 2018 中,有一篇論文在無監督翻譯上更進一步提出了很多改進,並獲得極大的提升。Ruder 筆記中提到了以下這篇論文:
論文:Phrase-Based & Neural Unsupervised Machine Translation
論文鏈接:https://arxiv.org/abs/1804.07755
這篇論文很好地提煉出了無監督 MT 的三個關鍵點:優良的參數初始化、語言建模和通過回譯建模反向任務。這三種方法在其它無監督場景中也有使用,例如建模反向任務會迫使模型達到循環一致性,這種一致性已經應用到了很多任務,讀者最熟悉的可能是 CycleGAN。該論文還對兩種語料較少的語言做了大量的實驗與評估,即英語-烏爾都語和英語-羅馬尼亞語。
無監督 MT 的三個主要原則:A)兩種單語數據集、B)參數初始化、C)語言建模、D)回譯。
這篇論文獲得了 EMNLP 2018 的最佳長論文獎,它在遵循上面三個主要原則的情況下簡化了結構和損失函數,得到的模型優於以前的方法,並且更易於訓練和調整。
谷歌 Duplex
2018 谷歌 I/O 開發者大會正式介紹了一種進行自然語言對話的新技術 Google Duplex。這種技術旨在完成預約等特定任務,並使系統儘可能自然流暢地實現對話,使用戶能像與人對話那樣便捷。Duplex 基於循環神經網絡和 TensorFlow Extended(TFX)在匿名電話會話數據集上進行訓練。這種循環網絡使用谷歌自動語音識別(ASR)技術的輸出作爲輸入,包括語音的特徵、會話歷史和其它會話參數。谷歌會爲每一個任務獨立地訓練一個理解模型,但所有任務都能利用共享的語料庫。此外,谷歌還會使用 TFX 中的超參數優化方法優化模型的性能。
如下所示,輸入語音將輸入到 ASR 系統並獲得輸出,在結合 ASR 的輸出與語境信息後可作爲循環神經網絡的輸入。這一深度 RNN 最終將基於輸入信息輸出對應的響應文本,最後響應文本可傳入文本轉語音(TTS)系統完成對話。RNN 的輸出與 TTS 系統對於生成流暢自然的語音非常重要,這也是 Duplex 系統關注的核心問題。
在 Duplex 系統的語音生成部分,谷歌結合了拼接式的 TTS 系統和合成式的 TTS 系統來控制語音語調,即結合了 Tacotron 和 WaveNet。
生成模型
生成對抗網絡在 2018 年仍然是研究的重點,我們不僅看到可以生成高分辨率(1024×1024)圖像的模型,還可以看到那些以假亂真的生成圖像。此外,我們還很興奮能看到一些新的生成模型,它們沒有采用對抗式的訓練方式,其主要代表就是流模型 Glow。
大大的 GAN
今年 9 月份,DeepMind 團隊創造出「史上最強 GAN」,該研究被接收爲 ICLR 2019 的 oral 論文。很多學者驚呼:不敢相信這樣高質量的圖像竟是 AI 生成出來的。
論文:LARGE SCALE GAN TRAINING FOR HIGH FIDELITY NATURAL IMAGE SYNTHESIS
論文地址:https://arxiv.org/pdf/1809.11096.pdf
BigGAN 生成圖像的目標和背景都高度逼真、邊界自然,並且圖像插值每一幀都相當真實,簡直能稱得上「創造物種的 GAN」。當在 128x128 分辨率的 ImageNet 上訓練時,BigGAN 可以達到 166.3 的 Inception 分數(IS),而之前的最佳 IS 僅爲 52.52。
研究者還成功地在 256x256 分辨率和 512x512 分辨率的 ImageNet 上訓練了 BigGAN,並得到非常逼真的圖像。但這麼好的效果,是靠巨大的計算力來推動。在原論文中,DeepMind 表示 BigGAN 會在谷歌 TPU v3 pod 上訓練,且根據任務使用不同的核心數,128x128 的圖像使用 128 個核心數(64 塊芯片),512x512 的圖像使用 512 個核心數(256 塊芯片)。
此外,今年 12 月,英偉達提出了另一種高精度 GAN。這款新型 GAN 生成器架構借鑑了風格遷移研究,可對高級屬性(如姿勢、身份)進行自動學習和無監督分割,且生成圖像還具備隨機變化(如雀斑、頭髮)。
論文:A Style-Based Generator Architecture for Generative Adversarial Networks
論文鏈接:https://arxiv.org/pdf/1812.04948.pdf
英偉達提出的這種基於風格的生成器能構建非常高分辨率的人臉圖像,即 1024×1024 分辨率的圖像,詳情可查看以下視頻:
學界 | 史上最強 GAN 圖像生成器,Inception 分數提高兩倍
流模型
目前,生成對抗網絡 GAN 被認爲是在圖像生成等任務上最爲有效的方法,越來越多的學者正朝着這一方向努力:在計算機視覺頂會 CVPR 2018 上甚至有 8% 的論文標題中包含 GAN。今年來自 OpenAI 的研究科學家 Diederik Kingma 與 Prafulla Dhariwal 卻另闢蹊徑,他們提出了基於流的生成模型 Glow。據介紹,該模型不同於 GAN 與 VAE,在生成圖像任務上也達到了令人驚豔的效果。
該研究一經發表,立刻引起了機器學習社區的注意,很多研究者表示:終於,我們有了 GAN 以外的優秀生成模型!
論文:Glow: Generative Flow with Invertible 1×1 Convolutions
論文地址:https://d4mucfpksywv.cloudfront.net/research-covers/glow/paper/glow.pdf
OpenAI 創造的 Glow 是一種使用可逆 1×1 卷積的可逆生成模型,它可以生成逼真的高分辨率圖像,支持高效率採樣,並能發現用於操作數據屬性的特徵。目前,OpenAI 已經發布了該模型的代碼,並開放了在線可視化工具,供人們試用。
詳細的內容可參考我們的介紹性文章與蘇劍林發佈在 PaperWeekly 的解讀:
神經網絡新玩法
今年有很多研究從理論分析方面或結合其它領域來擴展深度學習,其中最突出的就是 DeepMind 和谷歌大腦等研究機構提出的圖網絡(Graph Network),以及多倫多大學陳天琦等研究者提出的神經常微分方程。
前者提出的圖網絡是一種新的 AI 模塊,即基於圖結構的廣義神經網絡,圖網絡推廣了以前各種對圖進行操作的神經網絡方法。藉助微分方程,後者提出的 ODEnet 將神經網絡離散的層級連續化了,因此反向傳播也不再需要一點一點傳、一層一層更新參數。
圖網絡
圖+深度學習一直都有很多研究工作,但今年最引人矚目的是圖網絡(Graph Network),它由 DeepMind、谷歌大腦、MIT 和愛丁堡大學等公司和機構的 27 位科學家共同提出。
論文:Relational inductive biases, deep learning, and graph networks
論文地址:https://arxiv.org/pdf/1806.01261.pdf
該論文提出的圖網絡(GN)框架定義了一類對圖結構表徵進行關係推理的函數。該 GN 框架泛化並擴展了多種圖神經網絡、MPNN 和 NLNN 方法,並支持從簡單的構建模塊建立複雜的架構。注意,這裏避免了在「圖網絡」中使用「神經」術語,以反映它可以用函數而不是神經網絡來實現,雖然在這裏關注的是神經網絡實現。
目前圖網絡在監督學習、半監督學習和無監督學習等領域都有探索,因爲它不僅能利用圖來表示豐富的結構關係,同時還能利用神經網絡強大的擬合能力。
一般圖網絡將圖作爲輸入,並返回一張圖以作爲輸入。其中輸入的圖有 edge- (E )、node- (V ) 和 global-level (u) 屬性,輸入也有相同的結構,只不過會使用更新後的屬性。如下展示了輸入圖、對圖實現的計算及輸出圖,更詳細的內容請參考原論文。
DeepMind 開源圖網絡庫,一種結合圖和神經網絡的新方法
神經常微分方程
在今年 NeruIPS 2018 中,來自多倫多大學的陳天琦等研究者成爲最佳論文的獲得者。他們提出了一種名爲神經常微分方程的模型,這是一種新型深度神經網絡。神經常微分方程不拘於對已有架構的修修補補,它完全從另外一個角度考慮如何以連續的方式藉助神經網絡對數據建模。
神經常微分方程走了另一條道路,它使用神經網絡參數化隱藏狀態的導數,而不是如往常那樣直接參數化隱藏狀態。這裏參數化隱藏狀態的導數就類似構建了連續性的層級與參數,而不再是離散的層級。因此參數也是一個連續的空間,我們不需要再分層傳播梯度與更新參數。
具體而言若我們在層級間加入更多的層,且最終趨向於添加了無窮層時,神經網絡就連續化了。我們可以將這種連續變換形式化地表示爲一個常微分方程:
如果從導數定義的角度來看,當 t 的變化趨向於無窮小時,隱藏狀態的變化 dh(t) 可以通過神經網絡建模。當 t 從初始一點點變化到終止,那麼 h(t) 的改變最終就代表着前向傳播結果。這樣利用神經網絡參數化隱藏層的導數,就確確實實連續化了神經網絡層級。
現在若能得出該常微分方程的數值解,那麼就相當於完成了前向傳播。也就是說若 h(0)=X 爲輸入圖像,那麼終止時刻的隱藏層輸出 h(T) 就爲推斷結果。這是一個常微分方程的初值問題,可以直接通過黑箱的常微分方程求解器(ODE Solver)解出來。而這樣的求解器又能控制數值誤差,因此我們總能在計算力和模型準確度之間做權衡。
如下所示,殘差網絡只不過是用一個離散的殘差連接代替 ODE Solver。
更詳細的論文解讀可查看:硬核 NeruIPS 2018 最佳論文,一個神經了的常微分方程
計算機視覺
視覺遷移學習
人類的視覺具備多種多樣的能力,計算機視覺界基於此定義了許多不同的視覺任務。長遠來看,計算機視覺着眼於解決大多數甚至所有視覺任務,但現有方法大多嘗試將視覺任務逐一擊破。這種方法造成了兩個問題:數據量大和冗餘計算。
如果能有效測量並利用視覺任務之間的關聯來避免重複學習,就可以用更少的數據學習一組任務。Taskonomy 是一項量化不同視覺任務之間關聯、並利用這些關聯來最優化學習策略的研究,相關論文獲得了 CVPR 2018 的最佳論文獎。
如果兩個視覺任務 A、B 具有關聯性,那麼在任務 A 中習得的表徵理應可爲解決任務 B 提供有效的統計信息。通過遷移學習,Taskonomy 計算了 26 個不同視覺任務之間的一階以及高階關聯。例如對於 10 個視覺問題,利用 Taskonomy 提供的學習策略最大可以減少 2/3 的訓練數據量。
由 Taskonomy 發現的一個示例任務結構。例如,從圖中可以發現通過將曲面法線估計器和遮擋邊緣檢測器學習到的特徵結合起來,用少量標註數據就能快速訓練用於重描影和點匹配的優質網絡。
抱歉我們今天想介紹的這篇論文,剛剛中了 CVPR 2018 最佳論文
CVPR 2018 最佳論文作者親筆解讀:研究視覺任務關聯性的 Taskonomy
強化學習與遊戲
博弈論存在兩種類型:完美信息博弈和不完美信息博弈。
不完美信息博弈是指,博弈中的一個參與者不能知道其它參與者的所有行動信息,比如德撲。如果將環境也考慮在內,參與者可能對環境的所知信息也是不完美的,比如 MOBA(多人在線戰術競技遊戲,包括星際爭霸、Dota 等)。
圍棋、國際象棋都屬於完美信息博弈,它們顯然不是今年的焦點。而德撲、星際爭霸和 Dota 都在今年取得了引人注目的成果。
德撲
2017 年 11 月,來自 CMU 博士生 Noam Brown 和教授 Tuomas Sandholm 的一篇論文確證獲得了 NeurIPS 2017 的最佳論文獎。
而在去年年初,在賓夕法尼亞州匹茲堡的 Rivers 賭場,CMU 開發的 Libratus 人工智能系統擊敗人類頂級職業玩家。此次比賽共持續 20 天,由 4 名人類職業玩家 Jason Les、Dong Kim、Daniel McAulay 和 Jimmy Chou 對戰人工智能程序 Libratus。在整個賽程中,他們總共對玩 12 萬手,爭奪 20 萬美元的獎金。最終的結果是「比賽過程中,人類選手整體上從未領先過。」
Sandholm 教授的獲獎論文,正是 Libratus 的技術解讀。他們針對德撲的不完美信息博弈的特點,提出了一種無論在理論上還是在實踐上都超越了之前方法的子博弈求解技術。Libratus 也是第一個能在一對一無限注德州撲克單挑中打敗頂尖人類選手的 AI。
Libratus 在 2017 年 Brain vs. AI 大賽中的表現。
Libratus 並沒有使用深度學習方法,最主要的算法是 CFR,這是一種類似強化學習 self-play 的算法,但其還考慮了未被選擇的假設動作的收益。
由於序貫博弈在更深層階段計算成本高昂,Libratus 在前半場需要數百萬核心時間和數 TB 內存規模的資源。爲此,他們在今年 5 月份又提出了一種在博弈的早期階段就對深度有限(depth-limited)的子博弈進行求解的新方法,實現了新的德撲 AI——Modicum,其只需要一臺筆記本電腦的算力就可以打敗業內頂尖的 Baby Tartanian8(2016 計算機撲克冠軍)和 Slumbot(2018 年計算機撲克冠軍)。
關於 Libratus 和 AlphaGo 的對比,Noam Brown 曾經表示兩者解決的是不同的問題,不能直接對比:圍棋屬於完美信息博弈,德撲屬於不完美信息博弈。而在不完美信息博弈領域中,Noam Brown 曾表示下一個突破很可能是在星際爭霸和 Dota(機智)。
NIPS 2017 最佳論文出爐:CMU「冷撲大師」不完美信息博弈研究獲獎
一臺筆記本打敗超算:CMU 冷撲大師團隊提出全新德撲 AI Modicum
星際爭霸
由於觀察空間和動作空間巨大、局部觀察(不完美信息博弈)、多智能體同時遊戲、長期決策等因素,《星際爭霸 II》被認爲是最難用 AI 攻克的遊戲。在這種設置下,研究人員還是不得不求助於深度學習和強化學習的結合。
今年,AI 界在《星際爭霸 II》可謂收穫頗豐。至少在特定設置下,我們已經攻克了全場遊戲。實現這一目標的包括騰訊 AI Lab、南京大學和伯克利。
今年 9 月,騰訊 AI Lab、羅切斯特大學和西北大學聯合提出了 TStarBots,在「深海暗礁地圖,蟲族 1 對 1」設置下在《星際爭霸 II》全場遊戲中打敗了難度爲 1-10 級的內置 bot,其中 8、9、10 級的內置 bot 允許作弊行爲。這是首個能夠在《星際爭霸 II》全場遊戲中擊敗內置 bot 的智能體。
TStarBot1 和 TStarBot2 智能體在不同難度等級下和內置 AI 比賽的勝率(100%)。
同樣在 9 月,南京大學也在《星際爭霸 II》上取得了突破。研究者讓智能體通過觀察人類專業選手遊戲錄像來學習宏動作,然後通過強化學習訓練進一步的運營、戰鬥策略。他們還利用課程學習讓智能體在難度漸進的條件下逐步習得越來越複雜的性能。在 L-7 難度的神族對人族遊戲中,智能體取得了 93% 的勝率。這種架構也具有通用性更高的特點。
今年 11 月,伯克利在《星際爭霸 II》中提出了一種新型模塊化 AI 架構,該架構可以將決策任務分到多個獨立的模塊中。在蟲族對蟲族比賽中對抗 Harder(level 5)難度的暴雪 bot,該架構達到了 94%(有戰爭迷霧)的勝率。和 TStarBots 類似,他們也提出了分層、模塊化架構,並手工設計了宏指令動作。伯克利的研究者解釋道,二者不同之處在於,他們的智能體是在模塊化架構下僅通過自我對抗及與幾個腳本智能體對抗來訓練的,直到評估階段才見到內建 bot。
三項研究各有千秋,對架構設計的考量圍繞着通用-專用權衡的主題,並且都抓住了宏指令(宏動作)定義的關鍵點,展示了分層強化學習的有效性。完全依靠深度學習和強化學習仍然不夠,結合人類定義的規則可以更有效地約束智能體的行爲。至於可遷移性方面,或許南京大學提出的方法更具一般性。
首次!騰訊的人工智能在星際爭霸 2 中打敗了「開掛」內建 AI
Dota
2017 年 8 月,OpenAI 在 Dota2 TI 決賽現場以 1 對 1 solo 的方式擊敗了「Dota 2」世界頂級玩家。
今年,OpenAI 準備征服 5 v 5 團隊賽,可謂吊足了大衆的胃口。在正式征戰 TI 8 之前,OpenAI 陸續預演了好幾場熱身賽,並接連帶來驚喜。今年 6 月,OpenAI 宣佈他們的 AI bot 在 5 v 5 團隊賽中擊敗業餘人類玩家,達到 4000 分水平。在 8 月初首次公開的基準測試賽中,OpenAI Five 以 2:1 的戰績擊敗了準職業玩家。
通過用機器學習取代硬編碼,並結合訓練環境隨機化擴大探索空間,得到魯棒的強化學習策略網絡,OpenAI 去年藉此攻克了 Dota 中的一個小遊戲 Kiting,併成功遷移到了 1 v 1 模式中。而要進一步擴展到 5 v 5 團隊戰,最關鍵的一步就是擴大算力規模。OpenAI 最終使用了 128,000 CPU 核和 256 個 GPU 來支持算力,讓 AI 每天自我博弈成千上萬盤遊戲,每天累計遊戲時間達到 180 年。
人們原先認爲,進行長時間和巨大探索空間的學習需要藉助層級強化學習。然而,OpenAI 的結果表明,至少以足夠的規模和合理的探索方式運行的時候,一般的強化學習方法也能收穫奇效。
關觀察空間,OpenAI 將 Dota2 世界表徵爲一個由 2 萬個數值組成的列表;關於動作空間,OpenAI 設置了一個包含 8 個枚舉值的列表,bot 根據這個列表的輸出採取行動。
OpenAI Five 的每一個 bot 都配置了一個 LSTM 來生成事件記憶,通過近端策略優化來進行自我對抗,併合理分配對手來避免策略模式匱乏。通過給未來獎勵設置合理的指數衰減,OpenAI Five 可以控制 bot 關注長期或者短期的獎勵。OpenAI Five 還設置了一個很巧妙的「團隊精神」參數,在訓練過程中逐漸從 0 增加到 1,可以讓 bot 從關注個人獎勵過渡到團隊獎勵,也就是從學習個人基本技能到學習團隊作戰策略。在某種程度上,這也可以說是一種隱含的層級強化學習。
OpenAI Five 從隨機參數開始,這些 bot 卻能從盲目遊走演變出 Dota 老司機非常熟悉的經典技能,令人驚歎。
在收穫讚譽的同時,對 OpenAI Five 的質疑也鋪天蓋地而來。
儘管是從隨機參數開始訓練,但 OpenAI Five 在嚴格意義上並不能說是「從零開始」訓練,並且其遊戲條件和人類玩家也有很大的不同。OpenAI Five 的 bot 的觀察輸入並不是遊戲界面的直接呈現,而是通過 API 讀取的結構化數據(也就是那 2 萬個數值組成的列表),各種距離度量都可以輕易完成,這和人類玩家的度量方式顯然大不相同,並具有精度和速度上的優勢。當然,目前的視覺強化學習仍然處於初步階段。而出現這些質疑也是合理的,畢竟攻克一個遊戲相對於遷移到現實世界而言,仍然只是個小問題。
關於英雄池的限制問題這裏就不討論了,感興趣的讀者可以參考我們的報道。
在 8 月末的 TI 8 正式比賽中,OpenAI Five 卻遭遇兩場連敗,尷尬收場。
至於下一步,OpenAI 是否會考慮《星際爭霸 II》AI 廣泛採用的層級強化學習呢?此外,以和玩家相同的遊戲界面作爲觀察輸入進行視覺強化學習,這樣的結果是不是更能讓人信服呢?我們,再等等吧。
OpenAI 人工智能 1v1 擊敗 Dota2 最強玩家:明年開啓 5v5 模式
Dota 2 被攻陷!OpenAI 人工智能 5V5 模式擊敗人類玩家(4000 分水平)
毫無還手之力!OpenAI 人工智能 5v5 擊敗超凡 5 玩家(6600 水平)
面對最菜 TI 戰隊,OpenAI 在 Dota2 上輸的毫無還手之力
深度 | 嵌入技術在 Dota2 人工智能戰隊 OpenAI Five 中的應用
量子計算
量子計算在理論上超越了經典計算,卻給經典機器學習算法帶來了靈感。
絕對界限
計算機科學家 Ran Raz 和 Avishay Tal 證明只有量子計算機可以解決 forrelation 問題,而傳統計算機卻永遠無法解決。從計算複雜度的角度來講就是,他們找到了一個屬於 BQP、而不屬於 PH 的問題。其中,PH 涵蓋了任何可能的傳統計算機所能解決的問題,BQP 涵蓋了量子計算機可以解決的所有問題。
科學家早就證明 BQP 包含 P,但一直未能證明是否真包含 P。而 P∈NP∈PH,現在 Ran Raz 和 Avishay Tal 的結果也順帶證明了 BQP 真包含 P。
這個結果的意義還在於,即使將來人們證明 P=NP,傳統計算機和量子計算機之間仍然存在根本的區別。
相對界限
來自 UT Austin 的 Ewin Tang 提出了一種非常高效的「Quantum inspired」經典推薦系統算法,相比於之前的最快經典算法有指數級提高,並和量子推薦系統算法的速度相當。Tang 的結果讓人們看到了另一條路徑,即使傳統計算和量子計算存在絕對的界限,但對於具體的問題,還是可能找到類似計算複雜度的解法。畢竟這種界限的證明只是存在性的。在距離量子計算機實用還很遙遠的當下,或許「量子快速算法的經典化」是更值得探索的一個方向。就在近期,Tang 再次證明了低秩矩陣的量子矩陣求逆算法也存在有效的經典變體。
開源工具與庫
在過去的 2018 年中,不僅理論上有很多突破,實踐上也有非常多的開源工作。這些開源工作不僅包括已有項目的更新,同時還包括針對新想法的新項目。前者主要體現在 PyTorch 1.0、Julia 1.0 和 PaddlePaddle 1.0 等的發佈,後者主要體現在 TensorFlow.js、Detectron、PyText 和 Auto Keras 等新項目的開源。
在這一部分中,我們主要關注今年發佈的新項目,其它優秀項目的重大更新並不會包含在內。
強化學習框架 Dopamine
在過去幾年裏,強化學習研究取得了多方面的顯著進展。然而,大多數現有強化學習框架並不同時具備可讓研究者高效迭代 RL 方法的靈活性和穩定性,因此探索新的研究方向可能短期內無法獲得明顯的收益。因此谷歌介紹了一款基於 TensorFlow 的新框架,旨在爲強化學習研究者及相關人員提供具備靈活性、穩定性及復現性的工具。
項目地址:https://github.com/google/dopamine
該框架的靈感來自於大腦中獎勵–激勵行爲的主要組成部分「多巴胺」(Dopamine),這反映了神經科學和強化學習研究之間的密切聯繫,該框架旨在支持能夠推動重大發現的推測性研究。
業界 |「多巴胺」來襲!谷歌推出新型強化學習框架 Dopamine
除了谷歌發佈的這種具有易用性和可複用性的 RL 框架,在強化學習領域中,OpenAI 還發布了 Spinning Up。它是一份完整的教學資源,旨在讓所有人熟練掌握深度強化學習方面的技能。Spinning Up 包含清晰的 RL 代碼示例、習題、文檔和教程。
項目地址:https://spinningup.openai.com/en/latest/
從 Zero 到 Hero,OpenAI 重磅發佈深度強化學習資源
圖網絡庫(Graph Nets library)
DeepMind 開源的這個項目主要是依據他們在 6 月份發表的論文《Relational inductive biases, deep learning, and graph networks》,他們在該論文中將深度學習與貝葉斯網絡進行了融合,並提出了一種具有推理能力的概率圖模型。
項目地址:https://github.com/deepmind/graph_nets
圖網絡庫可以用 TensorFlow 和 Sonnet 快速構建圖網絡,它還包含一些 demo,展示瞭如何創建、操作及訓練圖網絡以在最短路徑搜索任務、排序任務和物理預測任務中進行圖結構數據推理。每個 demo 使用相同的圖網絡結構,該結構可以凸顯該方法的複雜性。
資源 | DeepMind 開源圖網絡庫,一種結合圖和神經網絡的新方法
圖神經網絡框架 DGL
目前擺在深度學習面前有一個很現實的問題,即如何設計「既快又好」的深度神經網絡?也許更加動態和稀疏的模型會是答案所在。可見,不論是數據還是模型,「圖」應該成爲一個核心概念。
基於這些思考,NYU、AWS 開發了 Deep Graph Library(DGL),一款面向圖神經網絡以及圖機器學習的全新框架。
項目地址:https://github.com/jermainewang/dgl
目前 DGL 提供了 10 個示例模型,涵蓋了單靜態圖、多圖和巨圖三種類別。其中除了 TreeLSTM,其餘都是 2017 年以後新鮮出爐的圖神經網絡,其中包括幾個邏輯上相當複雜的生成模型(DGMG、JTNN)。他們還嘗試用圖計算的方式重寫傳統模型比如 Capsule 和 Universal Transformer,讓模型簡單易懂,幫助進一步擴展思路。
NYU、AWS 聯合推出:全新圖神經網絡框架 DGL 正式發佈
Auto Keras
AutoKeras 是一個由易用深度學習庫 Keras 編寫的開源 Python 包。AutoKeras 使用 ENAS——神經網絡自動架構搜索的高效新版本。AutoKeras 包可通過 pip install autokeras 快速安裝,然後你就可以免費在準備好在的數據集上做你自己專屬的架構搜索。
項目地址:https://github.com/jhfjhfj1/autokeras
因爲所有的代碼都是開源的,所以如果你想實現真正的自定義,你甚至可以利用其中的參數。所有代碼都來自 Keras,所以代碼深入淺出,能幫助開發人員快速準確地創建模型,並允許研究人員深入研究架構搜索。
終結谷歌每小時 20 美元的 AutoML!開源的 AutoKeras 瞭解下
TransmogrifAI
軟件行業巨頭 Salesforce 開源了其 AutoML 庫 TransmogrifAI。TransmogrifAI 是一個基於 Scala 語言和 SparkML 框架構建的庫,只需短短的幾行代碼,數據科學家就可以完成自動化數據清理、特徵工程和模型選擇工作,得到一個性能良好的模型,然後進行進一步的探索和迭代。
項目地址:https://github.com/salesforce/TransmogrifAI
TansmogrifAI 爲我們帶來了巨大的改變,它使數據科學家在生產中使用最少的手動調參就能部署數千個模型,將訓練一個性能優秀模型的平均時間從數週減少到幾個小時。
Salesforce 開源 TransmogrifAI:用於結構化數據的端到端 AutoML 庫
最後,AutoML 類的工作在 18 年還有很多,不過要分清楚這些概念,可以讀一讀下面的文章:
觀點 | AutoML、AutoKeras...... 這四個「Auto」的自動機器學習方法你分得清嗎?
目標檢測框架 Detectron
今年 Facebook 開源的目標檢測框架 Detectron 目前已有超過 1.8W 的收藏量,它構建於 Caffe2 之上,目前支持大量頂尖目標檢測算法。其中包括 Mask R-CNN(ICCV 2017 最佳論文)和 Focal Loss for Dense Object Detection(ICCV 2017 最佳學生論文)。
項目地址:https://github.com/facebookresearch/Detectron
目前 Detectron 已經包括檢測、分割和關鍵點檢測等衆多任務的頂尖算法,且一旦訓練完成,這些計算機視覺模型可被部署在雲端或移動設備上。下圖展示了 Model Zoo 中 Mask-R-CNN 關鍵點檢測的基線結果,它還有很多任務與模型。
我們曾介紹過 Detectron,讀者可以閱讀以下文章瞭解詳情:
資源 | 整合全部頂尖目標檢測算法:FAIR 開源 Detectron
專欄 | 從論文到測試:Facebook Detectron 開源項目初探
專欄 | Detectron 精讀系列之一:學習率的調節和踩坑
與此同時,商湯和港中文今年 10 月份聯合開源了 mmdetection,它是一個基於 PyTorch 的開源目標檢測工具包。該工具包支持 Mask RCNN 等多種流行的檢測框架,讀者可在 PyTorch 環境下測試不同的預訓練模型及訓練新的檢測分割模型。
資源 | 一個基於 PyTorch 的目標檢測工具箱,商湯聯合港中文開源 mmdetection
NLP 建模框架 PyText
爲了降低人們創建、部署自然語言處理系統的難度,Facebook 開源了一個建模框架——PyText,它模糊了實驗與大規模部署之間的界限。PyTex 是 Facebook 正在使用的主要自然語言處理(NLP)建模框架,每天爲 Facebook 及其應用程序系列的用戶提供超過 10 億次 AI 任務處理。這一框架基於 PyTorch,可以 1)簡化工作流程,加快實驗進度;2)提供一大批預構建的模型架構和用於文本處理和詞彙管理的工具,以促進大規模部署;3)提供利用 PyTorch 生態系統的能力,包括由 NLP 社區中的研究人員、工程師預構建的模型和工具。利用該框架,Facebook 在幾天內就實現了 NLP 模型從理念到完整實施的整個過程,還部署了依賴多任務學習的複雜模型。
Yann LeCun 對此介紹道,「PyText 是一個工業級的開源 NLP 工具包,可用於在 PyTorch 中開發 NLP 模型,並通過 ONNX 部署。其預訓練模型包括文本分類、序列標註等。」
項目地址:https://github.com/facebookresearch/pytext
參考文章:Facebook 開源 NLP 建模框架 PyText,從論文到產品部署只需數天
做自然語言處理,詞嵌入基本是繞不開的步驟,各種任務都需要歸結到詞層面才能繼續計算。因此對於國內自然語言處理的研究者而言,中文詞向量語料庫是需求很大的資源。爲此,北京師範大學等機構的研究者開源了「中文詞向量語料庫」,該庫包含經過數十種用各領域語料(百度百科、維基百科、人民日報 1947-2017、知乎、微博、文學、金融、古漢語等)訓練的詞向量,涵蓋各領域,且包含多種訓練設置。
中文詞向量項目地址:https://github.com/Embedding/Chinese-Word-Vectors
該項目提供使用不同表徵(稀疏和密集)、上下文特徵(單詞、n-gram、字符等)以及語料庫訓練的中文詞向量(嵌入)。我們可以輕鬆獲得具有不同屬性的預訓練向量,並將它們用於各類下游任務。
BERT 開源實現
儘管如前所述 BERT 的效果驚人,但預訓練所需要的計算力同樣驚人,一般的開發者基本就不要想着能復現了。BERT 的作者在 Reddit 上也表示預訓練的計算量非常大,Jacob 說:「OpenAI 的 Transformer 有 12 層、768 個隱藏單元,他們使用 8 塊 P100 在 8 億詞量的數據集上訓練 40 個 Epoch 需要一個月,而 BERT-Large 模型有 24 層、2014 個隱藏單元,它們在有 33 億詞量的數據集上需要訓練 40 個 Epoch,因此在 8 塊 P100 上可能需要 1 年?16 Cloud TPU 已經是非常大的計算力了。」
但是,谷歌團隊開源了 BERT 的預訓練模型,我們可以將它們用於不同的 NLP 任務。這節省了我們大量計算力,同時還能提升已有模型的效果,因此做 NLP 任務前,你可以先用預訓練的 BERT 試試水?
BERT 實現地址:https://github.com/google-research/bert
其實目前已經有很多開發者將 BERT 預訓練模型應用到它們自己的項目中,包括抽取句向量、句子相似性判斷或情感分析等,下面兩篇文章簡單介紹瞭如何將 BERT 預訓練模型遷移到你的項目中:
大規模稀疏框架 XDL
今年 12 月,阿里巴巴開源了其應用於自身廣告業務的算法框架 X-Deep Learning(XDL)。該框架非常擅長處理高維稀疏數據,對構建推薦、搜索和廣告系統非常有優勢。此外,阿里還配套發佈了一系列官方模型,它們都是阿里在實際業務或產品中採用的高效模型。
項目地址:https://github.com/alibaba/x-deeplearning
XDL 團隊表示它主要在三個層面上對通用框架有比較大的提升:
首先是對大規模稀疏性數據的建設;
其次是結構化的計算流;
最後在結構化的計算流基礎上,模型的分佈也需要結構化。
我們採訪了 XDL 團隊,並對該框架有一個詳細的介紹,感興趣的讀者可查閱:
阿里開源首個 DL 框架,新型 XDL 幫你搞定大規模稀疏數據
面向前端的 TensorFlow.js
在 TenosrFlow 開發者峯會 2018 中,TensorFlow 團隊表示基於網頁的 JavaScript 庫 TensorFlow.js 現在已經能訓練並部署機器學習模型。我們可以使用神經網絡的層級 API 構建模型,並在瀏覽器中使用 WebGL 創建複雜的數據可視化應用。此外 Node.js 很快就會發布,它能爲網站模型提供 GPU、TPU 等快速訓練與推斷的方法。
項目地址:https://js.tensorflow.org/
在 TensorFlow.js 中,我們可以使用最底層的 JavaScript 線性代數庫或最高級的 API 在瀏覽器上開發模型,也能基於瀏覽器運行已訓練的模型。因此,它可以充分利用瀏覽器和計算機的計算資源實現非常多的機器學習應用。例如在網頁端訓練一個模型來識別圖片或語音、訓練一個模型以新穎的方式玩遊戲或構建一個能創造鋼琴音樂的神經網絡等。
TensorFlow 發佈面向 JavaScript 開發者的機器學習框架 TensorFlow.js
最後,2018 年開源的開源工作實在是太多了,還有很多優秀的開源工作,例如小米開源的移動端框架 MACE 和英特爾開源的 nGraph 編譯器。這裏只是從不同的角度介紹少量的開源工作,讀者也可以在留言中寫出 2018 年你認爲最重要的開源工作。