最近經常有朋友提及,想要入門深度學習,該如何學習?

關於深度學習,網上的資料很多,不過貌似大部分都不太適合初學者。

這裡有幾個原因:

1.深度學習確實需要一定的數學基礎。

如果不用深入淺出地方法講,有些讀者就會有畏難的情緒,因而容易過早地放棄。

2.市面上的深度學習書籍普遍偏理論。

理論內容的深度學習著作越來越多,讀者期待有一本動手實踐的書籍快速上手。

3.視頻課程普遍英文版居多,書籍和視頻搭配的深度學習著作很少。

深度學習領域的精品書籍普遍英文版居多,國人的精品著作少之又少,作者功底紮實同時能用中文講解深度學習動手實踐講清楚的少之又少。

深度學習,確實需要一定的數學基礎,但真的那麼難麼?這個,還真沒有。學會李沐大神的《動手學深度學習》,你也可以輕鬆入門。


程序員入門人工智能,該如何學習?


我為什麼推薦這本書?


理由一 重“動手學”,真正意義的可實操,能運行

在《動手學深度學習》出版前,當時的情況是Ian Goodfellow的《深度學習》是當時最好的入門書,新而且全面。但它只做了一般的模型描述而沒有如何實際使用它們以及效果怎麼樣。《動手學深度學習》是一本既能講原理、又有實現和實際使用、不斷更新、而且容易讀的書。

在過去兩年的摸索中,這本入門書在傳統意義的書上往前走了幾步:

  • 書的每一章用文字、數學、圖示和代碼來多方面介紹一個知識點。它是一個Jupyter記事本,可以獨立運行。包含20個左右的文字和代碼塊,可以15分鐘左右讀完。
  • 源文件是Markdown,不保存執行輸出,並開源在Github上。這樣方便更多人貢獻和改動審閱,同時可以很容易的不斷加新章節。
  • 任何改動都會觸發持續集成服務重新執行記事本來獲得執行輸出,這樣保證代碼的正確性。一個記事本的執行時間控制在不超過十分鐘。這對展示覆雜模型的訓練頗為挑戰。
  • 執行無誤後直接用三種格式發佈在網上:含有執行輸出的Jupyter記事本,可以直接瀏覽的HTML,和適合打印的PDF。
  • 可以像LaTeX那樣方便的索引圖、表、公式和文獻。
  • 每一章都有可以討論的鏈接。

這本書代碼的實現很多是基於MXNet(一開始的目標是為MXNet寫個好點文檔),我們也考慮過要不要提供一個Pytorch或者Keras的版本。後來發現這個擔心比較多餘。框架就是一個工具,工具之間的那些不同帶來的困難比起理解模型和調出結果來小很多。課上發現就算是沒有接觸過這些工具的學生,用MXNet做作業,然後在基於不管用啥框架實現的現有算法再開發做項目並沒有多大困難。或者說困難都不來自工具本身,特別是算法實現都在課上講過一遍的情況下。


程序員入門人工智能,該如何學習?



理由二:亞馬遜首席科學家李沐等大師作品,歷時三年沉澱。

本書四位作者均是亞馬遜科學家,對人工智能領域頗具口碑,李沐老師被眾多粉絲喜愛更多的來源於他的口碑公開課,純中文的授課方式得到了大家的普遍認可。

程序員入門人工智能,該如何學習?


阿斯頓·張(Aston Zhang)

亞馬遜應用科學家,美國伊利諾伊大學香檳分校計算機科學博士,統計學和計算機科學雙碩士。他專注於機器學習的研究,並在數個頂級學術會議發表過論文。他擔任過NeurIPS、ICML、KDD、WWW、WSDM、SIGIR、AAAI 等學術會議的程序委員或審稿人以及Frontiers in Big Data 期刊的編委。

程序員入門人工智能,該如何學習?

李沐(Mu Li)

亞馬遜首席科學家(Principal Scientist),加州大學伯克利分校客座助理教授,美國卡內基梅隆大學計算機系博士。他專注於分佈式系統和機器學習算法的研究。他是深度學習框架MXNet 的作者之一。他曾任機器學習創業公司Marianas Labs 的CTO 和百度深度學習研究院的主任研發架構師。他在理論、機器學習、應用和操作系統等多個領域的頂級學術會議(包括FOCS、ICML、NeurIPS、AISTATS、CVPR、KDD 、WSDM、OSDI)上發表過論文。

程序員入門人工智能,該如何學習?

扎卡里·C. 立頓(Zachary C. Lipton)

亞馬遜應用科學家,美國卡內基梅隆大學助理教授,美國加州大學聖迭戈分校博士。他專注於機器學習算法及其社會影響的研究,特別是在時序數據與序列決策上的深度學習。這類工作有著廣泛的應用場景,包括醫療診斷、對話系統和產品推薦。他創立了博客“Approximately Correct”(approximatelycorrect.com)。

程序員入門人工智能,該如何學習?

亞歷山大·J. 斯莫拉(Alexander J. Smola)

亞馬遜副總裁/ 傑出科學家,德國柏林工業大學計算機科學博士。他曾在澳大利亞國立大學、美國加州大學伯克利分校和卡內基梅隆大學任教。他發表了超過200 篇學術論文,並著有5 本書,其論文及書被引用超過10 萬次。他的研究興趣包括深度學習、貝葉斯非參數、核方法、統計建模和可擴展算法。

理由三:圖書+視頻一起學

在學習過程中,大家有一個普遍的共識,看書理論是一回事,寫代碼是一回事,調代碼又是另一回事,每件事之間都有一個gap,爬都爬不過去,跌跌撞撞很痛苦。《動手學深度學習》搭配有免費的公開課視頻,把寫代碼和調代碼也當作一回事,跟理論一起講一起演示。跟著大牛一起學,相信會讓你事半功倍。

《動手學深度學習》錄像有兩個場景,一個是主體是幻燈片,講師在角落。另一個主體是黑板。

程序員入門人工智能,該如何學習?


過去幾年裡《動手學深度學習》作者嘗試了各種DIY手段來通過便宜的器材來錄製準專業的視頻。下圖是這次使用的器材。

程序員入門人工智能,該如何學習?


  1. 錄像用的是一個4K微單④,放在講臺前4米的三腳架上①,用HDMI線③和轉錄頭②跟筆記本相連。4K主要是為場景二準備,但因為我們定到的教室的黑板不是很好,所以這個場景用得不多,而且經常課堂中忘了切換。後來發現其實用手機就足夠了,例如iPhone加上EpocCam這個應用,然後用個小三腳架放在筆記本的後面。這樣極大減輕每次要攜帶的設備,而且降低了器材成本。但注意不要用筆記本自帶的前置攝像頭,那個效果不行。
  2. 聲音質量很關鍵。千萬不要用筆記本自帶的麥克風,人稍微離遠點就聽不清。我們將一個無線麥克風掛在身上⑦,它跟hub⑧相連,然後再接到筆記本上。後來發現如果走動不頻繁的話,用固定麥克風效果也很好⑤,而且容易連接(我們買的這個主要是為MOOC用,比較重,如果要攜帶的話可以買小點的)。
  3. 錄製軟件用的是OBS,遊戲主播常用。強大,但不是很穩定,而且耗資源,特別是在連了很多設備的情況下。於是專門用了個新的高配MacBook Pro⑨,保證除了上課外不會動它,而且有足夠的計算資源現場運行程序。OBS出錯概率不小,建議每次開始時和中間都要查一下錄製是不是正常。否則重新錄視頻很痛苦,因為沒有學生在現場,氣氛很不一樣。
  4. 物理鍵盤⑥很方便,一個鍵配置成開始和停止錄製,另外兩個是切換場景。它的主要好處是LED背景顯示當前狀態,可以時不時看下錄製是不是正常。因為每個單元錄一個視頻,一節課通常錄7,8個,前幾節課常忘了點開始。這個鍵盤可以時不時看下錄製是不是正常。不過我覺得一個更好的辦法是用一個iPad做一個擴展顯示器,將OBS放在上面,這樣可以真正看到錄製狀態。

通常我們會把課程視頻在一兩天內上傳到YouTube。但這樣直接導致來上課的學生銳減。堅持來上課的學生可能學習動機更大,每次互動的時候都感覺大家掌握不錯,進而導致一路向前講,基本把整本書講完了。這比原計劃多講了20%。我覺得可能視頻在一週後上傳比較好,這樣學生需要來上課才能完成一週後要交的作業,從而容易在課堂上把握節奏。

理由四:眾多人工智能領域大咖鼎力推薦

本書得到了來自學術界和工業界的韓家煒、Bernhard Schölkopf、周志華、張潼、餘凱、漆遠、沈強等眾多實力大咖鼎立推薦。

下滑看看他們怎麼說:

來自學術界

這是一本及時且引人入勝的書。它不僅提供了深度學習原理的全面概述,還提供了具有編程代碼的詳細算法,此外,還提供了計算機視覺和自然語言處理中有關深度學習的最新介紹。如果你想鑽研深度學習,請研讀這本書!

——韓家煒,ACM 院士、IEEE 院士、美國伊利諾伊大學香檳分校計算機系Abel Bliss教授

這是對機器學習文獻的一個很受歡迎的補充,重點是通過集成Jupyter 記事本實現的動手經驗。深度學習的學生應該能體會到,這對於熟練掌握這一領域是非常寶貴的。

——Bernhard Schölkopf,ACM 院士、德國國家科學院院士、德國馬克斯• 普朗克研究所智能系統院院長

這本書基於MXNet 框架來介紹深度學習技術,書中代碼可謂“所學即所用”,為喜歡通過Python 代碼進行學習的讀者瞭解、接觸深度學習技術提供了很大的便利。

——周志華,ACM 院士、IEEE 院士、AAAS 院士、南京大學計算機科學與技術系主任

這是一本基於Apache MXNet 的深度學習實戰書籍,可以幫助讀者快速上手並掌握使用深度學習工具的基本技能。本書的幾個作者都在機器學習領域有著非常豐富的經驗。他們不光有大量的工業界實踐經驗,也有非常高的學術成就,所以對機器學習領域的前沿算法理解深刻。這使得作者們在提供優質代碼的同時,也可以把最前沿的算法和概念深入淺出地介紹給讀者。這本書可以幫助深度學習實踐者快速提升自己的能力。

——張潼,香港科技大學計算機科學與數學教授

來自工業界

雖然業界已經有不錯的深度學習方面的書籍,但都不夠緊密結合工業界的應用實踐。 我認為《動手學深度學習》是最適合工業界研發工程師學習的,因為這本書把算法理論、應用場景、代碼實例都完美地聯繫在一起,引導讀者把理論學習和應用實踐緊密結合,知行合一,在動手中學習,在體會和領會中不斷深化對深度學習的理解。 因此我毫無保留地向廣大的讀者強烈推薦《動手學深度學習》。

——餘凱,地平線公司創始人、首席執行官

強烈推薦這本書!它其實遠不只是一本書:它不僅講解深度學習背後的數學原理,更是一個編程工作臺與記事本,讓讀者可以一邊動手學習一邊收到反饋,它還是個開源社區平臺,讓大家可以交流。作為在AI 學術界和工業界都長期工作過的人,我特別讚賞這種手腦一體的學習方式,既能增強實踐能力,又可以在解決問題中鍛鍊獨立思考和批判性思維。

作者們是算法工程兼強的業界翹楚,他們能奉獻出這樣的一本好的開源書,為他們點贊!

——漆遠,螞蟻金服副總裁、首席人工智能科學家

一年前作者開始在將門技術社群中做深度學習的系列講座,當時我就對動手式講座的內容和形式感到耳目一新。一年過去,看到《動手學深度學習》在持續精心打磨後終於成書出版,感覺十分欣喜!

深度學習是當前人工智能領域裡炙手可熱的領域,吸引了大量感興趣的開發者踴躍學習相關的開發技術。然而對大多數學習者而言,掌握深度學習是一件很不容易的事情,需要相繼翻越數學基礎、算法理論、編程開發、領域應用、軟硬優化等幾座大山。因此學習過程不容易一帆風順,我也看到很多學習者還沒進入開發環節就在理論學習的過程中抱憾放棄了。然而《動手學深度學習》卻是一本很容易讓學習者上癮的書,它最大的特色是強調在動手編程中學習理論和培養實戰能力。閱讀本書最愉悅的感受是它很好地平衡了理論介紹和編程實操,內容簡明扼要,銜接自然流暢,既反映了現代深度學習的進展,又兼具易學和實用特性,是深度學習愛好者難得的學習材料。特別值得稱讚的是本書選擇了Jupyter 記事本作為開發學習環境,將教材、文檔和代碼統一起來,給讀者提供了可以立即嘗試修改代碼和觀察運行效果的交互式的學習體驗,使學習充滿了樂趣。

在過去的一年中,作者和社區成員對《動手學深度學習》進行了大量優化修改才得以成書,可以說這是一本深度學習前沿實踐者給深度學習愛好者帶來的誠心之作,相信大家都能在閱讀和實踐中擁有一樣的共鳴。

——沈強,將門創投創始合夥人

總之,這部精品著作,用方方面面的實力,等著征服你。


《動手學深度學習》該如何讀?


我適合讀這本書嗎?

本書面向希望瞭解深度學習,特別是對實際使用深度學習感興趣的大學生、工程師和研究人員。本書並不要求讀者有任何深度學習或者機器學習的背景知識,我們將從頭開始解釋每一個概念。雖然深度學習技術與應用的闡述涉及了數學和編程,但讀者只需瞭解基礎的數學和編程,如基礎的線性代數、微分和概率,以及基本的Python編程知識。在附錄A中我們提供了本書涉及的主要數學知識供讀者參考。如果讀者之前沒有接觸過Python,可以參考其中文教程或英文教程。當然,如果讀者只對本書中的數學部分感興趣,可以忽略掉編程部分,反之亦然。

內容和結構

本書內容大體可以分為3個部分。

  • 第一部分(第1章~第3章)涵蓋預備工作和基礎知識。第1章介紹深度學習的背景。第2章提供動手學深度學習所需要的預備知識,例如,如何獲取並運行本書中的代碼。第3章包括深度學習最基礎的概念和技術,如多層感知機和模型正則化。如果讀者時間有限,並且只想瞭解深度學習最基礎的概念和技術,那麼只需閱讀第一部分。
  • 第二部分(第4章~第6章)關注現代深度學習技術。第4章描述深度學習計算的各個重要組成部分,併為實現後續更復雜的模型打下基礎。第5章解釋近年來令深度學習在計算機視覺領域大獲成功的卷積神經網絡。第6章闡述近年來常用於處理序列數據的循環神經網絡。閱讀第二部分有助於掌握現代深度學習技術。
  • 第三部分(第7章~第10章)討論計算性能和應用。第7章評價各種用來訓練深度學習模型的優化算法。第8章檢驗影響深度學習計算性能的幾個重要因素。第9章和第10章分別列舉深度學習在計算機視覺和自然語言處理中的重要應用。這部分內容讀者可根據興趣選擇閱讀。

圖0-1描繪了本書的結構,其中由A章指向B章的箭頭表明A章的知識有助於理解B章的內容。


程序員入門人工智能,該如何學習?


圖0-1 本書的結構

代碼

本書的一大特點是每一節的代碼都是可以運行的。讀者可以改動代碼後重新運行,並通過運行結果進一步理解改動所帶來的影響。我們認為,這種交互式的學習體驗對於學習深度學習非常重要。因為深度學習目前並沒有很好的理論解釋框架,很多論斷只可意會。文字解釋在這時候可能比較蒼白無力,而且不足以覆蓋所有細節。讀者需要不斷改動代碼、觀察運行結果並總結經驗,從而逐步領悟和掌握深度學習。

我們提供代碼的主要目的在於增加一個在文字、圖像和公式外的學習深度學習算法的方式,以及一個便於理解各個算法在真實數據上的實際效果的交互式環境。書中只使用了MXNet的ndarray、autograd、gluon等模塊或包的基礎功能,從而使讀者儘可能瞭解深度學習算法的實現細節。即便讀者在研究和工作中使用的是其他深度學習框架,書中的代碼也有助於讀者更好地理解和應用深度學習算法。

討論區

進入本書內論壇,上面提供了學習社區地址和GitHub開源地址。如果讀者對書中某節內容有疑惑,可掃一掃該節開始的二維碼參與該節內容的討論。值得一提的是,在有關Kaggle比賽章節的討論區中,眾多社區成員提供了豐富的高水平方法,我們強烈推薦給大家。希望諸位積極參與學習社區中的討論,並相信大家一定會有所收穫。本書作者和MXNet開發人員也時常參與社區中的討論。


動手學深度學習 (平裝)


程序員入門人工智能,該如何學習?


書名:《動手學深度學習 (平裝)》

作者:阿斯頓·張(Aston Zhang) 李沐(Mu Li)[美] 扎卡里 C. 立頓(Zachary C. Lipton)[德] 亞歷山大 J. 斯莫拉(Alexander J. Smola)

編輯推薦:

  • 亞馬遜科學家李沐等重磅作品;
  • 交互式實戰環境下動手學深度學習的全新模式,原理與實戰完美結合
  • 韓家煒/Bernhard Schölkopf/周志華/張潼/餘凱/漆遠/沈強 聯袂推薦
  • 加州大學伯克利等全球15 所知名大學用於教學;

本書旨在向讀者交付有關深度學習的交互式學習體驗。書中不僅闡述深度學習的算法原理,還演示它們的實現和運行。與傳統圖書不同,本書的每一節都是一個可以下載並運行的 Jupyter記事本,它將文字、公式、圖像、代碼和運行結果結合在了一起。此外,讀者還可以訪問並參與書中內容的討論。

如何購買這本書?

滿100減50元,京東購 「鏈接」



PS:本文部分內容來源於李沐公眾號:ApacheMXNet ,在伯克利教深度學習

相關推薦

推薦中...