2018 年即將結束,要問今年深度學習領域有什麼要關注的進展,恐怕首先想到的就是 Deepmind 的 BigGAN 和 Google 的 BERT。這兩項進展有一些共同點:除了弱監督或無監督,那就是大,數據大,模型大,計算大,算法改動沒那麼大,主要靠計算。html
可是除了它們,今年仍是有不少很是美的想法,例如強行解積分的強大流模型 Glow、基於圖結構的廣義神經網絡,以及擁有連續層級的神常常微分方程。它們爲深度學習開拓了新方向,也爲將來提供了更多選擇。前端
在這篇文章中,機器之心從想法到實踐介紹了 2018 年使人矚目的研究工做,它們共同構建了機器學習的當下。咱們主要按領域從模型到開源工具展開,其中算法或模型的選擇標準主要是效果和潛力,而開源工具的選擇主要憑藉 GitHub 的收藏量與效果。本文的目錄以下所示:node
天然語言處理git
預訓練語言模型github
機器翻譯算法
谷歌 Duplex瀏覽器
生成模型網絡
大大的 GAN架構
流模型app
神經網絡新玩法
圖神經網絡
神常常微分方程
計算機視覺
視覺遷移學習
強化學習與遊戲
徳撲
星際爭霸
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 分辨率的圖像,詳情可查看如下視頻:
https://v.qq.com/x/page/j08127vm36n.html
學界 | 史上最強 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,其中 八、九、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-201七、知乎、微博、文學、金融、古漢語等)訓練的詞向量,涵蓋各領域,且包含多種訓練設置。
中文詞向量項目地址: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 年你認爲最重要的開源工做。