- 深度學習:從基礎到實踐(全2冊)
- (美)安德魯·格拉斯納
- 3036字
- 2022-12-20 18:34:07
前言
歡迎閱讀此書。首先,請允許我簡單介紹一下這本書,并向那些幫助過我的人們致謝。
本書內容
如果你對深度學習(DL)和機器學習(ML)感興趣,那么可以在本書里找到一些適合你閱讀的內容。
之所以編寫本書,是為了幫助你了解足夠多的深度學習方面的技能,進而讓你成為機器學習和深度學習的高效實踐者。
讀完本書,你可以:
● 設計和構建屬于自己的深度學習網絡體系;
● 使用上述網絡體系來理解或生成數據;
● 針對文本、圖像和其他類型的數據進行描述性分類;
● 預測數據序列的下一個值;
● 研究數據結構;
● 處理數據,以實現最高效率;
● 使用你喜歡的任何編程語言和DL庫;
● 了解新論文和新理念,并將其付諸實踐;
● 享受與他人進行深度學習討論的過程。
本書會采用一種嚴肅而不失友好的講解方式,并通過大量圖示來幫助你加深理解。同時,我們不會在書中堆砌過多的代碼,甚至不會使用任何比乘法更復雜的運算。
如果你覺得還不錯,歡迎閱讀此書!
為什么寫這本書
本書的讀者對象是那些渴望在工作中應用機器學習和深度學習的人們,包括程序員、藝術工作者、工程師、科學家、管理人員、音樂家、醫生,以及任何希望通過處理大量信息來獲得洞見或生成新數據的人。
你可以在許多開源庫中找到許多機器學習工具(特別是深度學習)。每個人都可以立即下載和使用這些工具。
盡管這些免費工具安裝簡單,但是你仍然需要掌握大量的技術和知識才能正確使用這些工具。讓計算機做一些無意義的事情很容易:它會嚴格照做,然后輸出更多無意義的結果。
這種情況時有發生。雖然機器學習和深度學習庫功能強大,但它們對用戶來說并不友好。你不僅需要選擇正確的算法,還要能夠正確地應用這些算法。從技術角度講,你仍然需要做出一系列明智的決策。當工作偏離預期時,你需要利用自己對系統內部的了解令其回歸正軌。
學習和掌握這些基本信息的方法多種多樣,這取決于你喜歡怎樣的學習方式。有些人喜歡詳細的硬核式算法分析,并輔以大量數學運算。如果這是你的學習方式,那么你可以閱讀一些有關這方面的書籍,比如[Bishop06]和[Goodfellow17]。為此,你需要付出大量努力。不過,你獲得的回報也會很豐厚,即全面了解機器學習的工作方式及原理。如果以這種方式學習,那么你必須額外投入大量的精力來將理論知識付諸實踐。
另外一種截然不同的情形是:有些人只想知道完成某些特定任務的方法。有關這方面的速成圖書也有很多,你可以從中找到各種機器學習庫,比如 [Chollet17]、[Müller-Guido16]、[Raschka15]和[VanderPlas16]。與需要大量運算的方法相比,這種方法難度較低。但是,你會覺得自己缺少對結構信息的掌握——這些信息有助于你理解算法的工作原理。如果未能掌握這些信息及相關詞匯,一些你原以為可行的算法可能變得不可行,或者某種算法的結果可能不如預期,而你很難對此找到問題的根源所在。另外,你將無法理解涵蓋新理念和新研究成果的文獻,因為這些研究往往假設讀者擁有相同的知識儲備,而只掌握一種庫或語言的讀者是不具備這種知識儲備的。
鑒于上述情況,本書采取了一種折中的方式。我們的目的很實際:給你工具,讓你有信心去實踐深度學習。希望你在工作的時候不僅可以做出明智的選擇,并且能夠理解日新月異的新理念。
本書致力于介紹深度學習的基礎知識,以幫助讀者建立扎實的知識儲備。隨著深度學習實踐的推進,你不僅需要對本書課題的背景有充分了解,還需要充分知悉可能需要查閱的資料。
這不是一本關于編程的書。編程很重要,但是會不可避免地涉及各個細節,而這些細節與本書的主旨并無關聯。此外,編程會讓你的思考局限于某一個庫或者某種語言。盡管這些細節是構建最終學習網絡體系的必要條件,但是當你想要專注于某一重要理念時,這些細節可能會讓你分心。與其就循環和目錄以及數據結構泛泛而談,倒不如以一種獨立的方式討論某種語言和庫相關的所有知識。只要扎實理解了對這些理念,閱讀任何庫文件都將變得輕而易舉。
在第15章、第23章和第24章中,我們將詳細討論機器學習的scikit-learn庫以及深度學習的Keras庫。這兩種庫均基于Python語言。我們結合示例代碼進行講解,以期讓你對Python庫有深度的了解。即使你不喜歡Python,這些程序也會讓你對典型的工作流和程序結構有所了解。這些章節中的代碼可以在Python手冊中找到,并且可用于基于瀏覽器的Jupyter編程環境[Jupyter16]。你也可以將其應用于更經典的Python開發環境,如PyCharm [JetBrains17]。
本書的其他大部分章節也有配套的可選Python手冊。這些章節針對書中每個計算機生成的數字給出代碼,而且通常使用其中所涉及的技術來生成代碼。由于本書的焦點并非在于Python語言和編程(上述章節除外),因此這些手冊僅作參考,不再贅述。
機器學習、深度學習和大數據正在世界范圍內產生令人意想不到的、快速而深刻的影響。對人類以及人類文化而言,這是一個既復雜又重要的課題。與此相關的討論也在一些有趣的圖書和文章中得以體現,不過結論大多是喜憂參半。相關的圖書和文章參見“參考資料”部分的[Agüera y Arcas 17]、[Barrat15]、[Domingos15]和[Kaplan16]。
本書幾乎不涉及數學問題
很多人不喜歡復雜的方程式。如果你也是這樣,那么本書非常適合你!
本書幾乎不涉及復雜的數學運算。如果你不討厭乘法,那么本書簡直太適合你了,因為書中除了乘法,并無任何復雜的運算。
本書所討論的許多算法都有豐富的理論依據,并且是經過仔細分析和研究得出的。如果你正打算變換一種算法以實現新目的,或者需要獨立編寫一個新程序,就必須了解這一點。不過,在實踐中,大多數人會用由專家編寫的程序。這些程序是經過高度優化的,并且可以從免費的開源庫中獲取。
我們希望能幫助你理解這些技術的原理,掌握其正確應用,并懂得如何解讀結果,但無須深入了解技術背后的數學結構。
如果你喜歡數學或者想了解理論,那么請閱讀每一章的“參考資料”部分給出的相關內容。大部分資料是簡潔且能夠激發靈感的,并且給出了作者在本書中刻意省略的細節。如果你不喜歡數學,可以略過此部分的內容。
本書分上下兩冊
本書涵蓋的內容非常多,因此我們將其分成了上下兩冊。其中下冊是上冊內容的拓展和補充。本書內容是以循序漸進的模式組織的,因此建議你先讀上冊,再去學習下冊的內容。如果你有信心,也可以直接從下冊開始閱讀。
致謝
如果沒有眾多朋友的支持,本書是無法寫就的。這是千真萬確的!
非常感謝Eric Braun、Eric Haines、Steven Drucker和Tom Reike對本項目始終如一的大力支持。謝謝你們!
非常感謝為本書提出諸多富有見地的評論的審稿人,他們是Adam Finkelstein、Alex Colburn、Alexander Keller、Alyn Rockwood、Angelo Pesce、Barbara Mones、Brian Wyvill、Craig Kaplan、Doug Roble、Eric Braun、Eric Haines、Greg Turk、Jeff Hultquist、Jessica Hodgins、Kristi Morton、Lesley Istead、Luis Avarado、Matt Pharr、Mike Tyka、Morgan McGuire、Paul Beardsley、Paul Strauss、Peter Shirley、Philipp Slusallek、Serban Porumbescu、Stefanus Du Toit、Steven Drucker、Wenhao Yu和Zackory Erickson。
特別感謝Alexander Keller、Eric Haines、Jessica Hodgins和Luis Avarado,他們閱讀了本書所有或大部分手稿內容,并在內容呈現和內容結構方面提出了建設性意見。
感謝Morgan McGuire開發了Markdeep,讓我能夠專注于本書內容,而無須顧及格式。有了Markdeep的助力,本書的創作出奇地順利和流暢。
感謝Todd Szymanski就本書內容、封面的設計和布局提出的深刻見解,同時感謝他指出了相關排版錯誤。
感謝以下讀者在出版早期發現的拼寫錯誤等問題:Christian Forfang、David Pol、Eric Haines、Gopi Meenakshisundaram、Kostya Smolenskiy、Mauricio Vives、Mike Wong和Mrinal Mohit。
參考資料
這部分內容在各章均有出現,其中列出了供參考閱讀的所有文檔。你還可以參閱正文涉及的其他有價值的論文、網站、文件、博客等資源。
[Agüera y Arcas 17] Blaise Agüera y Arcas, Margaret Mitchell and Alexander Todorov, Physiognomy’s New Clothes, Medium, 2017.
[Barrat15] James Barrat, Our Final Invention: Artificial Intelligence and the End of the Human Era, St. Martin’s Griffin, 2015.
[Bishop06] Christopher M. Bishop, Pattern Recognition and Machine Learning, Springer- Verlag, pp. 149-152, 2006.
[Chollet17] Fran?ois Chollet, Deep Learning with Python, Manning Publications, 2017.
[Domingos15] Pedro Domingos, The Master Algorithm, Basic Books,2015.
[Goodfellow17] Ian Goodfellow, Yoshua Bengio, Aaron Courville, Deep Learning, MIT Press, 2017.
[JetBrains17] JetBrains Pycharm Community Edition IDE, 2017.
[Jupyter16] The Jupyter team, Jupyter官方網站,2016.
[Kaplan16] Jerry Kaplan, Artifical Intelligence: What Everyone Needs to Know, Oxford University Press, 2016.
[Müller-Guido16] Andreas C. Müller and Sarah Guido, Introduction to Machine Leaming with Python, O’Reilly Press, 2016.
[Raschka15] Sebastian Raschka, Python Machine Learning, Packt Publishing, 2015.
[VanderPlas16] Jake VanderPlas, Python Data Science Handbook, O’Reilly Media, 2016.