如果您是初學(xué)者,那么您可能會將深度學(xué)習(xí)與機(jī)器學(xué)習(xí)混為一談瞎颗。實際上件甥,機(jī)器學(xué)習(xí)包含深度學(xué)習(xí)捌议,深度學(xué)習(xí)只是機(jī)器學(xué)習(xí)的研究領(lǐng)域之一。深度學(xué)習(xí)是一個交叉學(xué)科引有,涉及到神經(jīng)網(wǎng)絡(luò)瓣颅、人工智能、圖建模譬正、最優(yōu)化理論宫补、模式識別和信號處理等多學(xué)科領(lǐng)域知識。硬件計算能力的升級使得深度學(xué)習(xí)在人們的日常生活中有了用武之地导帝。深度學(xué)習(xí)的應(yīng)用領(lǐng)域包括計算機(jī)視覺、語音識別穿铆、圖像識別您单,自動駕駛,自然語言理解荞雏、手寫識別虐秦、音頻處理、信息檢索凤优、機(jī)器人學(xué)等悦陋。
關(guān)于深度學(xué)習(xí),市場上已經(jīng)有很多參考資料以及著作筑辨。若您是個書蟲俺驶,點擊這里可以看到 Amazon 上關(guān)于深度學(xué)習(xí)最新的一些書。這里我們主要推薦一些理論和實踐相結(jié)合得比較好的書棍辕,供大家學(xué)習(xí)參考暮现。
關(guān)于深度學(xué)習(xí)
Deep Learning (Adaptive Computation and Machine Learning series)
這本書的作者是 Ian Goodfellow,是谷歌大腦的科學(xué)家之一楚昭。
很多人認(rèn)為這本書是深度學(xué)習(xí)的圣經(jīng)栖袋,因為它是目前為止唯一一本將數(shù)十年的研究整合在一起的書。
不過抚太,需要讀者有一定的數(shù)學(xué)基礎(chǔ)塘幅,因為它包含了線性代數(shù)、概率論尿贫、數(shù)值計算和機(jī)器學(xué)習(xí)等相關(guān)的背景知識电媳。如果是入門的話,不建議從這本入手庆亡,讀起來會很有挫敗感匆背。
如果是要掌握深度學(xué)習(xí),這本可以算得上比較全面的指南身冀,因為除了背景知識钝尸,它還對正則化括享,優(yōu)化算法,實用性方法等有詳細(xì)的講述珍促,對自然語言處理铃辖、語音識別、計算機(jī)視覺等深度學(xué)習(xí)的實際應(yīng)用也做了一個詳盡的分析猪叙。
Hands-On Machine Learning with Scikit-Learn and TensorFlow
盡管這本書也有很多公式娇斩,但是它可讀性非常好,強(qiáng)烈推薦穴翩。
作者 Aurélien Géron 可以將復(fù)雜的概念用非常簡單的方式講出來犬第,一般的讀者不需要具有特別精深的專業(yè)知識也可以理解。
這本書中不僅有很好理解的例子芒帕,還有相應(yīng)的代碼歉嗓。如果在第一遍時比較關(guān)注實戰(zhàn)和例子,那么第二遍的時候可以回頭看看相關(guān)的原理和公式背蟆,更加深入地去學(xué)習(xí)鉴分。
Deep Learning with Python
作者 Francois Chollet,
正如他在 Keras 項目中,可以將復(fù)雜的概念簡單化一樣带膀,他的寫作方式也同樣具有很漂亮的可讀性志珍,即使是 AI and deep learning 里最具有挑戰(zhàn)性的概念,他也能夠深入淺出地講出來垛叨。
而且本書中也有很多不錯的例子伦糯,可以先看一下他的 github 上的代碼 就知道這個風(fēng)格了。
Deep Learning: A Practitioner's Approach
這本書主要用了 Java 的框架 DL4J嗽元,關(guān)于人工智能的很多研究多數(shù)都是用 Python 來做的舔株,但隨著越來越多的企業(yè)應(yīng)用機(jī)器學(xué)習(xí)等技術(shù),我們很可能會看到越來越多的深度學(xué)習(xí)應(yīng)用將用 Java 來實現(xiàn)还棱,因為它在很多大公司還是使用最廣的語言丈甸。
如果你已經(jīng)有一些深度學(xué)習(xí)的基礎(chǔ)知識忠藤,只是想看如何用 Java 來實現(xiàn)翁狐,那就可以跳過前面直接看例子双抽。
但是如果你并沒有太多的深度學(xué)習(xí)的經(jīng)驗,也沒有很強(qiáng)的 Java 背景琳要,那么這本書你可以好好翻一翻寡具。尤其是第 4 章-深入學(xué)習(xí)的主要架構(gòu),這一章非常的好稚补,可以幫你解決現(xiàn)實應(yīng)用中的關(guān)鍵的架構(gòu)問題童叠。
TensorFlow Machine Learning Cookbook
這本書雖然在內(nèi)容和代碼里會有一些打印錯誤,但整體上它在人工智能應(yīng)用的各領(lǐng)域如自然語言處理,都給出了一些很好的例子厦坛。
和其他的手冊書一樣五垮,這本書主要關(guān)注在代碼上,如果你還不知道一個卷積神經(jīng)網(wǎng)絡(luò)的輸入和輸出是什么杜秸,那么直接讀它就會覺得有一些困惑放仗,所以入門的話不推薦此書。
如果你已經(jīng)看過其它的書撬碟,實戰(zhàn)了一些例子诞挨,那么這本書可以提供更多的練習(xí)。
下面幾本是我覺得對初學(xué)者會有幫助的書呢蛤。
很多對深度學(xué)習(xí)感興趣的伙伴惶傻,可能最擔(dān)心的就是自己的數(shù)學(xué)已經(jīng)忘的差不多了。我覺得不一定要先把數(shù)學(xué)學(xué)的很好才能學(xué)深度學(xué)習(xí)其障,但如果你在看這些算法時银室,遇到了不明白的地方,某些公式推導(dǎo)不清楚為什么時静秆,還是有必要先復(fù)習(xí)一下本科時學(xué)的那幾門最基礎(chǔ)的數(shù)學(xué)的粮揉,例如巡李,線性代數(shù)抚笔,微積分基礎(chǔ),概率論侨拦,有條件的話殊橙,可以把這三本書放在電腦旁,有空的時候翻一下狱从,回顧一下原理膨蛮,遇到問題的時候就知道該去哪里查了。
或者想進(jìn)一步了解一下數(shù)學(xué)的話季研,可以看一下這本:
數(shù)學(xué)
Mathematics: A Very Short Introduction
這本書將問題分解成更簡單敞葛,更干凈的步驟。
生活就是一系列復(fù)雜的算法与涡,但我們并不需要完美的模型惹谐,數(shù)學(xué)可以幫我們將問題分解為其最基本的組件,變量和規(guī)則驼卖,我們只需要學(xué)習(xí)這些變量和規(guī)則即可氨肌。
數(shù)學(xué)上比較令人害怕的就是各種符號啦,如果知道它們的意思酌畜,那么就不會被嚇到了怎囚,這里有一個網(wǎng)站,可以查看各符號的含義:
另外我覺得比較基礎(chǔ)的理論就是神經(jīng)網(wǎng)絡(luò)桥胞,例如常用于圖像識別的卷積神經(jīng)網(wǎng)絡(luò)恳守,常用于自然語言處理的循環(huán)和遞歸神經(jīng)網(wǎng)絡(luò)等考婴,這些網(wǎng)絡(luò)在 Kaggle 的比賽中也比較受歡迎,調(diào)的好的話效果會很好井誉,為了有更好的效果蕉扮,了解一下內(nèi)部原理是必要的。
下面這本書就一步一步教你用 Python 搭建自己的神經(jīng)網(wǎng)絡(luò)颗圣,并且專門介紹了神經(jīng)網(wǎng)絡(luò)所需的數(shù)學(xué)喳钟,對于理解神經(jīng)網(wǎng)絡(luò)會比較有幫助。
Make Your Own Neural Network
TensorFlow
當(dāng)然啦在岂,除了理論奔则,實戰(zhàn)也是很重要的,而且也是有趣的一部分蔽午,那就要用到深度學(xué)習(xí)的框架易茬。
在 Github 上比較火的開源框架有 TensorFlow,Caffe及老,Keras抽莱,CNTK,MXNet骄恶,Torch7食铐,Theano等,可以找到很多比較的文章僧鲁,我這里就不贅述啦虐呻。
我現(xiàn)在是在學(xué) TensorFlow,接著打算學(xué)一下 Keras寞秃。
關(guān)于 TensorFlow斟叼,官方文檔就是一個很好的教程,不過如果想了解多一些理論知識的話春寿,可以看一下下面兩本書朗涩。里面除了詳細(xì)的代碼講解,還有一些背景的介紹绑改。
當(dāng)然谢床,因為是工具書,理論不會講的太深绢淀,但對于初學(xué)者也是夠用了萤悴,關(guān)于 AlexNet,VGGNet皆的,ResNet 等會介紹基本的來源覆履,分析一下優(yōu)勢和不足,介紹基本的網(wǎng)絡(luò)結(jié)構(gòu),算法的實現(xiàn)過程硝全,一步一步的代碼實現(xiàn)和詳細(xì)的講解栖雾。
如果對某些結(jié)構(gòu)感興趣,想要深入地研究 伟众,可以去翻相關(guān)的論文或者書籍析藕。
TensorFlow實戰(zhàn)
TensorFlow:實戰(zhàn)Google深度學(xué)習(xí)框架
這里分享一下我的學(xué)習(xí)過程,最開始的時候凳厢,會對它的應(yīng)用比較感興趣账胧,所以會去看如何用它實現(xiàn)簡單的自動駕駛,聊天機(jī)器人先紫,語音識別治泥,寫音樂。當(dāng)了解完大體的應(yīng)用場景和過程時遮精,就會專注于一個比較感興趣的應(yīng)用居夹,看看是不是可以做的稍微高級一點。接著就會想要掌握一下整體 TensorFlow 框架的各種基本組建本冲,像搭樂高似的准脂,看是否可以再組裝的更豐滿一些。
你有哪些學(xué)習(xí)心得呢檬洞,歡迎分享出來哦狸膏。
機(jī)器學(xué)習(xí)
接下來再推薦三本關(guān)于機(jī)器學(xué)習(xí)的書,我覺得這三本各有所長疮胖,喜歡三者結(jié)合著看环戈。
機(jī)器學(xué)習(xí)
我比較喜歡這本書的公式表達(dá)闷板,很簡單清晰澎灸,不會一翻開就被特別嚇人的符號嚇到,每個算法都會用一個小例子來講一下具體的過程遮晚,復(fù)雜的概念可以很清晰明了地解釋清楚性昭。
機(jī)器學(xué)習(xí)實戰(zhàn)
上面是算法理論,這本書就是教你用 Python 的代碼實現(xiàn)县遣。它會列出算法的優(yōu)缺點糜颠,列出清晰的流程,先寫出算法的偽代碼萧求,再配上 Python 代碼其兴,關(guān)鍵的代碼行還有詳細(xì)的講解。
統(tǒng)計學(xué)習(xí)方法
這本書會更深地講算法背后的理論夸政,尤其是從數(shù)學(xué)的角度元旬,公式推導(dǎo)也更細(xì),要知其然,還要知其所以然匀归。這個時候如果被數(shù)學(xué)卡住了坑资,就可以用前面的方法,以目標(biāo)為導(dǎo)向穆端,抓住要點去回顧吧袱贮。
好了,我覺得上面這些就夠看一陣子的了体啰。
今天的目的就是列出一個書單的短評攒巍,供大家選擇適合自己的,如果是踏踏實實在學(xué)習(xí)的話荒勇,根據(jù)各書特色和自己的需求窑业,建議先選中其中一本,要把 80% 的時間花在最重要的 20% 的事情上面枕屉,效能才最高常柄。
參考:
https://hackernoon.com/a-roundup-review-of-the-latest-deep-learning-books-6e5df4b0f3d3
https://hackernoon.com/learning-ai-if-you-suck-at-math-8bdfb4b79037