前言
當人工智慧的熱潮席捲全世界的時候,當我們一次又一次為各種人工智慧新作而驚歎的時候,我們不約而同地將目光投向了深度學習領域。我們對這個既新鮮又傳統的領域有一種憧憬,甚至我們之中的許多人會在某一刻認為這可能是未來機器覺醒前的萌芽。
說深度學習新鮮,是因為它在近幾年的發展確實獲得了令人矚目的成果,不論是在電腦視覺(Computer Vision,CV)領域,還是在自動語音辨識(Automatic Speech Recognition,ASR)領域,抑或推薦系統應用領域,都邁上了一個前所未有的新台階。這當然得益於電腦硬體處理能力的提升,包含CPU 的速度、記憶體的大小、磁碟的容量;得益於新型平行計算架構的逐步成熟,例如CUDA(Compute Unified Device Architecture);得益於廣大熱衷於貢獻高品質開放原始碼軟體系統的大廠的扛鼎力作,例如TensorFlow、PyTorch、MXNet 等優秀架構的不斷湧現。這些無一例外,都成為推動一個企業在全國乃至全世界發展的重要因素。
說深度學習傳統,是因為它最為基本的理論部分,是在數十年前就逐步有人提出並進行完整的一套理論系統。一位朋友曾告訴我,在他研究所畢業的時候(應該是在21 世紀初),有不少同學的研究方向是人工智慧和神經網路,而其中的大多數人,不是進了研究機構,開始日復一日「讀Paper、寫Paper」的過程,就是進了保險公司、證券交易所等企業——做什麼呢?也不是做自己的老本行,而是做報表、做資料分析、寫報告。
當然,這些同學算是比較「幸運」的,還有相當一部分乾脆改行,擔任一些企業的開發職位,做Java 開發或資料庫架構之類的工作。我完全沒有輕視這些職位和企業的意思,我只是單純地覺得,在大學中花了那麼多年走出來的一條路沒有堅持下去,是一件非常可惜的事。而在導致這一現象的許多客觀因素中,前面提到的運算能力、架構成熟度、軟體套件可用性等具有決定性的作用。
不過,我們趕上好時機了。除實作應用外的大部分基礎問題,都已經由那些世界一流的資料科學家幫我們解決,並封裝成一個個開放原始碼或非開放原始碼的軟/硬體產品。
其實,除了深度神經網路在CV、ASR、NLP 等領域的應用,近幾年,深度學習在另外一個領域具有炫目的成績,那就是深度強化學習領域。別的不說,大名鼎鼎的AlphaGo 和AlphaGo Zero 就是典型的深度強化學習應用。從感性的角度看,深度強化學習似乎是由「深度學習」和「強化學習」兩個領域結合而成的——這個說法應該不算錯。
所謂深度學習,一般是指以深度神經網路為基礎的一系列應用,而這個領域應用的豐富程度也是非常高的。因為深度神經網路具有超高的VC 維,所以理論上它幾乎可以用來實現任何從x 到 f(x)的對映關係。
強化學習所研究的事情就更有意思了。強化學習研究的主要是如何讓機器人在一個預先定義好的環境中,透過自己學習來逐步形成或學會一套成熟的、高品質的自動化行為策略,這也是一直以來世界一流大專院校的人工智慧課程設立並努力研究的神秘而又讓人充滿幻想的領域。
為了讓讀者們能夠近距離接觸強化學習和深度學習結合應用的案例,讓這樣一個有趣且具有光明前景的領域以更加平易近人的姿態出現,在這本書中,我將用具有高中數學基礎的讀者朋友能夠了解的語言,和大家好好分享一下如何用深度學習的利器PyTorch 來完成人工智慧機器人自我進化的完整過程。
本書特色
可以說,我們處於人工智慧時代的起點。這是一個非常好的時代,那麼多優秀的開放原始碼軟體架構,為每一個程式設計師提供了低門檻的學習工具。
本書以「平民」的起點,從「零」開始介紹深度學習的技術與技巧,讓讀者有良好的帶入感和親近感,並透過逐層準備,把學習曲線拉平,讓沒有學過微積分等進階理論的程式設計師朋友一樣能夠讀得懂、學得會。同時,本書配合漫畫插圖來調節閱讀氣氛,並在每個原理說明的部分都提供了比較和實例說明,相信每位讀者都能有輕鬆、愉悅的閱讀體驗。
如果你的英文閱讀能力不錯且有比較高的學術素養,足以以英文原版文獻(不論是公開課、論文,還是經典教材)作為首選的閱讀資料,那麼,仍然推薦你閱讀英文原版內容,因為那將讓你更為直接地接觸相關知識。
基於本書的定位,在描述討論對象的時候,我通常不會使用學術等級的詞彙,而是盡可能使用程式設計師能夠讀懂的語言。因此,與經典的閱讀材料相比,本書敘述的內容難免存在一些偏頗,甚至可能為了言簡意賅地說明原理而有失嚴謹。另外,在一個理論出現或相關論文發表之後,從我把它讀懂、寫清楚到圖書出版,至少需要一年,甚至可能更久,而這對一個在領域前端工作的技術人員來說,時間顯得有些長。因此,對學習能力比較強的讀者來說,本書作為專案實作參考書更為合適。
適合讀者群
本書適合以下讀者閱讀。
●對深度學習和強化學習有興趣,但完全不了解的技術人員。
●對深度學習和強化學習比較有興趣的技術人員。
●深度學習和強化學習領域的初級從業人員。
●希望對深度學習和強化學習進行入門了解的技術人員。
如何閱讀本書
本書的主要內容如下。
●第1 章到第5 章,說明傳統強化學習的研究目標與脈絡,主要介紹如何從一個程式設計師的角度了解強化學習最為輕鬆,偏重於了解方式的誘導。
●第6 章到第11 章,是本書的核心內容,講的是深度學習的原理、PyTorch架構的基礎及深度強化學習的常用演算法模型。
●第12 章到第15 章,說明擴充性的知識。例如,其他有助訓練模型的演算法想法,協力廠商工具外掛程式,可供實驗的環境,一些有趣的強化學習演算法和觀點,甚至模型實現過程中的最佳化與壓縮。
●附錄A 中詳細記載本書有關的各種軟體環境的安裝和設定過程。
套用一句時髦的廣告語:「深度強化學習從入門到實現,讀這一本就夠了。」
同時,你也可以發送電子郵件至77232517@qq.com 與我聯繫。
期待獲得你的真摯回饋,讓我們在技術道路上互勉共進。
高揚