深度學習三大牛之一的Yann Lecun教授給出了一個關于機器學習中的有監督學習、無監督學習和增強學習的一個有趣的比喻,他說:如果把智能(Intelligence)比作一個蛋糕,那么無監督學習就是蛋糕本體,增強學習是蛋糕上的櫻桃,那么監督學習,僅僅能算作蛋糕上的糖霜(圖1)。
圖1 Yann LeCun對監督學習,增強學習和無監督學習的價值的形象比喻
深度有監督學習在計算機視覺領域的進展
圖像分類(Image Classification)
自從Alex和他的導師Hinton(深度學習鼻祖)在2012年的ImageNet大規模圖像識別競賽(ILSVRC2012)中以超過第二名10個百分點的成績(83.6%的Top5精度)碾壓第二名(74.2%,使用傳統的計算機視覺方法)后,深度學習真正開始火熱,卷積神經網絡(CNN)開始成為家喻戶曉的名字,從12年的AlexNet(83.6%),到2013年ImageNet大規模圖像識別競賽冠軍的88.8%,再到2014年VGG的92.7%和同年的GoogLeNet的93.3%,終于,到了2015年,在1000類的圖像識別中,微軟提出的殘差網(ResNet)以96.43%的Top5正確率,達到了超過人類的水平(人類的正確率也只有94.9%)。
Top5精度是指在給出一張圖片,模型給出5個最有可能的標簽,只要在預測的5個結果中包含正確標簽,即為正確
圖2 2010-2015年ILSVRC競賽圖像識別錯誤率演進趨勢
伴隨著圖像分類任務,還有另外一個更加有挑戰的任務–圖像檢測,圖像檢測是指在分類圖像的同時把物體用矩形框給圈起來。從14年到16年,先后涌現出R-CNN,Fast R-CNN, Faster R-CNN, YOLO, SSD等知名框架,其檢測平均精度(mAP),在計算機視覺一個知名數據集上PASCAL VOC上的檢測平均精度(mAP),也從R-CNN的53.3%,到Fast RCNN的68.4%,再到Faster R-CNN的75.9%,最新實驗顯示,Faster RCNN結合殘差網(Resnet-101),其檢測精度可以達到83.8%。深度學習檢測速度也越來越快,從最初的RCNN模型,處理一張圖片要用2秒多,到Faster RCNN的198毫秒/張,再到YOLO的155幀/秒(其缺陷是精度較低,只有52.7%),最后出來了精度和速度都較高的SSD,精度75.1%,速度23幀/秒。
圖3圖像檢測示例
圖像分割(Semantic Segmentation)
圖像分割也是一項有意思的研究領域,它的目的是把圖像中各種不同物體給用不同顏色分割出來,如下圖所示,其平均精度(mIoU,即預測區域和實際區域交集除以預測區域和實際區域的并集),也從最開始的FCN模型(圖像語義分割全連接網絡,該論文獲得計算機視覺頂會CVPR2015的最佳論文的)的62.2%,到DeepLab框架的72.7%,再到牛津大學的CRF as RNN的74.7%。該領域是一個仍在進展的領域,仍舊有很大的進步空間。
圖4圖像分割的例子
圖像標注–看圖說話(Image Captioning)
圖像標注是一項引人注目的研究領域,它的研究目的是給出一張圖片,你給我用一段文字描述它,如圖中所示,圖片中第一個圖,程序自動給出的描述是“一個人在塵土飛揚的土路上騎摩托車”,第二個圖片是“兩只狗在草地上玩?!?。由于該研究巨大的商業價值(例如圖片搜索),近幾年,工業界的百度,谷歌和微軟 以及學術界的加大伯克利,深度學習研究重地多倫多大學都在做相應的研究。
圖5圖像標注,根據圖片生成描述文字
圖像生成–文字轉圖像(Image Generator)
圖片標注任務本來是一個半圓,既然我們可以從圖片產生描述文字,那么我們也能從文字來生成圖片。如圖6所示,第一列“一架大客機在藍天飛翔”,模型自動根據文字生成了16張圖片,第三列比較有意思,“一群大象在干燥草地行走”(這個有點違背常識,因為大象一般在雨林,不會在干燥草地上行走),模型也相應的生成了對應圖片,雖然生成的質量還不算太好,但也已經中規中矩。
圖6根據文字生成圖片
強化學習(Reinforcement Learning)
在監督學習任務中,我們都是給定樣本一個固定標簽,然后去訓練模型,可是,在真實環境中,我們很難給出所有樣本的標簽,這時候,強化學習就派上了用常簡單來說,我們給定一些獎勵或懲罰,強化學習就是讓模型自己去試錯,模型自己去優化怎么才能得到更多的分數。2016年大火的AlphaGo就是利用了強化學習去訓練,它在不斷的自我試錯和博弈中掌握了最優的策略。利用強化學習去玩flyppy bird,已經能夠玩到幾萬分了。
圖7強化學習玩flappy bird
谷歌DeepMind發表的使用增強學習來玩Atari游戲,其中一個經典的游戲是打磚塊(breakout),DeepMind提出的模型僅僅使用像素作為輸入,沒有任何其他先驗知識,換句話說,模型并不認識球是什么,它玩的是什么,令人驚訝的是,在經過240分鐘的訓練后,它不光學會了正確的接球,擊打磚塊,它甚至學會了持續擊打同一個位置,游戲就勝利的越快(它的獎勵也越高)。
圖8 使用深度增強學習來玩Atari Breakout
強化學習在機器人領域和自動駕駛領域有極大的應用價值,當前arxiv上基本上每隔幾天就會有相應的論文出現。機器人去學習試錯來學習最優的表現,這或許是人工智能進化的最優途徑,估計也是通向強人工智能的必經之路。
這里推薦一篇2017年初Ian GoodFellow結合他在NIPS2016的演講寫出的綜述性論文—— NIPS 2016 Tutorial: Generative Adversarial Networks
深度無監督學習(Deep Unsupervised Learning)–預測學習
相比有限的監督學習數據,自然界有無窮無盡的未標注數據。試想,如果人工智能可以從龐大的自然界自動去學習,那豈不是開啟了一個新紀元?當前,最有前景的研究領域或許應屬無監督學習,這也正是Yann Lecun教授把無監督學習比喻成人工智能大蛋糕的原因吧。
深度學習牛人Ian Goodfellow在2014年提出生成對抗網絡后,該領域越來越火,成為16年研究最火熱的一個領域之一。大牛Yann LeCun曾說:“對抗網絡是切片面包發明以來最令人激動的事情?!贝笈_@句話足以說明生成對抗網絡有多重要。
生成對抗網絡的一個簡單解釋如下:假設有兩個模型,一個是生成模型(Generative Model,下文簡寫為G),一個是判別模型(Discriminative Model,下文簡寫為D),判別模型(D)的任務就是判斷一個實例是真實的還是由模型生成的,生成模型(G)的任務是生成一個實例來騙過判別模型(D),兩個模型互相對抗,發展下去就會達到一個平衡,生成模型生成的實例與真實的沒有區別,判別模型無法區分自然的還是模型生成的。以贗品商人為例,贗品商人(生成模型)制作出假的畢加索畫作來欺騙行家(判別模型D),贗品商人一直提升他的高仿水平來區分行家,行家也一直學習真的假的畢加索畫作來提升自己的辨識能力,兩個人一直博弈,最后贗品商人高仿的畢加索畫作達到了以假亂真的水平,行家最后也很難區分正品和贗品了。下圖是Goodfellow在發表生成對抗網絡論文中的一些生成圖片,可以看出,模型生成的模型與真實的還是有大差別,但這是14年的論文了,16年這個領域進展非??欤嗬^出現了條件生成對抗網絡(Conditional Generative Adversarial Nets)和信息生成對抗網絡(InfoGAN),深度卷積生成對抗網絡(Deep Convolutional Generative Adversarial Network, DCGAN),更重要的是,當前生成對抗網絡把觸角伸到了視頻預測領域,眾所周知,人類主要是靠視頻序列來理解自然界的,圖片只占非常小的一部分,當人工智能學會理解視頻后,它也真正開始顯現出威力了。
圖9 生成對抗網絡生成的一些圖片,最后邊一列是與訓練集中圖片最相近的生產圖片
條件生成對抗網絡(Conditional Generative Adversarial Nets,CGAN)
生成對抗網絡一般是根據隨機噪聲來生成特定類型的圖像等實例,條件生成對抗網絡則是根據一定的輸入來限定輸出,例如根據幾個描述名詞來生成特定的實例,這有點類似1.5節介紹的由文字生成圖像,下圖是Conditioanal Generative Adversarial Nets論文中的一張圖片,根據特定的名詞描述來生成圖片。(注意:左邊的一列圖片的描述文字是訓練集中不存在的,也就是說是模型根據沒有見過的描述來生成的圖片,右邊的一列圖片的描述是訓練集中存在的)
圖10 根據文字來生成圖片
條件生成對抗網絡的另一篇有意思的論文是圖像到圖像的翻譯,該論文提出的模型能夠根據一張輸入圖片,然后給出模型生成的圖片,下圖是論文中的一張圖,其中左上角第一對非常有意思,模型輸入圖像分割的結果,給出了生成的真實場景的結果,這類似于圖像分割的反向工程。
圖11 根據特定輸入來生成一些有意思的輸出圖片
生成對抗網絡也用在了圖像超分辨率上,2016年有人提出SRGAN模型,它把原高清圖下采樣后,試圖用生成對抗網絡模型來還原圖片來生成更為自然的,更逼近原圖像的圖像。下圖中最右邊是原圖,把他降采樣后采用三次差值(Bicubic Interpolation)得到的圖像比較模糊,采用殘差網絡的版本(SRResNet)已經干凈了很多,我們可以看到SRGAN生成的圖片更為真實一些。
圖12 生成對抗網絡做超分辨率的例子,最右邊是原始圖像
生成對抗網絡的另一篇有影響力的論文是深度卷積生成對抗網絡DCGAN,作者把卷積神經網絡和生成對抗網絡結合起來,作者指出該框架可以很好的學習事物的特征,論文在圖像生成和圖像操作上給出了很有意思的結果,例如圖13,帶眼睛的男人-不戴眼鏡的男人+不帶眼睛的女人=帶眼睛的女人,該模型給出了圖片的類似向量化操作。
圖13 DCGAN論文中的例圖
生成對抗網絡的發展是在是太火爆,一篇文章難以羅列完全,對此感興趣的朋友們可以自己在網絡搜素相關論文來研究
openAI的一篇描述生成對抗網絡的博客非常棒,因為Ian Goodfellow就在OpenAI工作,所以這篇博客的質量還是相當有保障的。
視頻預測
該方向是筆者自己最感興趣的方向,Yann LeCun也提出,“用預測學習來替代無監督學習”,預測學習通過觀察和理解這個世界是如何運作的,然后對世界的變化做出預測,機器學會了感知世界的變化,然后對世界的狀態進行了推斷。
今年的NIPS上,MIT的學者Vondrick等人發表了一篇名為Generating Videos with Scene Dynamics的論文,該論文提出了基于一幅靜態的圖片,模型自動推測接下來的場景,例如給出一張人站在沙灘的圖片,模型自動給出一段接下來的海浪涌動的小視頻。該模型是以無監督的方式,在大量的視頻上訓練而來的。該模型表明它可以自動學習到視頻中有用的特征。下圖是作者的官方主頁上給出的圖,是動態圖,如果無法正常查看,請轉入官方網站視頻生成例子,下圖的視頻是模型自動生成的,我們可以看到圖片不太完美,但已經能相當好的表示一個場景了。
圖14 隨機生成的視頻,沙灘上波濤涌動,火車奔馳的場景
條件視頻生成,下圖是輸入一張靜態圖,模型自動推演出一段小視頻。
圖15.根據一張草地靜態圖,模型自動推測人的移動場景
圖16.給出一張鐵道圖,模型自動推測火車跑過的樣子
MIT的CSAIL實驗室也放出了一篇博客,題目是《教會機器去預測未來》,該模型在youtube視頻和電視劇上(例如The Office和《絕望主婦》)訓練,訓練好以后,如果你給該模型一個親吻之前的圖片,該模型能自動推測出加下來擁抱親吻的動作,具體的例子見下圖。
圖17 給出一張靜態圖,模型自動推測接下來的動作
哈佛大學的Lotter等人提出了PredNet,該模型也是在KITTI數據集上訓練,然后該模型就可以根據前面的視頻,預測行車記錄儀接下來幾幀的圖像,模型是用長短期記憶神經網絡(LSTM)訓練得到的。具體例子見下圖,給出行車記錄儀前幾張的圖片,自動預測接下來的五幀場景,模型輸入幾幀圖像后,預測接下來的5幀,由圖可知,越往后,模型預測的越是模糊,但模型已經可以給出有參加價值的預測結果了。
評論