選自Statsbot前端
做者:Eduard Tyantovgit
機器之心編譯程序員
2017 年只剩不到十天,隨着 NIPS 等重要會議的結束,是時候對這一年深度學習領域的重要研究與進展進行總結了。來自機器學習創業公司的 Eduard Tyantov 最近就爲咱們整理了這樣一份列表。想知道哪些深度學習技術即將影響咱們的將來嗎?本文將給你做出解答。
1. 文本github
1.1 谷歌神經機器翻譯算法
去年,谷歌宣佈上線 Google Translate 的新模型,並詳細介紹了所使用的網絡架構——循環神經網絡(RNN)。數據庫
關鍵結果:與人類翻譯準確率的差距縮小了 55-85%(研究者使用 6 個語言對的評估結果)。可是該模型若是沒有谷歌的大型數據集,則很難復現這麼優秀的結果。數組
參考閱讀:安全
重磅 | 谷歌翻譯整合神經網絡:機器翻譯實現顛覆性突破(附論文)服務器
專訪 | 谷歌神經網絡翻譯系統發佈後,咱們和 Google Brain 的工程師聊了聊網絡
1.2 談判會達成嗎?
你或許據說過「Facebook 由於聊天機器人失控、創造本身語言而關閉聊天機器人」的消息。這個機器人是用來進行談判的,其目的是與另外一個智能體進行文本談判,而後達成協議:如何把物品(書籍、帽子等)分紅兩份。談判中每一個智能體都有本身的目標,而對方並不知道。談判不可能出現未達成協議的狀況。
研究者在訓練過程當中收集人類談判的數據集,訓練監督式循環網絡。而後,讓用強化學習訓練出的智能體本身與本身交流,直到得到與人類類似的談判模式。
該機器人學會了一種真正的談判策略——對某個交易的特定方面僞裝產生興趣,而後再放棄它們,以達到真實目標。這是第一次嘗試此類互動機器人,並且也比較成功。
固然,稱該機器人創造了一種新語言的說法過於誇張了。和同一個智能體進行談判的訓練過程當中,研究者沒法限制文本與人類語言的類似度,而後算法修改了互動語言。這是很尋常的事。
參考閱讀:
業界 | 讓人工智能學會談判,Facebook 開源端到端強化學習模型
2. 語音
2.1 WaveNet:一種針對原始語音的生成模型
DeepMind 的研究者基於先前的圖像生成方法構建了一種自迴歸全卷積模型 WaveNet。該模型是徹底機率的和自迴歸的(fully probabilistic and autoregressive),其每個音頻樣本的預測分佈的前提是全部先前的樣本;不過研究代表它能夠有效地在每秒音頻帶有數萬個樣本的數據上進行訓練。當被應用於文本轉語音時,它能夠獲得當前最佳的表現,人類聽衆評價它在英語和漢語上比當前最好的參數(parametric)和拼接(concatenative)系統所生成的音頻聽起來都顯著更爲天然。
單個 WaveNet 就能夠以同等的保真度捕獲許多不一樣說話者的特色,並且能夠經過調節說話者身份來在它們之間切換。當訓練該模型對音樂建模時,咱們發現它能夠生成全新的、並且每每具備高度真實感的音樂片斷。該研究還證實其能夠被用做判別模型,能夠爲音速識別(phoneme recognition)返回頗有但願的結果。
該網絡以端到端的方式進行訓練:文本做爲輸入,音頻做爲輸出。研究者獲得了很是好的結果,機器合成語音水平與人類差距縮小 50%。
該網絡的主要缺陷是低生產力,由於它使用自迴歸,聲音按序列生成,須要 1-2 分鐘的時間才能生成一秒音頻。
參考閱讀:
DeepMind WaveNet,將機器合成語音水平與人類差距縮小 50%
2.2 脣讀
脣讀(lipreading)是指根聽說話人的嘴脣運動解碼出文本的任務。傳統的方法是將該問題分紅兩步解決:設計或學習視覺特徵、以及預測。最近的深度脣讀方法是能夠端到端訓練的(Wand et al., 2016; Chung & Zisserman, 2016a)。目前脣讀的準確度已經超過了人類。
Google DeepMind 與牛津大學合做的一篇論文《Lip Reading Sentences in the Wild》介紹了他們的模型通過電視數據集的訓練後,性能超越 BBC 的專業脣讀者。
該數據集包含 10 萬個音頻、視頻語句。音頻模型:LSTM,視頻模型:CNN + LSTM。這兩個狀態向量被饋送至最後的 LSTM,而後生成結果(字符)。
訓練過程當中使用不一樣類型的輸入數據:音頻、視頻、音頻+視頻。即,這是一個「多渠道」模型。
參考閱讀:
如何經過機器學習解讀脣語?DeepMind 要經過 LipNet 幫助機器「看」懂別人說的話
2.3 人工合成奧巴馬:嘴脣動做和音頻的同步
華盛頓大學進行了一項研究,生成美國前總統奧巴馬的嘴脣動做。選擇奧巴馬的緣由在於網絡上有他大量的視頻(17 小時高清視頻)。
研究者使用了一些技巧來改善該研究的效果。
3. 計算機視覺
3.1. OCR:谷歌地圖與街景
谷歌大腦團隊在其文章中報道瞭如何把新的 OCR(光學字符識別)引擎引入其地圖中,進而能夠識別街頭的標誌與商標。
在該技術的發展過程當中,谷歌還給出了新的 FSNS(French Street Name Signs),它包含了大量的複雜案例。
爲了識別標誌,網絡最多使用 4 張圖片。特徵經過 CNN 提取,在空間注意力(考慮像素座標)的幫助下縮放,最後結果被饋送至 LSTM。
相同方法被用於識別廣告牌上店鋪名稱的任務上(存在大量噪音數據,網絡自己必須關注正確的位置)。這一算法被應用到 800 億張圖片之上。
3.2 視覺推理
視覺推理指的是讓神經網絡回答根據照片提出的問題。例如,「照片中有和黃色的金屬圓柱的尺寸相同的橡膠物體嗎?」這樣的問題對於機器是很困難的,直到最近,這類問題的回答準確率才達到了 68.5%。
爲了更深刻地探索視覺推理的思想,並測試這種能力可否輕鬆加入目前已有的系統,DeepMind 的研究者們開發了一種簡單、即插即用的 RN 模塊,它能夠加載到目前已有的神經網絡架構中。具有 RN 模塊的神經網絡具備處理非結構化輸入的能力(如一張圖片或一組語句),同時推理出事物其後隱藏的關係。
使用 RN 的網絡能夠處理桌子上的各類形狀(球體、立方體等)物體組成的場景。爲了理解這些物體之間的關係(如球體的體積大於立方體),神經網絡必須從圖像中解析非結構化的像素流,找出哪些數據表明物體。在訓練時,沒有人明確告訴網絡哪些是真正的物體,它必須本身試圖理解,並將這些物體識別爲不一樣類別(如球體和立方體),隨後經過 RN 模塊對它們進行比較並創建「關係」(如球體大於立方體)。這些關係不是硬編碼的,而是必須由 RN 學習——這一模塊會比較全部可能性。最後,系統將全部這些關係相加,以產生場景中對全部形狀對的輸出。
目前的機器學習系統在 CLEVR 上標準問題架構上的回答成功率爲 68.5%,而人類的準確率爲 92.5%。可是使用了 RN 加強的神經網絡,DeepMind 展現了超越人類表現的 95.5% 的準確率。RN 加強網絡在 20 個 bAbI 任務中的 18 個上得分均超過 95%,與現有的最早進的模型至關。值得注意的是,具備 RN 模塊的模型在某些任務上的得分具備優點(如概括類問題),而已有模型則表現不佳。
下圖爲視覺問答的架構。問題在通過 LSTM 處理後產生一個問題嵌入(question embedding),而圖像被一個 CNN 處理後產生一組可用於 RN 的物體。物體(圖中用黃色、紅色和藍色表示)是在卷積處理後的圖像上使用特徵圖向量構建的。該 RN 網絡會根據問題嵌入來考慮全部物體對之間的關係,而後會整合全部這些關係來回答問題。
參考閱讀:
關係推理水平超越人類:DeepMind 展現全新神經網絡推理預測技術
3.3 Pix2Code
哥本哈根的一家初創公司 UIzard Technologies 訓練了一個神經網絡,可以把圖形用戶界面的截圖轉譯成代碼行,成功爲開發者們分擔了部分網站設計流程。使人驚歎的是,同一個模型能跨平臺工做,包括 iOS、Android 和 Web 界面,從目前的研發水平來看,該算法的準確率達到了 77%。
爲了實現這一點,研究者們須要分三個步驟來訓練,首先,經過計算機視覺來理解 GUI 圖像和裏面的元素(按鈕、條框等)。接下來模型須要理解計算機代碼,而且能生成在句法上和語義上都正確的樣本。最後的挑戰是把以前的兩步聯繫起來,須要它用推測場景來生成描述文本。
雖然該工做展現了這樣一種能自動生成 GUI 代碼的潛力系統,但該研究只是開發了這種潛力的皮毛。目前的 Pix2Code 模型由相對較少的參數組成,而且只能在相對較小的數據集上訓練。而構建更復雜的模型,並在更大的數據集上訓練會顯著地提高代碼生成的質量。而且採用各類正則化方法和實現注意力機制(attention mechanism [1])也能進一步提高生成代碼的質量。同時該模型採用的獨熱編碼(one-hot encoding)並不會提供任何符號間關係的信息,而採用 word2vec [12] 那樣的詞嵌入模型可能會有所好轉。所以將圖片轉換爲 UI 代碼的工做仍處於研究之中,目前還沒有投入實際使用。
項目地址:https://github.com/tonybeltramelli/pix2code
參考閱讀:
深度學習助力前端開發:自動生成 GUI 圖代碼(附試用地址)
3.4 SketchRNN:教機器畫畫
你可能看過谷歌的 Quick, Draw! 數據集,其目標是 20 秒內繪製不一樣物體的簡筆畫。谷歌收集該數據集的目的是教神經網絡畫畫。
研究者使用 RNN 訓練序列到序列的變分自編碼器(VAE)做爲編解碼機制。
最終,該模型獲取表示原始圖像的隱向量(latent vector)。
解碼器可從該向量中提取圖畫,你能夠改變它,生成新的簡筆畫。
甚至使用向量算術來繪製貓豬(catpig):
參考閱讀:
谷歌發佈 Quick Draw 塗鴉數據集:5000 萬張矢量圖,345 個類別
3.5 GAN
GAN 是深度學習領域裏的一個熱門話題。目前這種方法大多用於處理圖像,因此本文也主要介紹這一方面。GAN 的全稱爲生成對抗網絡,是 2014 年由 Ian Goodfellow 及其蒙特利爾大學的同事們率先提出的。這是一種學習數據的基本分佈的全新方法,讓生成出的人工對象能夠和真實對象之間達到驚人的類似度。
GAN 背後的思想很是直觀:生成器和鑑別器兩個網絡彼此博弈。生成器的目標是生成一個對象(好比人的照片),並使其看起來和真的同樣。而鑑別器的目標就是找到生成出的結果和真實圖像之間的差別。鑑別器一般會從數據集中給出圖像用於對比。
因爲很難找出兩個網絡之間的平衡點,訓練一般難以連續進行。大多數狀況下鑑別器會獲勝,訓練陷入停滯。儘管如此,因爲鑑別器的設計能夠幫助咱們從損失函數設定這樣的複雜問題中解決出來(例如:提高圖片質量),因此 GAN 得到了衆多研究者的青睞。
典型的 GAN 訓練結果——臥室和人臉。
在此以前,咱們一般會考慮使用自編碼器(Sketch-RNN),讓其將原始數據編碼成隱藏表示。這和 GAN 中生成器所作的事情同樣。
你能夠在這個項目中(http://carpedm20.github.io/faces/)找到使用向量生成圖片的方法。你能夠自行嘗試調整向量,看看生成的人臉會如何變化。
這種算法在隱空間上一樣適用:「一個戴眼鏡的男人」減去「男人」加上「女人」就等於「一個戴眼鏡的女人」。
參考閱讀:
3.6 使用 GAN 改變面部年齡
若是在訓練過程當中得到一個可控制的隱向量參數,咱們就能夠在推斷階段修改這個向量以控制圖像的生成屬性,這種方法被稱爲條件 GAN。
論文 Face Aging With Conditional Generative Adversarial Networks 的做者使用在 IMDB 數據集上預訓練模型而得到年齡的預測方法,而後研究者基於條件 GAN 修改生成圖像的面部年齡。
參考閱讀:
3.7 專業攝影做品
谷歌已經開發了另外一個很是有意思的 GAN 應用,即攝影做品的選擇和改進。開發者在專業攝影做品數據集上訓練 GAN,其中生成器試圖改進照片的表現力(如更好的拍攝參數和減小對濾鏡的依賴等),判別器用於區分「改進」的照片和真實的做品。
訓練後的算法會經過 Google Street View 搜索最佳構圖,得到了一些專業級的和半專業級的做品評分。
參考閱讀:
3.8 pix2pix
伯克利人工智能研究室(BAIR)在 2016 年很是引人注目的研究 Image-to-Image Translation with Conditional Adversarial Networks 中,研究人員解決了圖像到圖像的生成問題。例如須要使用衛星圖像建立地圖,或使用素描建立逼真的目標紋理等。
這裏有另外一個很是成功的條件 GAN 應用案例。在該狀況下,條件將變爲整張圖像。此外,UNet 在圖像分割中十分受歡迎,常常用於生成器的體系結構,且該論文使用了新型 PatchGAN 分類器做爲處理模糊圖像的判別器。
該論文的做者還發布了他們網絡的在線演示:https://affinelayer.com/pixsrv/
源代碼:https://github.com/phillipi/pix2pix
參考閱讀:
教程 | 你來手繪塗鴉,人工智能生成「貓片」:edges2cats 圖像轉換詳解
3.9 CycleGAN
爲了應用 Pix2Pix,咱們須要包含了不一樣領域圖像對的數據集。收集這樣的數據集並不困難,但對於更復雜一點的轉換目標或風格化目標等操做,原則上是找不到這樣的目標對。
所以,Pix2Pix 的做者爲了解決這樣的問題提出了在不一樣圖像領域之間轉換而不須要特定圖像對的 CycleGAN 模型,原論文爲《Unpaired Image-to-Image Translation》。
該論文的主要想法是訓練兩對生成器-判別器模型以將圖像從一個領域轉換爲另外一個領域,在這過程當中咱們要求循環一致性。即在序列地應用生成器後,咱們應該獲得一個類似於原始 L1 損失的圖像。所以咱們須要一個循環損失函數(cyclic loss),它能確保生成器不會將一個領域的圖像轉換到另外一個和原始圖像徹底不相關的領域。
這個方法容許咱們學習將馬映射到斑馬。
這樣的轉換一般是不穩定的,而且常常建立一些不成功的案例:
源代碼:https://github.com/junyanz/CycleGAN
參考閱讀:
3.10 腫瘤分子學的進展
機器學習正在幫助改善醫療的手段,它除了在超聲波識別、MPI 和診斷等方面的應用,還能尋找對抗癌症的性藥物。
簡單來講,在對抗自編碼器(AAE)的幫助下,咱們能夠學習藥物分子的潛在表徵,並用來搜索新的藥物結構。該項研究中,研究者發現了 69 個分子,且有一半的分子可用來治療癌症和其它一些比較嚴重的疾病。
參考閱讀:
3.11 對抗性攻擊
對抗性樣本這一領域也有很是大的活力,研究者但願找到這種令模型不穩定的因素而提高識別性能。例如在 ImageNet 中,訓練的模型在識別加了一些噪點的樣本會徹底識別錯誤,這樣加了噪點的圖像可能在咱們人眼看來是沒有問題的。這一問題展示在下圖中,熊貓的圖像加了一點噪聲就會被錯誤識別爲長臂猿。
Goodfellow et al. (2014b) 代表,出現這些對抗樣本的主要緣由之一是模型過分線性化。神經網絡主要是基於線性模塊而構建的,所以它們實現的總體函數被證實是高度線性的。雖然這些線性函數很容易優化,但若是一個線性函數具備許多輸入,那麼它的值能夠很是迅速地改變。若是咱們用 ϵ 改變每一個輸入,那麼權重爲 w 的線性函數改變能夠達到 ϵ∥w∥_1,若是 w 的維度較高,那麼這會是一個很是大的數值。對抗訓練經過鼓勵網絡在訓練數據附近的局部區域恆定來限制這一高度敏感的局部線性行爲。這能夠被看做是一種明確地向監督神經網絡引入局部恆定先驗的方法。
下面一個例子表示特殊的眼鏡能夠欺騙人臉識別系統,因此在訓練特定的模型時,咱們須要考慮這種對抗性攻擊並使用對抗性樣本提升模型的魯棒性。
這種使用符號的方法也不能被正確地識別。
參考閱讀:
學界 | OpenAI 探討人工智能安全:用對抗樣本攻擊機器學習
4 強化學習
強化學習(RL)或使用了強化機制的學習也是機器學習中最有趣和發展活躍的方法之一。
該方法的本質是在一個根據經驗給予獎勵(正如人類的學習方式)的環境中學習智能體的成功行爲。
RL 在遊戲、機器人和系統控制(例如,交通)中被普遍應用。
固然,每一個人都已經據說了 AlphaGo 在遊戲中擊敗過多個頂尖專業選手。研究者使用 RL 訓練 AlphaGo 的過程是:讓機器經過自我對弈提高決策能力。
4.1 結合非受控輔助任務的強化訓練
去年,DeepMind 經過使用 DQN 玩電子遊戲取得了超越人類的表現。最近,人們已經開發出了能讓機器玩更加複雜的遊戲(如 Doom)的算法。
大多數研究關注於學習加速,由於學習智能體與環境交互的經驗須要在現代 GPU 上執行很長時間的訓練。
DeepMind 的博客(https://deepmind.com/blog/reinforcement-learning-unsupervised-auxiliary-tasks/)中報告了引入附加損失(輔助任務)的辦法,例如預測幀變化(像素控制)使智能體更充分地理解動做的後果,能夠顯著加快學習過程。
參考閱讀:
突破 | DeepMind 爲強化學習引入無監督輔助任務,人工智能的 Atari 遊戲水平達到人類的 9 倍
4.2 學習機器人
OpenAI 對在虛擬環境中訓練智能體進行了積極的研究,相比在現實世界中進行實驗要安全得多。
在其中一個研究中(https://blog.openai.com/robots-that-learn/),他們證實了一次性學習(one-shot learning)是可能實現的:在 VR 中的一我的展現如何執行任務,而且算法只須要一次展現就能學會而後在實際條件下將其重現。
若是隻有人類有這個能力就行了。:)
參考閱讀:
學界 | OpenAI 推出機器人新系統:機器可經過 VR 演示自主學習新任務
4.3 學習人類的偏好
這是 OpenAI(https://blog.openai.com/deep-reinforcement-learning-from-human-preferences/)和 DeepMind 都曾研究過的課題。基本目標是智能體有一個任務,算法爲人類提供兩個可能的解決方案,並指出那個更好。該過程須要重複迭代,而且算法接收來自學習如何解決問題的人類的 900 比特大小的反饋(二進制標記)。
一如既往,人類必須謹慎判斷,思考他教給機器到底是什麼。例如,評估器得出算法確實想要拿到某個物體,但實際上,人類只是想進行一次模擬實驗。
參考閱讀:
OpenAI 聯合 DeepMind 發佈全新研究:根據人類反饋進行強化學習
4.4 在複雜環境中的運動
這是 DeepMind 的另外一項研究(https://deepmind.com/blog/producing-flexible-behaviours-simulated-environments/)。爲了教會機器人執行復雜的行爲(行走、跳躍,等),甚至達到相似人體的動做,你須要很是重視損失函數的選擇,以得到想要的行爲。然而,讓算法自身經過簡單的獎勵機制學習複雜的行爲或許會有更好的效果。
爲了達到這個目標,研究者經過構建一個包含障礙物的複雜環境教智能體(人體模擬器)執行復雜的動做,結合簡單的獎勵機制提升動做質量。
能夠經過視頻查看研究取得的使人印象深入的結果。
最後,我給出 OpenAI 近日發佈的應用強化學習的算法的連接(https://github.com/openai/baselines)。這個解決方案比標準的 DQN 方法更好。
參考閱讀:
學界 | DeepMind論文三連發:如何在仿真環境中生成靈活行爲
5 其它
5.1 數據中心冷卻系統
在 2017 年 7 月,谷歌報告稱他們利用 DeepMind 的機器學習研究成果下降了數據中心的能耗。
基於來自數據中心的幾千個傳感器的信息,谷歌開發者訓練一個神經網絡集成預測能量利用效率(PUE)以及更高效的數據中心管理方法。這是機器學習中很是使人印象深入和重要的實際應用案例。
5.2 通用模型
如你所知,已訓練模型的任務遷移性能不好,由於每一個模型都是爲特定的任務而設計的。谷歌大腦的一篇論文(https://arxiv.org/abs/1706.05137)在通用模型的研究上跨出了一小步。
研究者訓練了一個模型,能夠執行 8 個不一樣領域(文本、語音和圖像)的任務。例如,不一樣語言的翻譯、文本解析,以及圖像、語音識別。
爲了達到這個目的,他們使用多種不一樣的模塊構建了一個複雜的網絡架構以處理不一樣的輸入數據並生成結果。編碼器/解碼器模塊包含三種類型:卷積、注意和 MoE(https://arxiv.org/abs/1701.06538)。
他們幾乎獲得了完美的模型(做者並無細調超參數)。
模型中存在不一樣領域知識的遷移,即,相比使用大量數據訓練的任務(無遷移),該模型能得到幾乎相同的性能。而且這個模型在小數據任務上表現得更好(例如,文本解析)。
不一樣任務所需的模塊之間並不會互相干擾,有時甚至能互相輔助,例如,MoE 能夠輔助 ImageNet 圖像識別任務。
模型的 GitHub 地址:https://github.com/tensorflow/tensor2tensor/blob/master/tensor2tensor/models/multimodel.py
參考閱讀:
一個模型庫學習全部:谷歌開源模塊化深度學習系統 Tensor2Tensor
5.3. 一小時訓練 ImageNet
Facebook 在其博文中告訴咱們其工程師可以用 1 小時的時間經過 Imagenet 教會 ResNet-50 模型,不過其實現須要 256 塊 GPU (Tesla P100)。
他們經過 Gloo 和 Caffe2 實現分佈式學習。爲了更有效,採用大批量的學習策略頗有必要:梯度平均、特定學習率等。
結果,當從 8 塊 GPU 擴展到 256 塊時,效率可高達 90%。如今,Facebook 能夠更快地進行實驗。
參考閱讀:
Facebook「1小時訓練ImageNet」論文與MXNet團隊發生爭議,相關研究介紹
6. 新聞
6.1. 自動駕駛
自動駕駛領域正密集地發展,測試也在積極地開展。從最近事件中咱們注意到英特爾收購 MobilEye,Uber 從谷歌剽竊自動駕駛技術的醜聞,以及首個自動駕駛死亡案例等等。
這裏我提醒一件事:谷歌 Waymo 推出了 beta 版。谷歌是該領域的先驅者,能夠假定他們的技術很好,由於其自動駕駛汽車裏程已超過 300 萬英里。
更近的事件則有自動駕駛汽車已在美國全部州容許上路測試。
6.2. 醫療
就像我說的,現代機器學習正開始應用於醫療。好比,谷歌與某醫療中心展開合做提高診斷。DeepMind 甚至還爲此成立了一個獨立部門。
在今年的 Data Science Bowl 上,有一個獎金高達 100 萬美圓的競賽,根據標註圖像預測一年之中的肺癌狀況。
6.3. 投資
正如以前的大數據,機器學習當下也涌入了大量資本。中國在 AI 領域的投資高達 1500 億美圓,從而成爲行業領導者之一。
相比之下,百度研究院擁有 1300 名員工,而 Facebook FAIR 則只有 80 名。在今年閉幕的 KDD 2017 上,阿里巴巴介紹了其參數服務器鯤鵬,它帶有萬億個參數,並使得運行 1000 億個樣本成爲常規任務。
人工智能仍處於起步階段,入門學習機器學習永遠不嫌晚。無論怎樣,全部開發者會慢慢用起機器學習,這項技術會成爲程序員的必備技能之一,就像如今每一個人都會使用數據庫同樣。