內容提要
《深度學習算法實踐》以一位軟體工程師在工作中遇到的問題為主線,闡述了如何從軟體工程思維向算法思維轉變、如何將任務分解成算法問題,並結合程式設計師在工作中經常面臨的產品需求,詳細闡述了應該怎樣從算法的角度看待、分解需求,並結合經典的任務對深度學習算法做了清晰的分析。
《深度學習算法實踐》在表達上深入淺出,讓有志於學習深度學習的讀者,能夠快速地理解核心所在,並順利上手實踐。
目錄
1 開始 1
1.1 從傳統的軟體工程思維轉型 1
1.2 建立算法思維 2
1.2.1 算法的開發流程 3
1.2.2 做算法的步驟 4
1.2.3 英特的總結 8
1.3 觀察!觀察!觀察!重要的事情說三遍 11
2 文本分析實戰 15
2.1 第一個文本問題 15
2.1.1 郵件標題的預處理 15
2.1.2 選用算法 18
2.1.3 用CNN做文本分類 21
2.2 情感分類 24
2.2.1 先分析需求 24
2.2.2 詞法分析 25
2.2.3 機器學習 28
2.2.4 試試LSTM模型 30
2.3 文本深度特徵提取 31
2.3.1 詞特徵表示 31
2.3.2 句子特徵表示 42
2.3.3 深度語義模型 51
3 做一個對話機器人 53
3.1 理解人類提問 56
3.2 答案的抽取和選擇 57
3.3 蘊含關係 62
3.4 生成式對話模型(Generative Model) 63
3.5 判斷機器人說話的準確性 69
3.6 智慧型對話的總結和思考 70
4 視覺識別 73
4.1 從人臉識別開始 74
4.1.1 OpenCV能做什麼 74
4.1.2 檢測精度的進化:Dlib 79
4.1.3 表情識別:Openface 83
4.2 深度卷積網路 87
4.2.1 CNN的演化過程 87
4.2.2 深度卷積和更深的卷積 96
4.2.3 實現更深的卷積網路 103
4.2.4 殘差網路的實現 108
4.2.5 十全大補藥:通用的提高精度的方法 111
4.2.6 圖像訓練需要注意的地方 116
4.3 目標檢測 125
4.3.1 用SSD來實現目標檢測套用 133
4.3.2 SSD訓練源碼提示 136
4.4 視覺領域的套用 138
4.4.1 藝術風格畫 138
4.4.2 看圖說話:用文字描述一幅圖像(BiRNN+CNN) 140
4.4.3 CNN的有趣套用:語音識別 142
5 強化學習實踐 145
5.1 吃豆子和強化學習 145
5.2 馬爾科夫決策過程 147
5.3 理解Q網路 150
5.4 模擬物理世界:OpenAI 152
5.5 實現一個DQN 154
5.5.1 DQN代碼實現 154
5.5.2 DQN過程的圖表化 160
5.6 關於強化學習的思考 163
5.6.1 強化學習的特殊性 163
5.6.2 知識的形成要素:記憶 165
5.6.3 終極理想:終身學習 170
6 預測與推薦 173
6.1 從Google的感冒預測說起 173
6.2 股票預測(一) 175
6.2.1 股票業務整理 176
6.2.2 數據獲取和準備 179
6.2.3 模型搭建 183
6.2.4 最佳化 186
6.2.5 後續 187
6.3 股票預測(二) 189
6.4 深度學習在推薦領域的套用:Lookalike算法 197
6.4.1 調研 198
6.4.2 實現 201
6.4.3 結果 205
6.4.4 總結探討 205
參考文獻 207