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