從實踐中理解深度學習,從專案中掌握電腦視覺知識
零數學公式,PyTorch入門的最佳選擇!
本書分為基礎講解和專案實例兩個部分,以程式撰寫為主,理論解析為輔。
在基礎講解部分,本書透過程式設計實驗對深度學習理論進行展示,讓讀者能夠擺脫複雜難懂的數學公式,在程式設計的過程中直觀了解深度學習領域晦澀的原理。介紹scikit-learn和PyTorch兩個函數庫的組成模組,以及每個模組能解決的問題。
在專案實例部分,為了幫助初學者快速了解深度學習中的一些細分領域(如物件辨識、圖型分割、生成對抗網路等)的技術發展現狀,本書對相應領域的經典演算法進行了介紹,並根據經典演算法的想法,針對性地設計了適合初學者學習的實例專案。這些專案去除了演算法中的繁瑣細節,僅保留最基礎的邏輯,力求讓讀者在撰寫程式之前,更進一步地了解任務想法。我們為讀者挑選了很多在業界有實際應用場景的深度學習專案,重點介紹它們的想法以及程式實現。
【本書特點】
.最紮實的Sklearn根基
.最好用的PyTorch+Anaconda+Jupyter實作
.最簡單的實例完勝卷積神經網路
.物件辨識、圖型分割、以圖搜圖
.GAN生成對抗網路產生高清圖片
.ONNX模型全平台部署
【適合讀者群】
.深度學習相關的科學研究工作者
.電腦視覺從業者
.想要了解深度學習技術的程式設計師
.對深度學習感興趣的入門讀者
作者
郭卡
安徽外國語學院計算機講師,省級自然科學基金重點項目「基於大數據與人工智能技術的在線學習評價系統」主持人,《Python 數據爬取技術與實戰手冊》主編,參與多項人工智慧研究項目並發表相關論文兩篇。
戴亮
科大訊飛演算法工程師,GiantPandaCV作者之一,主要研究方向為光學字符識別與語音識別,熱衷於PyTorch技術分享,對深度學習相關技術有深入了解。
目錄
01 機器學習與sklearn
1.1 sklearn環境設定
1.2 資料集
1.3 分類
1.4 回歸
1.5 聚類
1.6 降維
1.7 模型驗證
1.8 模型持久化
1.9 小結
02 傳統影像處理方法
2.1 圖型分類
2.2 物件辨識
2.3 圖型分割
2.4 圖型搜尋
2.5 小結
03 深度學習與PyTorch
3.1 框架介紹
3.2 環境設定
3.3 運算基本單元
3.4 自動求導
3.5 資料載入
3.6 神經網路工具套件
3.7 模型最佳化器optim
3.8 參數初始化init
3.9 模型持久化
3.10 JIT編譯器
3.11 模型遷移ONNX
3.12 資料視覺化TensorBoard
3.13 機器視覺工具套件torchvision
3.14 小結
04 卷積神經網路中的分類與回歸
4.1 卷積神經網路中的分類問題
4.2 卷積神經網路中的回歸問題
4.3 小結
05 物件辨識
5.1 深度學習物件辨識演算法
5.2 資料集建構
5.3 資料載入
5.4 資料標記與損失函數建構
5.5 模型架設與訓練
5.6 模型預測
5.7 小結
06 圖型分割
6.1 資料載入
6.2 模型架設
6.3 模型訓練
6.4 模型展示
6.5 智慧彈幕
6.6 像素級回歸問題:超解析度重建
6.7 小結
07 圖型搜尋
7.1 分類網路的特徵
7.2 深度學習人臉辨識技術
7.3 資料處理
7.4 模型訓練
7.5 圖型搜尋
7.6 小結
08 圖型壓縮
8.1 AutoEncoder
8.2 GAN
8.3小結
09 不定長文字辨識
9.1 循環神經網路概述
9.2 時間序列預測
9.3 CRNN模型
9.4 小結
10 神經網路壓縮與部署
10.1 剪枝
10.2 量化
10.3 混合精度訓練
10.4 深度學習模型的服務端部署
10.5 小結
序/導讀
前言
【深度學習前景】
我們正處在一個「智慧」的年代,比如智慧型手機中的語音幫手、機器翻譯和人臉辨識;戰勝過日本將棋冠軍、西洋棋冠軍,2017年又打敗世界圍棋冠軍的棋類AI;以及即將實用化的無人駕駛智慧汽車。原來被認為不可能實現的事情,人工智慧正一步一步地幫助我們實現。在這個讓人驚喜的世界裡,深度學習技術發揮著非常重要的作用,在很多人沒有注意到的地方,深度學習正在潛移默化地改變著人們的工作和生活。目前,深度學習已經在電腦視覺、自然語言處理和語音辨識等領域得到廣泛的應用,同時正在向教育、醫療、金融及製造等領域滲透,各行各業也都在招攬掌握了深度學習技術的人才。
【心得體會】
筆者具有多年的電腦視覺研究經驗,在這個領域中,深度學習正在逐步取代「人工特徵+機器學習」的傳統視覺演算法。其中的原因主要有兩方面:一方面是深度學習在很多任務上實現了超出傳統演算法的精度,另一方面是傳統視覺演算法中的「人工特徵」需要大量的經驗以及對任務和資料的深刻了解,而深度學習能夠根據資料自行學習如何提取特徵,極大地降低了機器視覺任務的難度。深度學習技術正在快速發展,每年都會出現很多新的優秀演算法,但是這些演算法越來越複雜,對初學者來說,跟進最新的研究成果變得越來越難。我觀察到很多使用者非常關注深度學習,並且對PyTorch具有很大的興趣,可惜相關資料太過晦澀難懂,難以入門。為了讓讀者能夠更進一步地了解深度學習的思維,學會使用深度學習工具,我寫了這本書。
為了方便讀者的學習,本書中的程式有下面3種形式。
‧小型實驗範例採用命令列形式撰寫,每行程式前都會有 ">>>" 標記。
‧配圖較多的實例使用 Jupyter Notebook 撰寫,在每一段程式前都有"In"標記。
‧實例專案採用專案檔案的形式撰寫,章節開頭會列出專案的目錄結構,章節內的程式以檔案為單位進行展示,程式的第一行標注所屬檔案的名稱。