編輯推薦
關(guān)于TensorFlow機(jī)器學(xué)習(xí)的快速入門(mén)的極好指南。
由淺入深講解經(jīng)典核心算法、神經(jīng)網(wǎng)絡(luò)、強(qiáng)化學(xué)習(xí)。
為你提供了機(jī)器學(xué)習(xí)概念的堅(jiān)實(shí)基礎(chǔ),以及使用Python編寫(xiě)TensorFlow的實(shí)戰(zhàn)經(jīng)驗(yàn)。
你將通過(guò)經(jīng)典的預(yù)測(cè)、分類(lèi)和聚類(lèi)算法等快速學(xué)習(xí)掌握基礎(chǔ)知識(shí)。然后,繼續(xù)學(xué)習(xí)具有深度價(jià)值的內(nèi)容:探索深度學(xué)習(xí)的概念,例如自動(dòng)編碼器、遞歸神經(jīng)網(wǎng)絡(luò)和強(qiáng)化學(xué)習(xí)等。學(xué)習(xí)TensorFlow機(jī)器學(xué)習(xí),你將會(huì)準(zhǔn)備好將TensorFlow用于自己的機(jī)器學(xué)習(xí)和深度學(xué)習(xí)應(yīng)用程序中。
原書(shū)前言
無(wú)論你是機(jī)器學(xué)習(xí)新手還是TensorFlow新手,本書(shū)都將成為你的優(yōu)秀指南。你需要使用Python中的面向?qū)ο缶幊痰闹R(shí)來(lái)理解一些代碼清單,除此之外,本書(shū)還介紹了機(jī)器學(xué)習(xí)的入門(mén)基礎(chǔ)。
線路圖
本書(shū)分為三個(gè)部分:
第一部分首先探討機(jī)器學(xué)習(xí)是什么,并強(qiáng)調(diào)TensorFlow的關(guān)鍵作用。第1章介紹了機(jī)器學(xué)習(xí)的術(shù)語(yǔ)和理論,第2章介紹了開(kāi)始使用TensorFlow時(shí)需要了解的所有內(nèi)容。
第二部分介紹了經(jīng)受住時(shí)間考驗(yàn)的基本算法。第3~6章分別討論回歸、分類(lèi)、聚類(lèi)和隱馬爾可夫模型。你可以在機(jī)器學(xué)習(xí)領(lǐng)域找到這些算法。
第三部分揭示了TensorFlow的真正能量:神經(jīng)網(wǎng)絡(luò)。第7~12 章分別介紹了自編碼器、強(qiáng)化學(xué)習(xí)、卷積神經(jīng)網(wǎng)絡(luò)、循環(huán)神經(jīng)網(wǎng)絡(luò)、序列到序列模型和應(yīng)用程序。除非你是經(jīng)驗(yàn)豐富的TensorFlow用戶(hù),并且擁有多年的機(jī)器學(xué)習(xí)經(jīng)驗(yàn),否則我強(qiáng)烈建議你先閱讀第1章和第2章。除此之外,你也可以隨意跳過(guò)書(shū)中的內(nèi)容自由學(xué)習(xí)。
源代碼
本書(shū)中的想法永遠(yuǎn)也不會(huì)過(guò)時(shí),同時(shí)還有社區(qū)的支持,代碼清單也是如此。你可以在本書(shū)英文版的網(wǎng)站www.manning.com/books/machine-learning-with-tensorflow上找到源代碼;而軟件也將在本書(shū)英文版的官方GitHub存儲(chǔ)庫(kù)(https://github.com/BinRoot/TensorFlow-Book)上保持最新。我們期望你能通過(guò)發(fā)送請(qǐng)求或通過(guò)GitHub提交新問(wèn)題來(lái)為存儲(chǔ)庫(kù)做出貢獻(xiàn)。
書(shū)籍論壇
你可以訪問(wèn)由Manning Publications運(yùn)營(yíng)的網(wǎng)絡(luò)論壇,并可以在其中對(duì)本書(shū)發(fā)表評(píng)論,提出技術(shù)問(wèn)題,從作者和其他用戶(hù)那里獲得幫助。要訪問(wèn)論壇,請(qǐng)登錄https://forums.manning.com/forums/machine-learning-with-tensorflow。你還可以登錄https://forums.manning.com/forums/about,了解有關(guān)Manning論壇和活動(dòng)規(guī)則的更多信息。
Manning出版社對(duì)讀者的承諾是提供場(chǎng)所,讓讀者之間以及讀者與作者之間進(jìn)行有意義的對(duì)話。這并不是說(shuō)對(duì)作者有任何具體參與次數(shù)的要求,因?yàn)樽髡邔?duì)論壇的貢獻(xiàn)是自愿的(而且是無(wú)償?shù)模。我們建議你嘗試向作者提出一些具有挑戰(zhàn)性的問(wèn)題,以提起他的興趣!只要本書(shū)還在銷(xiāo)售,論壇和討論的檔案就可以從出版商的網(wǎng)站上獲取。
原書(shū)序
我和同時(shí)代的人一樣,也一直沉迷于最新的在線趨勢(shì)。我記得大約在2005年,自己還在無(wú)休止地刷新FARK、YTMND 和Delicious的娛樂(lè)信息和新聞,F(xiàn)在,我在Reddit和Hacker News之間進(jìn)行切換,這讓我目睹了TensorFlow在2015年11月9日的隆重亮相。當(dāng)時(shí)那篇文章出現(xiàn)在Hacker News首頁(yè)的頂部,并收到了數(shù)百條評(píng)論這些蓋過(guò)了網(wǎng)站上的其他任何內(nèi)容。
那時(shí),機(jī)器學(xué)習(xí)工具已經(jīng)被分成不同的門(mén)類(lèi),且整個(gè)生態(tài)系統(tǒng)依賴(lài)于來(lái)自學(xué)術(shù)實(shí)驗(yàn)室的實(shí)驗(yàn)軟件包和行業(yè)巨頭的專(zhuān)有解決方案。當(dāng)谷歌公司展示TensorFlow 時(shí),社群的反應(yīng)不一。雖然谷歌公司有淘汰大眾喜愛(ài)的服務(wù)(如谷歌閱讀器、個(gè)性化谷歌、Knol和谷歌Wave)的歷史,但該公司也有扶持開(kāi)源項(xiàng)目(如Android、Chromium、Go 和Protobuf)的歷史。
對(duì)于TensorFlow這樣的新技術(shù),該出手時(shí)就得出手。盡管有許多人會(huì)選擇等到相關(guān)資料豐富后再使用TensorFlow,但也有一些人已經(jīng)決定開(kāi)始使用它。我在第一時(shí)間就學(xué)習(xí)了官方文檔,掌握了基本知識(shí),并準(zhǔn)備將這項(xiàng)技術(shù)應(yīng)用于我在加州大學(xué)洛杉磯分校的博士研究項(xiàng)目中。我努力地積累筆記,不過(guò)當(dāng)時(shí)還不知道自己積累的用于學(xué)習(xí)TensorFlow的文檔將來(lái)會(huì)成為一本書(shū)。
大約在那個(gè)時(shí)候,Manning出版社的一位編輯與我聯(lián)系,就一本Haskell新書(shū)的不同意見(jiàn)與我溝通這是他們工作流程的一部分,因?yàn)槲沂荋askell Data Analysis Cookbook(Packt 出版社,2014)的作者。你現(xiàn)在正在閱讀的這本書(shū)的寫(xiě)作就開(kāi)始于我當(dāng)時(shí)的回復(fù):另一方面,你有沒(méi)有聽(tīng)說(shuō)過(guò)谷歌公司新推出的機(jī)器學(xué)習(xí)庫(kù)TensorFlow?
本書(shū)從傳統(tǒng)機(jī)器學(xué)習(xí)的內(nèi)容出發(fā),你在任何機(jī)器學(xué)習(xí)的書(shū)中想獲得的主題都能在本書(shū)中找到,但它覆蓋的主題缺乏在線教程。例如,很難找到隱馬爾可夫模型(HMM)和強(qiáng)化學(xué)習(xí)(RL)的在線TensorFlow實(shí)現(xiàn)教程。編輯本書(shū)時(shí)的每一次修改都引入了更多概念,而這些概念目前還無(wú)法找到足夠的現(xiàn)有資源。
對(duì)于想要探索機(jī)器學(xué)習(xí)的初學(xué)者來(lái)說(shuō),在線TensorFlow教程通常過(guò)于簡(jiǎn)單或過(guò)于復(fù)雜。本書(shū)的目的是為了填補(bǔ)這些空白,我相信它能做到這一點(diǎn)。如果你是機(jī)器學(xué)習(xí)或TensorFlow的新手,那么你會(huì)很欣賞本書(shū)的務(wù)實(shí)風(fēng)格。
原書(shū)序
原書(shū)前言
第一部分 機(jī)器學(xué)習(xí)套裝
第1章 機(jī)器學(xué)習(xí)旅程 2
1.1 機(jī)器學(xué)習(xí)基礎(chǔ) 3
1.1.1 參數(shù) 5
1.1.2 學(xué)習(xí)和推理 6
1.2 數(shù)據(jù)表示和特征 7
1.3 距離度量 11
1.4 學(xué)習(xí)類(lèi)型 12
1.4.1 監(jiān)督學(xué)習(xí) 12
1.4.2 無(wú)監(jiān)督學(xué)習(xí) 14
1.4.3 強(qiáng)化學(xué)習(xí) 14
1.5 TensorFlow 15
1.6 余下的章節(jié) 17
1.7 小結(jié) 18
第2章 TensorFlow基礎(chǔ) 19
2.1 保證TensorFlow運(yùn)行 21
2.2 張量表示 21
2.3 創(chuàng)建運(yùn)算 25
2.4 使用session執(zhí)行運(yùn)算 27
2.4.1 將代碼理解為圖 28
2.4.2 設(shè)置session的配置項(xiàng) 28
2.5 使用Jupyter寫(xiě)代碼 30
2.6 使用變量 32
2.7 保存和加載變量 34
2.8 使用TensorBoard可視化數(shù)據(jù) 35
2.8.1 實(shí)現(xiàn)一個(gè)移動(dòng)平均算法 36
2.8.2 可視化移動(dòng)平均算法 37
2.9 小結(jié) 39
第二部分 核心學(xué)習(xí)算法
第3章 線性回歸及其他 42
3.1 形式化定義 43
3.1.1 如何知道回歸算法在起作用 45
3.2 線性回歸 46
3.3 多項(xiàng)式模型 50
3.4 正則化 52
3.5 線性回歸的應(yīng)用 55
3.6 小結(jié) 56
第4章 簡(jiǎn)明的分類(lèi)介紹 58
4.1 形式化定義 59
4.2 衡量分類(lèi)性能 61
4.2.1 精度 61
4.2.2 準(zhǔn)確率和召回率 62
4.2.3 受試者工作特征曲線 63
4.3 用線性回歸實(shí)現(xiàn)分類(lèi) 64
4.4 邏輯斯諦回歸 68
4.4.1 求解一維邏輯斯諦回歸 69
4.4.2 求解二維邏輯斯諦回歸 71
4.5 多類(lèi)別分類(lèi)器 74
4.5.1 一對(duì)多 75
4.5.2 一對(duì)一 75
4.5.3 softmax回歸 75
4.6 分類(lèi)的應(yīng)用 79
4.7 小結(jié) 79
第5章 自動(dòng)聚類(lèi)數(shù)據(jù) 81
5.1 在TensorFlow中遍歷文件 82
5.2 從音頻文件中抽取特征 84
5.3 k-均值聚類(lèi) 87
5.4 音頻分割 90
5.5 用自組織映射實(shí)現(xiàn)聚類(lèi) 93
5.6 聚類(lèi)的應(yīng)用 97
5.7 小結(jié) 97
第6章 隱馬爾可夫模型 98
6.1 一個(gè)不那么可解釋模型的例子 99
6.2 馬爾可夫模型 100
6.3 隱馬爾可夫模型 102
6.4 前向算法 103
6.5 Viterbi解碼 106
6.6 隱馬爾可夫模型的使用 107
6.6.1 視頻建! 107
6.6.2 DNA建! 107
6.6.3 圖像建! 107
6.7 隱馬爾可夫模型的應(yīng)用 108
6.8 小結(jié) 108
第三部分 神經(jīng)網(wǎng)絡(luò)樣式
第7章 自編碼器 110
7.1 神經(jīng)網(wǎng)絡(luò) 111
7.2 自編碼器 114
7.3 批量訓(xùn)練 118
7.4 圖像處理 119
7.5 自編碼器的應(yīng)用 122
7.6 小結(jié) 123
第8章 強(qiáng)化學(xué)習(xí) 124
8.1 形式化定義 125
8.1.1 策略 126
8.1.2 效用函數(shù) 127
8.2 強(qiáng)化學(xué)習(xí)的應(yīng)用 128
8.3 強(qiáng)化學(xué)習(xí)的實(shí)現(xiàn) 129
8.4 探索強(qiáng)化學(xué)習(xí)的其他應(yīng)用 136
8.5 小結(jié) 137
第9章 卷積神經(jīng)網(wǎng)絡(luò) 138
9.1 神經(jīng)網(wǎng)絡(luò)的缺點(diǎn) 139
9.2 卷積神經(jīng)網(wǎng)絡(luò) 140
9.3 準(zhǔn)備圖像 141
9.3.1 生成過(guò)濾器 144
9.3.2 使用過(guò)濾器進(jìn)行卷積 145
9.3.3 最大池化 148
9.4 使用TensorFlow實(shí)現(xiàn)卷積神經(jīng)網(wǎng)絡(luò) 149
9.4.1 測(cè)量性能 151
9.4.2 訓(xùn)練分類(lèi)器 152
9.5 提高性能的竅門(mén)和技巧 153
9.6 卷積神經(jīng)網(wǎng)絡(luò)的應(yīng)用 154
9.7 小結(jié) 154
第10章 循環(huán)神經(jīng)網(wǎng)絡(luò) 155
10.1 語(yǔ)境信息 156
10.2 循環(huán)神經(jīng)網(wǎng)絡(luò)介紹 156
10.3 循環(huán)神經(jīng)網(wǎng)絡(luò)的實(shí)現(xiàn) 157
10.4 時(shí)間序列數(shù)據(jù)的預(yù)測(cè)模型 160
10.5 循環(huán)神經(jīng)網(wǎng)絡(luò)的應(yīng)用 163
10.6 小結(jié) 163
第11章 聊天機(jī)器人的序列到序列模型 164
11.1 分類(lèi)與循環(huán)神經(jīng)網(wǎng)絡(luò) 165
11.2 序列到序列模型架構(gòu) 167
11.3 符號(hào)的向量表示 171
11.4 把所有都放到一起 173
11.5 收集對(duì)話數(shù)據(jù) 179
11.6 小結(jié) 181
第12章 效用場(chǎng)景 182
12.1 偏好模型 184
12.2 圖像嵌入 189
12.3 圖像排序 192
12.4 小結(jié) 196
12.5 下一步 196
附錄 安裝 197