- 深度學習初學者指南
- (智)巴勃羅·里瓦斯
- 2765字
- 2021-12-01 13:58:35
前言
多年來,我們這些忠實地致力于研究機器學習的群體見證了這個領域的發展和繁榮,一些技術的產生令人驚嘆,甚至有望帶來徹底的社會變革。然而,對于那些想要加入我們來研究這一領域的人們而言,機器學習知識似乎有點令人望而生畏。當然,網絡上的相關信息太多了,我們很難瀏覽所有的論文和代碼,為那些想要加入深度學習領域的人找到可靠的介紹性內容。雖然市面上有很多關于機器學習知識的介紹性書籍,但大部分都不滿足那些特別想從事深度學習工作的人們的需求,而且要求讀者具備必要的、最低限度的數學和算法知識,以及一些必要的編程技能。
本書的目標是幫助初學者建立強大的深度學習基礎,掌握使用眾所周知的方法建立深度學習模型所需要的基本概念。如果這個目標聽上去符合你的需求,那么本書可能正是你所需要的。本書假定讀者先前沒有接觸過神經網絡和深度學習,并從回顧深度學習所需要的機器學習基礎知識開始。然后,本書解釋了如何通過清洗和預處理數據為深度學習做準備,隨后逐步介紹神經網絡和流行的監督神經網絡架構(如卷積神經網絡(CNN,Convolutional Neural Network)、循環神經網絡(RNN,Recurrent Neural Network)和生成對抗網絡(GAN,Generative Adversarial Network))以及無監督架構(如自編碼器(AE)、變分自編碼器(VAE)和受限玻耳茲曼機(RBM))。在每一章的結尾,你將有機會測試你對概念的理解程度,并反思自己的成長過程。
在本書的最后,你將理解深度學習的概念和秘訣,并將能夠分辨適用于特定任務的算法。
本書的目標讀者
本書是為想要從深度學習和神經網絡的基礎知識開始學習的、心懷抱負的數據科學家和深度學習工程師準備的。本書不需要讀者事先接觸過深度學習或機器學習,當然如果接觸過會更好。讀者只需要熟悉線性代數和Python編程就可以了。
本書是為珍惜時間、想要學到編程所需的深度學習要點的讀者準備的。
如果不知道深度學習的基礎知識,那么它可能會讓你感到害怕。許多人因為不理解Web上的術語或示例程序,所以感到很沮喪。這就導致了人們在選擇深度學習算法時可能會做出糟糕的決定,而且他們無法預見進行這種選擇所產生的后果。因此,本書是為具有下列意圖的讀者準備的:
·重視獲得深度學習概念的良好定義。
·想要使用結構化的方法從頭開始學習深度學習。
·渴望了解并真正理解深度學習的基本概念。
·想知道如何預處理數據,以便在深度學習算法中使用。
·對一些先進的深度學習算法感到好奇。
本書的主要內容
第1章 給出了機器學習的概述,不僅介紹了機器學習背后的動機以及該領域常用的術語,還介紹了深度學習的基本概念以及它是如何適應人工智能發展的。
第2章 講解如何配置TensorFlow和Keras深度學習開發平臺,并介紹它們在深度學習中的用途和目的。本章還簡要介紹了其他深度學習程序框架和程序庫,讓你能夠以一種低成本的方式熟悉它們。
第3章 介紹數據處理背后的主要概念,數據經過處理后才能夠用在深度學習中。本章將涵蓋格式化分類以及實值輸出和輸入的基本概念,還將探索關于數據增強和降低數據維度的技術。
第4章 介紹深度學習理論中的基本概念,包括回歸和分類的性能度量以及過擬合的識別,還提供了一些關于超參數調優的警告。
第5章 介紹神經元的概念,并將其連接到感知機模型,該模型以簡單的方式從數據中學習。感知機模型是理解從數據中學習的基本神經模型的關鍵,也可以用來處理線性不可分數據。
第6章 通過使用多層感知機算法,讓你直面深度學習的第一個挑戰,例如基于誤差最小化的梯度下降技術,以及實現模型泛化的超參數調優。
第7章 通過解釋編碼層和解碼層的必要性來描述自編碼器模型,探索與自編碼器模型相關的損失函數,并將其應用于降維問題和數據可視化。
第8章 介紹了深度信念網絡的概念和這種深度無監督學習的含義,通過引入深層自編碼器并將它們與淺層自編碼器進行對比來解釋這些概念。
第9章 介紹生成模型在無監督深度學習領域背后的哲學,以及它們在生成抗噪聲魯棒模型中的重要性。在處理擾動數據時,變分自編碼器是深度自編碼器的更好的替代方案。
第10章 通過介紹RBM來補充書中對深度信念模型知識的覆蓋。本章介紹了RBM的前后雙向傳播性質,并與AE單向的前向傳播性質進行比較。本章分別使用RBM和AE模型實現對降維數據的可視化表示,并進行了比較。
第11章 解釋深度神經網絡和廣度神經網絡在性能和復雜性上的差異,并在神經元之間的連接方面引入了密集網絡和稀疏網絡的概念。
第12章 介紹卷積神經網絡,從卷積運算開始,然后講解集成卷積運算層,從而學習可以對數據進行操作的濾波器。本章最后展示了如何可視化所學習的濾波器。
第13章 提出了最基本的循環網絡的概念,揭示了它們的缺點,以說明長短時記憶[1]模型的存在價值及其成功之處。本章還探討了序列模型在圖像處理和自然語言處理方面的應用。
第14章 介紹了基于GAN模型的半監督學習方法,它屬于對抗學習家族。本章解釋了生成器和判別器的概念,并討論了為什么對訓練數據概率分布有良好的近似可以導致模型(例如,從隨機噪聲中產生數據)的成功。
第15章 簡要地展示了深度學習領域嶄新的、令人興奮的主題和機會。如果你想繼續學習,可以在這里找到Packt的其他資源,你可以使用這些資源在此領域繼續前進。
如何充分利用本書
你需要確保自己的Web瀏覽器能夠連接到谷歌Colabs,網址是http://colab.research.google.com/。
雖然本書假設讀者沒有事先接觸過深度學習或機器學習,但是你必須熟悉一些線性代數知識和Python編程,以便充分利用本書。
為了確保與機器學習和深度學習Python庫的未來版本兼容,我們在本書的代碼包和GitHub庫中包含了一個使用!pip freeze指令生成的當前版本列表。然而,這些只是為了參考和未來的兼容性,記住谷歌Colabs已經具備了所有必要的設置。
你還可以在https://github.com/PacktPublishing/上從豐富的書籍和視頻目錄中獲得其他代碼包。去看看吧!同樣,庫的列表僅供參考,但谷歌Colabs上有最新的設置。
一旦你使用本書完成了學習之旅,先慶祝一下,然后再密切關注本書的最后一章,它會為你指明新的方向。記住,永遠堅持學習,這是成功的關鍵之一。
下載示例代碼及彩色圖像
本書的示例代碼文件及彩色插圖,可以從www.packtpub.com/通過個人賬號下載,也可以訪問華章圖書官網http://www.hzbook.com,通過注冊并登錄個人賬號下載。
在代碼文件下載完畢之后,請確保使用下列版本的解壓縮軟件解壓或提取文件:
·Windows系統:WinRAR/7-Zip
·Mac系統:Zipeg/iZip/UnRarX
·Linux系統:7-Zip/PeaZip
本書的代碼包也可以在GitHub上獲取,網址是https://github.com/PacktPublishing/Deep-Learning-for-Beginners。如果代碼有更新,GitHub存儲庫中的代碼也會更新。
本書的排版約定
代碼體:表示文本中的代碼、數據庫表名、文件夾名、文件名、文件擴展名、路徑名、虛擬URL、用戶輸入和Twitter賬戶名。下面有一個例子:“潛在編碼器模型latent_ncdr和autoencoder模型中的predict()方法在指定的層上產生輸出。”
代碼的示例如下:

當我們需要讓你注意代碼塊的特定部分時,相關內容會加粗:

命令行輸入與輸出的格式如下所示:

黑體:表示新的術語、重要的詞,或者屏幕上看到的詞(例如菜單或對話框中的單詞)。這里有一個例子:“最重要的是一個叫作雙曲正切的新激活函數。”
表示警告或重要提示。
表示提示和技巧。
[1] 也譯為長短期記憶。——編輯注