日本在线看黄a美女久草|日本动漫亚洲在线一区|日韩人妻无码免费视频|A√有码中文字幕|日韩一级片视频热久久久|一区二区三区四区精品无码在线|亚洲AV成人无码一二三app|亚洲综合图片绯色|91极品人妻在线网站|国产成人精品一区二三区四区五区

您正在使用IE低版瀏覽器,為了您的雷峰網(wǎng)賬號安全和更好的產(chǎn)品體驗,強烈建議使用更快更安全的瀏覽器
此為臨時鏈接,僅用于文章預(yù)覽,將在時失效
人工智能開發(fā)者 正文
發(fā)私信給AI研習(xí)社
發(fā)送

1

為什么要用深度學(xué)習(xí)?

本文作者: AI研習(xí)社 2017-08-04 15:39
導(dǎo)語:雷鋒網(wǎng)按:本文原作者 YJango,本文原載于其知乎專欄——超智能體。雷鋒網(wǎng) (公眾號:雷鋒網(wǎng))已獲得原作者授權(quán)。為何深層學(xué)習(xí)深層學(xué)習(xí)開啟了

雷鋒網(wǎng)按:本文原作者 YJango,本文原載于其知乎專欄——超智能體。雷鋒網(wǎng)已獲得原作者授權(quán)。

為何深層學(xué)習(xí)

深層學(xué)習(xí)開啟了人工智能的新時代。不論任何行業(yè)都害怕錯過這一時代浪潮,因而大批資金和人才爭相涌入。但深層學(xué)習(xí)卻以 “黑箱” 而聞名,不僅調(diào)參難,訓(xùn)練難,“新型” 網(wǎng)絡(luò)結(jié)構(gòu)的論文又如雨后春筍般地涌現(xiàn),使得對所有結(jié)構(gòu)的掌握變成了不現(xiàn)實。我們?nèi)鄙僖粋€對深層學(xué)習(xí)合理的認識。

神經(jīng)網(wǎng)絡(luò)并不缺少新結(jié)構(gòu),但缺少一個該領(lǐng)域的為什么要用深度學(xué)習(xí)?

很多人在做神經(jīng)網(wǎng)絡(luò)的實驗時會發(fā)現(xiàn)調(diào)節(jié)某些方式和結(jié)構(gòu)會產(chǎn)生意想不到的結(jié)果。但就我個人而言,這些發(fā)現(xiàn)并不會讓我感到滿足。我更關(guān)心這些新發(fā)現(xiàn)到底告訴我們了什么,造成這些現(xiàn)象的背后原因是什么。我會更想要將新的網(wǎng)絡(luò)結(jié)構(gòu)歸納到已有的體系當中。這也是我更多思考 “為何深層學(xué)習(xí)有效” 的原因。下面便是目前 YJango 關(guān)于這方面的見解。

深層神經(jīng)網(wǎng)絡(luò)相比一般的統(tǒng)計學(xué)習(xí)擁有從數(shù)學(xué)的嚴謹中不會得出的關(guān)于物理世界的先驗知識(非貝葉斯先驗)。該內(nèi)容也在 Bengio 大神的論文和演講中多次強調(diào)。大神也在 Bay Area Deep Learning School 2016 的 Founda’ons and Challenges of Deep Learning pdf(這里也有視頻,需翻墻)中提到的 distributed representations 和 compositionality 兩點就是神經(jīng)網(wǎng)絡(luò)和深層神經(jīng)網(wǎng)絡(luò)高效的原因(若有時間,強烈建議看完演講再看該文)。雖然與大神的思考起點可能不同,但結(jié)論完全一致(看到 Bengio 大神的視頻時特別興奮)。下面就是結(jié)合例子分析: 

1. 為什么神經(jīng)網(wǎng)絡(luò)高效
2. 學(xué)習(xí)的本質(zhì)是什么
3. 為什么深層神經(jīng)網(wǎng)絡(luò)比淺層神經(jīng)網(wǎng)絡(luò)更高效
4. 神經(jīng)網(wǎng)絡(luò)在什么問題上不具備優(yōu)勢

其他推薦讀物

  • Bengio Y. Learning deep architectures for AI[J]. Foundations and trends? in Machine Learning, 2009, 2(1): 1-127.

  • Brahma P P, Wu D, She Y. Why Deep Learning Works: A Manifold Disentanglement Perspective[J]. 2015.

  • Lin H W, Tegmark M. Why does deep and cheap learning work so well?[J]. arXiv preprint arXiv:1608.08225, 2016.

  • Bengio Y, Courville A, Vincent P. Representation learning: A review and new perspectives[J]. IEEE transactions on pattern analysis and machine intelligence, 2013, 35(8): 1798-1828.

  • Deep Learning textbook by Ian Goodfellow and Yoshua Bengio and Aaron Courville

YJango 的整個思考流程都圍繞減熵二字進行。之前在《熵與生命》和《生物學(xué)習(xí)》中討論過,生物要做的是降低環(huán)境的熵,將不確定狀態(tài)變?yōu)榇_定狀態(tài)。通常機器學(xué)習(xí)是優(yōu)化損失函數(shù),并用概率來衡量模型優(yōu)劣。然而概率正是由于無法確定狀態(tài)才不得不用的衡量手段。生物真正想要的是沒有絲毫不確定性。

為什么要用深度學(xué)習(xí)?

深層神經(jīng)網(wǎng)絡(luò)在自然問題上更具優(yōu)勢,因為它和生物學(xué)習(xí)一樣,是找回使熵增加的 “物理關(guān)系”(知識,并非完全一樣),將變體(為什么要用深度學(xué)習(xí)?)轉(zhuǎn)化回因素(為什么要用深度學(xué)習(xí)?)附帶物理關(guān)系的形式,從源頭消除熵(假設(shè)每個因素只有兩種可能狀態(tài))。這樣所有狀態(tài)間的關(guān)系可以被確定,要么肯定發(fā)生,要么絕不發(fā)生,也就無需用概率來衡量。因此下面定義的學(xué)習(xí)目標并非單純降低損失函數(shù),而從確定關(guān)系的角度考慮。一個完美訓(xùn)練好的模型就是兩個狀態(tài)空間內(nèi)所有可能取值間的關(guān)系都被確定的模型。

學(xué)習(xí)目標:是確定(determine)兩個狀態(tài)空間內(nèi)所有可能取值之間的關(guān)系,使得熵盡可能最低。

注:對熵不了解的朋友可以簡單記住,事件的狀態(tài)越確定,熵越小。如絕不發(fā)生(概率 0)或肯定發(fā)生(概率為 1)的事件熵小。而 50% 可能性事件的熵反而大。

為舉例說明,下面就一起考慮用神經(jīng)網(wǎng)絡(luò)學(xué)習(xí)以下兩個集合的不同關(guān)聯(lián)(OR gate 和 XOR gate)。看看隨著網(wǎng)絡(luò)結(jié)構(gòu)和關(guān)聯(lián)的改變,會產(chǎn)生什么不同情況。尤其是最后網(wǎng)絡(luò)變深時與淺層神經(jīng)網(wǎng)絡(luò)的區(qū)別。

注:選擇這種 XOR 這種簡單關(guān)聯(lián)的初衷是輸入和輸出空間狀態(tài)的個數(shù)有限,易于分析變體個數(shù)和熵增的關(guān)系。

注:用 “變體(variation)” 是指同一類事物的不同形態(tài),比如 10 張狗的圖片,雖然外貌各異,但都是狗。

問題描述:集合 A 有 4 個狀態(tài),集合 B 有 2 個狀態(tài)。0 和 1 只是用于表示不同狀態(tài)的符號,也可以用 0,1,2,3 表示。狀態(tài)也并不一定表示數(shù)字,可以表示任何物理意義。

為什么要用深度學(xué)習(xí)?為什么要用深度學(xué)習(xí)?

方式 1:記憶

  • 隨機變量X:可能取值是 為什么要用深度學(xué)習(xí)?

  • 隨機變量 Y:可能取值是 為什么要用深度學(xué)習(xí)?

    注:隨機變量(大寫 X)是將事件投射到實數(shù)的函數(shù)。用對應(yīng)的實數(shù)表示事件。而小寫字母 x 表示對應(yīng)該實數(shù)的事件發(fā)生了,是一個具體實例。

  • 網(wǎng)絡(luò)結(jié)構(gòu):暫且不規(guī)定要學(xué)習(xí)的關(guān)聯(lián)是 OR 還是 XOR,先建立一個沒有隱藏層,僅有一個輸入節(jié)點,一個輸出節(jié)點的神經(jīng)網(wǎng)絡(luò)。

  • 表達式:為什么要用深度學(xué)習(xí)?, 為什么要用深度學(xué)習(xí)?表示 sigmoid 函數(shù)。(只要是非線性即可,relu 是目前的主流)

  • 說明:下圖右側(cè)中的虛線表示的既不是神經(jīng)網(wǎng)絡(luò)的鏈接,也不是函數(shù)中的映射,而是兩個空間中,所有可能值之間的關(guān)系(relation)。學(xué)習(xí)的目的是確定這些狀態(tài)的關(guān)系。比如當輸入 00 時,模型要嘗試告訴我們 00 到 1 的概率為 0,00 到 0 的概率為 1,這樣熵為什么要用深度學(xué)習(xí)?才會為零。

  • 關(guān)系圖:左側(cè)是網(wǎng)絡(luò)結(jié)構(gòu),右側(cè)是狀態(tài)關(guān)系圖。輸入和輸出空間之間共有 8 個關(guān)系 (非箭頭虛線表示關(guān)系)。除非這 8 個關(guān)系對模型來說都是相同的,否則用為什么要用深度學(xué)習(xí)?表示為什么要用深度學(xué)習(xí)?時的熵為什么要用深度學(xué)習(xí)?就會增加。(為什么要用深度學(xué)習(xí)?無法照顧到 8 個關(guān)系,若完美擬合一個關(guān)系,其余的關(guān)系就不準確)

    注:這里 YJango 是為什么要用深度學(xué)習(xí)?用表示為什么要用深度學(xué)習(xí)?的縮寫。為什么要用深度學(xué)習(xí)?

  • 數(shù)據(jù)量:極端假設(shè),若用查找表來表示關(guān)系:需要用 8 個不同的為什么要用深度學(xué)習(xí)?數(shù)據(jù)來記住想要擬合的為什么要用深度學(xué)習(xí)?。

方式 2:手工特征

  • 特征:空間 A 的 4 個狀態(tài)是由兩個 0 或 1 的狀態(tài)共同組成。我們可以觀察出來(計算機并不能),我們利用這種知識為什么要用深度學(xué)習(xí)?把 A 中的狀態(tài)分解開(disentangle)。分解成兩個獨立的子隨機變量為什么要用深度學(xué)習(xí)?為什么要用深度學(xué)習(xí)?。也就是用二維向量表示輸入。

  • 網(wǎng)絡(luò)結(jié)構(gòu):由于分成了二維特征,這次網(wǎng)絡(luò)結(jié)構(gòu)的輸入需改成兩個節(jié)點。下圖中的上半部分是,利用人工知識為什么要用深度學(xué)習(xí)?將隨機變量為什么要用深度學(xué)習(xí)?無損轉(zhuǎn)變?yōu)?img src="https://www.zhihu.com/equation?tex=H_%7B1%7D" alt="為什么要用深度學(xué)習(xí)?" eeimg="1" style="font-size:16px;font-style:normal;font-weight:normal;color:rgb(51, 51, 51);"/>和為什么要用深度學(xué)習(xí)?的共同表達(representation)。這時為什么要用深度學(xué)習(xí)?為什么要用深度學(xué)習(xí)?一起形成網(wǎng)絡(luò)輸入。

    注:k() 旁邊的黑線(實線表示確定關(guān)系)并非是真正的神經(jīng)網(wǎng)絡(luò)結(jié)構(gòu),只是方便理解,可以簡單想象成神經(jīng)網(wǎng)絡(luò)轉(zhuǎn)變的。

  • 表達式為什么要用深度學(xué)習(xí)?

    注:方便起見,為什么要用深度學(xué)習(xí)?寫成了矩陣的表達形式為什么要用深度學(xué)習(xí)?,其中為什么要用深度學(xué)習(xí)?是標量,而為什么要用深度學(xué)習(xí)?,為什么要用深度學(xué)習(xí)?

  • 關(guān)系圖:由于為什么要用深度學(xué)習(xí)?固定,只考慮下半部分的關(guān)系。因為這時用了兩條線為什么要用深度學(xué)習(xí)?為什么要用深度學(xué)習(xí)?來共同對應(yīng)關(guān)系。原本需要擬合的 8 個關(guān)系,現(xiàn)在變成了 4 個(兩個節(jié)點平攤)。同樣,除非右圖的 4 條紅色關(guān)系線對為什么要用深度學(xué)習(xí)?來說相同,并且 4 條綠色關(guān)系線對為什么要用深度學(xué)習(xí)?來說也相同,否則用為什么要用深度學(xué)習(xí)?為什么要用深度學(xué)習(xí)?
    表示為什么要用深度學(xué)習(xí)?時,一定會造成熵為什么要用深度學(xué)習(xí)?增加。

    注:下圖中左側(cè)是網(wǎng)絡(luò)結(jié)構(gòu)圖。右側(cè)關(guān)系圖中,接觸的圓圈表示同一個節(jié)點的不同變體。分開的、并標注為不同顏色的圓圈表示不同節(jié)點,左右兩圖連線的顏色相互對應(yīng),如紅色的為什么要用深度學(xué)習(xí)?需要表示右側(cè)的 4 條紅色關(guān)系線。

    為什么要用深度學(xué)習(xí)?

  • 關(guān)聯(lián) 1:下面和 YJango 確定想要學(xué)習(xí)的關(guān)聯(lián)(函數(shù))。如果想學(xué)習(xí)的關(guān)聯(lián)是只取為什么要用深度學(xué)習(xí)?或者為什么要用深度學(xué)習(xí)?的值,那么該結(jié)構(gòu)可以輕松用兩條線為什么要用深度學(xué)習(xí)?為什么要用深度學(xué)習(xí)?來表達這 4 個關(guān)系 (讓其中一條線的權(quán)重為 0,另一條為 1)。

  • 關(guān)聯(lián) 2 :如果想學(xué)習(xí)的關(guān)聯(lián)是或門,真值表和實際訓(xùn)練完的預(yù)測值對照如下。很接近,但有誤差。不過若要是分類的話,可以找到 0.5 這個超平面來分割。大于 0.5 的就是 1,小于 0.5 的就是 0,可以完美分開。

    為什么要用深度學(xué)習(xí)?

    注: 第一列是輸入,第二列是真實想要學(xué)習(xí)的輸出,第三列是訓(xùn)練后的網(wǎng)絡(luò)預(yù)測值。

  • 關(guān)聯(lián) 3 :如果想學(xué)習(xí)的關(guān)聯(lián)是異或門(XOR),真值表和實際訓(xùn)練完的預(yù)測值對照如下。由于 4 條關(guān)系線無法用單個為什么要用深度學(xué)習(xí)?表達,該網(wǎng)絡(luò)結(jié)構(gòu)連 XOR 關(guān)聯(lián)的分類都無法分開。

    為什么要用深度學(xué)習(xí)?

  • 數(shù)據(jù)量:學(xué)習(xí)這種關(guān)聯(lián)至少需 4 個不同的為什么要用深度學(xué)習(xí)?來擬合為什么要用深度學(xué)習(xí)?。其中每個數(shù)據(jù)可以用于確定 2 條關(guān)系線。

方式 3:加入隱藏層

  • 網(wǎng)絡(luò)結(jié)構(gòu) 1:現(xiàn)在直接把為什么要用深度學(xué)習(xí)?為什么要用深度學(xué)習(xí)?作為輸入(用為什么要用深度學(xué)習(xí)?,為什么要用深度學(xué)習(xí)?表示),不考慮為什么要用深度學(xué)習(xí)?。并且在網(wǎng)絡(luò)結(jié)構(gòu)中加入一個擁有 2 個節(jié)點(node)隱藏層(用為什么要用深度學(xué)習(xí)?為什么要用深度學(xué)習(xí)?表示)。

  • 表達式:為什么要用深度學(xué)習(xí)?

  • 關(guān)系圖 1:乍一看感覺關(guān)系更難確定了。原來還是只有 8 條關(guān)系線,現(xiàn)在又多了 16 條。但實際上所需要的數(shù)據(jù)量絲毫沒有改變。因為以下兩條先驗知識的成立。

    注:下圖最右側(cè)是表示:當一個樣本進入網(wǎng)絡(luò)后,能對學(xué)習(xí)哪些關(guān)系線起到作用。

    為什么要用深度學(xué)習(xí)?

  • 1. 并行:為什么要用深度學(xué)習(xí)?為什么要用深度學(xué)習(xí)?的學(xué)習(xí)完全是獨立并行。這就是神經(jīng)網(wǎng)絡(luò)的兩條固有先驗知識中的:并行:網(wǎng)絡(luò)可以同時確定為什么要用深度學(xué)習(xí)?為什么要用深度學(xué)習(xí)?的關(guān)聯(lián)。也是 Bengio 大神所指的 distributed representation。

    注:有效的前提是所要學(xué)習(xí)的狀態(tài)空間的關(guān)聯(lián)是可以被拆分成并行的因素(factor)。

    注:為什么要用深度學(xué)習(xí)?就沒有并行一說,因為為什么要用深度學(xué)習(xí)?是一個節(jié)點擁有兩個變體,而不是兩個獨立的因素。但是也可以把為什么要用深度學(xué)習(xí)?拆開表示為 one-hot-vector。這就是為什么分類時并非用一維向量表示狀態(tài)。更驗證了 YJango 在機器學(xué)習(xí)中對學(xué)習(xí)定義:學(xué)習(xí)是將變體拆成因素附帶關(guān)系的過程。

  • 迭代:第二個先驗知識是:在學(xué)習(xí)為什么要用深度學(xué)習(xí)?同時為什么要用深度學(xué)習(xí)?為什么要用深度學(xué)習(xí)?也可以被學(xué)習(xí)。這就是神經(jīng)網(wǎng)絡(luò)的兩條固有先驗知識中的:迭代:網(wǎng)絡(luò)可以在確定上一級的同時確定下一級的所有內(nèi)容。也是 Bengio 大神所指的 compositionality。

    注:有效的前提是所要學(xué)習(xí)的空間的關(guān)聯(lián)是由上一級迭代形成的。所幸的是,我們所生活的世界幾乎都符合這個前提(有特殊反例)。

  • 關(guān)聯(lián):如果想學(xué)習(xí)的關(guān)聯(lián)是異或門(XOR),真值表和實際訓(xùn)練完的預(yù)測值對照如下。

    為什么要用深度學(xué)習(xí)?為什么要用深度學(xué)習(xí)?:期初若用兩條網(wǎng)絡(luò)連接表示為什么要用深度學(xué)習(xí)?的 16 個關(guān)系可能,那么熵會很高。但用兩條線表示為什么要用深度學(xué)習(xí)?的 8 個關(guān)系,模型的熵可以降到很低。下圖中為什么要用深度學(xué)習(xí)?的輸出值對應(yīng)紅色數(shù)字。為什么要用深度學(xué)習(xí)?對應(yīng)輸出值是由藍色數(shù)字表達。

    為什么要用深度學(xué)習(xí)?: 這時再看為什么要用深度學(xué)習(xí)?的關(guān)系,完全就是線性的。光靠觀察就能得出為什么要用深度學(xué)習(xí)?的一個表達。

    為什么要用深度學(xué)習(xí)?

  • 數(shù)據(jù)量:如關(guān)系圖 1 中最右側(cè)圖所示,一個輸入 [0,0] 會被關(guān)聯(lián)到 0。而這個數(shù)據(jù)可用于學(xué)習(xí) 2+4 個關(guān)系。也就是說網(wǎng)絡(luò)變深并不需要更多數(shù)據(jù)。

模型的熵為什么要用深度學(xué)習(xí)?與用一條為什么要用深度學(xué)習(xí)?所要擬合的關(guān)系數(shù)量有關(guān)。也就是說,

變體(variation)越少,擬合難度越低,熵越低。

  • 網(wǎng)絡(luò)結(jié)構(gòu) 2:既然這樣,為什么要用深度學(xué)習(xí)?有 4 個變體,這次把節(jié)點增加到 4。

  • 關(guān)系圖 2:與網(wǎng)絡(luò)結(jié)構(gòu) 1 不同,增加到 4 個節(jié)點后,每個節(jié)點都可以完全沒有變體,只取一個值。想法很合理,但實際訓(xùn)練時,模型不按照該方式工作。

    注:太多顏色容易眼花。這里不再用顏色標注不同線之間的對應(yīng)關(guān)系,但對應(yīng)關(guān)系依然存在。

    為什么要用深度學(xué)習(xí)?


  • 問題:因為會出現(xiàn)右圖的情況:只有兩個節(jié)點在工作(線的粗細表示權(quán)重大?。和c的節(jié)點在濫竽充數(shù)。這就跟只有兩個節(jié)點時沒有太大別。原因是神經(jīng)網(wǎng)絡(luò)的權(quán)重的初始化是隨機的,數(shù)據(jù)的輸入順序也是隨機的。這些隨機性使得權(quán)重更新的方向無法確定

討論:網(wǎng)絡(luò)既然選擇這種方式來更新權(quán)重,是否一定程度上說明,用較少的節(jié)點就可以表示該關(guān)聯(lián)?并不是,原因在于日常生活中的關(guān)聯(lián),我們無法獲得所有變體的數(shù)據(jù)。所得數(shù)據(jù)往往是很小的一部分。較少的節(jié)點可以表示這一小部分數(shù)據(jù)的關(guān)聯(lián),但卻無法涵蓋所有變體情況。造成實際應(yīng)用時效果不理想。

    • 緩解:緩解的方式有 L2 正則化(L2 regularization):將每層權(quán)重矩陣的平方和作為懲罰。

    • 表達式:為什么要用深度學(xué)習(xí)?,為什么要用深度學(xué)習(xí)?是懲罰的強弱,可以調(diào)節(jié)。除以 2 是為了求導(dǎo)方便(與后邊的平方抵消)。

    • 意義:當同一層的權(quán)重有個別值過高時,平方和就會增加。而模型在訓(xùn)練中會降低該懲罰。產(chǎn)生的作用是使所有權(quán)重平攤?cè)蝿?wù),讓為什么要用深度學(xué)習(xí)?都有值。以這樣的方式來使每個節(jié)點都工作,從而消除變體,可以緩解過擬合(overfitting)。

    • 例如:為什么要用深度學(xué)習(xí)?

具有一個隱藏層的神經(jīng)網(wǎng)絡(luò)可以模擬任何函數(shù),最糟的情況需要為什么要用深度學(xué)習(xí)?個節(jié)點。

也叫 Universal Approximation Theorem。但最糟的情況是輸入空間有多少個變體,就需要多少個節(jié)點。k 表示獨立因素的變體個數(shù),n 表示獨立因素的個數(shù)。上述的例子中最糟的情況需要為什么要用深度學(xué)習(xí)?個隱藏節(jié)點。而代價也是需要為什么要用深度學(xué)習(xí)?個不同數(shù)據(jù)才可以完美擬合。

  • 使用條件:淺層神經(jīng)網(wǎng)絡(luò)可以分開幾乎所有自然界的關(guān)聯(lián)。因為神經(jīng)網(wǎng)絡(luò)最初就是由于可移動的生物需要預(yù)測未來事件所進化而來的。所學(xué)習(xí)的關(guān)聯(lián)是過去狀態(tài)到未來狀態(tài)。如下圖,物理中的力也可以分離成兩個獨立的分力來研究。

    為什么要用深度學(xué)習(xí)?

但有一種不適用的情況:非函數(shù)。

  • 實例:函數(shù)的定義是:每個輸入值對應(yīng)唯一輸出值的對應(yīng)關(guān)系。為什么這么定義函數(shù)?對應(yīng)兩個以上的輸出值在數(shù)學(xué)上完全可以。但是在宏觀的世界發(fā)展中卻不常見。如下圖:

    • 時間順流:不管從哪個起點開始,相同的一個狀態(tài)(不是維度)可以獨立發(fā)展到多個不同狀態(tài)(如氧原子可演變成氧分子和臭氧分子)。也就熱力學(xué)第二定律的自發(fā)性熵增:原始狀態(tài)通過物理關(guān)系,形成更多變體。

      為什么要用深度學(xué)習(xí)?

    • 時間倒流:宏觀自然界中難以找到兩個以上的不同狀態(tài)共同收回到一個狀態(tài)的例子(如氧分子和臭氧分子無法合并成氧原子)。如果這個可以實現(xiàn),熵就會自發(fā)性減少。也就不需要生物來消耗能量減熵。我們的房間會向整齊的狀態(tài)發(fā)展。但這違背熱力學(xué)第二定律。至少在我們的宏觀世界中,這種現(xiàn)象不常見。所以進化而來的神經(jīng)網(wǎng)絡(luò)可以擬合任何函數(shù),但在非函數(shù)上就沒有什么優(yōu)勢。畢竟生物的預(yù)測是從過去狀態(tài)到未來狀態(tài)。也說明神經(jīng)網(wǎng)絡(luò)并不違背無免費午餐定理。

      為什么要用深度學(xué)習(xí)?

    • 實例:XOR 門的輸入空間和輸出空間若互換位置,則神經(jīng)網(wǎng)絡(luò)擬合出來的可能性就非常低(并非絕對無法擬合)。

方式 4:繼續(xù)加深

淺層神經(jīng)網(wǎng)絡(luò)可以模擬任何函數(shù),但數(shù)據(jù)量的代價是無法接受的。深層解決了這個問題。相比淺層神經(jīng)網(wǎng)絡(luò),深層神經(jīng)網(wǎng)絡(luò)可以用更少的數(shù)據(jù)量來學(xué)到更好的擬合。上面的例子很特殊。因為為什么要用深度學(xué)習(xí)?為什么要用深度學(xué)習(xí)?,比較不出來。下面 YJango 就換一個例子,并比較深層神經(jīng)網(wǎng)絡(luò)和淺層神經(jīng)網(wǎng)絡(luò)的區(qū)別。

  • 問題描述:空間為什么要用深度學(xué)習(xí)?有 8 個可能狀態(tài),空間為什么要用深度學(xué)習(xí)?有 2 個可能狀態(tài):


    為什么要用深度學(xué)習(xí)?為什么要用深度學(xué)習(xí)?

  • 網(wǎng)絡(luò)結(jié)構(gòu):

    • 淺層神經(jīng)網(wǎng)絡(luò):8 節(jié)點隱藏層

    • 深層神經(jīng)網(wǎng)絡(luò):2 節(jié)點隱藏層 + 3 節(jié)點隱藏層

  • 深淺對比:

    淺層神經(jīng)網(wǎng)絡(luò):假如說輸入 3 和輸出 0 對應(yīng)。數(shù)據(jù)為什么要用深度學(xué)習(xí)?只能用于學(xué)習(xí)一個節(jié)點(如為什么要用深度學(xué)習(xí)?)前后的兩條關(guān)系線。完美學(xué)習(xí)該關(guān)聯(lián)需要所有 8 個變體。然而當變體數(shù)為為什么要用深度學(xué)習(xí)?時,我們不可能獲得為什么要用深度學(xué)習(xí)?不同變體的數(shù)據(jù),也失去了學(xué)習(xí)的意義。畢竟我們是要預(yù)測沒見過的數(shù)據(jù)。所以與其說這是學(xué)習(xí),不如說這是強行記憶。好比一個學(xué)生做了 100 冊練習(xí)題,做過的題會解,遇到新題仍然不會。他不是學(xué)會了做題,而是記住了怎么特定的題。

    為什么要用深度學(xué)習(xí)?

    深層神經(jīng)網(wǎng)絡(luò):如果只觀察輸入和輸出,看起來同樣需要 8 個不同的為什么要用深度學(xué)習(xí)?訓(xùn)練數(shù)據(jù)。但不同為什么要用深度學(xué)習(xí)?之間有共用部分。比如說,在確定 3 和 0 關(guān)系時,也同時對所有共用為什么要用深度學(xué)習(xí)?連接的其他變體進行確定。這樣就使得原本需要 8 個不同數(shù)據(jù)才能訓(xùn)練好的關(guān)聯(lián)變成只需要 3,4 不同數(shù)據(jù)個就可以訓(xùn)練好。(下圖關(guān)系線的粗細并非表示權(quán)重絕對值,而是共用度

    為什么要用深度學(xué)習(xí)?

  • 深層的前提:使用淺層神經(jīng)網(wǎng)絡(luò)好比是用為什么要用深度學(xué)習(xí)?為什么要用深度學(xué)習(xí)?,需要 2 個不同數(shù)據(jù)。而深層神經(jīng)網(wǎng)絡(luò)好比用為什么要用深度學(xué)習(xí)?為什么要用深度學(xué)習(xí)?,只需要一個數(shù)據(jù)。無免費午餐定理告訴我們,優(yōu)化算法在一個任務(wù)上優(yōu)秀,就一定會在其他任務(wù)上有缺陷,深層同樣滿足該定理。如果用為什么要用深度學(xué)習(xí)?去解實際上有為什么要用深度學(xué)習(xí)?為什么要用深度學(xué)習(xí)?,或者去解實際為為什么要用深度學(xué)習(xí)?的關(guān)聯(lián)時,搜索效果只會更差。所以深層的前提是:為什么要用深度學(xué)習(xí)?空間中的元素可以由為什么要用深度學(xué)習(xí)?迭代發(fā)展而來的。換句話說為什么要用深度學(xué)習(xí)?中的所有變體,都有共用根源為什么要用深度學(xué)習(xí)?(root)。

  • 我們的物理世界:幸運的是,我們的物理世界幾乎都滿足迭代的先驗知識。

    • 實例:比如進化。不同動物都是變體,雖然大家現(xiàn)在的狀態(tài)各異,但在過去都有共同的祖先。


      為什么要用深度學(xué)習(xí)?


    • 實例:又如細胞分裂。八卦中的 8 個變體是由四象中 4 個變體的基礎(chǔ)上發(fā)展而來,而四象又是由太極的 2 個變體演變而來。很難不回想起 “無極生太極,太極生兩儀,兩儀生四象,四象生八卦”。(向中國古人致敬,雖然不知道他們的原意)

      為什么要用深度學(xué)習(xí)?

學(xué)習(xí)的過程是因素間的關(guān)系的拆分,關(guān)系的拆分是信息的回卷,信息的回卷是變體的消除,變體的消除是不確定性的縮減。

自然界兩個固有的先驗知識

并行:新狀態(tài)是由若干舊狀態(tài)并行組合形成。

迭代:新狀態(tài)由已形成的狀態(tài)再次迭代形成。

為何深層學(xué)習(xí):深層學(xué)習(xí)比淺層學(xué)習(xí)在解決結(jié)構(gòu)問題上可用更少的數(shù)據(jù)學(xué)習(xí)到更好的關(guān)聯(lián)。

隨后的三篇文章正是用 tensorflow 實現(xiàn)上述討論的內(nèi)容,以此作為零基礎(chǔ)實現(xiàn)深層學(xué)習(xí)的起點。

最后總結(jié)一下開篇的問題: 

1. 為什么神經(jīng)網(wǎng)絡(luò)高效:并行的先驗知識使得模型可用線性級數(shù)量的樣本學(xué)習(xí)指數(shù)級數(shù)量的變體
2. 學(xué)習(xí)的本質(zhì)是什么:將變體拆分成因素和知識(Disentangle Factors of Variation)

  • 稀疏表達:一個矩陣被拆分成了稀疏表達和字典。

  • one hot vector:將因素用不同維度分開,避免彼此糾纏。

3. 為什么深層神經(jīng)網(wǎng)絡(luò)比淺層神經(jīng)網(wǎng)絡(luò)更高效:迭代組成的先驗知識使得樣本可用于幫助訓(xùn)練其他共用同樣底層結(jié)構(gòu)的樣本。 

4. 神經(jīng)網(wǎng)絡(luò)在什么問題上不具備優(yōu)勢:不滿足并行與迭代先驗的任務(wù)

  • 非函數(shù):需要想辦法將問題轉(zhuǎn)化。

  • 非迭代(非結(jié)構(gòu)):該層狀態(tài)不是由上層狀態(tài)構(gòu)成的任務(wù)(如:很深的 CNN 因為有 max pooling,信息會逐漸丟失。而 residual network 再次使得迭代的先驗滿足)

到此我們討論完了神經(jīng)網(wǎng)絡(luò)最基礎(chǔ)的,也是最重要的知識。在實際應(yīng)用中仍會遇到很多問題(尤其是神經(jīng)網(wǎng)絡(luò)對 noise 的克服更加巧妙)。隨后 YJango 會再和大家一起分析過深后會產(chǎn)生什么效果,并一步步引出設(shè)計神經(jīng)網(wǎng)絡(luò)的本質(zhì)

雷峰網(wǎng)版權(quán)文章,未經(jīng)授權(quán)禁止轉(zhuǎn)載。詳情見轉(zhuǎn)載須知。

為什么要用深度學(xué)習(xí)?

分享:

編輯

聚焦數(shù)據(jù)科學(xué),連接 AI 開發(fā)者。更多精彩內(nèi)容,請訪問:yanxishe.com
當月熱門文章
最新文章
請?zhí)顚懮暾埲速Y料
姓名
電話
郵箱
微信號
作品鏈接
個人簡介
為了您的賬戶安全,請驗證郵箱
您的郵箱還未驗證,完成可獲20積分喲!
請驗證您的郵箱
立即驗證
完善賬號信息
您的賬號已經(jīng)綁定,現(xiàn)在您可以設(shè)置密碼以方便用郵箱登錄
立即設(shè)置 以后再說