過去幾年,深度學習成為了機器學習社群的核心話題,2016 年更是如此。在 Tryo Labs 的這篇盤點文章中,作者回顧了對該領域貢獻最大(或有潛力的)的進展以及組織和社群如何保證這些技術能以一種使所有人都受益的方式被使用。
無監督學習一直以來都是研究人員所面臨的一個主要挑戰。我們認為該領域在 2016 年真是發展得非常不錯,這主要是得益於在生成模型(Generative Model)上大量研究。此外,與機器自然交流的能力也是夢想中的目標之一,谷歌、Facebook 這樣的巨頭也為此提出了多種實現方法。在這一背景中,我們可以看到許多在自然語言處理(NLP)上的創新,這些問題對我們實現與機器自然交流的目標來說是至關重要的。
無監督學習
無監督學習指在沒有額外資訊的情況下,從原始資料中提取模式和結構的任務,它與需要標籤的監督學習相互對立。
使用神經網路解決該問題的經典方法是自動編碼器。其基礎的版本由多層感知機(Multilayer Perceptron)組成,其中輸入層和輸出層有同樣的大小,並會訓練一個較小的隱藏層來恢復輸入。一旦訓練完成,來自該隱藏層的輸出相當於對聚類、降維、改進監督分類以及資料壓縮都有用的資料表徵。
生成對抗網路(GAN)
最近一種被稱為生成對抗網路的生成模型被廣泛的提及,這個模型是在原生成模型的基礎上提出的。GAN 可以實現能解決無監督學習問題的模型。GAN 的網路結構是具有顛覆性的,Yann LeCun 在一次關於這個研究的演講中如此評論:「GAN 是機器學習過去的 20 年裡最重要的思想之一。」
儘管在 2014 年 Ian Goodfellow 就提出了 GAN,研究者們直到現在(2016 年)才看到 GAN 的真正潛力。基於 GAN 的更好的訓練模型的方法已經出現了,深度卷積式的 GAN(Deep Convolutional GAN)也在今年被提出,這個更加最佳化的 GAN 模型已經解決了一些之前限制深度學習發展的難題。不僅如此,一些新的應用(我們稍後提供名單)表明這個模型非常強大且靈活。
一個直觀的例子解說
試想如下情境,一個很有野心的畫家從事名畫贗品交易(稱之為 G),同時另有一個人(稱之為 D)以鑑別畫的真偽為生。我們設想先讓 D 觀摩(即機器學習裡的 learning)了一些畢加索的畫作,當 D 對畢加索的作品有了一定的認知之後,G 嘗試用他的畢加索畫作贗品來愚弄 D,讓 D 相信他的贗品是畢加索的真作。有時候 G 能夠成功的騙過 D,但是隨著 D 對畢加索的作品的瞭解的加深(即機器學習裡學習的樣本資料越來越多),G 發現越來越難以愚弄 D 了,所以 G 也在不斷提升自己仿製贗品的能力。如此多次,不僅 D 已經很精通畢加索作品的鑑別,同時 G 對畢加索作品的偽造技術也大為提升。這就是 GAN 模型的初始想法。
從機器學習的模型構建來說,GAN 模型包涵了兩個持續相互博弈的神經網路(這也是被稱為「對抗」模型的原因):一個生成器(G)和一個鑑別器(D)。輸入一組訓練資料(如影像),並假設這些影像服從某種分佈(x)。在 GAN 網路中,G 會輸出一組分佈結果而 D 則會判定這個分佈是否來自於同一個訓練集。
剛開始訓練的時候,G 會從一些噪聲(z)開始生成得到生成的影像 G(z)。D 則會得到來自真實分佈(x)的影像和來自 G 生成的影像(G(z)),然後需要將它們分類成 D(x) 和 D(G(z))。
圖:GAN 的工作方式
D 和 G 同時進行學習,一旦 G 被訓練而對訓練樣本的分佈有了足夠的瞭解,它就可以生成有類似特性的新樣本:
GAN 生成的影像
這些影像由在 CIFAR-10 上訓練的一個 GAN 生成。如果你注意細節,你會發現它們並非真正的物體。然而,它們捕捉到了讓自己看起來真實的一些概念。
InfoGAN
近期的進展對 GAN 的思想進行了延展,讓其不僅可以用於近似資料的分佈,還能學習資料的可解釋的、有用的表徵。這些我們希望得到的表徵需要捕捉到豐富的資訊(和自動編碼器中的一樣),也需要是可解釋的,也就是說我們要能夠區分導致了生成的輸出中特定型別的變換的向量部分。
InfoGAN 模型由 OpenAI 研究員在 8 月份提出,其目標就是為了解決這個問題。簡言之,InfoGAN 能夠以無監督的方式生成包含資料集相關資訊的表徵。例如,當被應用於 MNIST 資料集的時候,它能夠在不需要人工標記資料的情況下推斷出數字的型別(1、2、3……)、生成的樣本的轉動(rotation)與寬度(width)。
條件 GAN(Conditional GAN)
GAN 的另一種延展是一類被稱為 Conditional GAN 的模型。這些模型能夠生成考慮了外部資訊(類標籤、文字、其它影像)的樣本,並使用它來迫使 G 生成特定型別的輸出。近期出現的一些應用如下:
文字到影像
採用文字描述(由字元級的 CNN 或 LSTM 將其編碼為向量)作為外部資訊,然後基於它生成影像。檢視論文:Generative Adversarial Text to Image Synthesis
影像到影像
將輸入影像對映到輸出影像。檢視部落格:https://phillipi.github.io/pix2pix/
超解析度
它採用下采樣影像(更少細節),生成器試圖將它們似然為更自然的影像。檢視論文:Generative Adversarial Text to Image Synthesis
自然語言處理
為了能夠和機器流暢地對話,我們首先要解決很多問題,包括:文字理解、問答系統和機器翻譯。
文字理解
Salesforce MetaMind (http://metamind.io/) 建立了一個叫做 Joint Many-Tasks(JMT)的模型,目標是要創造出一個可以學習五個常見自然語言處理任務的模型:
詞性標註(Part-of-speech tagging)
指對句子中的每個詞都指派一個合適的詞性,比如說名詞、動詞、形容詞等。
詞塊分析(Chunking)
也叫做淺層句法分析(shallow parsing),其中涉及到很多工,像是尋找名詞和動詞片語等。
依存關係分析(Dependency parsing)
識別詞語之間的語法關係(比如說形容詞修飾名詞)。
語義相關度(Semantic relatedness)
衡量兩個句子之前的語義相關程度,其結果是用一個實值分數來表示的。
文字蘊含(Textual entailment)
確定前提的句子是否包含一個表示假設的句子。可能出現的句子關係包括:蘊含、矛盾 和中立。
這個模型背後的魔力就在於它是端對端訓練的。也就是說它能夠讓兩個不同層面的處理兵種,這樣淺層任務(不那麼複雜的)可以得到改善,從深層(較複雜的任務)中得出結論。我們之前的想法是隻用淺層來改進深層的任務,而不是用其他的方式,所以這個採用不同的方式與之前的思路比較來說是一個新的想法。除了詞性標註之外,這個模型在其他方面都取得了很好的成績。
問答系統
MetaMind 同樣提出了稱之為 Dynamic Coattention Network (DCN) 的新模型來解決疑問解答問題,該模型建立在相當直觀的思路之上。
想象下我給你了一篇長文並問你一些問題,你是想先看文章再聽問題呢,還是更想先聽問題再開始閱讀文章?一般提前知道問題是怎麼樣的就會知道看文章要注意些什麼,如果不知道問題,那麼你就會將你的注意力平均分配並記下每一點可能會被提問的細節。
DCN 也是在做這樣一件事,首先它生成一個內部表徵,這個內部表徵是基於文字並且由系統將要回答的問題做為約束條件,然後就是按照可能的回答列表迭代,直到收斂到最後的回答。
機器翻譯
谷歌在今年九月釋出了用於翻譯服務的新模型,即谷歌神經網路機器翻譯系統(Google Neural Machine Translation (GNMT)),這個系統是由如英-漢那樣獨立的語言對訓練的。不過新的 GNMT 系統在 11 月份也釋出了,它進一步訓練了能實現多語言對互譯的單個模型。現在 GNMT 系統與以前唯一不同之處就是它採用了能指定目標語的新型輸入方法。它同樣能夠進行 zero-shot translation,這就意味著它能夠翻譯一對沒有訓練過的語言。
GNMT 系統的開發表明了基於多語言對的訓練要比基於單語言對的訓練效果好得多,這也證明了從一種語言對遷移「翻譯知識」到另一種語言對是可行的。
社群
一些公司和企業已經建立起非營利性夥伴關係進而討論機器學習的未來,並確保這些驚人的技術得以正確使用,從而有利於社群。
OpenAI 是一個非營利性組織,它旨在建立學界和工業界之間的合作關係,並將其研究結果免費公開。OpenAI 在 2015 年建立,並在 2016 年開始發表它的研究結果(透過 InfoGAN 出版物、Universe 平臺、this one 會議)。OpenAI 的目標就是確保人工智慧技術對儘可能多的人來說都是可行的,並且防止出現超人工智慧。
另一方面,亞馬遜、DeepMind、谷歌、Facebook、IBM 和微軟還在人工智慧之上達成了一項合作,其目標是提升公眾對這一領域的理解、支援最佳的實踐和為討論和參與開發一個開放的平臺。
該研究社群另外值得提及的一點是其開放性。你不僅可以在 arXiv(或 arXiv-Sanity)這樣的網站上免費找到幾乎任何論文,而且還能使用他們同樣程式碼復現他們的實現。GitXiv 是其中一個很有用的工具,其將 arXiv 上的論文和它們對應的開源專案庫連結到了一起。
arXiv:https://arxiv.org
arXiv-Sanity:http://www.arxiv-sanity.com
GitXiv:http://www.gitxiv.com
現在,開源工具已經無處不在,並且已經得到了研究者和企業的廣泛使用和開發。下面簡單列出了 2016 年最受歡迎的深度學習工具:
TensorFlow,來自谷歌,地址:https://github.com/tensorflow/tensorflow
Keras,來自 François Chollet,地址:https://github.com/fchollet/keras
CNTK,來自微軟,地址:https://github.com/Microsoft/CNTK
MXNET,來自 DMLC,被亞馬遜採用,地址:https://github.com/dmlc/mxnet
Theano,來自蒙特利爾大學,地址:https://github.com/Theano/Theano
Torch,來自 Ronan Collobert, Koray Kavukcuoglu, Clement Farabet,被 Facebook 廣泛使用,地址:https://github.com/torch/torch7
最後的思考
如今正是參與到機器學習發展中的好時機。正如你所看到的,今年取得的成果尤其令人激動。該領域的研究正在迅猛發展,緊跟進步的步伐都成了一件難事。我們非常幸運生活在一個人工智慧民主化的時代。
原文連結:https://tryolabs.com/blog/2016/12/06/major-advancements-deep-learning-2016/