机器学习基础知识篇
第1章 人工智能概述 002
0 j# J: V; M' ?0 c3 Q/ j3 X1.1 人工智能的定义 002! l" H4 r C b* N2 T* C+ U3 W
1.2 人工智能发展简史 0037 v7 g% K S- I% u" _' q) X* n: ^
1.2.1 史前文明,曙光初现(1956年前) 0043 A' R# _- e: ^+ y
1.2.2 初出茅庐,一战成名(1956—1974年) 008
9 a+ s! m' A, q! r2 m9 C0 a1.2.3 寒风凛冽,首次入冬(1974—1980年) 010- u9 g9 R& L2 p/ u a) |
1.2.4 卷土重来,威震八方(1980—1987年) 010
; t8 N: R/ s4 I/ Q1.2.5 失望弥漫,再度入冬(1987—1993年) 012- ? o4 s* j' S
1.2.6 重出江湖,渐入佳境(1993年至今) 013
5 I+ D5 n' R0 U0 l1 A$ c! W1.3 人工智能经典流派 016$ k+ s5 |9 q8 C6 a
1.3.1 符号主义 0187 d J+ D1 h! d
1.3.2 连接主义 019
5 x/ E2 `4 N; p& m1.3.3 行为主义 023$ n$ B$ M$ B O5 B
1.3.4 贝叶斯派 026$ ]5 P; T6 E8 O4 a8 W1 ^
1.4 人工智能与机器学习 027
& T0 P" v. F0 \* g0 K4 ^ c1.5 如何选择机器学习算法 029
) P9 f; J' x! t2 x+ R5 M1 n; }1.5.1 没有免费的午餐理论 030
& R: O- j. `- l1.5.2 Scikit Learn小抄 031
6 q h/ L1 m/ _( D f1.5.3 Microsoft Azure小抄 032
) p9 A5 K9 V6 J8 L) F1.6 机器学习的典型应用场景 032# Z9 K0 y5 e' @! b1 t8 [& Q) L
1.6.1 计算机图像领域 035
# |0 E" a- b! m* R- C1.6.2 自然语言处理简述及其应用 0362 z5 H- U8 i/ A$ ^- T% n
1.6.3 制造业中的预测性维护 038) T, H8 _0 G3 _9 ^7 v7 o0 H; r
1.6.4 软件自动化开发和测试 042
. R9 W- c3 R9 G: C$ X( s! ?, S1.7 本书的组织结构 043
第2章 机器学习中的数学基础 0451 ?7 o, \ p/ ?- p
2.1 微分学 045
; y0 d% |3 q" A* \! ~! ~ ?4 {2.1.1 链式求导法则 045' d4 ~! b U! P( l4 r
2.1.2 对数函数求导 0457 R/ v' {/ S) V$ ?/ d
2.1.3 梯度和梯度下降算法 046
% x% V6 r+ B8 \& n0 ^ F! N$ a& `2.2 线性代数 047+ _$ o' b* Q1 O/ M- e/ R; e' |
2.2.1 向量 0478 n- I9 X/ w. i8 b8 ~5 d/ s k
2.2.2 矩阵拼接 052
1 P1 g0 j3 D6 f) |* H- F2.2.3 特征值和特征向量 057
$ }# t, s4 Y3 `& f2.2.4 仿射变换 059
2 b$ D: |5 `; O5 R: Q2.3 概率论 060
1 v+ V9 C. s" [- Y1 h% O: h2.3.1 概率分布 061. g% f' y! S- I! H; Z
2.3.2 先验/后验概率 0624 x6 T# E9 o% f' I0 p0 T1 H
2.3.3 似然估计 063
6 O8 e; F5 a. {$ V3 K2.3.4 贝叶斯法则 064
# R" v( E: }/ {; `2.4 统计学 065
: ]0 N& ~" a6 o; P/ }2.4.1 数据的标准化和归一化 0659 O' ?% N8 i, I# y4 J1 P. ?& Z
2.4.2 标准差 066( t% ]2 H9 E3 g) x, q
2.4.3 方差和偏差 066
, d" T6 }6 B2 t* f4 _: A2.4.4 协方差和协方差矩阵 067$ |2 \9 R& V+ S
2.5 化理论 068
4 m) b! W5 @4 M2.5.1 概述 068
- l- s3 K$ r4 `0 l, H2.5.2 函数等高线 070) O0 d7 E3 ?2 w8 _
2.5.3 拉格朗日乘子法 071; A' I1 z6 V1 X" ]6 n$ \
2.5.4 拉格朗日对偶性 074
, t+ f5 m e% \( u3 J& K& a( r! v2.5.5 KKT 079' o& n* o0 i4 r
2.6 其他 088+ q) r( b8 T$ B8 d& F% F3 S
2.6.1 训练、验证和测试数据集 088( K% V( e! ?2 \! f7 Z; \3 Q( `' V
2.6.2 过拟合和欠拟合 0903 T) i4 K7 r" @
2.6.3 奥卡姆的剃刀 092
2 b5 S4 a! @8 m! ^ o2.6.4 信息熵 093
" i& r! m. _+ X5 z# ]4 G2.6.5 IOU 0942 _7 [1 w1 w; K* s" d0 [2 I
2.6.6 NMS 095
/ b! i2 H4 \) w) N$ p& }2.6.7 Huffman树 096
第3章 机器学习模型的度量指标 099! m$ H" R( P3 T, }
3.1 Precision、Recall和mAP 0994 c* ~: |! N: @
3.2 F1 Score 101+ `6 t* v, O8 S5 h* N
3.3 混淆矩阵 102
q; F- G% r6 S9 d. y& X$ R3.4 ROC 103
# o' x2 z' w7 \7 y& W0 k3.5 AUC 105 x A2 b/ T) u% R
3.6 PRC 107/ W4 ]1 M* K `
3.7 工业界使用的典型AI指标 108
经典机器学习篇
第4章 回归算法 112
! I' Y, g, l. A4 h4.1 回归分析 112! G0 Q8 W3 E# ^( v, l9 A+ Q. l
4.2 线性回归 112 H# q7 C j( c9 K4 M% z
4.2.1 线性回归的定义 112
. c6 s2 R; |+ [) v. z$ n" W c4.2.2 线性回归的损失函数 113( g& E! C0 d8 `8 t+ t: e0 X
4.2.3 线性回归范例 113
1 C8 t1 {# \' C, F( c: e4.3 逻辑回归 115
( x9 j: L1 T6 K7 X; p d4.3.1 逻辑回归—二分类 115# `/ k. R; T) `, \7 }/ g& C# |
4.3.2 逻辑回归—多分类及Softmax 119
第5章 K-NN算法 122
( l2 [6 s, t: e$ t2 T5.1 K-NN概述 122
! ]9 D6 C8 F" S! `5.2 K-NN分类算法 123$ m" ?* d: A7 p4 u% w1 {# ~1 B) q
5.3 K-NN回归算法 124
% f/ L1 | W# m8 V# `. G5.4 K-NN的优缺点 125: B# T6 R% H. @4 v0 c
5.4.1 K-NN的优点 125
; M, O& t# ^* Z- A4 ]$ i$ f5.4.2 K-NN的缺点 126$ j% Z3 T% i! ^5 }1 v W! m+ r. [
5.5 K-NN工程范例 126
第6章 k-means 129$ |7 A# v6 R& B! t
6.1 k-means概述 129
1 \; h8 o. m8 V$ W7 L6.2 k-means核心算法 129
) w& W" p( ]2 W8 d2 p# y6.3 k-means算法的优缺点 131" L. |5 b `) @- U
6.3.1 k-means算法的优点 131
- Z4 K; e3 ~" D0 S6.3.2 k-means算法的缺点 131
7 i3 s1 ^ l2 C6.4 k-means工程范例 132
第7章 朴素贝叶斯 135
/ C% K7 h& P4 p; R. Y" u' I+ Y7.1 朴素贝叶斯分类算法 1353 E: h7 w) S; C, A/ m8 m3 H! N
7.2 朴素贝叶斯的实际应用 137
第8章 决策树和随机森林 141. I* J/ y2 [: o+ N
8.1 决策树 141# u+ t- x! f" u; o4 o4 w! y
8.1.1 决策树的主要组成元素 1410 b( |+ s* C( g' C, Q7 C I) }
8.1.2 决策树的经典算法 141# F+ D; e! h6 @2 K' G9 T
8.1.3 决策树的优缺点 145" p7 V) |( a0 y- A9 N- z
8.1.4 决策树的过拟合和剪枝 1453 M4 d7 v/ `- _) G5 G4 T/ @
8.2 随机森林 146
第9章 支持向量机 149: |. w8 g0 s( }5 B9 {
9.1 SVM可以做什么 1493 w& g& _' F$ m4 i0 X$ N0 g1 v
9.2 SVM的数学表述 1514 u$ s( Z3 \0 s; q4 p6 P1 r
9.2.1 决策面的数学表述 151
: D q. ?" O8 I K% [% d9.2.2 分类间隔的数学表述 152
( H6 R F. c0 Q; K; }1 o9.2.3 比较超平面的数学公式 153
- C& i5 f& e; v- k1 ^; t t0 C9.2.4 决策面的数学表述 1596 Z/ f5 {" \! t0 W0 B1 \
9.3 SVM相关的化理论 1600 R' m7 Q; z6 V. a5 e0 F
9.3.1 感知机学习算法 160
" C0 T4 X# N* h5 P7 A9.3.2 SVM化问题 173
& q' e$ _; {" f2 e3 P4 B7 z9.4 硬间隔SVM 174
7 O; W: D) ^/ F! ^) p9.5 软间隔SVM 1776 j" E$ F8 Y G7 M* ~
9.6 核函数技巧 182
, G4 r1 {7 E$ U- k7 |3 ^9.7 多分类SVM 187% g8 @6 }2 {5 B. x+ z$ i8 ^- \, A
9.8 SVM实践 193
第10章 PCA降维 196& x4 f6 k7 u6 j1 Q: O1 P
10.1 降维概述 196
& M( c/ d9 D& }5 E/ P- U; @10.2 PCA降维实现原理 197
7 u' V- c2 t/ |5 E10.2.1 PCA的直观理解 197
9 F8 m9 u5 D1 x1 s) {7 |10.2.2 PCA的理论基础—方差理论 199
: D! j( J& w. [4 J10.2.3 PCA的核心处理过程 199" |/ D9 v, k& p. M+ Z( F' [
10.3 PCA实例 200
第11章 集成学习 202# K& B( f! G6 [; ^5 f' Y7 }
11.1 集成学习概述 202
+ @1 V3 O3 ^) w' N8 [" K- R8 Z11.2 集成学习架构 2033 w9 Q5 L8 Y1 m L/ |# r1 g% [" x
11.2.1 聚合法 203# k7 \4 D% r3 H
11.2.2 提升法 204; j# P& ?9 K& w3 F
11.2.3 堆叠法 205
; ^4 B# D# k. K3 W ~2 g11.3 典型的集成方法 206
; \! ]$ L" V9 a8 A- A9 q m11.3.1 平均法 2064 O1 k' B) f( p% F, f: U
11.3.2 投票法 207
2 e- X8 m5 F+ m- z11.3.3 学习法 208
深度学习进阶篇
第12章 深度神经网络 212
- J, P% @0 _5 ~9 _: X3 }; m. C12.1 神经元 212: N4 D. U) n/ t2 u m4 N4 A* G
12.2 激活函数 214
" G) J+ o, E1 Q0 q$ D, p12.2.1 Sigmoid 214
6 j( C4 A" d0 ]: Z12.2.2 tanh 2168 R6 x. P) B: E; {8 a9 L
12.2.3 ReLU 217
( v9 l; r( D, x12.2.4 Leaky ReLU 218 M- v8 r; ]8 A) i; o3 ]2 H
12.2.5 ReLU的其他变种 219
. _$ T D5 ~" v" X+ M0 v12.2.6 激活函数的选择 2203 ~/ D9 w/ Z1 |2 N7 r
12.3 前向传播和后向传播算法 220
8 C, p3 L4 F2 i' E/ _: ?0 e; j12.4 损失函数 224$ Y0 Y: @: O" c" n5 ~# N
12.4.1 分类场景 225$ l ~0 e* t; g1 b" h/ V6 K
12.4.2 回归场景 228; X# O7 y7 r5 C, b, E# N
12.4.3 其他任务类型的损失函数 230
第13章 卷积神经网络 2322 K$ ]4 _) O5 q) Q7 i
13.1 CNN发展历史简述 232# `# o' a3 j$ l" C
13.2 CNN的核心组成元素 233
. c4 R4 X- p, l, W% T4 c13.2.1 卷积层 233
& K# N3 J2 K5 l* h13.2.2 池化层 235
1 ?: V/ } ?& L- V. K0 x7 U9 v- B7 ]. Z13.2.3 全连接层 236$ q4 s& I+ j _$ ?1 }# H
13.2.4 Softmax层 237, G4 {7 k& C( v! i. H$ W N0 A5 T
13.3 CNN经典框架 237
# R; \) ^& H. m1 I% ?13.3.1 LeNet 237/ |8 u( `3 t; U
13.3.2 AlexNet 2384 g5 N+ S4 v3 {1 h7 ~" B
13.3.3 VGG 240
8 I& c7 v$ u; {# i9 k13.3.4 GoogLeNet 242( j+ x" }. [' M$ e* w( S3 ^
13.3.5 ResNet 245
' e* L2 N7 E7 z$ }( y/ K& N2 L13.4 CNN的典型特性 249
' E& Y, M9 ?- p13.4.1 CNN位移不变性 2505 V6 x4 @* G6 g, [" Q
13.4.2 CNN尺度不变性 2524 D2 h1 p# ]. L0 m7 U E1 f& q
13.4.3 CNN旋转不变性 253
! y$ E' `1 W5 O( ] W# e" m" l& _/ m. ` |13.4.4 CNN视角不变性 255
第14章 RNN与LSTM 256
1 {8 z, {: I* A) B6 n! x- T7 f( w14.1 RNN 256
/ e4 _; |; Q8 ^ j, s+ c14.2 RNN的多种形态 257
+ P- i6 ~9 L# _6 E, M14.3 RNN存在的不足 258# ?# N1 x! E: c, F0 n" @
14.4 LSTM 259' s: ?% `) _2 [4 ~: R4 c* A
14.5 LSTM核心框架 259, C1 W$ f. Q4 Q8 e! ]5 X
14.5.1 遗忘门 261+ _2 [. h L7 t# a* W3 R% x
14.5.2 输入门 261/ d; v5 e/ y& J0 E
14.5.3 输出门 262
- T G2 w: E$ I2 Y14.6 GRU 263
第15章 深度强化学习 265
& c0 X% d6 @) R' o9 m ^15.1 强化学习和MDP 265
, M; Q2 M. b4 M2 u15.1.1 强化学习的基础概念 265
# a" {) n) n# N/ O: `15.1.2 MDP 266' x4 Z+ l1 C( W i% e# z
15.1.3 强化学习的核心三要素 267; ?+ n, [, j: o6 r% M( U6 o
15.2 MDP问题的解决方案分类 268- a' ~) `, M5 y9 D6 q; ^
15.3 基于模型的动态规划算法 269
7 N s: W' Z7 `% T15.4 基于无模型的强化学习算法 2725 ?' v& @0 ]6 u: C) B: S+ r7 ^
15.4.1 蒙特·卡罗强化学习算法 272
" }5 f- D: e. l+ P7 B7 ^15.4.2 时间差分算法 275
7 a! ~0 o: D5 M5 G. w15.5 DQN 278
7 N) x) g" ?3 e" `: p W15.6 基于策略的强化学习算法 280
; `# t- Q N7 G2 W! } ~3 o15.6.1 有限差分策略梯度 2837 w5 i# L+ k9 D
15.6.2 蒙特·卡罗策略梯度 283
第16章 MCTS 285
& f1 \9 O" c" _. T6 P+ T16.1 MCTS概述 285
7 K. F# t- l5 ?% L+ I c16.2 MCTS算法核心处理过程 286
+ e5 Y2 ^1 K! {16.3 UCB和UCT 286* c# f4 W" w" ?2 ?2 \
16.4 MCTS实例解析 288
机器学习应用实践及相关原理
第17章 数据集的建设 292
" ]. z0 K3 @$ S6 c0 M17.1 数据集建设的核心目标 292
$ p6 l# h* d) X' p2 }6 Z; L17.2 数据采集和标注 294) w3 j& T$ u% P, Z: G
17.2.1 数据从哪来 294# A7 J- L9 V. b% Y/ c/ q9 O
17.2.2 数据分布和多样性 296) m2 w/ f5 U% I% b X
17.2.3 如何扩大数据量 298% M" E# s( Q. \' u+ L5 d
17.3 数据分析和处理 299
+ ]6 m7 R5 C2 u/ M17.3.1 数据集分析的典型方法 299+ B7 W# i5 L H& z1 ^1 l. I V
17.3.2 标签类别合理性 3011 [: A& ?, A% O9 {5 g, D Q
17.3.3 数据清洗 303
第18章 CNN训练技巧 304
1 U$ h6 o0 a$ W18.1 数据预处理 304
7 o8 |/ }" q- `0 \) ~, f5 I+ L! O4 n18.1.1 数据零中心化 3047 f; Y) o1 B0 _0 W+ D
18.1.2 数据标准化 3066 O5 b4 c# M" c# W
18.1.3 尺寸调整 306
6 j7 m1 Q g: q% W18.1.4 其他 307
1 h Z. z& i t/ A7 W) P* R, n8 A) m8 g18.2 数据增强 308
. K1 G9 H0 C. [( N/ L18.3 CNN核心组件择优 309
7 l5 K" h% n" F: H18.3.1 激活函数 309* ~+ {6 R0 y0 I9 @1 \& A
18.3.2 超参数设定 309
1 u2 u2 _! X6 F2 o18.4 参数初始化策略 310
" O4 e( o( N3 D* S) q; @18.4.1 全零初始化策略 310* V8 J( y7 T6 ^3 n* u" z. O, s3 H* Z
18.4.2 随机初始化策略 311
t/ t* G3 ]5 F% s8 u18.4.3 采用预训练模型 319
q9 z9 [# t, }4 }2 v2 ^4 [! O18.5 模型过拟合解决方法 319
+ L5 P2 l) S0 ?! [$ q18.5.1 正则化 3197 d. Z! W$ F6 _/ f! Z* Q2 P, o) Z
18.5.2 批标准化 3207 v) ?4 ]5 v* x
18.6 模型的可解释性 328
* w$ }3 x5 G# X/ J( ]# g7 P18.6.1 反卷积网络 331+ L! a7 k2 g! J. o3 k9 y" {
18.6.2 类别激活映射 334& n) I2 n2 K V0 v) J
18.6.3 LIME 339% L i& ~2 o* h3 k6 l
18.6.4 可视化集成工具Darkon 344" a9 D+ m7 `9 D( u/ L" Y2 [
18.7 Auto ML 346
第19章 CV和视觉识别经典模型 348
, {: c* h% n( O% d! a19.1 CV发展简史 348
( M+ x) T8 s( `/ d) J: k19.2 视觉识别概述 353
% ~4 P% M$ R0 i) d19.3 R-CNN 359
. T7 L4 A1 Y# u" q, S19.3.1 R-CNN简述 359" G$ q! {+ C \( D
19.3.2 R-CNN中的候选区域 360
) k% e6 u, c1 m7 N* V; i" u19.3.3 R-CNN算法处理流程 361
+ r) D! P* a J0 g8 [19.4 Fast R-CNN 364
! B6 J) g2 } l7 A" g3 e19.5 SPP-Net 365
* y5 h+ y$ Y) Z) A19.5.1 空间金字塔池化 366
0 U) }% S% C+ A' c3 i19.5.2 特征图和原图的映射关系 367 k7 t5 U- [ j6 \) e1 f" k
19.5.3 基于SPP-Net的目标识别 367. ]% J. }9 ~. B% V6 C- {
19.6 Faster R-CNN 368( y" D9 R9 g1 g9 @2 o
19.6.1 Faster R-CNN简述 3687 R+ u- @4 {2 t
19.6.2 候选区域网络 370
7 }0 I- o. d3 f1 Y3 u) z19.6.3 分类器和边框回归 375! l' ~, x8 @7 U, X: J8 {
19.7 YOLO 3758 k/ s( I, J- Z# C6 c
19.8 SSD 383
* w+ T2 B% R' t8 Q2 {3 e; h) G19.8.1 SSD的网络框架 383
5 K* q7 h! a, h. ?( i, A19.8.2 SSD的应用推理过程 3842 u+ N' R* @' o" s- W8 I \
19.8.3 SSD的性能评估和缺点 388
6 F3 b$ }9 b; K$ q19.9 不基于CNN来实现目标识别 390
. G: h' T" q' ]0 B7 k" H+ t0 G3 \% m19.9.1 相关的OpenCV函数 390* N; u5 j. T) K5 t d5 j! L
19.9.2 利用OpenCV识别形状物体范例 394
第20章 自然语言处理和CNN 397" q/ ~0 E" Y& C, a0 g: J
20.1 NLP简述 397
; q, H1 J7 w. z; Z1 [* d20.2 NLP发展历史 3990 @$ H o; {' f0 F4 B2 K0 \
20.3 自然语言基础 400
5 a2 F/ S2 g, D `/ h20.4 词的表达方式 403/ l3 h) Y! `% d" B$ }% ^- ] u! k
20.5 自然语言模型 405
0 y, } f3 j# V' e2 ]" v20.5.1 基于N-Gram的语言模型 406
0 @" I4 X3 `2 W: c9 y. }) I20.5.2 基于神经网络的语言模型—经典NNLM 409
, e; J- R0 r) h$ ?' a20.5.3 基于神经网络的语言模型—NNLM的改进者CBOW模型 411
# r; q; _0 e4 K# A20.5.4 基于神经网络的语言模型—NNLM的改进者Skip-gram模型 414
% b! i: t- w1 J20.6 word2vec 416; {6 U. A7 s: b& K, s
20.6.1 word2vec简介 416, I- Y5 @2 ?* L+ J
20.6.2 word2vec源码与编译 417
& ~ ?0 Q, m& @/ [, k7 [% T20.6.3 word2vec使用范例 418: i9 V7 {( @, C+ I" w: a I. T
20.7 常用语料库 4200 O5 A, \+ D9 l' k; z7 z
20.8 NLP应用:文本分类 424
* K, C! l4 \9 H& P8 m20.8.1 传统的文本分类方法 424
3 L a* U9 B2 u' g; @1 r20.8.2 基于深度学习的文本分类方法 425
第21章 自然语言处理和CNN 430& \6 E$ f- N& F3 f$ Y9 N
21.1 应用程序场景识别背景 4302 ?) l9 m9 c& \2 p: e
21.2 特征向量 431
; Z+ j$ q* y+ Z- Z) n. C, v+ b21.3 数据采集 432+ T( g# V; K1 _" j; M1 G/ q7 C
21.4 算法模型 433
0 Z2 G! p X, Z) L @! G21.5 落地应用 433
第22章 软件自动修复 436/ X/ ?) h) p% L# v$ E2 ?
22.1 什么是软件自动修复 436
! I8 l5 R8 s0 ^+ _; E# d22.1.1 软件自动修复的定义 436- Z* i2 H2 g" n3 c/ \
22.1.2 软件自动修复的价值 437
: e, W! i# l" E# Z$ S* o22.2 软件自动修复基础知识 437
+ p; I( W3 R7 }/ z4 p0 L0 ]# a22.2.1 软件自动修复技术分类 437
2 e) q; ^/ g' V% u n! H22.2.2 软件自动修复基础概念 4390 I' `# T" n# l9 y
22.3 阶段1:缺陷定位 441/ {0 C; m, V0 d$ o
22.3.1 基于程序频谱的缺陷定位 443: X/ N" S2 Z: A' \% A, |# B
22.3.2 SFL中测试套件的构造 447- B5 S4 P- m3 _; A+ d* y1 g
22.3.3 SFL中程序频谱的构造 451
5 e" _6 @0 P( `) I8 M9 {. p, T22.4 阶段2:补丁生成 458
0 Q6 y. V9 i. e4 o- k22.4.1 基于搜索的补丁生成和自动修复 4597 Z& u- Y" J1 x* l$ R
22.4.2 基于模板的补丁生成和自动修复 460
3 n% J0 K; @+ \. K+ b' T2 S0 C22.5 APR领域经典框架 462 W* p& Q S/ | w' |
22.5.1 Facebook SapFix 4632 j. H) ] V4 O
22.5.2 Microsoft DeepCoder 465
6 D/ p- q8 H( U22.5.3 GenProg 474
第23章 基于强化学习的经典应用—AlphaGO 479
; l: [- l e0 `, |23.1 AlphaGO简述 479
% |- I% H4 k0 P. D( ~) u, S23.2 AlphaGO核心原理 480
4 p$ p$ B# t7 O4 D5 M23.3 策略网络 481
' i+ p, Y5 G$ N2 [0 U: @/ g23.4 估值网络 4832 K0 _4 Q+ P) s) ]0 Y: p! R# t* L
23.5 MCTS 483
机器学习平台篇
第24章 分布式机器学习框架基础知识 488
. J5 q6 i4 R: g2 h5 K8 Y8 ] h! p24.1 分布式机器学习核心理念 488
8 B4 ^. p( F% D' h! j: n24.2 GPU硬件设备 491" t3 u! p8 z! \6 e' E) }& L
24.2.1 GPU架构 492# D5 c. c k* ?+ J2 C
24.2.2 GPU的共享访问 4946 @$ q8 x% w# n" |# f5 k- U
24.3 网络标准 4988 G0 F R: o* R: b' z% ?4 o
24.3.1 Ethernet 498
& Q: q8 ~" \- m% n0 y* \( I' b, b24.3.2 InfiniBand 4992 a3 J2 \4 g! A; I3 t* l5 g, i
24.4 分布式通信框架 500
, B4 m$ @; u1 h24.4.1 MPI 500) @* n( h7 Q6 S2 [
24.4.2 P2P和聚合通信 503
1 D8 j% L" V" k' o) I24.4.3 NCCL 505+ O6 ^) B# z: G9 m
24.4.4 NV-Link 508
" e& j$ u* ], ]& s$ s; O- ?24.4.5 RDMA 510' N/ K1 C, X- a( ~8 i
24.5 经典分布式ML框架Caffe-MPI 511
第25章 Tensorflow 514" ^. {9 E( Y& L$ `' @
25.1 Tensorflow安装过程 514
8 C! ^; g+ `, c25.2 Tensorflow基础知识 516. v( P6 E% ] g% {% `
25.2.1 Tensorflow核心概念 516# Y8 `* H+ z" U/ M7 W, P' L
25.2.2 Tensorflow模型/数据的保存和恢复 5191 x+ p3 Z9 Z5 a8 t; v
25.2.3 Tensorflow模型fine-tuning 523
7 d2 S6 y, {* A- O% }2 e25.2.4 Tensorflow模型调试 526
I$ _# |' d' h6 _+ g9 e25.2.5 Tensorflow的多语言支持 528* S% k9 ?2 y- F
25.2.6 可视化利器TensorBoard 529
; X2 v, S; T A* i. g25.3 Tensorflow分布式训练 533
. p; X" }) e" r, y+ |25.3.1 Tensorflow的分布式原理 5331 k" Z& ~0 P6 l7 H- }
25.3.2 单机多GPU下的并行计算 535
S- n3 ~, a- x, d25.3.3 多机多GPU下的分布式计算 542
( L% O2 v0 C& @4 K: M `0 Z25.4 Tensorflow分布式部署 549
7 F6 j( \# b- l, ]25.4.1 Tensorflow Serving概述 5499 p+ s8 ]1 ^: ]" t& A1 i
25.4.2 基于GPU的Tensorflow Serving 549
" H9 {+ s8 }) B8 y \+ I25.4.3 Tensorflow Serving的核心概念 552
/ f9 s* S3 m" o" ~25.4.4 Tensorflow模型分布式部署实例 5534 e7 I' b; U8 h' y" O, }: w8 C
25.5 Tensorflow范例解析 5601 b4 S7 g) F, \( Z
25.6 Tensorflow的“变种” 563
1 |4 r2 p! H, S2 N2 X; R: h25.6.1 Tensorflow Lite 563& U6 ?3 o- b5 B8 D3 L$ T( i
25.6.2 Tensorflow RS 565
第26章 Caffe 5683 `' O0 w& r, W3 e- L
26.1 Caffe的安装 568
% T$ P4 y. j; B% S* |4 Y$ G, N26.1.1 Ubuntu下安装Caffe 5689 Q% I' o6 a/ H: q2 H) e$ q# Y
26.1.2 Windows下安装Caffe 572
4 v5 W" G, m/ \0 O26.2 Caffe支持的数据集格式 587: p0 }$ q2 y1 t
26.2.1 LevelDB 5875 B7 }0 [4 }5 V( D, w8 y0 o! m
26.2.2 LMDB 590) f$ ?- L; d2 t* ?2 i- \, s S6 }
26.2.3 数据库的生成 592
! }. Y( |2 t. K+ b& ]' o26.3 Caffe中的网络模型构建 594$ I6 C' s$ D) C$ W2 N
26.4 Google Protocol Buffer 598
3 T. C, `, k* O26.5 Caffe2源码结构 600
2 K* j- t. f9 f. }3 d- L1 S p; @" P26.6 Caffe工程范例 601
9 p! J0 D/ u1 D$ P+ G" a+ C26.7 Caffe中的Model Zoo 607
第27章 scikit-learn 609 J2 h/ j& U6 f; W
27.1 scikit-learn的安装 6108 `" e) O6 I' o7 L9 U. Z& U
27.2 scikit-learn中的机器学习算法 610# i' l: V/ o- ]8 [- P3 z
27.2.1 分类 610
0 f' d3 y- R7 g: {" J# l27.2.2 回归 611' e% x$ R, e9 K1 l* h% x% m
27.2.3 聚类 6113 X6 Y' G+ k. W7 s7 E) w
27.2.4 降维 6124 J, N# F/ B$ T; E0 X
27.3 scikit-learn中的Model selection 613# V- ?$ {+ ^( U- \9 p" f
27.3.1 网络搜索 613" X. W0 G6 Q' a7 j4 @/ a4 t r
27.3.2 交叉验证 616, X0 {# @- x5 I0 R
27.3.3 度量标准 6165 r- C1 L9 {5 Z9 T
27.4 scikit-learn中的预处理 619
, G1 L* @! E3 ?9 @ e27.4.1 数据标准化等预处理 6197 e% D5 C' I5 c, w9 ^* [9 k
27.4.2 数据特征提取预处理 621
第28章 主流AI云平台 628+ ^5 N7 O3 h% |9 [+ W6 z
28.1 Microsoft OpenPAI 628
) ?6 j$ v6 N7 B5 ~( G# p28.2 Google Cloud 6311 V; n0 ?: {1 O" Z2 E2 ?& s% v
28.3 Baidu 631" J2 q' h. n* o& F
28.3.1 百度AI云服务 6320 K$ v$ C1 v/ o; _' X5 o
28.3.2 PaddlePaddle 636 n/ z0 ~7 {5 q0 k9 v
28.4 Alibaba 637- f) h; Q' s! h8 P3 S8 n; `
28.4.1 阿里飞天平台 638
0 B& c, n% c: W9 J, X28.4.2 MaxCompute平台 639$ K* p: y, e" E* E; M
28.4.3 PAI 640
第29章 图像处理基础 650/ t- Z' f6 L8 I; C$ D7 ~2 K
29.1 光、色彩和人类视觉系统 650
* W/ z' f3 f& Z# n X* U29.2 图像的颜色模型 653
4 o" @. S( D |% t6 B# p- T29.3 图像的基本属性 6552 A- Y$ c/ S/ }- s
29.3.1 灰度值 655
" `) H/ u& \4 z& ~29.3.2 亮度 656
l, J6 \) D. S" h; n8 H2 I/ X29.3.3 对比度 657
0 Y9 c' D" n+ S6 F! j ?& c8 v& i$ x2 U29.3.4 色相 6583 T n) W7 a% n( {
29.3.5 饱和度 658+ W: L! u W4 ~; `7 ]6 L
29.4 图像特征 6591 _7 I8 d/ w# {( N& v& z
29.4.1 颜色特征 659. ?9 B8 a, c& q2 H
29.4.2 纹理特征 6605 B/ B1 |7 D7 `% M/ P9 M k
29.4.3 形状特征 661- Q0 T1 @2 R0 q2 c
29.5 图像的典型特征描述子 661) _$ l3 f g; T- _) W6 ^1 B. g7 Z
29.5.1 LBP 661/ L0 Y$ [' [) }9 Z- \
29.5.2 HOG 6777 |* J& u6 i% ~! t( }/ [
29.5.3 Haar-like 特征 681
7 ~# @$ g" K0 T% ~29.5.4 图像的傅里叶变换 686
0 x, T6 ~8 z& g4 N" R29.6 图像处理实例(图像质量检测) 690
第30章 程序切片技术 693
; I) k1 X4 e! F- p% b& _30.1 程序切片综述 6939 F$ \/ L A1 R8 y' x" V4 c( s- f
30.2 程序切片基础知识 695 G( i6 V/ q% U4 ?" L
30.2.1 控制流图 6953 A( x+ Q$ l, \9 U5 i5 a
30.2.2 控制流分析 699
5 ^3 Y" g, i# ^9 h5 K' d30.2.3 数据流 706 java8.com! S! w% j5 n& l* f
30.3 静态切片技术 715
& |# K, n: i; D/ @/ J* c30.3.1 基本定义 715
0 |+ X, o0 l; V0 e; a30.3.2 静态切片算法 717
+ X2 ]* E) h3 {8 z/ H& F" p30.4 动态切片技术 721
; c4 t, E' z7 }% {! K& G$ l" C6 Z30.4.1 动态切片基本概念 721
9 ?. Q3 H1 k/ n+ G% N Y30.4.2 动态切片算法概述 723
$ d9 j3 [) N' F. e: G: T30.4.3 基于PDG的动态切片算法 723
第31章 业界主流数据集分析 726
; x( G+ L2 X' L7 t6 W31.1 ImageNet简述 726- @$ o0 v7 j4 p
31.2 ImageNet的构建逻辑 726
# s' L: S8 E& [" ]: g7 f# s7 s31.3 ImageNet数据源的选择与处理 730; i3 S7 G0 c- e, d1 Y+ M! ?6 L
31.4 ImageNet的下载 733
参考文献 736