深度學習架構的設計模式:介紹

Intelligentcomputing 2017-04-26

讀者注意:在這裡引入這個材料可能有點突兀。瞭解思想過程的一種方法是遵循直覺機器博客:https://medium.com/intuitionmachine

深度學習架構可以被描述為建立機器學習系統的新方法或風格。深度學習更有可能導致更先進的人工智能形式。這方面的證據是自十年來以來發生的巨大突破。在新的樂觀的氛圍中,我們現在又在一個新的AI春天。不幸的是,目前的深度學習狀態似乎有太多的類似於鍊金術的方式。每個人似乎都有自己的黑魔法設計架構的方法。因此,該領域需要向前邁進,爭取化學,或者甚至可以進行深度學習的週期表。雖然深入學習仍處於發展初期階段,但本書力求在深入學習中形成一些統一的思想。它利用稱為模式語言的描述方法。

模式語言是從稱為模式的實體衍生而來的語言,當組合形式解決複雜問題時。每個模式描述一個問題並提供替代解決方案。模式語言是表達從經驗中得出的複雜解決方案的一種方法。改進語言表達的好處是,其他從業人員能夠更好地瞭解複雜主題以及更好地表達解決問題的方法。

大多數計算機科學領域的文學,使用短語“設計模式”而不是“模式語言”。我們故意使用“模式語言”來反映深度學習領域是一個新興而又快速發展的領域,並不像計算機科學中的其他主題那樣成熟。我們描述的模式實際上不是模式,而是可能是根本的。我們決不會確定哪個是真正的根本,只有進一步的探索和澄清才能在這個領域達成共識。也許在將來,一個真正的設計模式書會出現,反映了這個領域的成熟度。

模式語言最初由克里斯托弗·亞歷山大(Christopher Alexander)推出,用於描述企業和城鎮的建築。這些想法後來被面向對象編程(OOP)從業者採用來描述OOP程序的設計。 GoF的開創性書“設計模式”證明了這種方法的有效性。模式語言進一步擴展到其他領域,如用戶界面,交互設計,企業集成,SOA和可擴展性設計。

在機器學習領域(ML)中,出現了一種稱為“深度學習”的新興實踐。在ML中,有許多新的術語,如人造神經網絡(ANN),隨機森林,支持向量機(SVM)和非負矩陣因式分解(NMF)。然而這些通常指的是特定類型的機器學習算法。相比之下,深度學習(DL)並不是一種算法,而是一類傾向於表現出類似特徵的算法。 DL系統是由多層(有時稱為多級感知器)構成的ANN。這個想法並不是全新的,因為它是在20世紀60年代首次提出的。然而,在推進計算技術(即GPU)和更大的培訓數據源的幫助下,對該領域的興趣已經爆發。自2011年以來,DL系統在機器學習領域取得了令人印象深刻的成果。

當DL意識到實際上有很多算法,而不僅僅是一種類型時,與DL的混淆就會出現。我們發現傳統的前饋網絡也被稱為全連接網絡(FCN),卷積網絡(ConvNet),循環神經網絡(RNN)和較少使用的限制玻爾茲曼機器(RBM)。它們都具有共同的特徵,因為這些網絡是使用層次結構構建的。例如,一個常見的模式是使用可分層,對DL系統的構建的這種約束導致將機器演變成學習分類的一種增量方式。最近有許多模式被發現,對於從業者來說,這些模式的彙編將是富有成效的。

模式語言是描述和理解深度學習的理想工具。人們想相信深度學習有基於先進數學的堅實基礎。大多數學術研究論文將會引發高階數學,如路徑積分,張量,希爾伯特空間,測量理論等,但不要讓數學分散自己的實際,使我們的集體認識仍然很小。你看到的數學有其固有的侷限性。物理科學家已經知道了這個世紀。我們以這樣的方式制定理論,使得表達在數學上是方便的。數學上的便利意味著我們使用的數學表達式可以方便地被操縱到其他表達式中。例如,高斯分佈是普遍存在的,不是因為它的一些神奇的結構,現實已經給了我們。它是普遍存在的,因為它在數學上是方便的。

模式語言已被許多模糊領域所利用。原始模式語言圍繞著建築(即建築物和城鎮)的討論。有模式語言專注於用戶界面,可用性,交互設計和軟件過程。這些都沒有簡明的數學基礎,但我們從這些模式語言中提取真正的價值。事實上,模式語言的規範與數學中新的代數或類別理論的創造並不是太遠。代數是嚴格一致的,但它們純粹是抽象的,可能不需要與現實有任何聯繫。然而,模式語言與現實有關,它們的一致性規則比代數更加輕鬆。在我們試圖理解機器學習的複雜世界(或一般學習)中,我們不能總是將青蛙跳入數學。現實可能是這樣的,我們目前的數學是無法描述正在發生的事情。

許多機器學習從業者在首次呈現“模式”這個想法時會遇到的另一個混亂是,他們錯誤地將其與在自己的領域中通常使用“模式”一詞相關聯。機器學習涉及開發執行模式識別的算法。所以當你用模式深入學習google的時候,你會發現涵蓋模式識別主題的文學。這本書不是常規機器學習意義上的模式識別。

介紹

深度學習架構的設計模式:介紹

涵蓋這本書的動機。為什麼深入學習?涵蓋這本書的結構。這本書的中心主題是,通過了解我們在深度學習實踐中發現的許多模式及其相互關係,我們開始理解我們如何最好地撰寫解決方案。

模式語言

模式語言是從稱為模式的實體衍生而來的語言,當組合形式解決複雜問題時。每個模式描述一個問題並提供解決方案。模式語言是表達從經驗中衍生出的複雜解決方案的一種方式,使得其他人可以更好地瞭解解決方案。本章將介紹“模式語言”的概念以及本書“模式”的結構。

理論

本章涵蓋了對理解框架至關重要的一些基礎數學。它提供了一些常用的術語和符號,將在整本書中使用。這本書不包括線性代數或概率的數學介紹材料。這已經在“深度學習”書中得到很好的涵蓋。然而,本書將提出一個數學框架,作為如何推理神經網絡的指導框架。這個框架是從類別理論,動力系統,信息理論,信息幾何和博弈理論的構想。

方法

從其他軟件開發方法(如敏捷開發和精簡方法)獲得靈感,並將其應用於深度學習領域。深度學習是一種新型的架構,其創建的學習機器類似於軟件開發。然而,DL是不同的,因為系統能夠發展自己。有足夠的複雜性成為覆蓋其上的一種結構所必需的,以幫助指導實踐者的實踐者。

規範模式

本章是閱讀其他模式章節的推薦先決條件。在這裡,我們討論出現基本的模式,並瞭解其他DL模式的基礎。

模型模式

本章涵蓋實踐中發現的各種模型。

複合模型模式

本章介紹了模型及其行為的集合。

內存模式

以前的模型章節探討了普遍功能的培訓。在本章中,我們將探討如何集成內存以構建更強大的解決方案。

特徵模式

本章將介紹用於表示輸入和隱藏數據的各種方法。

學習模式

這一章在實踐中發現了迭代學習方法。

集體學習模式

本章介紹了多種神經網絡組合方法,以解決超出分類的問題。

解釋模式

本章介紹網絡可以向用戶提供結果和反饋的不同方式。

服務模式

本章介紹了在現場部署神經網絡時發現的操作模式。

應用

深度學習數據集

常問問題

停車場

TensorFlow實踐

教程

黑魔法

塊鏈

自行車自動化設計模式

觀眾和覆蓋面

這種模式語言的觀眾是先前接觸人工神經網絡(ANN)的讀者。對ANN的介紹或大學水平數學的介紹沒有涵蓋。為了一個很好的介紹,請閱讀Ian Goodfellow,Yoshua Bengio和Aaron Courville的綜合文字“深度學習”。這本圖書書的覆蓋範圍比“深度學習”更為狹窄。本書著重於實踐中運作良好的技術。因此,作為一個例子,儘管從歷史的角度來看,我們並不重視限制玻爾茲曼機器。我們也忽略了本書涵蓋的幾個主題,如結構概率模型和蒙特卡羅方法,儘管它們在其他機器學習方法中的重要性。古典統計是一個重要的觀點,但是在這本書中,我們認為這些古典概念在高度維度的領域中不能很好地轉化。我們希望這個文本足夠集中和緊湊,讀者將會對如何應用這種新興技術有一個堅實的看法。

我們也將嚴格避免對生物學可信性的討論。這個話題超出了本書的範圍,我們也認為,考慮到從原來的感知器提案以來已經過去了60年,這種討論是不屑一顧的。半個世紀前提出的模式,最多隻能說明一個實際的生物神經元如何運作的卡通形象。在許多神經網絡文學中,我們發現這是一種荒謬的浪費紙,這種文學在基於生物靈感的手波波動下進行了一次嘗試。

呈現人造神經網絡(ANN)或深度學習(DL)的典型方法是採取歷史觀點,從1957年感知器建議開始。通過研究歷史和思想如何隨著時間的推移而有所瞭解。 ANN和DL研究的歷史確實很有趣,並且解釋了為什麼DL成為過去幾年的熱門話題,但是從研究歷史中獲得的洞察力只能最小程度地提高對這一複雜主題的理解。

我們採用非常簡單的邏輯方法對DL做出了很少的假設。我們做出的主要假設是,我們有一個學習機是一個動態系統,目的是找出最適合的模型,給出它所觀察到的數據。所以我們只關心我們如何定義這個目標,我們將它定義為系統的熵。一個學習系統可以最大程度地減少它所觀察到的內在模型與其內部模型之間的相對熵。我們從幾個世紀的物理學知道的是,我們可以通過其測量的能量描述一個動力學系統,並且我們有關於控制系統演變的這種能量定義的方程式。以類似的方式,我們採取相對熵並定義內部機器模型的進化(也稱為學習)方程。如果方程是不受約束的,則模型可以演化成許多不同的方式。因此,我們扔了一大堆約束,使機器不僅可以在合理的時間內學習,而且可以在內部模型中學習抽象。這些抽象是實現泛化所必需的,並允許機器準確地對先前從未遇到過的觀察結果進行預測。

本書不涵蓋性能優化的主題。還有其他的文本可以探索更快的算法以及分佈式算法。理想情況下,可以使用已經支持優化GPU算法的最新框架以及並行計算的不同選項。例如TensorFlow已經支持Nvdia的最新的CuDNN庫。此外,TensorFlow支持跨多個計算節點的分佈式計算。有替代框架支持的分佈式計算的替代實現,但這超出了本書的範圍。

注意:這是一個進步的工作。像https://www.facebook.com/deeplearningpatterns一樣接收更新。或者,按照媒體:https://medium.com/intuitionmachine

相關推薦

推薦中...