深度卷積網絡:原理與實踐( 簡體 字) | |
作者:彭博 著 | 類別:1. -> 程式設計 -> 深度學習 |
出版社:機械工業出版社 | 3dWoo書號: 48973 詢問書籍請說出此書號! 有庫存 NT售價: 645 元 |
出版日:4/1/2018 | |
頁數:308 | |
光碟數:0 | |
站長推薦: | |
印刷:全彩印刷 | 語系: ( 簡體 字 ) |
ISBN:9787111596653 | 加入購物車 │加到我的最愛 (請先登入會員) |
(簡體書上所述之下載連結耗時費功, 恕不適用在台灣, 若讀者需要請自行嘗試, 恕不保證, 繁體書的下載亦請直接連絡出版社) | |
前言
引子·神之一手1 第1章 走進深度學習的世界5 1.1 從人工智能到深度學習5 1.2 深度神經網絡的威力:以AlphaGo為例8 1.2.1 策略網絡簡述9 1.2.2 泛化:看棋譜就能學會下圍棋11 1.2.3 擬合與過擬合11 1.2.4 深度神經網絡的速度優勢12 1.3 深度神經網絡的應用大觀13 1.3.1 圖像分類問題的難度所在13 1.3.2 用深度神經網絡理解圖像15 1.3.3 AlphaGo中的深度神經網絡17 1.3.4 自動發現規律:從數據A到答案B17 1.3.5 深度神經網絡的更多應用18 1.3.6 從分而治之,到端對端學習24 1.4 親自體驗深度神經網絡25 1.4.1 TensorFlow游樂場25 1.4.2 MNIST數字識別實例:LeNet-527 1.4.3 策略網絡實例28 1.4.4 簡筆畫:Sketch-RNN29 1.4.5 用GAN生成動漫頭像30 1.5 深度神經網絡的基本特點31 1.5.1 兩大助力:算力、數據31 1.5.2 從特征工程,到逐層抽象32 1.5.3 深度神經網絡學會的是什么35 1.6 人工智能與神經網絡的歷史36 1.6.1 人工智能的兩大學派:邏輯與統計37 1.6.2 人工智能與神經網絡的現代編年史37 第2章 深度卷積網絡:第一課42 2.1 神經元:運作和訓練43 2.1.1 運作:從實例說明43 2.1.2 訓練:梯度下降的思想44 2.1.3 訓練:梯度下降的公式46 2.1.4 訓練:找大小問題的初次嘗試48 2.1.5 訓練:Excel的實現 50 2.1.6 重要知識:批大小、mini-batch、epoch51 2.2 深度學習框架MXNet:安裝和使用51 2.2.1 計算圖:動態與靜態52 2.2.2 安裝MXNet:準備工作53 2.2.3 在Windows下安裝MXNet54 2.2.4 在macOS下安裝MXNet:CPU版57 2.2.5 在macOS下安裝MXNet:GPU版58 2.2.6 在Linux下安裝MXNet59 2.2.7 安裝Jupyter演算本59 2.2.8 實例:在MXNet訓練神經元并體驗調參60 2.3 神經網絡:運作和訓練63 2.3.1 運作:前向傳播,與非線性激活的必要性63 2.3.2 運作:非線性激活64 2.3.3 訓練:梯度的計算公式66 2.3.4 訓練:實例69 2.3.5 訓練:Excel的實現70 2.3.6 訓練:反向傳播71 2.3.7 重要知識:梯度消失,梯度爆炸72 2.3.8 從幾何觀點理解神經網絡72 2.3.9 訓練:MXNet的實現73 第3章 深度卷積網絡:第二課 77 3.1 重要理論知識77 3.1.1 數據:訓練集、驗證集、測試集77 3.1.2 訓練:典型過程79 3.1.3 有監督學習:回歸、分類、標簽、排序、Seq2Seq79 3.1.4 無監督學習:聚類、降維、自編碼、生成模型、推薦81 3.1.5 訓練的障礙:欠擬合、過擬合82 3.1.6 訓練的細節:局部極值點、鞍點、梯度下降算法83 3.2 神經網絡的正則化85 3.2.1 修改損失函數:L2和L1正則化85 3.2.2 修改網絡架構:Dropout正則化86 3.2.3 更多技巧:集合、多任務學習、參數共享等86 3.2.4 數據增強與預處理88 3.3 神經網絡的調參89 3.3.1 學習速率89 3.3.2 批大小90 3.3.3 初始化方法92 3.3.4 調參實戰:重返TensorFlow游樂場93 3.4 實例:MNIST問題95 3.4.1 重要知識:SoftMax層、交叉熵損失96 3.4.2 訓練代碼與網絡架構98 3.4.3 超越MNIST:最新的Fashion-MNIST數據集101 3.5 網絡訓練的常見bug和檢查方法103 3.6 網絡訓練性能的提高104 第4章 深度卷積網絡:第三課106 4.1 卷積網絡:從實例說明106 4.1.1 實例:找橘貓,最原始的方法107 4.1.2 實例:找橘貓,更好的方法108 4.1.3 實例:卷積和池化108 4.1.4 卷積網絡的運作111 4.2 運作:AlphaGo眼中的棋盤112 4.2.1 棋盤的編碼113 4.2.2 最簡化的策略網絡115 4.2.3 最簡化的策略網絡:特征層和卷積后的結果116 4.3 卷積神經網絡:進一步了解122 4.3.1 卷積核、濾波器與參數量的計算122 4.3.2 運作和訓練的計算123 4.3.3 外襯與步長124 4.3.4 縮小圖像:池化與全局池化126 4.3.5 放大圖像:轉置卷積127 4.4 實例:用卷積網絡解決MNIST問題128 4.4.1 網絡架構的定義與參數量的計算129 4.4.2 訓練MNIST網絡130 4.4.3 在MXNet運行訓練后的網絡131 4.4.4 調參實例133 4.4.5 在Fashion-MNIST數據集的結果133 4.5 MXNet的使用技巧134 4.5.1 快速定義多個層134 4.5.2 網絡的保存與讀取135 4.5.3 圖像數據的打包和載入135 4.5.4 深入MXNet訓練細節136 4.5.5 在瀏覽器和移動設備運行神經網絡139 第5章 深度卷積網絡:第四課141 5.1 經典的深度卷積網絡架構142 5.1.1 深度學習革命的揭幕者:AlexNet142 5.1.2 常用架構:VGG系列145 5.1.3 去掉全連接層:DarkNet系列147 5.2 網絡的可視化:以AlexNet為例150 5.3 遷移學習:精調、預訓練等155 5.4 架構技巧:基本技巧157 5.4.1 感受野與縮小卷積核157 5.4.2 使用1×1卷積核158 5.4.3 批規范化160 5.4.4 實例:回顧Fashion-MNIST問題161 5.4.5 實例:訓練CIFAR-10模型164 5.5 架構技巧:殘差網絡與通道組合169 5.5.1 殘差網絡:ResNet的思想169 5.5.2 殘差網絡:架構細節171 5.5.3 殘差網絡:來自于集合的理解與隨機深度172 5.5.4 殘差網絡:MXNet實現,以策略網絡為例173 5.5.5 通道組合:Inception模組174 5.5.6 通道組合:XCeption架構,深度可分卷積177 5.5.7 實例:再次訓練CIFAR-10模型178 5.6 架構技巧:更多進展181 5.6.1 殘差網絡進展:ResNext、Pyramid Net、DenseNet181 5.6.2 壓縮網絡:SqueezeNet、MobileNet、ShuffleNet183 5.6.3 卷積核的變形188 5.7 物體檢測與圖像分割189 5.7.1 YOLO v1:實時的物體檢測網絡190 5.7.2 YOLO v2:更快、更強192 5.7.3 Faster R-CNN:準確的物體檢測網絡194 5.7.4 Mask-RCNN:準確的圖像分割網絡195 5.8 風格轉移197 第6章 AlphaGo架構綜述200 6.1 從AlphaGo到AlphaZero201 6.1.1 AlphaGo v13與AlphaGo v18201 6.1.2 AlphaGo Master與AlphaGoZero202 6.1.3 解決一切棋類:AlphaZero204 6.2 AlphaGo的對弈過程205 6.2.1 策略網絡205 6.2.2 來自人類的思路208 6.2.3 蒙特卡洛樹搜索與估值問題209 6.2.4 從快速走子估值到價值網絡211 6.2.5 從搜索樹看策略與價值網絡的作用213 6.2.6 策略與價值網絡的運作實例215 6.3 AlphaGo中的深度卷積網絡架構217 6.4 AlphaGo的訓練過程219 6.4.1 原版AlphaGo:策略梯度方法219 6.4.2 新版AlphaGo:從蒙特卡洛樹搜索學習220 6.5 AlphaGo方法的推廣221 第7章 訓練策略網絡與實戰224 7.1 訓練前的準備工作224 7.1.1 棋譜數據225 7.1.2 落子模擬226 7.1.3 終局判斷226 7.2 訓練代碼227 7.2.1 主程序:train.py227 7.2.2 訓練參數:config.py233 7.2.3 輔助函數:util.py234 7.2.4 棋盤隨機變換:symmetry.py235 7.2.5 訓練實例236 7.3 對弈實戰237 第8章 生成式對抗網絡:GAN240 8.1 GAN的起源故事240 8.2 GAN的基本原理242 8.2.1 生成模型:從圖像到編碼,從編碼到圖像242 8.2.2 GAN的基本效果243 8.2.3 GAN的訓練方法246 8.3 實例:DCGAN及訓練過程248 8.3.1 網絡架構248 8.3.2 訓練代碼249 8.4 GAN的更多架構和應用255 8.4.1 圖像轉移:CycleGAN系列255 8.4.2 生成高分辨率圖像:nVidia的改進260 8.4.3 自動提取信息:InfoGAN261 8.4.4 更多應用264 8.5 更多的生成模型方法266 8.5.1 自編碼器:從AE到VAE266 8.5.2 逐點生成:PixelRNN和PixelCNN系列267 8.5.3 將VAE和GAN結合:CVAE-GAN268 第9章 通向智能之秘272 9.1 計算機視覺的難度272 9.2 對抗樣本,與深度網絡的特點276 9.3 人工智能的挑戰與機遇278 9.3.1 棋類游戲中的電腦陷阱278 9.3.2 偏見、過濾氣泡與道德困境280 9.3.3 語言的迷局283 9.3.4 強化學習、機器人與目標函數286 9.3.5 創造力、審美與意識之謎290 9.3.6 預測學習:機器學習的前沿293 9.4 深度學習的理論發展295 9.4.1 超越反向傳播:預測梯度與生物模型295 9.4.2 超越神經網絡:Capsule與gcForest297 9.4.3 泛化問題300 9.5 深度學習與人工智能的展望304 9.5.1 工程層面304 9.5.2 理論層面304 9.5.3 應用層面305 跋 人工智能與我們的未來306 附錄 深度學習與AI的網絡資源310 深度卷積網絡(DCNN)是目前十分流行的深度神經網絡架構,它構造清晰直觀,效果引人入勝,在圖像、視頻、語音、語言領域都有廣泛應用。
本書以AI領域最新的技術研究和實踐為基礎,從技術理論、工作原理、實踐方法、架構技巧、訓練方法、技術前瞻等6個維度對深度卷積網絡進行了系統、深入、詳細的講解。 以實戰為導向,深入分析AlphaGo和GAN的實現過程、技術原理、訓練方法和應用細節,為讀者依次揭開神經網絡、卷積網絡和深度卷積網絡的神秘面紗,讓讀者了解AI的“思考過程”,以及與人類思維的相同和不同之處。 本書在邏輯上分為3個部分: 第一部分 綜述篇(第1、6、9章) 這3章不需要讀者具備編程和數學基礎,對深度學習和神經網絡的基礎知識、AlphaGo的架構設計和工作原理,以及深度學習和人工智能未來的技術發展趨勢進行了宏觀介紹。 第二部分 深度卷積網絡篇(第2、3、4、5章) 結合作者的實際工作經驗和案例代碼,對深度卷積網絡的技術理論、工作原理、實踐方法、架構技巧和訓練方法做了系統而深入的講解。 第三部分 實戰篇(第7、8章) 詳細分析了AlphaGo和GAN的技術原理、訓練方法和應用細節,包括詳細的代碼分析和大量GAN的精彩實例。 本書的案例代碼在GitHub上提供下載,同時讀者可在GitHub上與作者交流與本書相關的問題。 為何寫作本書
自2012年以來,隨著深度學習(Deep Learning,DL)的快速發展,人工智能(Artificial Intelligence,AI)取得了長足的進展。\ 從語音助手、人臉識別、照片美化,到自動駕駛、醫療診斷、機器翻譯,基于深度神經網絡(Deep Neural Network,DNN)的新一代人工智能,已在各個領域進入我們的日常生活。許多學者認為,人工智能將開啟第四次工業革命,并對人類的未來產生深遠影響。 例如,通過Mask R-CNN深度神經網絡,電腦可快速自動識別出圖像中的各個物體,用色彩和方框標記。這對于自動駕駛和機器人技術有重要意義,也是傳統AI方法難以實現的。 值此變革之際,我們理應跟上時代的步伐,增進對DL與AI的了解。本書的目標是: 如果讀者沒有編程和數學基礎,也能在閱讀后體會到深度神經網絡的奧妙。 如果讀者有一定基礎,就可學會用DL的方法解決實際問題,為從事相關的工作和研究做好準備。 具體而言,本書選取深度卷積網絡(Deep Convolutional Neural Network,DCNN)作為切入點,這是目前最流行的深度神經網絡架構,其構造直觀易懂,效果引人入勝,在圖像、視頻、語音、語言領域都有廣泛應用。 我們還將結合多個實例進行講述,讓讀者更深入理解深度神經網絡的運作。說起深度神經網絡的實例,廣為人知的莫過于由Google DeepMind研發的AlphaGo 在2016年3月,AlphaGo以4:1戰勝韓國頂尖棋手李世?,讓AI成為了目前最熱門的話題之一。 在2017年5月,新版AlphaGo以3:0戰勝當今世界圍棋第一人—中國的柯潔。所有棋手都認同它已全面勝過人類,但它仍需要人類棋譜作為訓練的前期輸入。 在2017年10月,名為AlphaGo Zero的最新版AlphaGo已能完全脫離人類棋譜,從零開始,純粹依靠自我探索,自我對弈,就能實現超越此前所有版本的棋力。 如下圖所示,藍色的20-blocks版AlphaGo Zero,最初的棋力還不如人類的初學者,但它在24小時內就能趕上紅色的學習人類棋譜的AlphaGo,并在40小時內超越與李世?對戰的AlphaGo。 在2017年12月,DeepMind還將AlphaGo Zero的方法用于國際象棋、日本將棋,稱為AlphaZero。它僅需幾個小時的訓練,就打敗了此前世界最強的程序,這證明AlphaGo方法的通用性極強。 AlphaGo的核心是深度卷積網絡。深度神經網絡的強大,關鍵在于能模擬人類的直覺。AlphaGo的強大,關鍵在于通過深度卷積網絡,成功模擬了人類的棋感。 那么,深度卷積網絡是如何學會下圍棋的?AlphaGo真的理解圍棋嗎?AlphaGo與人類下棋的思維有怎樣的相同和不同之處?我們將在第6章闡述AlphaGo的運作,并在第7章親手訓練AlphaGo的策略網絡(policy network)。如下圖所示,棋盤中的標記1到9,代表此時策略網絡對于下一手的前9位推薦。 深度神經網絡的威力,還不僅止于此。近年來,深度學習中熱門的話題是一種新的深度神經網絡范式:生成式對抗網絡(Generative Adversarial Networks,GAN)。它同樣基于深度卷積網絡,我們會在第8章講述。 GAN試圖模擬人類的更神秘之處:創造力和想象力,如自動作畫、自動作曲,甚至自動發現治療癌癥的藥物結構。例如,通過StackGAN網絡,電腦可根據人提供的文字描述,自動繪制出無窮無盡的符合描述的圖像。 目前GAN的結果還不完美,但已有許多業界人士開始思考:離AI在所有領域超越人類還有多遠?AI會造福于人類,抑或會取代甚至毀滅人類?本書的第9章將討論這一話題,并介紹當前AI方法的強項與缺陷,展望未來的發展。 總而言之,本書以AlphaGo與GAN為主例,再配合大量其他實例,為讀者揭開深度卷積網絡的面紗,讓我們深入逐層認識AI的“思考過程”,包括與人類思維的相同和不同之處,體驗AI眼中的世界。這會是一段奇妙的旅途,希望本書能成為讀者探索深度學習世界的助手。 憾于篇幅所限,本書的重點會是深度卷積網絡,尤其是它在圖像的應用。對于深度學習涉及的其他領域,如循環神經網絡(Recurrent Neural Network,RNN)、深度強化學習(Deep Reinforcement Learning,DRL)等等,希望能在未來再為讀者講述。 深度學習的發展日新月異,筆者只是略知皮毛,書中難免有錯漏之處,懇請讀者不吝指正。 本書的特點 市面已有不少介紹深度學習與深度神經網絡的書籍,但多為編著或譯文。本書的特點是: 敘述與代碼范例皆會結合筆者的實際經驗,如調參經驗和網絡架構經驗,讓讀者掌握真正具有實用性的技巧。 包括深度卷積網絡和AI的重要最新發展,如DenseNet、XCeption、各種GAN變種、預測學習(predictive learning)、Capsule等。書中的許多例子都來自于2017年的最新研究。 對于重要的理論知識,如反向傳播(Back Propagation,BP)的推導,本書不會回避,會仔細說明。這里的細節是常見的面試題,如果讀者還沒有理解清楚,閱讀本書就對了。 本書的行文力求通俗易懂,不會過于抽象。如果讀者不熟悉數學,可跳過書中數學推導的部分,因為目前的深度學習框架已很完善,即使不了解數學,同樣可以成功訓練和使用。 本書讀者對象 對AI、深度學習感興趣的開發者。 希望通過深度學習方法,解決實際問題的工程師。 希望從事AI、深度學習相關工作的求職者。 對AI、深度學習感興趣的院校師生。 對AI感興趣,希望了解深度學習技術的愛好者。 如何閱讀本書 本書正文邏輯上可分為3部分,共9章: 綜述篇(第1、6、9章)。這三章不需要編程和數學基礎,如果讀者尚不熟悉相關技術,推薦優先閱讀。它們分別介紹了深度學習的基本概念、AlphaGo的架構、深度學習的問題和未來展望。 深度卷積網絡篇(第2~5章)。這四章結合理論與實際代碼,由淺入深,從神經網絡,到卷積網絡,再到深度卷積網絡,讓讀者掌握深度卷積網絡的基礎知識、實踐技巧和最新發展,是本書的關鍵所在,值得仔細閱讀。 對于會編程的讀者,在閱讀后可寫出完整的采用現代架構的深度卷積網絡程序,以及學會在自己的數據集上進行訓練,解決實際問題。 對于不會編程的讀者,我們也會講述如何用Excel實現簡單的神經網絡模型。 實戰篇(第7和8章)。這兩章分別講述AlphaGo和GAN的訓練和應用細節,包括詳細的代碼分析。其中第8章還包括大量GAN的精彩實例,無須技術基礎也能體會。 本書附錄部分包括深度學習的網絡資源列表。 本書內容的一些選擇: 市面上有許多深度學習編程框架,如TensorFlow、Caffe等。本書選擇MXNet,因其訓練速度快、占用資源少,且使用方便、架構清晰、易于二次開發。 在編程語言方面,目前深度學習最流行的語言是Python,本書也會選用Python。 有時我們需要討論理論,這就離不開數學。本書數學符號的細節如下: log都代表自然對數,即以e=2.71828…為底的對數。有的書籍會將此寫成ln。 MSE損失采用(X-Y)2定義。有的書籍會采用(X-Y)2定義。如果讀者還不知道MSE損失,可閱讀第2章。 致謝 感謝出版社楊福川編輯和小藝編輯對本書寫作和審校的大力支持。感謝設計師PiPi對本書插畫的繪制。感謝家人和朋友對書稿的校對和建議。感謝知乎網友五柳希安、王佑、Simon對本書內容的建議。 |