-
這本書提供了深度學習的數學工程的一個完整和簡明的概述。除了概述深度學習的基礎之外,本課程還包括卷積神經網絡、循環神經網絡、transformers、生成對抗網絡、強化學習和多種技巧。重點是深度學習模型、算法和方法的基本數學描述。該報告主要是對計算機代碼、神經科學關系、歷史觀點和理論研究的不可知論。這種方法的好處是,具備數學能力的讀者可以快速掌握現代深度學習算法、模型和技術的精髓,而無需查看計算機代碼、神經科學或歷史進程。
深度學習是很容易通過數學語言來描述的,在一個許多專業人士都能接觸到的水平。來自工程、信號處理、統計學、物理學、純數學、計量經濟學、運算學、定量管理、應用機器學習或應用深度學習等領域的讀者將迅速深入了解該領域的關鍵數學工程組件。
本書有10章和3個附錄。第1-4章概述了機器學習的關鍵概念,概述了深度學習所需的優化概念,并重點介紹了基本模型和概念。第5-8章討論了深度學習的核心模型和架構,包括全連接網絡、卷積網絡、循環網絡,并概述了模型調整和應用的各個方面。第9-10章涉及特定領域,即生成對抗網絡和深度強化學習。附錄A-C提供了數學支持。以下是內容的詳細概述。
第一章-引言: 在這一章中,我們概述了深度學習,演示了關鍵的應用程序,調研了相關的高性能計算生態系統,討論了高維的數據,并為本書的其余部分定下基調。這一章討論了包括數據科學、機器學習和統計學習在內的關鍵術語,并將這些術語放在書的上下文中。主要的流行數據集,如ImageNet和MNIST數字也被概述,并描述了深度學習的出現。
第二章-機器學習原理: 深度學習可以被視為機器學習的一個分支學科,因此本章提供了機器學習的關鍵概念和范例的概述。向讀者介紹了監督學習、無監督學習和基于迭代的學習優化的一般概念。介紹了訓練集、測試集等的概念,以及交叉驗證和模型選擇的原則。本章探討的一個關鍵對象是線性模型,它也可以通過迭代優化進行訓練。這使得我們可以看到基本的梯度下降算法的實際應用,這個算法后來被改進并在本書的續篇中大量使用。
第三章-簡單的神經網絡: 在這一章中,我們關注二元分類的邏輯回歸和相關的用于多類問題的Softmax回歸模型。這就是深度學習的原理,如交叉熵損失、決策邊界和簡單的反向傳播案例的介紹。本章還介紹了一個簡單的非線性自動編碼器體系結構。模型調整方面也被討論,包括特征工程和超參數選擇。
第四章-優化算法: 深度學習模型的訓練涉及對學習參數的優化。因此,需要對優化算法有扎實的理解,以及對深度學習模型(如ADAM算法)的專業優化技術的理解。在這一章中,我們將重點關注這些技術以及正在慢慢進入實踐的更高級的二級方法。我們還研究了各種形式的自動微分的細節,并在邏輯回歸的背景下進行了比較,其中一階和二階方法都可以使用。
第五章-前饋深度網絡:這一章是本書的核心,在這里定義了一般的前饋深度神經網絡在探索了深度神經網絡的表達能力之后,我們通過理解梯度評估的反向傳播算法來深入訓練的細節,并探索其他實用方面,如權值初始化、dropout和批處理歸一化。
第六章-卷積神經網絡: 深度學習的成功很大程度上歸功于卷積神經網絡在應用于圖像和類似數據格式時的力量。在本章中,我們將探討卷積的概念,然后在深度學習模型的背景下了解它。介紹了通道和濾波器設計的概念,然后探討了已經產生重大影響并至今仍在使用的先進體系結構的常見狀態。我們還探討了一些與圖像相關的關鍵任務,如對象定位。
第七章-序列模型: 序列模型對于數據非常重要,比如自然語言處理中的文本應用。在本章中,我們將了解深度學習領域的關鍵思想。我們探討循環神經網絡及其推廣。這些包括長期短期記憶模型,門控循環單元,端到端語言翻譯的自動編碼器,以及帶有變壓器的注意模型。
第八章-行業技巧: 在學習了前饋網絡、卷積網絡和各種形式的循環網絡之后,我們現在來探索在應用中調整和集成這些模型的常用方法。關鍵問題包括超參數選擇和優化它們的技術。其他問題涉及通過遷移學習從一個數據集到另一個數據集的模型適應,以及增加數據集的方法。我們還討論了圖像transformer的應用和實現的各個方面,包括對深度學習軟件框架的描述。
第九章-生成式對抗網絡: 在本章中,我們調研和探索生成式對抗網絡(GANs),它是能夠合成看起來真實的假數據的模型。GAN的基本構造是基于一個博弈論的設置,其中生成器模型和鑒別器模型被聯合訓練以得到一個訓練過的系統。我們討論了幾種GAN架構,以及在適應損耗函數時出現的有趣的數學方面。
第十章-深度強化學習: 在最后一章中,我們將探討深度強化學習的原理,這是一種動態系統的自適應控制方法。當考慮人工智能系統時,這經常被引入到agent的背景下,但是我們采用了一個更經典的方法,并在控制理論和馬爾可夫決策過程的背景下提出它。我們首先為MDPs和Q-learning奠定基礎,然后探索通過深度神經網絡逼近Q函數的各種進展。
——微積分,
-線性代數,還有
-概率推理(即概率的數學理論和如何使用它)。
我們將深入探討應用數學分支的關鍵部分,并在ML的背景下。
更具體地說,本課程的數學主題可以分為四個基本的學科領域:
數據表示和將數據映射到決策、估計或兩者的操作符。我們將從線性表示的深入討論開始;它們本身就很重要/有用,也被用作非線性表示的構建塊。這就是我們需要大量線性代數及其擴展的地方。
估計。從數據集中估計一個參數是什么意思?我們將盡量用統計學的語言,把這個問題建立在一個牢固的數學基礎上。
建模。
計算。最后,我們將看看如何計算解決ML中出現的問題。我們將從優化中了解一些基本的算法,并從數值線性代數中了解一些代數技術。
機器學習(ML)已經成為我們日常生活中的一個常見元素,也是許多科學和工程領域的標準工具。為了優化ML的使用,理解其基本原理是必要的。
這本書接近ML作為科學原理的計算實現。這一原則包括不斷調整給定數據生成現象的模型,將其預測所產生的某種形式的損失最小化。
本書訓練讀者在數據、模型和損失方面分解各種ML應用程序和方法,從而幫助他們從大量現成的ML方法中選擇。
本書的ML的三部分方法提供了廣泛的概念和技術的統一覆蓋。作為一個恰當的例子,正則化技術、隱私保護技術以及可解釋性技術等同于模型、數據和ML方法丟失的特定設計選擇。
//link.springer.com/book/10.1007/978-981-16-8193-6#toc
統計學習理論是一個新興的研究領域,它是概率論、統計學、計算機科學和最優化的交叉領域,研究基于訓練數據進行預測的計算機算法的性能。以下主題將包括:統計決策理論基礎;集中不平等;監督學習和非監督學習;經驗風險最小化;complexity-regularized估計;學習算法的泛化界VC維與復雜性;極大極小下界;在線學習和優化。利用一般理論,我們將討論統計學習理論在信號處理、信息論和自適應控制方面的一些應用。
地址:
//www.apress.com/gp/book/9781484251232
利用MATLAB的強大功能來應對深度學習的挑戰。本書介紹了深度學習和使用MATLAB的深度學習工具箱。您將看到這些工具箱如何提供實現深度學習所有方面所需的完整功能集。
在此過程中,您將學習建模復雜的系統,包括股票市場、自然語言和僅確定角度的軌道。您將學習動力學和控制,并使用MATLAB集成深度學習算法和方法。您還將使用圖像將深度學習應用于飛機導航。
最后,您將使用慣性測量單元對ballet pirouettes進行分類,并使用MATLAB的硬件功能進行實驗。
你會學到什么
這本書是給誰看的:
工程師、數據科學家和學生想要一本關于使用MATLAB進行深度學習的例子豐富的書。
書名: Deep Learning for Search
簡介:
深度學習搜索是一本實用的書,關于如何使用(深度)神經網絡來幫助建立有效的搜索引擎。這本書研究了一個搜索引擎的幾個組成部分,提供了關于它們如何工作的見解以及如何在每個環境中使用神經網絡的指導。重點介紹了基于實例的實用搜索和深度學習技術,其中大部分都有代碼。同時,在適當的地方提供相關研究論文的參考資料,以鼓勵閱讀更多的書籍,加深對特定主題的知識。
讀完這本書,將對搜索引擎的主要挑戰有所理解,它們是如何被普遍解決的以及深度學習可以做些什么來幫助。并且將對幾種不同的深度學習技術以及它們在搜索環境中的適用范圍有一個理解,將很好地了解Lucene和Deeplearning4j庫。
這本書主要分為3個部分:
第1部分介紹了搜索、機器學習和深度學習的基本概念。第一章介紹了應用深度學習技術來搜索問題的原理,涉及了信息檢索中最常見的方法。第2章給出了如何使用神經網絡模型從數據中生成同義詞來提高搜索引擎效率的第一個例子。
第2部分討論了可以通過深度神經網絡更好地解決的常見搜索引擎任務。第3章介紹了使用遞歸神經網絡來生成用戶輸入的查詢。第四章在深度神經網絡的幫助下,在用戶輸入查詢時提供更好的建議。第5章重點介紹了排序模型:尤其是如何使用詞嵌入提供更相關的搜索結果。第6章討論了文檔嵌入在排序函數和內容重新編碼上下文中的使用。
第3部分將介紹更復雜的場景,如深度學習機器翻譯和圖像搜索。第7章通過基于神經網絡的方法為你的搜索引擎提供多語言能力來指導你。第8章討論了基于內容的圖像集合的搜索,并使用了深度學習模型。第9章討論了與生產相關的主題,如微調深度學習模型和處理不斷輸入的數據流。
作者簡介:
Tommaso Teofili是一名軟件工程師,他對開源機器學習充滿熱情。作為Apache軟件基金會的成員,他為許多開放源碼項目做出了貢獻,從信息檢索到自然語言處理和機器翻譯等主題。他目前在Adobe工作,開發搜索和索引基礎結構組件,并研究自然語言處理、信息檢索和深度學習等領域。他曾在各種會議上發表過搜索和機器學習方面的演講,包括BerlinBuzzwords、計算科學國際會議、ApacheCon、EclipseCon等。
題目: Optimization for deep learning: theory and algorithms
摘要:
什么時候以及為什么能夠成功地訓練神經網絡?本文概述了神經網絡的優化算法和訓練理論。首先,我們討論了梯度爆炸、消失問題,然后討論了實際的解決方案,包括初始化和歸一化方法。其次,我們回顧了用于訓練神經網絡的一般優化方法,如SGD、自適應梯度方法和分布式方法以及這些算法的理論結果。第三,我們回顧了現有的關于神經網絡訓練的全局問題的研究,包括局部極值的結果、模式連接、無限寬度分析。
作者:
Ruoyu Sun是伊利諾伊大學厄本那香檳分校 (UIUC)電子與計算機工程系的助理教授,研究優化和機器學習,尤其是深度學習。最近,一直在研究深度學習中的最優化,例如神經網絡,GANs和Adam。
摘要
什么時候以及為什么能夠成功地訓練神經網絡?本文概述了神經網絡的優化算法和訓練理論。首先,我們討論了梯度爆炸/消失問題和更一般的不期望譜問題,然后討論了實際的解決方案,包括仔細的初始化和歸一化方法。其次,我們回顧了用于訓練神經網絡的一般優化方法,如SGD、自適應梯度方法和分布式方法,以及這些算法的現有理論結果。第三,我們回顧了現有的關于神經網絡訓練的全局問題的研究,包括局部極值的結果、模式連接、彩票假設和無限寬度分析。
本文的一個主要主題是了解成功訓練神經網絡的實際組成部分,以及可能導致訓練失敗的因素。假設你在1980年試圖用神經網絡解決一個圖像分類問題。如果你想從頭開始訓練一個神經網絡,很可能你最初的幾次嘗試都沒有得到合理的結果。什么本質的變化使算法能有效進行?在高層次上,你需要三樣東西(除了強大的硬件): 合適的神經網絡、合適的訓練算法和合適的訓練技巧。
合適的神經網絡。這包括神經結構和激活功能。對于神經結構,您可能想要用一個至少有5層和足夠神經元的卷積網絡來替換一個完全連接的網絡。為了獲得更好的性能,您可能希望將深度增加到20甚至100,并添加跳躍skip連接。對于激活函數,一個好的起點是ReLU激活,但是使用tanh或swish激活也是合理的。
訓練算法。一個大的選擇是使用隨機版本的梯度下降(SGD)并堅持它。良好調整的步長足夠好,而動量和自適應步長可以提供額外的好處。
訓練技巧。適當的初始化對于算法的訓練是非常重要的。要訓練一個超過10層的網絡,通常需要兩個額外的技巧:添加規范化層和添加跳過連接。
哪些設計選擇是必要的?目前我們已經了解了一些設計選擇,包括初始化策略、規范化方法、跳過連接、參數化(大寬度)和SGD,如圖1所示。我們將優化優勢大致分為三部分: 控制Lipschitz常數、更快的收斂速度和更好的landscape。還有許多其他的設計選擇是很難理解的,尤其是神經架構。無論如何,似乎不可能理解這個復雜系統的每個部分,目前的理解已經可以提供一些有用的見解。
圖1: 成功訓練具有理論理解的神經網絡的幾個主要設計選擇。它們對算法收斂的三個方面有影響:使收斂成為可能、更快的收斂和更好的全局解。這三個方面有一定的聯系,只是一個粗略的分類。請注意,還有其他一些重要的設計選擇,特別是神經體系結構,它們在理論上還沒有被理解,因此在該圖中被省略了。還有其他好處,比如泛化,也被忽略了。
為了使綜述調查簡單,我們將重點研究前饋神經網絡的監督學習問題。我們將不討論更復雜的公式,如GANs(生成對抗網絡)和深度強化學習,也不討論更復雜的體系結構,如RNN(遞歸神經網絡)、attention和Capsule。在更廣泛的背景下,監督學習理論至少包含表示、優化和泛化(參見1.1節),我們不詳細討論表示和泛化。一個主要的目標是理解神經網絡結構(由許多變量連接的參數化)如何影響優化算法的設計和分析,這可能會超越監督學習。
這篇文章是為那些對神經網絡優化的理論理解感興趣的研究人員寫的。關于優化方法和基礎理論的先驗知識將非常有幫助(參見,[24,200,29]的準備)。現有的關于深度學習優化的調查主要針對一般的機器學習受眾,如Goodfellow等[76]的第8章。這些綜述通常不深入討論優化的理論方面。相反,在這篇文章中,我們更多地強調理論結果,同時努力使它對非理論讀者具有可訪問性。如果可能的話,我們將提供一些簡單的例子來說明這種直覺,我們將不解釋定理的細節。
1.1 大景觀:分解理論
分解是發展理論的一個有用且流行的元方法。首先簡要回顧了優化在機器學習中的作用,然后討論了如何分解深度學習的優化理論。
表示、優化和泛化。監督學習的目標是根據觀察到的樣本找到一個近似底層函數的函數。第一步是找到一個豐富的函數家族(如神經網絡),可以代表理想的函數。第二步是通過最小化某個損失函數來識別函數的參數。第三步是使用第二步中找到的函數對不可見的測試數據進行預測,產生的錯誤稱為測試錯誤。測試誤差可以分解為表示誤差、優化誤差和泛化誤差,分別對應這三個步驟引起的誤差。
在機器學習中,表示、優化和泛化這三個學科經常被分開研究。例如,在研究一類函數的表示能力時,我們往往不關心優化問題能否很好地解決。在研究泛化誤差時,我們通常假設已經找到了全局最優值(概化調查見[95])。類似地,在研究優化屬性時,我們通常不明確地考慮泛化誤差(但有時我們假定表示誤差為零)。
優化問題的分解。深度學習的優化問題比較復雜,需要進一步分解。優化的發展可以分為三個步驟。第一步是使算法開始運行,并收斂到一個合理的解,如一個固定點。第二步是使算法盡快收斂。第三步是確保算法收斂到一個低目標值的解(如全局極小值)。要獲得良好的測試精度,還有一個額外的步驟,但是這超出了優化的范圍。簡而言之,我們將優化問題分為三個部分: 收斂性、收斂速度和全局質量。
大部分工作的回顧分為三個部分: 第四部分,第五部分和第六部分。大致說來,每個部分主要是由優化理論的三個部分之一。然而,這種劃分并不精確,因為這三個部分之間的邊界是模糊的。例如,第4節中討論的一些技術也可以提高收斂速度,第6節中的一些結果解決了收斂問題和全局問題。劃分的另一個原因是它們代表了神經網絡優化的三個相當獨立的子領域,并且在一定程度上是獨立發展的。
1.2 文章結構
這篇文章的結構如下。在第二節中,我們提出了一個典型的監督學習神經網絡優化問題。在第三節中,我們提出了反向傳播(BP),并分析了將經典收斂分析應用于神經網絡梯度下降的困難。在第四節中,我們將討論訓練神經網絡的神經網絡特定技巧,以及一些基本理論。這些是神經網絡相關的方法,打開了神經網絡的黑盒子。特別地,我們討論了一個主要的挑戰,稱為梯度爆炸/消失和一個更普遍的挑戰,控制頻譜,并回顧了主要的解決方案,如仔細的初始化和歸一化方法。在第五節中,我們討論了將神經網絡視為一般非凸優化問題的泛型算法設計。特別地,我們回顧了SGD的各種學習速率調度、自適應梯度方法、大規模分布式訓練、二階方法以及現有的收斂和迭代復雜度結果。在第六節中,我們回顧了神經網絡的全局優化研究,包括全局景觀、模式連接、彩票假設和無限寬度分析(如神經正切核)。
?
更多請下載論文查看
便捷下載,請關注專知公眾號(點擊上方藍色專知關注)
后臺回復“