Keras快速上手:基于Python的深度學習實戰( 簡體 字) | |
作者:謝梁,魯穎,勞虹嵐 | 類別:1. -> 程式設計 -> 深度學習 2. -> 程式設計 -> Python |
出版社:電子工業出版社 | 3dWoo書號: 47274 詢問書籍請說出此書號! 有庫存 NT售價: 395 元 |
出版日:7/1/2017 | |
頁數:272 | |
光碟數:0 | |
站長推薦: | |
印刷:黑白印刷 | 語系: ( 簡體 字 ) |
ISBN:9787121318726 | 加入購物車 │加到我的最愛 (請先登入會員) |
(簡體書上所述之下載連結耗時費功, 恕不適用在台灣, 若讀者需要請自行嘗試, 恕不保證, 繁體書的下載亦請直接連絡出版社) | |
1 準備深度學習的環境 1
1.1 硬件環境的搭建和配置選擇 . . . 1 1.1.1 通用圖形處理單元 . . . . 3 1.1.2 你需要什么樣的 GPU 加速卡 . . . . 6 1.1.3 你的 GPU 需要多少內存 . . . 6 1.1.4 是否應該用多個 GPU . . . 10 1.2 安裝軟件環境 . . . . . 12 1.2.1 所需軟件列表 . . . . . 12 1.2.2 CUDA 的安裝 . . . . . 13 1.2.3 Python 計算環境的安裝 . . . . 13 1.2.4 深度學習建模環境介紹 . . . . 15 1.2.5 安裝 CNTK 及對應的 Keras . . . 17 1.2.6 安裝 Theano 計算環境 . . . 23 1.2.7 安裝 TensorFlow 計算環境 . . . . 25 1.2.8 安裝 cuDNN 和 CNMeM . . . 27 2 數據收集與處理 28 2.1 網絡爬蟲 . . . . 28 2.1.1 網絡爬蟲技術 . . . . . 29 2.1.2 構造自己的 Scrapy 爬蟲 . . . 30 2.1.3 構造可接受參數的 Scrapy 爬蟲 . . . 35 2.1.4 運行 Scrapy 爬蟲 . . . 36 2.1.5 運行 Scrapy 爬蟲的一些要點 . . . 38 2.2 大規模非結構化數據的存儲和分析 . . . 40 2.2.1 ElasticSearch 介紹 . . . 42 2.2.2 ElasticSearch 應用實例 . . . . 44 3 深度學習簡介 57 3.1 概述 . . . . . 57 3.2 深度學習的統計學入門 . . . . 58 3.3 一些基本概念的解釋 . . . . . 61 3.3.1 深度學習中的函數類型 . . . . 62 3.3.2 深度學習中的其他常見概念 . . . 65 3.4 梯度遞減算法 . . . . . 67 3.5 后向傳播算法 . . . . . 70 4 Keras 入門 72 4.1 Keras 簡介 . . . . . 72 4.2 Keras 中的數據處理 . . . . 73 4.2.1 文字預處理 . . . . 74 4.2.2 序列數據預處理 . . . . 82 4.2.3 圖片數據輸入 . . . . . 83 4.3 Keras 中的模型 . . . . . 83 4.4 Keras 中的重要對象 . . . . 86 4.5 Keras 中的網絡層構造 . . . . . 90 4.6 使用 Keras 進行奇異值矩陣分解 . . . 102 5 推薦系統 105 5.1 推薦系統簡介 . . . . . 105 5.2 矩陣分解模型 . . . . . 108 5.3 深度神經網絡模型 . . . . . 114 5.4 其他常用算法 . . . . . 117 5.5 評判模型指標 . . . . . 119 6 圖像識別 121 6.1 圖像識別入門 . . . . . 121 6.2 卷積神經網絡的介紹 . . . . . 122 6.3 端到端的 MNIST 訓練數字識別 . . . 127 6.4 利用 VGG16 網絡進行字體識別 . . . 131 6.5 總結 . . . . . 135 7 自然語言情感分析 136 7.1 自然語言情感分析簡介 . . . . 136 7.2 文字情感分析建模 . . . . . 139 7.2.1 詞嵌入技術 . . . . 139 7.2.2 多層全連接神經網絡訓練情感分析 . . . 140 7.2.3 卷積神經網絡訓練情感分析 . . . 143 7.2.4 循環神經網絡訓練情感分析 . . . 144 7.3 總結 . . . . . 146 8 文字生成 147 8.1 文字生成和聊天機器人 . . . . 147 8.2 基于檢索的對話系統 . . . . . 148 8.3 基于深度學習的檢索式對話系統 . . . 159 8.3.1 對話數據的構造 . . . . 159 8.3.2 構造深度學習索引模型 . . . . 162 8.4 基于文字生成的對話系統 . . . 166 8.5 總結 . . . . . 172 9 時間序列 173 9.1 時間序列簡介 . . . . . 173 9.2 基本概念 . . . . 174 9.3 時間序列模型預測準確度的衡量 . . . 178 9.4 時間序列數據示例 . . . . . 179 9.5 簡要回顧 ARIMA 時間序列模型 . . . 181 9.6 循環神經網絡與時間序列模型 . . . . 186 9.7 應用案例 . . . . 188 9.7.1 長江漢口月度流量時間序列模型 . . 190 9.7.2 國際航空月度乘客數時間序列模型 . . . 203 9.8 總結 . . . . . 209 10 智能物聯網 210 10.1 Azure 和 IoT . . . . 210 10.2 Azure IoT Hub 服務 . . . . 213 10.3 使用 IoT Hub 管理設備概述 . . . . 215 10.4 使用.NET 將模擬設備連接到 IoT 中心 . . . . 218 10.5 機器學習應用實例 . . . . . 237 本書系統地講解了深度學習的基本知識、建模過程和應用,并以深度學習在推薦系統、圖像識別、自然語言處理、文字生成和時間序列中的具體應用為案例,詳細介紹了從工具準備、數據獲取和處理到針對問題進行建模的整個過程和實踐經驗,是一本非常好的深度學習入門書。不同于許多講解深度學習的書籍,本書以實用為導向,選擇了 Keras 作為編程框架,強調簡單、快速地設計模型,而不去糾纏底層代碼,使得內容相當易于理解,讀者可以在 CNTK、 TensorFlow 和 Theano 的后臺之間隨意切換,非常靈活。并且本書能幫助讀者從高度抽象的角度去審視業務問題,達到事半功倍的效果。
序一
在最近的幾年里,深度學習無疑是一個發展最快的機器學習子領域。在許多機器學習競賽中,最后勝出的系統或多或少都使用了深度學習技術。 2016 年,基于深度學習、強化學習和蒙特卡洛樹搜索的圍棋程序 AlphaGo 甚至戰勝了人類冠軍。人工智能的這一勝利比預想的要早了 10 年,而其中起關鍵作用的就是深度學習。 深度學習已經廣泛應用于我們的生活中,比如市場上可以見到的語音轉寫、智能音箱、語言翻譯、圖像識別和圖像藝術化系統等,其中深度學習都是關鍵技術。同時,由于學術界和工業界的大量投入,深度學習的新模型和新算法層出不窮,要充分掌握深度學習的各種模型和算法并實現它們無疑是一件困難的事情。 幸運的是,基于各行各業對深度學習技術的需求,許多公司和學校開源了深度學習工具包,其中大家比較熟悉的有 CNTK、 TensorFlow、 Theano、 Caffe、 mxNet 和 Torch。這些工具包都提供了非常靈活而強大的建模能力,極大地降低了使用深度學習技術的門檻,進一步加速了深度學習技術的研究和應用。但是,這些工具包各有所長、接口不同,而且對于很多初學者這些工具包過于靈活,難以掌握。 由于這些原因, Keras 應運而生。 Keras 可以被看作一個更易于使用、在更高層次上進行抽象、兼具兼容性和靈活性的深度學習框架,它的底層可以在 CNTK、 TensorFlow和 Theano 中自由切換。 Keras 的出現使很多初學者可以很快地體驗深度學習的一些基本技術和模型,并且將這些技術和模型應用到實際問題中。 本書也正是在這樣的背景下產生的。它的目標讀者正是那些剛剛進入深度學習領域、還沒有太多經驗的學生和工程師。本書的作者謝梁、魯穎和勞虹嵐分別在微軟和谷歌這樣的走在深度學習前沿的公司里做大數據和深度學習技術的研發,積累了很多把商業和工程問題轉化成合適的模型并分析模型好壞以及解釋模型結果的經驗。在這本書里,他們把這些經驗傳授給大家,使更多的人能夠快速掌握深度學習,并有效應用到商業和工程實踐中。 這本書比較系統地講解了深度學習的基本知識、建模過程和應用,并以深度學習在推薦系統、圖像識別、自然語言處理、文字生成和時間序列的具體應用作為案例,詳細介紹了從工具準備、數據獲取和處理到針對問題進行建模的整個過程和實踐經驗,是一本非常好的深度學習入門書。 俞棟 博士 騰訊 AI Lab 副主任,杰出科學家 西雅圖人工智能研究室負責人 2017 年 6 月 22 日于美國西雅圖 序二 隨著大數據的普及以及硬件計算能力的飛速提升,深度學習在過去的 5~6 年有了日新月異的發展。在一個又一個領域,深度學習展示了極其強大甚至連人類都難以企及的能力,這包括語音識別、機器翻譯、自然語言識別、推薦系統、人臉識別、圖像識別、目標檢測、三維重建、情感分析、棋類運動、德州撲克、自動駕駛等。伴隨著人工智能廣闊的應用前景,科技巨擎諸如谷歌、微軟、亞馬遜、百度、騰訊、阿里巴巴等紛紛投入巨資,從而進一步推動了這個領域的進步。如今,已經很少有人還對人工智能能達到的高度有任何懷疑態度,取而代之的是對人類如何與機器共存的暢想和機器終有一天取代人類的擔憂。 當然,如果我們現在就開始擔心機器將毀滅人類,那么還是有一些杞人憂天。深度學習現在還只停留在感知(Perception)的階段,即從原始數據進行簡單的感覺和分析,但是遠沒有達到認知(Cognition)的階段,即對事件進行邏輯推理和認識。深度學習的很多原理,還處在研究階段。即使是各領域的專家,對于深度學習為什么如此有效,依然是一知半解。幸運的是,在解決很多實際問題時,其實并不需要我們那么深刻理解它。謝梁、魯穎和勞紅嵐的這本書,就是從非常實用的角度來分享深度學習的一些基本知識,值得一讀。 這本書從如何準備深度學習的環境開始,手把手地教讀者如何采集數據,如何運用一些最常用,也是目前為止被認為最有效的一些深度學習算法來解決實際問題。覆蓋的領域包括推薦系統、圖像識別、自然語言情感分析、文字生成、時間序列、智能物聯網等。不同于許多同類的書籍,這本書選擇了 Keras 作為編程軟件,強調簡單、快速的模型設計,而不去糾纏底層代碼,使得內容相當易于理解。讀者可以在 CNTK、 TensorFlow和 Theano 的后臺之間隨意切換,非常靈活。即使你有朝一日需要用更低層的建模環境來解決更復雜的問題,相信也會保留從 Keras 中學來的高度抽象的角度審視你要解決的問題,讓你事半功倍。 這一波深度學習的大潮,必將帶來一個新的信息革命。每一次如此巨大的變革,都將淘汰很多效率低下的工作,并發展出新興的職業。在一個如此激動人心的年代,愿這本書帶著讀者啟航! 張察 博士 CNTK 主要作者之一,美國微軟總部首席研究員 2017 年 6 月于美國西雅圖 前言 2006 年,機器學習領域迎來了重要的轉折點。加拿大多倫多大學教授、機器學習領域泰斗 Geoffrey Hinton 和他的學生 Ruslan Salakhutdinov 在《科學》上發表了一篇關于深度置信網絡 (Deep Belief Networks) 的論文。從這篇論文的發表開始至今,深度學習有著迅猛的發展。 2009 年,微軟研究院語音識別專家俞棟和鄧力博士與深度學習專家Geoffery Hinton 合作。 2010 年,美國國防部 DARPA 和斯坦福大學、紐約大學和 NEC美國研究院合作深度學習項目。 2011 年微軟宣布基于深度神經網絡的識別系統取得成果并推出產品,徹底改變了語音識別原有的技術框架。從 2012 到 2015 年,深度學習技術在圖像識別領域取得驚人的效果,在 ImageNet 評測上將錯誤率從 26% 一路降到 5%以下,幾乎接近甚至超過人類的水平。這些都直接促進了一系列圍繞深度學習技術的智能產品在市場上的出現,比如微軟的認知服務(Cognitive Services)平臺,谷歌的智能郵件應答和谷歌助手等。 在中國,我們同樣欣喜地看到,基于大數據的機器學習和深度學習算法的大規模應用給互聯網行業帶來的巨大變革:淘寶的推薦算法、微軟的小冰聊天機器人、百度的度秘、滴滴的預估時間和車費、餓了么的智能調度等都應運而生。我們有理由相信,未來的物聯網、無人駕駛等也會挖掘出更多深度學習的實用場景。 深度學習對很多科技行業的從業者來說仍有一些神秘感。雖然像谷歌、微軟等互聯網巨頭開源了諸如 TensorFlow、 CNTK 等深度學習平臺,大幅降低了從業者的門檻,但是如何舉一反三,根據實際問題選擇合適的算法和模型,并不容易。作為本書的作者,我們三位在美國谷歌、微軟等頂尖互聯網科技公司從事多年以機器學習和深度學習為基礎的人工智能項目研發,有著豐富的實踐經驗,深感有必要撰寫一本深入淺出的深度學習書籍,分享我們對深度學習的理解和想法,并幫助同行和感興趣的朋友們快速上手,建立屬于自己的端到端的深度學習模型,從而在大數據、深度學習的浪潮中有著更好的職業發展。我們希望本書能起到拋磚引玉的作用,使讀者對深度學習產生更多的興趣,并把深度學習作為一個必備的分析技能。 在本書中,我們選擇 Keras 這個流行的深度學習建模框架來講解深度學習話題。這主要從三方面的考慮。首先, Keras 包括了各種常用的深度學習模塊,可以應用于絕大部分業務環境。其次,從原理上講,它是高度抽象的深度學習編程環境,簡單易學。 Keras底層是調用 CNTK、 TensorFlow 或 Theano 執行計算的。最后,作為應用領域的從業者,我們需要關注的是如何把一個商業或者工程問題轉化成合適的模型,如何準備數據和分析模型的好壞以及如何解釋模型的結果。 Keras 非常適合這樣的場景,讓使用者脫離具體的矩陣計算和求導,而將重心轉移到業務邏輯上。 本書是目前國內不多的系統講解使用 Keras 這個深度學習框架進行神經網絡建模的實用書籍,非常適合數據科學家、機器學習工程師、人工智能應用工程師和工作中需要進行預測建模以及進行回歸分析的從業者。本書也適合對深度學習有興趣的不同背景的從業者、學生和老師。 本書分成 10 章,系統性地講解深度學習基本知識、使用 Keras 建模過程和應用,并提供詳細代碼,使讀者可以花最少的時間把核心建模知識學到手。其中第 1 章介紹搭建深度學習環境,是整本書的基礎。第 2 章介紹如何用網絡爬蟲技術收集數據并使用ElasticSearch 存儲數據。因為在很多應用中,數據需要讀者自行從網上爬取和并加以處理和存儲。第 3 章介紹深度學習模型的基本概念。第 4 章介紹深度學習框架 Keras 的用法。第 5~9 章,是 5 個深度學習的經典應用。我們會依次介紹深度學習在推薦系統、圖像識別、自然語言處理、文字生成和時間序列的具體應用。在介紹這些應用的過程中會穿插各種深度學習模型和代碼,并和讀者分享我們對于這些模型的原理和應用場景的體會。最后,我們拋磚引玉地把物聯網的概念提出來。我們相信,物聯網和深度學習的結合會爆發出巨大的能量和價值。 限于篇幅,我們無法涉及深度學習的方方面面,只能盡自己所能,和大家分享盡可能多的體會、經驗和易于上手的代碼。 在寫書的過程中,我們得到了大量的幫助和指導。微軟 CNTK 的作者、國際頂尖深度學習專家俞棟博士和張察博士為本書作序,并給予我們許多支持和鼓勵。微軟研究院的研究員郭彥東博士和高級工程師湯成對本書的部分章節提出了審閱意見。電子工業出版社的張慧敏、葛娜和王靜老師,對書籍的出版和編輯付出了極大努力,才使這本書得以如期問世。在此一并感謝。 最后,我們三位作者希望本書能為中國的深度學習和人工智能的普及,為廣大從業者提供有價值的實踐經驗和快速上手貢獻我們的微薄之力。 謝梁,美國微軟總部首席數據科學家 魯穎,谷歌總部數據科學技術專家 勞虹嵐,美國微軟總部微軟研究院研究工程師 2017 年 6 月于美國西雅圖和硅谷 |