盤點深度學習一年來在文本、語音和視覺等方向的進展,看強化學習如何無往而不利

imfree2010 6年前發布 | 17K 次閱讀 深度學習

【AI科技大本營導讀】 AlphaZero自學成才,機器人Atlas苦練后空翻……2017年,人工智能所取得的新進展真是讓人應接不暇。而所有的這些進展,都離不開深度學習一年來在底層研究和技術開發上的新突破。 圣誕節前后, Statsbot 的數據科學家Ed Tyantov專門 評估了深度學習這一年在文本、語音和視覺等方向的各項研究成果,并進一步試圖 總結出 一些可能影響未來的全新趨勢。

具體都是些什么呢?我們來看文章。

文本

Google神經網絡翻譯機器

大約一年前,Google公司宣布推出Google在線翻譯的新模式,并詳細地介紹了其中的技術核心結構— 遞歸神經網絡結構 。

這項技術最大的突破是,使機器翻譯與人類的差距縮小了55-85%。必須指出,如果沒有Google的龐大數據庫作為支撐,這個遞歸神經網絡的翻譯模型很難使機器達到如此好的翻譯效果。

談判,會成功交易嗎?

你可能聽說過一則愚蠢的新聞,非死book公司關閉了聊天機器人,然后這個機器人失去控制,自己編寫語言。

這個聊天機器人是非死book公司創造的并用于談判交易工作的。它的目的是與另一個代理進行談判并達成交易:如何將物品(如書,帽子等)一分為二。每個代理在談判中都有自己的目標,而互相之間事先并不知曉對方的想法。

為了訓練機器人的需要,他們收集了一個有關人類談判的數據庫并且采用有監督的方式來訓練遞歸神經網絡模型。隨后,這些聊天機器人用一種強化學習的方式進行自我訓練,并在保證語言與人類盡可能相似的前提下,學著與自己進行對話。

慢慢地,這些機器人已經學會了一個真正的談判策略,那就是通過在談判過程中表現出對目標虛假的興趣來誤導對方,并在實際目標的選擇中受益。

創造這樣一個互動機器人是一種全新的且非常成功的嘗試。未來關于它的更多細節以及代碼都將開源。

當然,新聞中稱該機器人發明了一種新語言的消息是有點故弄玄虛。訓練時(與同一代理商進行談判時),放棄與人類保持相似性的限制,并通過算法來修改交互時所使用的語言,這并不是什么特別的事情。

在過去的一年里,循環神經網絡模型已經得到非常廣泛的運用,同時,循環神經網絡的架構也變得更加復雜。但是在一些領域,簡單的前饋網絡DSSM就可以得到類似的結果。例如,Google郵件的“智能回復”功能較之前應用LSTM架構,有著相同的性能表現。此外,Yandex還基于這樣的網絡推出了一個新的搜索引擎。

語音

WaveNet:原始音頻的生成模型

DeepMind的員工最近在文章中報道了生成音頻的研究成果。簡而言之,研究人員基于先前的圖像生成方法(像素級RNN模型和像素級CNN模型),提出了自回歸的全卷積WaveNet模型。

該網絡實現了端到端的訓練:從輸入文本到輸出音頻。相比于人類水平,該研究降低了50%的差異性,取得了很好的結果。但是,該網絡的主要缺點就是生產效率低。由于自回歸過程的原因,聲音是按照順序生成的,大約需要1-2分鐘來創建1秒的音頻。

聽到這個結果讓人感覺有點失望。如果能夠消除網絡結構對輸入文本的依賴性而僅僅留下對先前生成的音符的依賴性,那么網絡將產生類似于人類語言的音符,但是這樣做并沒有意義。

這是一個應用該模型生成聲音的例子。這種相同的模式不僅適用于演講,也適用于音樂創作。

想象一下由生成模型生成的音頻,使用關于同樣不依賴于輸入數據的鋼琴數據庫進行音樂教學工作。

如果你對這方面感興趣的話,請閱讀DeepMind關于此研究的完整介紹。

唇語解讀

唇語解讀是深度學習超越人類的另一大表現。Google DeepMind與牛津大學合作,他們發表論文講述如何用電視數據集訓練的模型的性能表現是如何超過BBC頻道里的專業唇語讀者。

該數據集中有10萬個帶有音頻和視頻的句子。采用音頻數據訓練LSTM模型,視頻數據訓練CNN+LSTM模型。這兩種狀態下訓練得到的模型向量都被饋送到最終的LSTM模型中去,從而產生最終的結果。

在訓練期間使用不同類型的輸入數據:包括音頻、視頻和音頻+視頻組合數據等。換句話說,這是一種“全渠道全方位”的訓練模型。

合成奧巴馬:在音頻中同步他的嘴唇運動

華盛頓大學做了一項嚴謹的研究,來生成前美國總統奧巴馬的唇語動作。之所以會選擇他作為研究對象,是因為這段在線錄音的持續時間很長,數據數量巨大(17個小時的高清視頻)。

由于他們沒辦法得到更多的數據資料,因此研究者進一步提出了幾個技巧性的東西來改善最后的結果。如果你感興趣的話,可以來試試看。

你可以看到研究的結果是很驚人的。在不久的將來,你甚至將不能相信那些總統的演講錄像了。

計算機視覺

OCR: Google街景地圖

Google Brain Team在他們的博客和文章中報道了他們是如何在地圖中引入新的OCR(光學字符識別)引擎,通過它來識別路牌和商店標志。

在這項技術的開發過程中,他們編制了一個新的FSNS(法國街道名稱標志),其中包含許多復雜的樣例。為了識別每一個標志,網絡最多使用四張圖片,用CNN來提取圖片特征,再輔以空間注意力機制,最終將結果饋送到LSTM模型中。

相同的方法適用于在標志牌上識別商店名稱的任務(這可能會受到很多“噪聲”數據的干擾,而模型本身需要聚焦到正確的位置上)。這種算法已適用于800億張照片的識別。

視覺推理

視覺推理任務,要求神經網絡使用照片來回答其中的問題。例如,“在圖片中是否有與黃色金屬圓柱體相同尺寸的橡膠材質?”這確實是個非常重要的問題,而直到最近這個問題才得以解決,其準確率只有68.5%。

Deepmind團隊在這個領域再次取得了突破:在CLEVR視覺推理數據集上,他們的模型實現了95.5%的超人類精確度。模型的網絡架構十分有趣:

  • 在文本問題上使用預先訓練好的LSTM模型,我們將問題嵌入到模型中。

  • 使用CNN模型(只有四層結構)對圖片提取特征,我們得到圖片的特征映射用來表征圖片的特征。

  • 接下來,我們在特征映射圖上(如下所示圖片的黃、藍、紅色區域)形成坐標切片的成對坐標組合,并將坐標值和文本信息嵌入到每個區域中。

  • 通過另一個網絡,我們將上述整個過程驅動三次,并將得到的最后結果匯總。

最終呈現的是通過另一個前饋網絡運行的結果,并給出了Softmax的結果。

Pix2Code

Uizard公司創建了一個神經網絡的有趣應用:即根據界面設計者的屏幕截圖來生成一個界面布局。

這是一個非常有用的神經網絡應用程序,他可以使開發者在開發軟件時更加輕松。該項應用的研究者聲稱他們已經能夠達到77%的應用準確率。

但是,這個問題目前還處于研究完善中,并沒有真正應用。因此,目前在開源社區還沒有相關的代碼或者數據集 。

SketchRNN:教一臺機器學會畫畫

也許你看過Quick, Draw!這是出自Google公司之手,其目標是在20秒內繪制出各種對象的草圖。該公司設計這個數據集的目的是,教會神經網絡如何畫畫。

最終公布的數據集包含7萬張草圖。草圖并不是圖片,而是一張張繪圖的詳細向量表示(在這一點上用戶按下“鉛筆”,在線段繪制的地方再釋放,等等)。研究人員已經使用RNN模型作為一個編碼/解碼機制來訓練序列到序列的變分自編碼器。

最終,為了適應自編碼器的需要,該模型接收到表征原始圖像的潛在向量。

由于解碼器能夠從這個潛在向量提取一副草圖,你可以通過改變它來得到一副新的草圖。

甚至可以執行一個矢量算法來創建一個catpig,如下圖所示:

生成對抗網絡

生成對抗網絡是當下深度學習中最熱門的話題之一。大多數情況下,這個模型是用來處理圖像數據,因此我們會用圖像來解釋這個模型。

提出這個模型的思想是在兩個競爭的網絡中,一個生成網絡和一個判別網絡。生成網絡是用于創建一張新的圖像,而判別網絡試圖去判定圖像是真實的還是生成的。模型原理示意圖如下所示:

在訓練期間,生成網絡接收隨機向量(噪聲)作為輸入并生成圖像,接著將其饋送到判別網絡中作為其輸入,由判別網絡判定輸入的真假性。判別網絡也可以從數據集中給出真實的圖像。由于很難找到兩個網絡的平衡點,因此訓練生成對抗網絡一大難點。大多數情況下,判別網絡獲勝時訓練過程也就停止了。但是,這種模型的好處就在于我們可以解決一些難以設定損失函數的問題。例如,要提高圖片的質量,我們可以將其提供給判別網絡。

生成對抗網絡訓練的典型例子就是帶臥室或人的圖片,如下所示:

之前,我們考慮過自編碼器(Sketch-RNN模型),它能夠將原始的數據編碼變成潛在的向量表示。而生成網絡能夠做同樣的事情。在這個項目中,如果是人臉的例子,那么通過使用該向量,生成網絡能夠生成清晰的人臉圖像。你也可以通過改變向量,來觀察臉部的變化情況。

同樣的算法也可以在潛在的空間起作用:例如,“一個戴眼鏡的男人”減去“男人”再加上“女人”等于“戴眼鏡的女人”。

用生成對抗網絡改變人臉的年齡

如果在訓練過程控制潛在向量的傳入參數,那么在生成潛在向量時,就可以更改這些參數值,以便管理圖片中這些必要的圖像信息,這種方式稱為條件生成對抗網絡模型。正如文章的作者提到的:“面對有條件的生成對抗網絡模型,人臉的年齡是可以被改變的。”在已知人臉年齡的情況下,在IMDB數據集上訓練我們的模型,我們可以用這種方式改變人臉的年齡。

專業照片

Google為生成對抗網絡創建了一個有趣的應用程序,就是照片的選擇和美化。生成對抗網絡模型在一個專業的照片數據集上訓練:生成網絡試圖改善質量較差的照片(包括專業鏡頭和特殊濾鏡的功能退化等),而判別網絡用于區分“改善后”的照片和真正的專業照片。

一個訓練有數的算法,能夠通過Google街景的全景搜索功能來搜索得到一些專業和半專業質量的照片(根據攝影師的評級標準而定)。

從文本描述中合成圖像

生成對抗網絡最令人印象深刻的一個例子是使用文本的描述信息來生成圖像。

這項研究的作者說到,不僅將文本信息嵌入到生成網絡(條件生成對抗網絡)的輸入中去,而且還要將其嵌入到判別網絡中去,以便驗證文本信息與圖像的對應性。為了確保判別網絡自身功能的發揮,除了訓練過程,研究者還為實際圖片添加了一些不正確的文本信息。

Pix2Pix

在2016年最受人矚目的文章當屬Berkeley AI Research(BAIR)提出的“用帶有條件的生成對抗網絡來實現圖像到圖像的轉換”。研究人員解決了從圖像到圖像生成的問題,例如,需要使用衛星圖像來創建地圖,或使用草圖來創建逼真的對象紋理,都可以使用該研究的成果。

條件生成對抗網絡的另一個成功應用例子,是根據情景生成整個畫面。這在圖像分割領域得到廣泛的應用,Unet被用作生成網絡的體系結構,并且使用一個新的PatchGAN分類器作為判別網絡,用以對抗模糊圖像的干擾(圖像被分割成N個補丁,并且偽造/真實的預測將分別適用于他們當中的每一個部分)。

作者發布了他們模型的在線演示,你也可以在這里找到模型的源代碼。 https://github.com/phillipi/pix2pix

CycleGAN

為了應用Pix2Pix技術,你需要一個包含了不同領域目標對象的數據集。例如,用卡片來組成這樣的數據集不成問題,但是如果你想做一些更復雜的事情,如“變形”對象或重塑對象的話,原則上是找不到這樣的目標對象的。因此,Pix2Pix的作者決定進一步研究他們的想法,并提出CycleGAN,在圖像的不同區域之間進行不成對目標的轉換,而不再需要依賴于特定的目標對。

這個想法是教會兩對生成網絡和判別網絡,從圖像的一個域轉移到另一個域。而我們需要的是一個循環一致性,即依次應用 生成 網絡后,我們應該得到一個類似原始L1損失的圖像。而一個循環損失函數所需要的并不僅僅是確保生成網絡在開始時將一個域的圖像傳送到與另一個域完全無關的圖像。

這種方式能讓你學習到馬—斑馬之間的映射。

但是這轉變是不穩定的,這通常也是產生失敗的原因。

你可以在這里獲得它的源代碼。 https://github.com/junyanz/CycleGAN

腫瘤學中分子的發展

機器學習正在進入醫學領域。除了識別超聲波,MRI和診斷,還可以用于尋找新的藥物來對抗癌癥。簡單地說,在對抗自編碼器的幫助下,我們可以學習分子的潛在形式,然后以此來搜索新的分子形式。結果發現了69個分子,其中一半是被用來對抗癌癥,而剩下的都具有很大的潛在性。

對抗性攻擊

關于對抗性攻擊的話題,正在被積極地探索研究。那么什么是對抗性攻擊呢?例如,在ImageNet數據庫上訓練標準網絡,當為分類圖片添加一些特定的噪聲時,標準網絡將變得不穩定。在下面的例子我們將看到,對于一張人眼看過去幾乎沒有變化的圖片,而模型卻還產生異常的結果,預測出一個完全不同的類別。

例如,使用快速梯度符號法(FGSM),可以得到穩定的模型:可以訪問模型的參數,可以對所需的類進行一個或多個漸變的步驟并以此更改原始的圖片。

Kaggle中有一個與此有關的任務:就是鼓勵參與者創造普遍的攻擊/防御,這些攻擊/防御最終都是相互對立的,以此來確定最好的模型。

我們為什么要研究這些攻擊呢?首先,如果我們想要保護我們的產品,我們可以向驗證碼添加噪聲,以防止垃圾郵件的自動識別。其次,算法越來越多地涉及到我們的生活中,如人臉識別系統和自動駕駛系統,在這種情況下,攻擊者就可以利用算法的缺點展開攻擊,威脅到我們的生活。

例如,特殊的眼鏡可以讓你欺騙人臉識別系統,系統將把自己當成另一個人。

所以,在訓練模型的時候我們要考慮到可能的攻擊情況。類似以下的這種的操作符也不能被它們正確的識別:

這是比賽組織者寫的一篇文章。 https://www.kaggle.com/c/nips-2017-non-targeted-adversarial-attack/discussion/35840

編寫好了的用于攻擊的代碼庫:cleverhans https://github.com/tensorflow/cleverhans 和foolbox https://github.com/bethgelab/foolbox 。

強化學習

強化學習是機器學習中最有趣也是最值得發展的方法之一。這種方法的本質是通過給定的經驗,在特定的環境中,學習訓練代理并給予獎勵的一種學習方式,就像人類的終生學習一樣。

強化學習在游戲,機器人和系統管理等領域已被廣泛地使用。當然,大家都聽說過AlphaGo在圍棋比賽中完勝圍棋專業選手。目前,研究人員正使用強化學習方式來訓練機器人,因為機器人本身的設計就是為了改進策略而不斷發揮自身作用的。

以強化學習方式訓練不受控制的輔助任務

在過去的幾年中,DeepMind的研究者使用深度強化網絡(DQN)來學習街機游戲,并已達到超人類的游戲表現。目前,他們正在訓練算法去學習玩一些更復雜的游戲,如毀滅戰士(Doom)。

強化學習的研究,大部分的注意力都集中在加速學習方面,因為代理與環境之間的交互經驗需要在目前的GPU上進行很長時間的訓練。

在DeepMind的官方博客中,介紹了一種引入額外損失(輔助任務)的方式來加速訓練過程,如預測幀變化(像素控制),以便代理能夠更好地理解行為的后果,這將大大加快學習的速度。

https://youtu.be/Uz-zGYrYEjA

學習機器人

OpenAI的研究人員一直致力于研究代理在虛擬環境中的訓練過程,相比于現實生活,這樣的實驗顯得更加安全。其中一項研究表明,一次學習是可能是實現的。一個人在虛擬現實中能夠展示如何執行某項任務的能力,而一個演示就足以讓算法進行學習,并在真實條件下實現。如果可以的話,這對于人類來說簡直是太容易了。

學習人的喜好

這是OpenAI和DeepMind共同的一個工作主題。底線是一個代理和一個任務,算法提供兩種可能的解決方案,并指出哪一種更好。通過迭代地訓練該過程,得到來自代理的反饋信息,并以此來學習如何解決該問題。

即使這樣,人類必須要認真思考要讓機器去學習的東西。例如,評估者確定要讓算法去接受某個對象,但是實際上他只是模擬了這個動作而已。

在復雜環境中運動

這是DeepMind的另一項研究。為了教會機器人一些復雜的行為(走路,跳躍等),甚至做一些類似人類做的事情,你必須要大量地考慮損失函數的選擇,這將是鼓勵所期望行為發生的關鍵所在。然而,這個算法最好靠簡單的獎勵來學習復雜的行為。研究人員已經成功實現了這一目標:他們通過構建一個復雜的帶障礙的環境,在移動的過程給予簡單的獎勵回報,教會一個代理(身體模擬器)去執行一些復雜的行為。

你可以看看這些令人印象深刻的視頻,不過,用超聲道觀看它將更加有趣。 https://youtu.be/itACOKJHYmw

最后,我將給出OpenAI最近發布的學習強化學習算法的鏈接,相比于標準的深度強化網絡,現在你可以使用一些更先進的方法來解決問題。 https://github.com/openai/baselines

其他

冷卻數據中心

2017年7月,Google公司報告中提到,利用DeepMind在機器學習領域的研究成果來降低數據中心的能源成本。根據數據中心上千個傳感器的數據信息,Google開發人員訓練了一個集成的神經網絡來預測PUE(電源使用效率)和更高效的數據中心管理。這是機器學習實際應用中一項令人深刻的成果。

一個模型完成所有任務

正如你所知道的那樣,訓練好的模型很難從一個任務轉移到另一個任務,因為每個任務都必須經過特定的模型訓練過程。Google Brain提出的“用一個模型來學習所有的東西”,向模型的普遍適用性研究邁出了一小步。

研究人員已經訓練了一個模型,來執行不同領域(包括文本,語音和圖像等)的八個任務。例如,來自不同語言的翻譯,文本的解析以及圖像和聲音的識別等任務。

為了實現這個目標,他們構建了一個復雜的網絡結構,用不同的模塊來處理不同的輸入數據并輸出結果。編碼器/解碼器的模型分為三種類型:卷積、注意力和門控混合專家模塊。

主要的研究成果如下:

  • 得到幾乎完美的模型 (作者沒有微調超參數設置)。

  • 不同領域間的知識遷移,即在數據量大的任務上,性能幾乎相同,對于小問題的性能表現更好 (如解析任務)。

  • 不同人物所需的模塊間不會產生相互的干擾,有時甚至可以互相幫助,如門控混合專家的模塊在ImageNet上,對任務的模型性能有改善作用。

另外,這個強大的模型已經呈現在tensor2tensor中。

一小時內學習ImageNet數據庫

在他們的帖子中,非死book的工作人員告訴我們,他們的工程師只需要一個小時就能夠在ImageNet數據庫上訓練完ResNet-50模型,這需要使用256個GPU集群(Tesla P100)。他們使用Gloo和Caffe2深度學習框架進行分布式訓練。為了是整個過程更有效率,對于學習策略的調整是很有必要的(8192個元素):采用梯度平均,模型預訓練以及特殊學習率等策略。

結果表明,從8個GPU擴展到256個GPU訓練時,可以達到90%的效率。也就是說,現在非死book的研究人員可以比沒有這個集群的研究者更快地進行實驗。

新聞

自動駕駛汽車

自動駕駛汽車領域的研究正在深入發展,而自駕車也正在測試中。從最近的事件中,我們可以看到來自英特爾的MobiEye被收購,Uber和Google的技術被前員工偷竊的丑聞以及使用自動駕駛儀所導致的第一起交通死亡事件等。

我注意到:Google Waymo正推出一個測試版的自駕程序。Google是自動駕駛領域的先驅,并且他們的技術已經非常成熟,因為Google的無人駕駛車已經行駛了300多萬英里。

最近發生的大事是自動駕駛汽車已經被允許在美國各州上路。

衛生保健

現代機器學習技術已經開始引入醫學領域。例如,Google與醫療中心合作并幫助醫生進行診斷。

為此,DeepMind還成立了一個獨立的單元,用于從事醫學領域的深度學習技術研究。

今年,DeepMind在數據科學碗項目的基礎上舉辦了一場競賽,根據詳細的圖像數據來預測肺癌,該賽事的獎金高達一百萬美元。

投資

目前,與之前BigData一樣,機器學習領域也得到了大量的投資。中國在人工智能領域的投資已有1500億美元,處于全球領先水平。百度研究公司雇傭了1300人從事人工智能的研究工作,而非死book的FAIR研究院才有80位研究人員。此外,在KDD會議結束的尾端,阿里巴巴的員工談論到他們的參數服務器KungPeng,運行了1000億個樣本,具有萬億級的參數量,這已經成為日常工作里的一個基本運作。

你可以得到自己的結論,學習機器學習永遠都不會太晚。無論如何,隨著時間的推移,所有的開發人員都將使用機器學習技術和數據庫。不久的將來,這會成為一項常備技能。

 

 

 

來自:https://blog.statsbot.co/deep-learning-achievements-4c563e034257

 

 本文由用戶 imfree2010 自行上傳分享,僅供網友學習交流。所有權歸原作者,若您的權利被侵害,請聯系管理員。
 轉載本站原創文章,請注明出處,并保留原始鏈接、圖片水印。
 本站是一個以用戶分享為主的開源技術平臺,歡迎各類分享!