本文由 【AI前線】原創:t.cn/RHxwjPUgit
做者|Ed Tyantov 譯者|Debra 編輯|Emilygithub
AI 前線導讀:「過去一年裏,深度學習文字、語音和計算機視覺技術均獲得了巨大的發展,實現了一些可喜的成果。算法
這篇譯自數據科學家 Ed Tyantov 的文章對過去一年(以及更長的一段時間)裏,深刻學習取得的最新成果進行了總結和評估,並告訴你們可能影響咱們將來的最重要的發展趨勢。」數據庫
文本編程
Google 神經機器翻譯api
大約一年前,Google 宣佈推出 Google 翻譯新模型,並詳細介紹了該網絡的結構——遞歸神經網絡(RNN)。安全
主要成果: Google 神經機器在翻譯的準確性方面與人類的差距縮小了 55-85%(人類爲 6 分)。然而,若是沒有 Google 的龐大數據集,此模型不必定能夠達到這樣的效果。服務器
聊天機器人創造語言?No!只是謠言而已網絡
你可能據說過 Facebook 關閉了他們公司的聊天機器人這個好笑的新聞,聽說緣由是這個機器人失控了,而且發明了本身的語言。這是由 Facebook 建立的談判機器人,目的是與另外一個 agent 進行文本談判並達成一個協議:如何將物品(書、帽子等)分爲兩部分。在談判中,每一個 agent 都有各自的目標,而另外一個對此絕不知情。架構
在訓練過程當中,他們用一我的類談判的數據集對監督式反饋神經網絡進行訓練,隨後使用強化學習算法,訓練另外一個 agent 與本身對話,並設置限制,這一點與人類語言類似。
而後機器人很快學會了人類在談判中常用的那一套策略,好比對交易的某些方面表現出虛假的興趣,而後在談判後期放棄這一點,並轉而達到實際目的而從中受益。這是人類首次嘗試創造這樣一個互動機器人,並且很是成功。
完整的故事在這篇文章中有描述,機器人的代碼也是開源的。
固然,那些聲稱機器人發明了一種語言的媒體徹底是捕風捉影。訓練時(與同一 agent 協議),Facebook 禁止了文本與人類的類似性限制,並修改了互動的語言,這其實沒什麼特別之處。
在過去的一年中,人們開發反饋性神經網絡的積極性很高,並已經將其應用到許多任務和軟件中。 RNN 的架構變得複雜不少,可是在一些領域,使用簡單的前饋網絡 DSSM 也取得了相似的成果。例如,Google 郵件的功能「智能回覆」,能達到與 LSTM 相同的效果。此外,Yandex 還基於這一神經網絡推出了一個全新的搜索引擎。
聲音
WaveNet:原始音頻生成模型
DeepMind 在這篇文章中報道了關於生成音頻的模型。簡言之,這個團隊的研究人員在圖像生成方法(PixelRNN 和 PixelCNN)的基礎上生成了自迴歸全卷積 WaveNet 模型。
該網絡爲端對端訓練模型:輸入文本、輸出音頻。與人類相比,該研究的偏差下降了 50%,這是個不錯的結果。
然而,WaveNet 的主要缺點是效率低,這是由於自動迴歸,聲音按序生成,建立一個一秒鐘長度的音頻就須要大約 1-2 分鐘。
案例:
storage.googleapis.com/deepmind-me…
若是消除網絡對輸入文本的依賴性,只依靠先前生成的音素,那麼該網絡將生成相似於人類語言的無心義的音素。
生成聲音的例子
這種模式不只適用於演講,也適用於創做音樂。想象一下有一天這個模型能夠學習鋼琴遊戲的數據集(一樣不依賴於數據輸入),生成音頻。
若是對這個模型感興趣,能夠閱讀 DeepMind 研究的完整版本。
讀脣術
讀脣是深度學習超越人類能力,取得的另外一大成果。
Google Deepmind 與牛津大學合做,在文章《Lip Reading Sentences in the Wild》中向世人介紹了他們的「讀脣」模型。該模型利用他們收集的電視節目數據集進行訓練,讀脣能力超越 BBC 頻道的專業脣讀者。
這個數據集中包含 10 萬個帶有音頻和視頻的句子。模型:LSTM 處理音頻、CNN + LSTM 處理視頻。這兩個狀態向量最終反饋到 LSTM,從而生成結果(字符)。
在訓練期間,這個模型使用了不一樣類型的輸入數據:音頻、視頻、音頻 + 視頻。換句話說,這是一個「全類型」任務模型。
生成奧巴馬音頻嘴脣同步運動
華盛頓大學對奧巴馬總統脣部的運動進行了一項認真的研究。之因此選擇他的視頻,聽說是由於這位總統的演講視頻在網上數量衆多,一搜一大把(17 小時的高清視頻)。
由於這些音頻通過太多「修飾」,因此文章的做者製造了一些拐點(或技巧),以改善文本和時間節點。
結果很驚人。在不久的未來,恐怕咱們在觀看一段視頻的時候,還得認真考證一番考慮視頻的真實性了。
計算機視覺
OCR:Google 地圖和街景
Google 大腦團隊在他們的文章中,詳細介紹了了他們如何在地圖中引入能夠識別路牌和商店標誌 OCR(光學字符識別)的引擎。
在技術開發過程當中,該公司編制了一套新的 FSNS(法國街道名稱標誌),其中包含許多複雜的案例。
這個網絡識別一個標誌最多須要四張照片。經過 CNN 提取特徵,在空間注意力的幫助下進行縮放(將像素座標考慮在內),並將結果反饋到 LSTM。
圖 1:每張圖像通過特徵提取器處理,隨後把結果連成一個特徵圖,由「f」表示,使用空間加權組合建立一個大小固定,反饋到 RNN 的矢量 ut。
一樣的方法還適用於識別商店招牌名稱的任務(可能有大量的「噪音」數據,而網絡自己必須聚焦到正確的位置),樣本能夠達 800 億張照片。
視覺推理
深度學習還能夠完成一種被稱爲視覺推理的任務,要求神經網絡經過根據照片回答問題。例如:「在圖片中是否有與黃色金屬圓柱體相同尺寸的橡膠材質?」而這個重要的問題直到最近才得以解決,準確度達 68.5%。
此次突破一樣是 Deepmind 團隊的功勞:在 CLEVR 數據集中,他們達到了 95.5%的精確度,這一成果甚至超過人類。
並且,這個網絡架構很是有趣:
Pix2 代碼
此外,Uizard 公司還建立了一個有趣的神經網絡應用:把界面設計者的屏幕截圖,並生成一個佈局代碼。
圖 2:使用 DSL 編程的本地 iOS GUI 示例
這是一個很是實用的神經網絡應用程序,它可使開發軟件的過程更輕鬆。做者稱,這個網絡的準確度能夠達到 77%。可是,這個項目目前還在研究階段,目前尚未開始實際應用。
SketchRNN:訓練一臺機器畫畫
也許你據說過 Google 開發的 Quick,Draw!,其目標是在 20 秒內繪製各類目標的草圖。如谷歌在博客和文章中所述,他們收集了一個數據集來訓練神經網絡。
這個數據集包含 7 萬張草圖,現已開源。草圖不是圖片,而是繪圖的詳細向量描述(在某一點用戶按下「鉛筆」,鬆開開始繪製等)。
研究人員已經使用 RNN 做爲編碼 / 解碼機制,來訓練序列到序列的變分自編碼器(VAE)。
圖 2:RNN 框架原理圖
最終,爲了適配自動編碼器,該模型接收到表徵原始圖像的本徵向量。
因爲解碼器能夠從這個矢量中提取一幅圖畫,你能夠經過改變向量獲得新的草圖。
甚至經過執行矢量算法來建立一個「貓豬」:
GANs
生成性對抗網絡(GAN,Generative Adversarial Networks )是深度學習中最熱門的話題之一。GANs 多用來處理圖像,因此我用圖像來解釋這個概念。
GAN 的基本原理是兩個網絡——生成器和鑑別器之間相互競爭。生成器網絡生成圖片,而鑑別器網絡判斷圖片是真實的,仍是生成的。
示意圖以下:
在訓練期間,來自隨機向量(噪聲)的生成器生成圖像,並將其反饋到鑑別器的輸入端,由鑑別器判斷輸入的真假性。固然,鑑別器接收到的圖像也包括數據集中的真實圖像。
因爲很難找到兩個網絡的平衡點,對這樣的架構進行訓練很是困難。大多數狀況下,鑑別器都是獲勝的一方,訓練也所以停滯。可是,這個系統的好處在於能夠解決那些難以設定損失功能的問題(例如提升照片的質量),這樣的任務咱們能夠交給鑑別器來完成。
GAN 訓練最典型的例子是臥室或人像。
以前,咱們考慮過使用自動編碼(Sketch-RNN),它將原始數據編碼爲隱藏表示。生成器一樣能夠完成這樣的任務。
在一我的臉圖像項目中,咱們使用了矢量生成圖像的方法。你能夠改變矢量,看看臉部是如何變化的。
一樣的算法在隱藏空間中一樣有效:「一個戴眼鏡的男人」減去「男人」,再加上一個「女人」就等於「戴眼鏡的女人」。
用 GAN 改變人臉的年齡
若是在訓練過程當中向隱藏向量輸入控制參數,在生成隱藏向量時就能夠對之進行更改,以管理圖片中的圖像。這種方法被稱爲條件 GAN(conditional GAN)。
在《Face Aging With Conditional Generative Adversarial Networks》這篇文章中,做者也是這樣作的。引擎在通過使用 IMDB 上已知年齡演員的數據集訓練以後,研究人員能夠改變人的面部年齡。
專業照片
Google 還爲 GAN 找到了另外一個有趣的用武之地——照片篩選和質量改善。他們使用了專業照片數據集對 GAN 進行了訓練:生成器用來改善照片的質量(通過特殊濾鏡處理的專業鏡頭),鑑別器則分辨哪些是通過「改善」的照片,哪些是真正的專業照片。
訓練有素的算法經過谷歌街景全景圖搜索最佳圖片,並搜索到一些專業和半專業的照片(根據攝影師的評級)。
從文本描述中合成圖像
GAN 的另外一個使人印象深入的應用案例,是根據文本描述生成圖像。
該項目的研究者建議,不只要將文本嵌入到生成器(條件 GAN)的輸入中,並且還要將其嵌入到鑑別器中,以便驗證文本與圖片的對應性。爲了確保鑑別器學會執行功能,除了訓練以外,他們還爲真實圖片添加了對應的錯誤文本。
Pix2pix
2016 年,在衆多文章中,Berkeley AI Research(BAIR)的一篇《 Image-to-Image Translation with Conditional Adversarial Networks》(使用 CAN 進行圖像——圖像翻譯)脫穎而出。這項研究解決了圖像到圖像生成的問題,例如使用衛星圖像建立地圖,或使用目標草圖建立逼真的紋理等。
這是條件 GAN 成功應用的另外一個例子。在這種狀況下,條件會覆蓋整個圖像,在圖像分割中很受歡迎的 UNet,則被用做生成器的體系結構,而且使用一個新的 PatchGAN 分類器,做爲處理模糊圖像的鑑別器(圖像被切割成 N 個補丁,而且對每一個補丁進行真 / 假預測)。
研究者發佈了這個網絡的在線演示,引發了用戶的極大興趣。
源代碼地址:
CycleGAN
爲了應用 Pix2Pix,咱們須要一個包含來自不一樣域,兩兩相對應的圖片數據集。通常狀況下,收集這樣的數據集不是問題,可是,若是你想作一些更復雜的事情,如「改變」對象或風格,原則上目標的對應的圖片很難找到。
所以,Pix2Pix 的研究者決定開拓思路,並建立了在圖像的不一樣域之間進行轉換,而不須要配對圖像的模型——CycleGAN(《Unpaired Image-to-Image Translation》)。
這個網絡的基本原理,是訓練兩對生成器和鑑別器把圖像從一個域轉移到另外一個域,在這個過程當中須要保持循環一致性——在生成器一系列應用以後,咱們預計能夠獲得一個相似於原始 L1 損失圖像。爲確保生成器將與原圖像徹底不相關的一個域傳送到另外一個域,咱們須要一個循環損失。
這種方法能夠學習在馬 - >斑馬之間進行轉換。
但這種轉變很是不穩定,每每致使不理想的結果:
源代碼連接:
腫瘤學分子的發展
機器學習如今也正在走向醫學領域。除了識別超聲波、MRI,進行診斷外,機器學習還能夠用來發現對抗癌症的新葯物。
簡而言之,在對抗性自動編碼器(AAE,Adversarial Autoencoder)的幫助下,咱們能夠學習分子的隱藏表示,而後用它來搜索新的分子。結果,咱們發現了 69 個分子,其中一部分爲能夠抗癌的分子,其餘的則有很大醫療價值。
對抗性攻擊(Adversarial attacks)
人們對對抗性攻擊的探索一樣很積極。那麼,什麼是對抗性攻擊?例如,通過 ImageNet 訓練的標準網絡在爲分類圖片添加特殊噪聲時,是徹底不穩定的。在下面的例子中,咱們看到人眼噪聲圖片幾乎沒有變化,但模型卻給出了一個徹底不一樣分類的預測。
對此,咱們可使用快速梯度符號法(FGSM)實現穩定性:其能夠訪問模型的參數,可以對所需的類進行一個或多個漸變步驟,並更改原始圖片。
Kaggle 的任務之一就與此相關:鼓勵參與者生成攻擊 / 防護,這些攻擊 / 防護通過相互對立,優勝劣汰。
然而,咱們爲何要研究這些攻擊呢?首先,若是想要保護咱們的產品,咱們能夠向驗證碼添加噪音,自動識別垃圾郵件。其次,算法與咱們的生活愈來愈密切,例如面部識別系統和自動駕駛車車輛。在這些狀況下,算法的缺點很肯會被攻擊者利用,形成不可想象的後果。
例如,有一種特殊的眼鏡能夠成功欺騙臉部識別系統,「把你本人識別成另外一我的」。因此,咱們在訓練模型時須要考慮到可能遭受的攻擊。
對標識進行以下操做,也會致使它們不能被正確識別。
強化學習
強化學習(RL)也是機器學習中最有趣,最引人關注的方法之一。
這種方法的本質,是 agent 在特定環境中學習獲得獎勵的經驗,即「成功」的行爲,就像人們從生活中獲得經驗教訓同樣。
目前,RL 在遊戲、機器人和系統管理(例如流量)中被普遍使用。
固然,你們都知道 AlphaGo 在比賽中打敗職業選手的事蹟,它的研究人員就是採用 RL 對其進行訓練:機器人與本身博弈,改進策略。
不受控輔助任務強化學習
在過去的幾年裏,DeepMind 用 DQN 玩街機遊戲比人類都溜。目前,DeepMind 正在訓練算法來玩更復雜的遊戲,如 Doom。
由於 agent 獲取與環境交互的經驗,須要在如今的 GPU 上進行數小時的訓練,因此研究人員把大部分的精力都集中在學習加速方面。
Deepmind 在博客中表示,引入額外的損失(輔助任務),如預測幀變化(像素控制),可讓 agent 更好地理解行爲的後果,這大大加快了學習速度。
學習機器人
OpenAI 一直在積極研究在虛擬環境中訓練 agent,這比在現實中進行實驗更安全。
在其中一項研究中,該團隊表示,一次性完成學習並不是不可能:在虛擬現實環境中,只需展現一次執行某項任務的過程,算法就能夠掌握要領,並在真實條件下進行再現。
雖然這些任務對人類來講小菜一碟 :)
學習人的喜愛
OpenAI 和 DeepMind 都在對這一課題進行研究。原理是 agent 須要完成一個任務,該算法爲其提供兩種可能的解決方案,並指出哪個更好。迭代地重複該過程,而且歷來自人類的反饋(二進制標記)中學習如何解決該問題。
和往常同樣,人們必須十分當心,謹慎地對機器進行訓練。這個例子中,鑑別器斷定算法真的想拿到這個目標,但實際上它可能只是模擬了「拿」這個動做而已。
在複雜的環境中運動
DeepMind 還在進行另外一項研究。爲了訓練機器人掌握複雜(走路、跳躍等),或與人類動做相似的行爲,必須進行大量的參與損失函數選擇,以鼓勵其進行咱們所指望的行爲。而在這一方面,算法最好是經過簡單的獎勵來學習複雜的行爲。
不負衆望,DeepMind 研究人員成功實現了這一目標:他們經過構建一個充滿複雜障礙的環境,並獎勵算法移動的動做來訓練 agent(身體模擬器)執行復雜的行爲。
其餘
冷卻數據中心
2017 年 7 月,Google 在報告中稱,其利用 DeepMind 機器學習來縮減數據中心的能源成本。
根據來自數據中心上千個傳感器的信息,Google 開發人員訓練了一個用來預測 PUE(電源使用效率),和提升數據中心管理效率的神經網絡集。這是 ML 實際應用的一個使人印象深入的重要案例。
適用於全部任務的模型
衆所周知,咱們很難把一個模型套用到其餘的任務中去,由於每一個任務都必須通過特定的模型訓練。然而,Google Brain 在其文章《One Model To Learn The All》中,在建立一個「萬能」的模型上邁出了一小步。
研究人員已經訓練能夠執行來自不一樣領域(文本、語音和圖像)八個任務的模型。例如翻譯不一樣語言,文本解析,以及圖像和聲音識別。
爲了實現這個目標,他們創建了一個複雜的網絡結構,用不一樣的區塊來處理不一樣的輸入數據並生成結果。編碼器 / 解碼器的區塊分爲三種類型:卷積、注意力和 gated mixture of experts (MoE)。
主要學習成果:
在一小時內學習 Imagenet
Facebook 的工做人員在他們的文章中稱,該公司的工程師可以在一個小時內在 Imagenet 上完成 Resnet-50 模型訓練。可是,這個過程須要在 256 個 GPU(Tesla P100)集羣上完成。
他們使用 Gloo 和 Caffe2 進行分佈式學習。爲了提升效率,對學習策略進行大量調整(8192 個元素)是十分必要的,如梯度平均、熱身階段、特殊學習率等。
結果,當從 8 位擴展到 256 位 GPU 時,效率能夠達到 90%。如今來自 Facebook 的研究人員能夠更快地進行實驗,而其餘公司則沒有這樣的條件。
新聞
自動駕駛車輛
自駕車汽車領域的發展如火如荼,不少公司都在對本身的產品進行測試。最近,Intel 收購 MobilEye,Uber 和谷歌技術被千古怨盜竊的醜聞,以及自動駕駛車輛第一次死亡事故等,都很是引人注目。
另一件值得注意的事是,Google Waymo 正在推出一個測試版程序。Google 是這個領域的先驅,看起來他們的技術不錯,由於他們的汽車的行程已經達 300 多萬英里。
另外,在美國,自動駕駛汽車已經能夠在這個國家的全部州上路行駛了。
衛生保健
正如我所說,ML 技術已經開始引入醫學領域。例如,谷歌與醫療中心合做進行疾病診斷。
DeepMind 甚至還開設了醫療保健部。
今年,在 Data Science Bowl 項目的基礎上,還舉行了一場在一年的時間內根據詳細的圖像預測肺癌的競賽,獎金爲一百萬美圓。
投資
目前,ML 收穫了大量投資,一如此前的大數據領域。
中國在人工智能方面投資達 1500 億美圓,成爲行業的全球領先者。
爲了在 AI 領域佔得先機,百度研究院僱用了 1300 人從事 AI 研究,Facebook 的 FAIR 則擁有 80 名僱員。在 2017 國際知識發現與數據挖掘大會(KDD)全球論文投稿中,阿里巴巴的員工介紹了他們的參數服務器鯤鵬,它運行 1000 億個樣本,普通任務的參數達萬億級。
經過咱們對 2017 年深度學習領域取得成果,也許每一個人都會從中得出不一樣的結論,但學習機器學習永遠不會太晚。不管如何,隨着時間的推移,全部開發人員都須要使用機器學習,機器學習也將成爲開發人人員的必備經常使用技能,就像今天使用數據庫的能力。
關注後回覆「AI」你懂的