描述
內容簡介
~ 2022 開發者唯一指定 PyTorch 祕笈!~
作者品質保證 🎖多次登上博客來、天瓏書局資訊類書籍暢銷排行榜
入門深度學習、實作各種演算法最佳教材! 🔸以【統計/數學】為出發點,介紹深度學習必備的數理基礎
從基礎理解到 PyTorch 獨立開發,一氣呵成! 本書專為 AI 開發者奠定扎實基礎,從數學統計 ▶️ 自動微分 ▶️ 梯度下降 ▶️ 神經層,由淺入深介紹深度學習的原理,並透過大量 PyTorch 框架應用實作各種演算法: ● CNN (卷積神經網路) |
作者簡介
陳昭明
●曾任職於 IBM、工研院等全球知名企業 |
目錄
第一篇/深度學習導論
第 1 章 深度學習 (Deep Learning) 導論 1-1人工智慧的三波浪潮 1-2 AI的學習地圖 1-3 TensorFlow vs. PyTorch 1-4機器學習開發流程 1-5開發環境安裝 1-6 免費雲端環境開通
第 2 章 神經網路 (Neural Network) 原理 2-1必備的數學與統計知識 2-2萬般皆自『迴歸』起 2-3神經網路
第二篇/PyTorch 基礎篇 第 3 章 PyTorch 學習路徑與主要功能 3-1 PyTorch學習路徑 3-2張量運算 3-3自動微分(Automatic Differentiation) 3-4 神經層(Neural Network Layer) 3-5 總結
第 4 章 神經網路實作 4-1撰寫第一支神經網路程式 4-2 模型種類 4-3 神經層(Layer) 4-4 激勵函數(Activation Functions) 4-5 損失函數(Loss Functions) 4-6 優化器(Optimizer) 4-7 效能衡量指標(Performance Metrics) 4-8 超參數調校(Hyperparameter Tuning)
第 5 章 PyTorch 進階功能 5-1 資料集(Dataset)及資料載入器(DataLoader) 5-2 TensorBoard 5-3 模型佈署(Deploy)與TorchServe
第 6 章 卷積神經網路 (Convolutional Neural Network) 6-1卷積神經網路簡介 6-2卷積(Convolution) 6-3各式卷積 6-4池化層(Pooling Layer) 6-5 CNN模型實作 6-6 影像資料增補(Data Augmentation) 6-7 可解釋的AI(eXplainable AI, XAI)
第 7 章 預先訓練的模型 (Pre-trained Model) 7-1 預先訓練模型的簡介 7-2 採用完整的模型 7-3 採用部分模型 7-4 轉移學習(Transfer Learning) 7-5 Batch Normalization說明
第三篇/進階的影像應用 第 8 章 物件偵測 (Object Detection) 8-1 圖像辨識模型的發展 8-2 滑動視窗(Sliding Window) 8-3 方向梯度直方圖(HOG) 8-4 R-CNN物件偵測 8-5 R-CNN改良 8-6 YOLO演算法簡介 8-7 YOLO測試 8-8 YOLO環境建置 8-9 YOLO模型訓練 8-10 YOLOv5模型訓練 8-11 SSD演算法 8-12 物件偵測的效能衡量指標 8-13 總結
第 9 章 進階的影像應用 9-1 語義分割(Semantic Segmentation)介紹 9-2 自動編碼器(AutoEncoder) 9-3 語義分割(Semantic segmentation)實作 9-4 實例分割(Instance Segmentation) 9-5 風格轉換(Style Transfer) --人人都可以是畢卡索 9-6 臉部辨識(Facial Recognition) 9-7 光學文字辨識(OCR) 9-8 車牌辨識(ANPR) 9-9 卷積神經網路的缺點
第 10 章 生成對抗網路 (GAN) 10-1 生成對抗網路介紹 10-2 生成對抗網路種類 10-3 DCGAN 10-4 Progressive GAN 10-5 Conditional GAN 10-6 Pix2Pix 10-7 CycleGAN 10-8 GAN挑戰 10-9 深度偽造(Deepfake)
第四篇/自然語言處理 第 11 章 自然語言處理的介紹 11-1 詞袋(BOW)與TF-IDF 11-2 詞彙前置處理 11-3 詞向量(Word2Vec) 11-4 GloVe模型 11-5 中文處理 11-6 spaCy套件
第 12 章 自然語言處理的演算法 12-1 循環神經網路(RNN) 12-2 PyTorch 內建文本資料集 12-3 長短期記憶網路(LSTM) 12-4自訂資料集 12-5 時間序列預測 12-6 Gate Recurrent Unit (GRU) 12-7 股價預測 12-8 注意力機制(Attention Mechanism) 12-9 Transformer架構 12-10 BERT 12-11 Transformers套件 12-12 總結
第 13 章 聊天機器人 (ChatBot) 13-1 ChatBot類別 13-2 ChatBot設計 13-3 ChatBot實作 13-4 ChatBot工具套件 13-5 Dialogflow實作 13-6 結語
第 14 章 語音辨識 14-1語音基本認識 14-2語音前置處理 14-3 PyTorch語音前置處理 14-4 PyTorch內建語音資料集 14-5語音深度學習應用 14-6自動語音辨識(Automatic Speech Recognition) 14-7自動語音辨識實作 14-8 結語
第五篇/強化學習 (Reinforcement Learning) 第 15 章 強化學習 15-1 強化學習的基礎 15-2 強化學習模型 15-3 簡單的強化學習架構 15-4 Gym套件 15-5 Gym擴充功能 15-6 動態規劃(Dynamic Programming) 15-7 值循環(Value Iteration) 15-8 蒙地卡羅(Monte Carlo) 15-9 時序差分(Temporal Difference) 15-10 井字遊戲 15-11 連續型狀態變數與Deep Q-Learning演算法 15-12 Actor Critic演算法 15-13 實際應用案例 15-14 其他演算法 15-15 結論
第六篇/圖神經網路 (GNN) 第 16 章 圖神經網路 (GNN) 16-1 圖形理論(Graph Theory) 16-2 PyTorch Geometric(PyG) 16-3 圖神經網路(GNN) 16-4 結論
|
序
為何撰寫本書
從事機器學習教育訓練已屆五年,其間也在『IT邦幫忙』撰寫上百篇的文章(https://ithelp.ithome.com.tw/users/20001976/articles),從學員及讀者的回饋獲得許多寶貴意見,期望能將整個歷程集結成冊,同時,相關領域的進展也在飛速變化,過往的文章內容需要翻新,因此藉機再重整思緒,想一想如何能將演算法的原理解釋得更簡易清晰,協助讀者跨入AI的門檻,另外,也避免流於空談,盡量增加應用範例,希望能達到即學即用,不要有過多理論的探討。 AI是一個將資料轉化為知識的過程,演算法就是過程中的生產設備,最後產出物是模型,再將模型植入各種硬體裝置,例如電腦、手機、智慧音箱、自駕車、醫療診斷儀器、…等,這些裝置就擁有特殊專長的智慧,再進一步整合各項技術就構建出智慧製造、智慧金融、智慧交通、智慧醫療、智慧城市、智慧家庭、…等應用系統。AI的應用領域如此的廣闊,個人精力有限,當然不可能具備十八般武藝,樣樣精通,惟有從基礎紮根,再擴及有興趣的領域,因此,筆者撰寫這本書的初衷,非常單純,就是希望讀者在紮根的過程中,貢獻一點微薄的力量。
PyTorch vs. TensorFlow 深度學習的初學者常會問『應該選擇PyTorch或 TensorFlow套件』,依筆者個人看法,PyTorch、TensorFlow好比倚天劍與屠龍刀,各有擅場,兩個套件的發展方向有所不同,例如在偵錯方面,PyTorch比較容易,但TensorFlow/Keras建模、訓練、預測都只要一行程式,另外,物件偵測主流演算法YOLO,第四版以TensorFlow開發,第五版則以PyTorch開發,若我們只懂TensorFlow,那就無法使用最新版了。 PyTorch與TensorFlow基本設計概念是相通的,可以採用相同的approach,同時學會兩個套件,本書主要以PyTorch開發,另一本姊妹作『深度學習--最佳入門邁向AI專題實戰』,則以TensorFlow為主,兩相對照,可以發現要兼顧一點也不難,還可以比較彼此的優劣。
本書主要的特點 1. 由於筆者身為統計人,希望能『以統計/數學為出發點』,介紹深度學習必備的數理基礎,但又不希望內文有太多數學公式的推導,讓離開校園已久的在職者看到一堆數學符號就心生恐懼,因此,嘗試以『程式設計取代定理證明』,縮短學習歷程,增進學習樂趣。 2. PyTorch版本變動快速,幾乎每一、兩個月就更新一個小版本,並且不斷的推出新擴充模組,本書期望對PyTorch主體架構作完整性的介紹外,也儘可能對最新的模組功能作深入探討。 3. 各種演算法介紹以理解為主,輔以大量圖表說明,摒棄長篇大論。 4. 完整的範例程式及各種演算法的延伸應用,以實用為要,希望能觸發讀者靈感,能在專案或產品內應用。 5. 介紹日益普及的演算法與相關套件的使用,例如YOLO(物件偵測)、GAN(生成對抗網路)/DeepFake(深度偽造)、OCR(辨識圖像中的文字)、臉部辨識、BERT/Transformer、聊天機器人(ChatBot)、強化學習(Reinforcement Learning)、自動語音辨識(ASR) 、知識圖譜(Knowledge Graph)等。
目標對象 1. 深度學習的入門者:必須熟悉Python程式語言及機器學習基本概念。 2. 資料工程師:以應用系統開發為職志,希望能應用各種演算法,進行實作。 3. 資訊工作者:希望能擴展深度學習知識領域。 4. 從事其他領域的工作,希望能一窺深度學習奧秘者。
閱讀重點 1. 第一章介紹AI的發展趨勢,鑑古知今,瞭解前兩波AI失敗的原因,比較第三波發展的差異性。 2. 第二章介紹深度學習必備的統計/數學基礎,徹底理解神經網路求解的方法(梯度下降法)與原理。 3. 第三章介紹PyTorch基礎功能,包括張量(Tensor)運算、自動微分、神經層及神經網路模型。 4. 第四章開始實作,依照機器學習10項流程,以PyTorch撰寫完整的範例,包括各式的損失函數、優化器、效能衡量指標。 5. 第五章介紹PyTorch進階功能,包括各種工具,如資料集(Dataset)及資料載入器(DataLoader)、前置處理、TensorBoard以及TorchServe佈署工具,包括Web、桌面程式。 6. 第六~十章介紹圖像/視訊的演算法及各式應用。 7. 第十一~十四章介紹自然語言處理、語音及各式應用。 8. 第十五章介紹AlphaGo的基礎 -- 『強化學習』演算法。 9. 第十六章介紹 圖神經網路(Graph Neural Network, GNN)。
本書範例程式碼全部收錄在 https://github.com/mc6666/PyTorch_Book 。
致謝 因個人能力有限,還是有許多議題成為遺珠之憾,仍待後續的努力,過程中要感謝冠瑀在編輯/校正/封面構想的盡心協助,也感謝深智出版社的大力支援,使本書得以順利出版,最後要謝謝家人的默默支持。
內容如有疏漏、謬誤或有其他建議,歡迎來信指教(mkclearn@gmail.com)。
|