1. 程式人生 > >BAT機器學習面試1000題系列(第76~149題)

BAT機器學習面試1000題系列(第76~149題)

正文共43140個字,124張圖,預計閱讀時間:108分鐘。

76、看你是搞視覺的,熟悉哪些CV框架,順帶聊聊CV最近五年的發展史如何?深度學習 DL應用 難

原英文:adeshpande3.github.io
作者:Adit Deshpande,UCLA CS研究生
譯者:新智元聞菲、胡祥傑
譯文連結:https://mp.weixin.qq.com/s?__biz=MzI3MTA0MTk1MA==&mid=2651986617&idx=1&sn=fddebd0f2968d66b7f424d6a435c84af&scene=0#wechat_redirect的
本段結構如下:

AlexNet(2012年)

  ZF Net(2013年)

  VGG Net(2014年)

  GoogLeNet (2015年)

  微軟 ResNet (2015年)

  區域 CNN(R-CNN - 2013年,Fast R-CNN - 2015年,Faster R-CNN - 2015年)

  生成對抗網路(2014年)

  生成影象描述(2014年)

  空間轉化器網路(2015年)

  AlexNet(2012年)

一切都從這裡開始(儘管有些人會說是Yann LeCun 1998年發表的那篇論文才真正開啟了一個時代)。這篇論文,題目叫做“ImageNet Classification with Deep Convolutional Networks”,迄今被引用6184次,被業內普遍視為行業最重要的論文之一。

Alex Krizhevsky、Ilya Sutskever和 Geoffrey Hinton創造了一個“大型的深度卷積神經網路”,贏得了2012 ILSVRC(2012年ImageNet 大規模視覺識別挑戰賽)。稍微介紹一下,這個比賽被譽為計算機視覺的年度奧林匹克競賽,全世界的團隊相聚一堂,看看是哪家的視覺模型表現最為出色。2012年是CNN首次實現Top 5誤差率15.4%的一年(Top 5誤差率是指給定一張影象,其標籤不在模型認為最有可能的5個結果中的機率),當時的次優項誤差率為26.2%。這個表現不用說震驚了整個計算機視覺界。可以說,是自那時起,CNN才成了家喻戶曉的名字。

論文中,作者討論了網路的架構(名為AlexNet)。相比現代架構,他們使用了一種相對簡單的佈局,整個網路由5層卷積層組成,最大池化層、退出層(dropout layer)和3層全卷積層。網路能夠對1000種潛在類別進行分類。

AlexNet 架構:看上去有些奇怪,因為使用了兩臺GPU訓練,因而有兩股“流”。使用兩臺GPU訓練的原因是計算量太大,只能拆開來。

使用ImageNet資料訓練網路,ImageNet資料庫含有1500多萬個帶標記的影象,超過2.2萬個類別。

使用ReLU代替傳統正切函式引入非線性(ReLU比傳統正切函式快幾倍,縮短訓練時間)。

使用了影象轉化(image translation)、水平反射(horizontal reflection)和補丁提取(patch extraction)這些資料增強技術。

用dropout層應對訓練資料過擬合的問題。

使用批處理隨機梯度下降訓練模型,註明動量衰減值和權重衰減值。

使用兩臺GTX 580 GPU,訓練了5到6天

為什麼重要?

Krizhevsky、Sutskever 和 Hinton 2012年開發的這個神經網路,是CNN在計算機視覺領域的一大亮相。這是史上第一次有模型在ImageNet 資料庫表現這麼好,ImageNet 資料庫難度是出了名的。

論文中提出的方法,比如資料增強和dropout,現在也在使用,這篇論文真正展示了CNN的優點,並且以破紀錄的比賽成績實打實地做支撐。

ZF Net (2013年)

2012年AlexNet出盡了風頭,ILSVRC 2013就有一大批CNN模型冒了出來。2013年的冠軍是紐約大學Matthew Zeiler 和 Rob Fergus設計的網路 ZF Net,錯誤率 11.2%。ZF Net模型更像是AlexNet架構的微調優化版,但還是提出了有關優化效能的一些關鍵想法。

還有一個原因,這篇論文寫得非常好,論文作者花了大量時間闡釋有關卷積神經網路的直觀概念,展示了將濾波器和權重視覺化的正確方法。

在這篇題為“Visualizing and Understanding Convolutional Neural Networks”的論文中,Zeiler和Fergus從大資料和GPU計算力讓人們重拾對CNN的興趣講起,討論了研究人員對模型內在機制知之甚少,一針見血地指出“發展更好的模型實際上是不斷試錯的過程”。雖然我們現在要比3年前知道得多一些了,但論文所提出的問題至今仍然存在!這篇論文的主要貢獻在於提出了一個比AlexNet稍微好一些的模型並給出了細節,還提供了一些製作視覺化特徵圖值得借鑑的方法。

除了一些小的修改,整體架構非常類似AlexNet。

AlexNet訓練用了1500萬張圖片,而ZFNet只用了130萬張。

AlexNet在第一層中使用了大小為11×11的濾波器,而ZF使用的濾波器大小為7x7,整體處理速度也有所減慢。做此修改的原因是,對於輸入資料來說,第一層卷積層有助於保留大量的原始象素資訊。11×11的濾波器漏掉了大量相關資訊,特別是因為這是第一層卷積層。

隨著網路增大,使用的濾波器數量增多。

利用ReLU的啟用函式,將交叉熵代價函式作為誤差函式,使用批處理隨機梯度下降進行訓練。

使用一臺GTX 580 GPU訓練了12天。

開發視覺化技術“解卷積網路”(Deconvolutional Network),有助於檢查不同的特徵啟用和其對輸入空間關係。名字之所以稱為“deconvnet”,是因為它將特徵對映到畫素(與卷積層恰好相反)。

DeConvNet

DeConvNet工作的基本原理是,每層訓練過的CNN後面都連一層“deconvet”,它會提供一條返回影象畫素的路徑。輸入影象進入CNN之後,每一層都計算啟用。然而向前傳遞。現在,假設我們想知道第4層卷積層某個特徵的啟用值,我們將儲存這個特徵圖的啟用值,並將這一層的其他啟用值設為0,再將這張特徵圖作為輸入送入deconvnet。Deconvnet與原來的CNN擁有同樣的濾波器。輸入經過一系列unpool(maxpooling倒過來),修正,對前一層進行過濾操作,直到輸入空間滿。

這一過程背後的邏輯在於,我們想要知道是啟用某個特徵圖的是什麼結構。下面來看第一層和第二層的視覺化。

ConvNet的第一層永遠是低層特徵檢測器,在這裡就是對簡單的邊緣、顏色進行檢測。第二層就有比較圓滑的特徵了。再來看第三、第四和第五層。

這些層展示出了更多的高階特徵,比如狗的臉和鮮花。值得一提的是,在第一層卷積層後面,我們通常會跟一個池化層將影象縮小(比如將 32x32x32 變為16x16x3)。這樣做的效果是加寬了第二層看原始影象的視野。更詳細的內容可以閱讀論文。

為什麼重要?

ZF Net不僅是2013年比賽的冠軍,還對CNN的運作機制提供了極好的直觀資訊,展示了更多提升效能的方法。論文所描述的視覺化方法不僅有助於弄清CNN的內在機理,也為優化網路架構提供了有用的資訊。Deconv視覺化方法和 occlusion 實驗也讓這篇論文成了我個人的最愛。

VGG Net(2015年)

簡單、有深度,這就是2014年錯誤率7.3%的模型VGG Net(不是ILSVRC 2014冠軍)。牛津大學的Karen Simonyan 和 Andrew Zisserman Main Points創造了一個19層的CNN,嚴格使用3x3的過濾器(stride =1,pad= 1)和2x2 maxpooling層(stride =2)。簡單吧?

這裡使用3x3的濾波器和AlexNet在第一層使用11x11的濾波器和ZF Net 7x7的濾波器作用完全不同。作者認為兩個3x3的卷積層組合可以實現5x5的有效感受野。這就在保持濾波器尺寸較小的同時模擬了大型濾波器,減少了引數。此外,有兩個卷積層就能夠使用兩層ReLU。

3卷積層具有7x7的有效感受野。

每個maxpool層後濾波器的數量增加一倍。進一步加強了縮小空間尺寸,但保持深度增長的想法。

影象分類和定位任務都運作良好。

使用Caffe工具包建模。

訓練中使用scale jittering的資料增強技術。

每層卷積層後使用ReLU層和批處理梯度下降訓練。

使用4臺英偉達Titan Black GPU訓練了兩到三週。

為什麼重要?

在我看來,VGG Net是最重要的模型之一,因為它再次強調CNN必須夠深,視覺資料的層次化表示才有用。深的同時結構簡單。

GoogleLe Net(2015年)

理解了我們剛才所說的神經網路架構中的簡化的概念了嗎?通過推出 Inception 模型,谷歌從某種程度上把這一概念拋了出來。GoogLeNet是一個22層的卷積神經網路,在2014年的ILSVRC2014上憑藉6.7%的錯誤率進入Top 5。據我所知,這是第一個真正不使用通用方法的卷積神經網路架構,傳統的卷積神經網路的方法是簡單堆疊卷積層,然後把各層以序列結構堆積起來。論文的作者也強調,這種新的模型重點考慮了記憶體和能量消耗。這一點很重要,我自己也會經常忽略:把所有的層都堆疊、增加大量的濾波器,在計算和記憶體上消耗很大,過擬合的風險也會增加。

換一種方式看 GoogLeNet:

Inception 模型

第一次看到GoogLeNet的構造時,我們立刻注意到,並不是所有的事情都是按照順序進行的,這與此前看到的架構不一樣。我們有一些網路,能同時並行發生反應。

這個盒子被稱為 Inception 模型。可以近距離地看看它的構成。

底部的綠色盒子是我們的輸入層,頂部的是輸出層(把這張圖片向右旋轉90度,你會看到跟展示了整個網路的那張圖片相對應的模型)。基本上,在一個傳統的卷積網路中的每一層中,你必須選擇操作池還是卷積操作(還要選擇濾波器的大小)。Inception 模型能讓你做到的就是並行地執行所有的操作。事實上,這就是作者構想出來的最“初始”的想法。

現在,來看看它為什麼起作用。它會導向許多不同的結果,我們會最後會在輸出層體積上獲得極端大的深度通道。作者處理這個問題的方法是,在3X3和5X5層前,各自增加一個1X1的卷積操作。1X1的卷積(或者網路層中的網路),提供了一個減少維度的方法。比如,我們假設你擁有一個輸入層,體積是100x100x60(這並不定是影象的三個維度,只是網路中每一層的輸入)。增加20個1X1的卷積濾波器,會讓你把輸入的體積減小到100X100X20。

這意味著,3X3層和5X5層不需要處理輸入層那麼大的體積。這可以被認為是“池特徵”(pooling of feature),因為我們正在減少體積的高度,這和使用常用的最大池化層(maxpooling layers)減少寬度和長度類似。另一個需要注意的是,這些1X1的卷積層後面跟著的是ReLU 單元,這肯定不會有害。

你也許會問,“這個架構有什麼用?”這麼說吧,這個模型由一個網路層中的網路、一箇中等大小的過濾卷積、一個大型的過濾卷積、一個操作池(pooling operation)組成。網路卷積層中的網路能夠提取輸入體積中的每一個細節中的資訊,同時 5x5 的濾波器也能夠覆蓋大部分接受層的的輸入,進而能提起其中的資訊。你也可以進行一個池操作,以減少空間大小,降低過度擬合。在這些層之上,你在每一個卷積層後都有一個ReLU,這能改進網路的非線性特徵。基本上,網路在執行這些基本的功能時,還能同時考慮計算的能力。這篇論文還提供了更高級別的推理,包括的主題有稀疏和緊密聯結(見論文第三和第四節)。

整個架構中使用了9個Inception 模型,總共超過100層。這已經很深了……沒有使用完全連線的層。他們使用一個平均池代替,從 7x7x1024 的體積降到了 1x1x1024,這節省了大量的引數。比AlexNet的引數少了12X在測試中,相同影象的多個剪裁建立,然後填到網路中,計算softmax probabilities的均值,然後我們可以獲得最後的解決方案。在感知模型中,使用了R-CNN中的概念。Inception有一些升級的版本(版本6和7),“少數高階的GPU”一週內就能完成訓練。

為什麼重要?

GoogLeNet 是第一個引入了“CNN 各層不需要一直都按順序堆疊”這一概念的模型。用Inception模型,作者展示了一個具有創造性的層次機構,能帶來效能和計算效率的提升。這篇論文確實為接下來幾年可能會見到的令人驚歎的架構打下了基礎。

微軟ResNet(2015年)

想象一個深度CNN架構,再深、再深、再深,估計都還沒有 ILSVRC 2015 冠軍,微軟的152層ResNet架構深。除了在層數上面創紀錄,ResNet 的錯誤率也低得驚人,達到了3.6%,人類都大約在5%~10%的水平。

為什麼重要?

只有3.6%的誤差率,這應該足以說服你。ResNet模型是目前最好的CNN架構,而且是殘差學習理念的一大創新。從2012年起,錯誤率逐年下降,我懷疑到ILSVRC2016,是否還會一直下降。我相信,我們現在堆放更多層將不會實現效能的大幅提升。我們必須要創造新的架構。

區域CNN:R-CNN,Fast R-CNN,Fater R-CNN

一些人可能會認為,R-CNN的出現比此前任何關於新的網路架構的論文都有影響力。第一篇關於R-CNN的論文被引用了超過1600次。Ross Girshick 和他在UC Berkeley 的團隊在機器視覺上取得了最有影響力的進步。正如他們的文章所寫, Fast R-CNN 和 Faster R-CNN能夠讓模型變得更快,更好地適應現代的物體識別任務。

R-CNN的目標是解決物體識別的難題。在獲得特定的一張影象後, 我們希望能夠繪製圖像中所有物體的邊緣。這一過程可以分為兩個組成部分,一個是區域建議,另一個是分類。

論文的作者強調,任何分類不可知區域的建議方法都應該適用。Selective Search專用於RCNN。Selective Search 的作用是聚合2000個不同的區域,這些區域有最高的可能性會包含一個物體。在我們設計出一系列的區域建議之後,這些建議被匯合到一個影象大小的區域,能被填入到經過訓練的CNN(論文中的例子是AlexNet),能為每一個區域提取出一個對應的特徵。這個向量隨後被用於作為一個線性SVM的輸入,SVM經過了每一種型別和輸出分類訓練。向量還可以被填入到一個有邊界的迴歸區域,獲得最精準的一致性。

非極值壓抑後被用於壓制邊界區域,這些區域相互之間有很大的重複。

Fast R-CNN

原始模型得到了改進,主要有三個原因:訓練需要多個步驟,這在計算上成本過高,而且速度很慢。Fast R-CNN通過從根本上在不同的建議中分析卷積層的計算,同時打亂生成區域建議的順利以及執行CNN,能夠快速地解決問題。

Faster R-CNN

Faster R-CNN的工作是克服R-CNN和 Fast R-CNN所展示出來的,在訓練管道上的複雜性。作者 在最後一個卷積層上引入了一個區域建議網路(RPN)。這一網路能夠只看最後一層的特徵就產出區域建議。從這一層面上來說,相同的R-CNN管道可用。

為什麼重要?

能夠識別出一張影象中的某一個物體是一方面,但是,能夠識別物體的精確位置對於計算機知識來說是一個巨大的飛躍。更快的R-CNN已經成為今天標準的物體識別程式。

生成對抗網路(2015年)

按照Yann LeCun的說法,生成對抗網路可能就是深度學習下一個大突破。假設有兩個模型,一個生成模型,一個判別模型。判別模型的任務是決定某幅影象是真實的(來自資料庫),還是機器生成的,而生成模型的任務則是生成能夠騙過判別模型的影象。這兩個模型彼此就形成了“對抗”,發展下去最終會達到一個平衡,生成器生成的影象與真實的影象沒有區別,判別器無法區分兩者。

左邊一欄是資料庫裡的影象,也即真實的影象,右邊一欄是機器生成的影象,雖然肉眼看上去基本一樣,但在CNN看起來卻十分不同。

為什麼重要?

聽上去很簡單,然而這是隻有在理解了“資料內在表徵”之後才能建立的模型,你能夠訓練網路理解真實影象和機器生成的影象之間的區別。因此,這個模型也可以被用於CNN中做特徵提取。此外,你還能用生成對抗模型製作以假亂真的圖片。

生成影象網路(2014年)

把CNN和RNN結合在一起會發生什麼?Andrej Karpathy 和李飛飛寫的這篇論文探討了結合CNN和雙向RNN生成不同影象區域的自然語言描述問題。簡單說,這個模型能夠接收一張圖片,然後輸出:

很神奇吧。傳統CNN,訓練資料中每幅影象都有單一的一個標記。這篇論文描述的模型則是每幅影象都帶有一句話(或圖說)。這種標記被稱為弱標記,使用這種訓練資料,一個深度神經網路“推斷句子中的部分與其描述的區域之間的潛在對齊(latent alignment)”,另一個神經網路將影象作為輸入,生成文字的描述。

為什麼重要?

使用看似不相關的RNN和CNN模型創造了一個十分有用的應用,將計算機視覺和自然語言處理結合在一起。這篇論文為如何建模處理跨領域任務提供了全新的思路。

空間轉換器網路(2015年)

最後,讓我們來看該領域最近的一篇論文。本文是谷歌DeepMind的一個團隊在一年前寫的。這篇論文的主要貢獻是介紹了空間變換器(Spatial Transformer)模組。基本思路是,這個模組會轉變輸入影象,使隨後的層可以更輕鬆地進行分類。作者試圖在影象到達特定層前改變影象,而不是更改主CNN架構本身。該模組希望糾正兩件事:姿勢標準化(場景中物體傾斜或縮放)和空間注意力(在密集的影象中將注意力集中到正確的物體)。對於傳統的CNN,如果你想使你的模型對於不同規格和旋轉的影象都保持不變,那你需要大量的訓練樣本來使模型學習。讓我們來看看這個模組是如何幫助解決這一問題。

傳統CNN模型中,處理空間不變性的是maxpooling層。其原因是,一旦我們知道某個特定特性還是起始輸入量(有高啟用值),它的確切位置就沒有它對其他特性的相對位置重要,其他功能一樣重要。這個新的空間變換器是動態的,它會對每個輸入影象產生不同的行為(不同的扭曲/變形)。這不僅僅是像傳統 maxpool 那樣簡單和預定義。讓我們來看看這個模組是如何工作的。該模組包括:

一個本地化網路,會吸收輸入量,並輸出應施加的空間變換的引數。引數可以是6維仿射變換。

取樣網格,這是由捲曲規則網格和定位網路中建立的仿射變換(theta)共同產生的。

一個取樣器,其目的是執行輸入功能圖的翹曲。

該模組可以放入CNN的任何地方中,可以幫助網路學習如何以在訓練過程中最大限度地減少成本函式的方式來變換特徵圖。

為什麼重要?

CNN的改進不一定要到通過網路架構的大改變來實現。我們不需要建立下一個ResNet或者 Inception 模型。本文實現了對輸入影象進行仿射變換的簡單的想法,以使模型對平移,縮放和旋轉保持不變。更多請檢視《CNN十篇經典論文》。

77、深度學習在視覺領域有何前沿進展?深度學習 DL應用 難
@元峰,本題解析來源:https://zhuanlan.zhihu.com/p/24699780

00

引言

在今年的神經網路頂級會議NIPS2016上,深度學習三大牛之一的Yann Lecun教授給出了一個關於機器學習中的有監督學習、無監督學習和增強學習的一個有趣的比喻,他說:如果把智慧(Intelligence)比作一個蛋糕,那麼無監督學習就是蛋糕本體,增強學習是蛋糕上的櫻桃,那麼監督學習,僅僅能算作蛋糕上的糖霜(圖1)。


圖1. Yann LeCun 對監督學習,增強學習和無監督學習的價值的形象比喻

01

深度有監督學習在計算機視覺領域的進展

1.1 影象分類(Image Classfication)

自從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競賽影象識別錯誤率演進趨勢

1.2 影象檢測(Image Dection)

伴隨著影象分類任務,還有另外一個更加有挑戰的任務–影象檢測,影象檢測是指在分類影象的同時把物體用矩形框給圈起來。從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. 影象檢測示例

1.3 影象分割(Semantic Segmentation)

影象分割也是一項有意思的研究領域,它的目的是把影象中各種不同物體給用不同顏色分割出來,如下圖所示,其平均精度(mIoU,即預測區域和實際區域交集除以預測區域和實際區域的並集),也從最開始的FCN模型(影象語義分割全連線網路,該論文獲得計算機視覺頂會CVPR2015的最佳論文的)的62.2%,到DeepLab框架的72.7%,再到牛津大學的CRF as RNN的74.7%。該領域是一個仍在進展的領域,仍舊有很大的進步空間。

圖4. 影象分割的例子

1.4 影象標註-看圖說話(Image Captioning)

影象標註是一項引人注目的研究領域,它的研究目的是給出一張圖片,你給我用一段文字描述它,如圖中所示,圖片中第一個圖,程式自動給出的描述是“一個人在塵土飛揚的土路上騎摩托車”,第二個圖片是“兩隻狗在草地上玩耍”。由於該研究巨大的商業價值(例如圖片搜尋),近幾年,工業界的百度,谷歌和微軟 以及學術界的加大伯克利,深度學習研究重地多倫多大學都在做相應的研究。

圖5.影象標註,根據圖片生成描述文字

1.5 影象生成-文字轉影象(Image Generateor)

圖片標註任務本來是一個半圓,既然我們可以從圖片產生描述文字,那麼我們也能從文字來生成圖片。如圖6所示,第一列“一架大客機在藍天飛翔”,模型自動根據文字生成了16張圖片,第三列比較有意思,“一群大象在乾燥草地行走”(這個有點違背常識,因為大象一般在雨林,不會在乾燥草地上行走),模型也相應的生成了對應圖片,雖然生成的質量還不算太好,但也已經中規中矩。


圖6.根據文字生成圖片

02

強化學習

在監督學習任務中,我們都是給定樣本一個固定標籤,然後去訓練模型,可是,在真實環境中,我們很難給出所有樣本的標籤,這時候,強化學習就派上了用場。簡單來說,我們給定一些獎勵或懲罰,強化學習就是讓模型自己去試錯,模型自己去優化怎麼才能得到更多的分數。2016年大火的AlphaGo就是利用了強化學習去訓練,它在不斷的自我試錯和博弈中掌握了最優的策略。利用強化學習去玩flyppy bird,已經能夠玩到幾萬分了。

 圖7. 強化學習玩flappy bird

谷歌DeepMind發表的使用增強學習來玩Atari遊戲,其中一個經典的遊戲是打磚塊(breakout),DeepMind提出的模型僅僅使用畫素作為輸入,沒有任何其他先驗知識,換句話說,模型並不認識球是什麼,它玩的是什麼,令人驚訝的是,在經過240分鐘的訓練後,它不光學會了正確的接球,擊打磚塊,它甚至學會了持續擊打同一個位置,遊戲就勝利的越快(它的獎勵也越高)。視訊連結:Youtbe(需翻牆),優酷


圖8.使用深度增強學習來玩Atari Breakout 

強化學習在機器人領域和自動駕駛領域有極大的應用價值,當前arxiv上基本上每隔幾天就會有相應的論文出現。機器人去學習試錯來學習最優的表現,這或許是人工智慧進化的最優途徑,估計也是通向強人工智慧的必經之路。

03

深度無監督學習-預測學習

相比有限的監督學習資料,自然界有無窮無盡的未標註資料。試想,如果人工智慧可以從龐大的自然界自動去學習,那豈不是開啟了一個新紀元?當前,最有前景的研究領域或許應屬無監督學習,這也正是Yann Lecun教授把無監督學習比喻成人工智慧大蛋糕的原因吧。

深度學習牛人Ian Goodfellow在2014年提出生成對抗網路後,該領域越來越火,成為16年研究最火熱的一個領域之一。大牛Yann LeCun曾說:“對抗網路是切片面包發明以來最令人激動的事情。”這句話足以說明生成對抗網路有多重要。 

生成對抗網路的一個簡單解釋如下:假設有兩個模型,一個是生成模型(Generative Model,下文簡寫為G),一個是判別模型(Discriminative Model,下文簡寫為D),判別模型(D)的任務就是判斷一個例項是真實的還是由模型生成的,生成模型(G)的任務是生成一個例項來騙過判別模型(D),兩個模型互相對抗,發展下去就會達到一個平衡,生成模型生成的