Skip to content

Commit 4e5620c

Browse files
mslichaoxiaowuhu
authored andcommitted
fix table and image (#399)
1 parent 22145ba commit 4e5620c

48 files changed

Lines changed: 129 additions & 133 deletions

File tree

Some content is hidden

Large Commits have some content hidden by default. Use the searchbox below for content that may be hidden.

B-教学案例与实践/B15-生成对抗网络/README.md

Lines changed: 6 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -33,29 +33,29 @@
3333

3434
生成对抗网络之所以这么火,离不开该网络及其变种的强大能力。下面就通过该网络相关的论文来看一下,生成对抗网络有多么的酷炫。
3535

36-
首先是生成对抗网络的开篇论文,2014年Ian J. Goodfellow在他提出生成对抗网络的论文[\[3\]](#gan)中展示了该网络生成图片的能力,如图21-3所示
36+
首先是生成对抗网络的开篇论文,2014年Ian J. Goodfellow在他提出生成对抗网络的论文[\[3\]](#gan)中展示了该网络生成图片的能力,如图21-3所示
3737

3838
<img src="./images/gan0.png" width="640" />
3939

4040
图21-3 生成对抗网络生成的图片
4141

4242
图21-3中,左侧五列是模型生成的图片,最右侧一列是在原始数据集中找出的和第五列最接近的图片,可以看到这些图片确实是新生成的,并不包含在原始数据集中。
4343

44-
上面的生成的图片看起来有那么一点意思,但是生成的内容却是不可控的。 Mehdi Mirza等人提出GAN一个变种CGAN(Conditional Generative Adversarial Nets)[\[4\]](#cgan),可以指定一些条件来控制生成的结果,比如在MNIST数据集中可以生成指定的数字。如图21-4所示,每行都是一个指定的数字(0-9)
44+
上面的生成的图片看起来有那么一点意思,但是生成的内容却是不可控的。 Mehdi Mirza等人提出GAN一个变种CGAN(Conditional Generative Adversarial Nets)[\[4\]](#cgan),可以指定一些条件来控制生成的结果,比如在MNIST数据集中可以生成指定的数字。如图21-4所示,每行都是一个指定的数字(0-9)
4545

4646
<img src="./images/cgan.png" width="640" />
4747

4848
图21-4 CGAN的结果
4949

50-
Xi Chen等人也提出了一种变种,叫做InfoGAN[\[5\]](#infogan),它使用无监督的方法来学习特征,也可以产生不同属性的数据,该网络的效果如图21-5所示
50+
Xi Chen等人也提出了一种变种,叫做InfoGAN[\[5\]](#infogan),它使用无监督的方法来学习特征,也可以产生不同属性的数据,该网络的效果如图21-5所示
5151

5252
<img src="./images/infogan.png" width="640" />
5353

5454
图21-5 InfoGAN的结果
5555

5656
在图21-5中,(a)显示变量c1可以控制数字的类型(0-9),(c)显示变量c2可以控制数字的倾斜度,(d)显示变量c3可以控制笔划的粗细。
5757

58-
Scott Reed等人还做了更复杂的试验[\[6\]](#gancls),将文本和图像联系起来,可以跟据文本句子的描述生成对应的图像,如图21-6所示
58+
Scott Reed等人还做了更复杂的试验[\[6\]](#gancls),将文本和图像联系起来,可以跟据文本句子的描述生成对应的图像,如图21-6所示
5959

6060
<img src="./images/texttoimage.png" width="480" />
6161

@@ -67,7 +67,7 @@ Scott Reed等人还做了更复杂的试验[\[6\]](#gancls),将文本和图像
6767

6868
图21-7 图片风格转换
6969

70-
生成对抗网络还可以用于图像编辑。Yunjey Choi等人提出了StarGAN[\[8\]](#stargan),可以对人脸进行编辑,包括改变头发颜色、性别、年龄、肤色以及表情。如图21-8所示
70+
生成对抗网络还可以用于图像编辑。Yunjey Choi等人提出了StarGAN[\[8\]](#stargan),可以对人脸进行编辑,包括改变头发颜色、性别、年龄、肤色以及表情。如图21-8所示
7171

7272
<img src="./images/stargan.png" width="640" />
7373

@@ -193,7 +193,7 @@ loss_func = LossFunction_1_2(NetType.BinaryClassifier)
193193

194194
然后更新生成器,此时用更新后的判别器重新输入假样本,得到新的输出后,再次进行反向传播,此时需要传播六层一直到生成器,但是只有生成器的三层需要计算梯度并更新。
195195

196-
如图21-11显示了这个反向传播和更新的过程
196+
如图21-11显示了这个反向传播和更新的过程
197197

198198
<img src="./images/ganbackward.png" width="640" />
199199

B-教学案例与实践/B6-神经网络基本原理简明教程/Step1 - BasicKnowledge/01.3-神经网络的基本工作原理.md

Lines changed: 6 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -90,7 +90,7 @@ $$A=\sigma{(Z)}$$
9090

9191
#### 训练流程
9292

93-
从真正的“零”开始学习神经网络时,我没有看到过任何一个流程图来讲述训练过程,大神们写书或者博客时都忽略了这一点,图1-16是一个简单的流程图
93+
从真正的“零”开始学习神经网络时,我没有看到过任何一个流程图来讲述训练过程,大神们写书或者博客时都忽略了这一点,图1-16是一个简单的流程图
9494

9595
<img src="../Images/1/TrainFlow.png" />
9696

@@ -104,7 +104,7 @@ $$A=\sigma{(Z)}$$
104104

105105
#### 步骤
106106

107-
假设我们有表1-1所示的训练数据样本
107+
假设我们有表1-1所示的训练数据样本
108108

109109
表1-1 训练样本示例
110110

@@ -129,7 +129,7 @@ $$A=\sigma{(Z)}$$
129129

130130
### 1.3.3 神经网络中的矩阵运算
131131

132-
图1-17是一个两层的神经网络,包含隐藏层和输出层,输入层不算做一层
132+
图1-17是一个两层的神经网络,包含隐藏层和输出层,输入层不算做一层
133133

134134
<img src="../Images/1/TwoLayerNN.png" ch="500" />
135135

@@ -217,7 +217,7 @@ $$Z2 = A1 \cdot W2 + B2$$
217217

218218
#### 回归(Regression)或者叫做拟合(Fitting)
219219

220-
单层的神经网络能够模拟一条二维平面上的直线,从而可以完成线性分割任务。而理论证明,两层神经网络可以无限逼近任意连续函数。图1-18所示就是一个两层神经网络拟合复杂曲线的实例
220+
单层的神经网络能够模拟一条二维平面上的直线,从而可以完成线性分割任务。而理论证明,两层神经网络可以无限逼近任意连续函数。图1-18所示就是一个两层神经网络拟合复杂曲线的实例
221221

222222
<img src="..\Images\1\sgd_result.png">
223223

@@ -256,9 +256,9 @@ $$y=0.4x^2 + 0.3xsin(15x) + 0.01cos(50x)-0.3$$
256256

257257
比如肘关节,可以完成小臂在一个二维平面上的活动。加上肩关节,就可以完成胳膊在三维空间的活动。再加上其它关节,就可以扩展胳膊活动的三维空间的范围。
258258

259-
用表1-2来比喻两者之间的关系:
259+
用表1-2来对比人体运动组织和神经网络组织。
260260

261-
表1-2
261+
表1-2 人体运动组织和神经网络组织的对比
262262

263263
|人体运动组织|神经网络组织|
264264
|---|---|

B-教学案例与实践/B6-神经网络基本原理简明教程/Step1 - BasicKnowledge/02.0-反向传播与梯度下降.md

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -49,7 +49,7 @@
4949

5050
### 2.0.2 例二:黑盒子
5151

52-
假设有一个黑盒子如图2-1
52+
假设有一个黑盒子如图2-1
5353

5454
<img src="../Images/2/blackbox.png" />
5555

@@ -70,7 +70,7 @@
7070

7171
小明拿了一支步枪,射击100米外的靶子。这支步枪没有准星,或者是准星有问题,或者是小明眼神儿不好看不清靶子,或者是雾很大,或者风很大,或者由于木星的影响而侧向引力场异常......反正就是遇到各种干扰因素。
7272

73-
第一次试枪后,拉回靶子一看,弹着点偏左了,于是在第二次试枪时,小明就会有意识地向右侧偏几毫米,再看靶子上的弹着点,如此反复几次,小明就会掌握这支步枪的脾气了。图2-2显示了小明的5次试枪过程
73+
第一次试枪后,拉回靶子一看,弹着点偏左了,于是在第二次试枪时,小明就会有意识地向右侧偏几毫米,再看靶子上的弹着点,如此反复几次,小明就会掌握这支步枪的脾气了。图2-2显示了小明的5次试枪过程
7474

7575
<img src="../Images/2/target1.png" width="500" ch="500" />
7676

@@ -125,7 +125,7 @@
125125

126126
以上三个例子比较简单,容易理解,我们把黑盒子再请出来:黑盒子这件事真正的意义并不是猜测当输入是多少时输出会是4。它的实际意义是:我们要破解这个黑盒子!于是,我们会有如下破解流程:
127127

128-
1. 记录下所有输入值和输出值,如表2-1
128+
1. 记录下所有输入值和输出值,如表2-1
129129

130130
表2-1 样本数据表
131131

B-教学案例与实践/B6-神经网络基本原理简明教程/Step1 - BasicKnowledge/02.1-线性反向传播.md

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -15,15 +15,15 @@ $$x = 2w + 3b \tag{2}$$
1515

1616
$$y = 2b + 1 \tag{3}$$
1717

18-
计算图如图2-4
18+
计算图如图2-4
1919

2020
<img src="../Images/2/flow1.png" ch="500" />
2121

2222
图2-4 简单线性计算的计算图
2323

2424
注意这里x, y, z不是变量,只是计算结果。w, b是才变量。因为在后面要学习的神经网络中,我们要最终求解的是w和b的值,在这里先预热一下。
2525

26-
当w = 3, b = 4时,会得到图2-5的结果
26+
当w = 3, b = 4时,会得到图2-5的结果
2727

2828
<img src="../Images/2/flow2.png" ch="500" />
2929

B-教学案例与实践/B6-神经网络基本原理简明教程/Step1 - BasicKnowledge/02.2-非线性反向传播.md

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -63,7 +63,7 @@ $$
6363
\Delta x = \Delta a / 2x \tag{根据式1}
6464
$$
6565

66-
我们给定初始值$x=2,\Delta x=0$,依次计算结果如表2-2
66+
我们给定初始值$x=2,\Delta x=0$,依次计算结果如表2-2
6767

6868
表2-2 正向与反向的迭代计算
6969

B-教学案例与实践/B6-神经网络基本原理简明教程/Step1 - BasicKnowledge/03.1-均方差损失函数.md

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -35,7 +35,7 @@ $$
3535

3636
### 3.1.2 实际案例
3737

38-
假设有一组数据如图3-3,我们想找到一条拟合的直线
38+
假设有一组数据如图3-3,我们想找到一条拟合的直线
3939

4040
<img src="../Images/3/mse1.png" ch="500" />
4141

@@ -79,7 +79,7 @@ $$
7979

8080
#### 损失函数值的3D示意图
8181

82-
横坐标为W,纵坐标为b,针对每一个w和一个b的组合计算出一个损失函数值,用三维图的高度来表示这个损失函数值。下图中的底部并非一个平面,而是一个有些下凹的曲面,只不过曲率较小,如图3-7
82+
横坐标为W,纵坐标为b,针对每一个w和一个b的组合计算出一个损失函数值,用三维图的高度来表示这个损失函数值。下图中的底部并非一个平面,而是一个有些下凹的曲面,只不过曲率较小,如图3-7
8383

8484
<img src="../Images/3/lossfunction3d.png" ch="500" />
8585

@@ -119,7 +119,7 @@ $$
119119
[0.68 0.66 0.64 ... 4.63 4.69 4.75]]
120120
```
121121

122-
然后遍历矩阵中的损失函数值,在具有相同值的位置上绘制相同颜色的点,比如,把所有值为0.72的点绘制成红色,把所有值为0.75的点绘制成蓝色......,这样就可以得到图3-9
122+
然后遍历矩阵中的损失函数值,在具有相同值的位置上绘制相同颜色的点,比如,把所有值为0.72的点绘制成红色,把所有值为0.75的点绘制成蓝色......,这样就可以得到图3-9
123123

124124
<img src="../Images/3/lossfunction2d.png" ch="500" />
125125

B-教学案例与实践/B6-神经网络基本原理简明教程/Step2 - LinearRegression/04.5-梯度下降的三种形式.md

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -240,7 +240,7 @@ if __name__ == '__main__':
240240
|epoch|3|10|60|
241241
|结果|w=2.003, b=2.990|w=2.006, b=2.997|w=1.993, b=2.998|
242242

243-
表4-6比较了三种方式的结果,从结果看,都接近于$w=2,b=3$的原始解。最后的可视化结果图如图4-10,可以看到直线已经处于样本点比较中间的位置
243+
表4-6比较了三种方式的结果,从结果看,都接近于$w=2,b=3$的原始解。最后的可视化结果图如图4-10,可以看到直线已经处于样本点比较中间的位置
244244

245245
<img src="../Images/4/mbgd-result.png" ch="500" />
246246

B-教学案例与实践/B6-神经网络基本原理简明教程/Step2 - LinearRegression/05.3-样本特征数据归一化.md

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -164,7 +164,7 @@ B= [[242.15205099]]
164164
z= [[37366.53336103]]
165165
```
166166

167-
虽然损失函数值没有像我们想象的那样趋近于0,但是却稳定在了400左右震荡,这也算是收敛!看一下损失函数图像
167+
虽然损失函数值没有像我们想象的那样趋近于0,但是却稳定在了400左右震荡,这也算是收敛!看一下损失函数图像
168168

169169
<img src="../Images/5/correct_loss.png" ch="500" />
170170

B-教学案例与实践/B6-神经网络基本原理简明教程/Step3 - LinearClassification/06.4-线性二分类结果可视化.md

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -122,7 +122,7 @@ if __name__ == '__main__':
122122
```Python
123123
params = HyperParameters(eta=0.1, max_epoch=10000, batch_size=10, eps=1e-3, net_type=NetType.BinaryClassifier)
124124
```
125-
把max_epoch从100改成了10000,再跑一次
125+
把max_epoch从100改成了10000,再跑一次
126126

127127
<img src="../Images/6/binary_loss_10k.png" ch="500" />
128128

B-教学案例与实践/B6-神经网络基本原理简明教程/Step3 - LinearClassification/07.0-多入多出单层神经网络-线性多分类.md

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -42,7 +42,7 @@
4242

4343
#### 线性多分类和非线性多分类的区别
4444

45-
下图先示意了线性多分类和非线性多分类的区别:
45+
图7-2显示了线性多分类和非线性多分类的区别。
4646

4747
<img src="../Images/7/linear_vs_nonlinear.png" />
4848

0 commit comments

Comments
 (0)