~ 2022 開發者唯一指定 PyTorch 祕笈!~深度學習【必備數學與統計原理】✕【圖表說明】✕【PyTorch 實際應用】
★ 作者品質保證 ★
經過眾多專家與學者試閱昭明老師著作皆給【5 顆星】滿分評價!
~ 從基礎理解到 PyTorch 獨立開發,一氣呵成 ~
本書專為 AI 開發者奠定扎實基礎,從數學統計 ► 自動微分 ► 梯度下降 ► 神經層,由淺入深介紹深度學習的原理,並透過大量 PyTorch 框架應用實作各種演算法:
● CNN (卷積神經網路)
● YOLO (物件偵測)
● GAN (生成對抗網路)
● DeepFake (深度偽造)
● OCR (光學文字辨識)
● ANPR (車牌辨識)
● ASR (自動語音辨識)
● BERT / Transformer
● 臉部辨識
● Knowledge Graph (知識圖譜)
● NLP (自然語言處理)
● ChatBot
● RL (強化學習)
● XAI (可解釋的 AI)
本書特色入門深度學習、實作各種演算法最佳教材!
★以【統計/數學】為出發點,介紹深度學習必備的數理基礎
★以【程式設計取代定理證明】,讓離開校園已久的在職者不會看到一堆數學符號就心生恐懼,縮短學習歷程,增進學習樂趣
★摒棄長篇大論,輔以【大量圖表說明】介紹各種演算法
★【完整的範例程式】及【各種演算法的延伸應用】!直接可在實際場域應用。
★介紹日益普及的【演算法與相關套件】的使用
★介紹 PyTorch 最新版本功能
★與另一本姊妹作《深度學習–最佳入門邁向 AI 專題實戰》搭配,可同時學會 PyTorch 與 TensorFlow
作者簡介:
陳昭明
●曾任職於 IBM、工研院等全球知名企業
●IT 邦幫忙 2018 年 AI 組【冠軍】
●多年 AI 課程講授經驗
作者序
為何撰寫本書
從事機器學習教育訓練已屆五年,其間也在『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)。
為何撰寫本書
從事機器學習教育訓練已屆五年,其間也在『IT邦幫忙』撰寫上百篇的文章(https://ithelp.ithome.com.tw/users/20001976/articles),從學員及讀者的回饋獲得許多寶貴意見,期望能將整個歷程集結成冊,同時,相關領域的進展也在飛速變化,過往的文章內容需要翻新,因此藉機再重整思緒,想一想如何能將演算法的原理解釋得更簡易清晰,協助讀者跨入AI的門檻,另外,也避免流於空談,盡量增加應用範例,希望能達到即學即用,不要有過多理論的探討。
AI是一個將資料轉化為知識的過程,演算法就是過程中的生產設備,最後產出物是...
目錄
第一篇/深度學習導論
第 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 結論
第一篇/深度學習導論
第 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...