提交 ee644452 编写于 作者: Z zh-angle-i 提交者: Mu Li

Fix typo (#65)

上级 fdf45db8
......@@ -55,19 +55,16 @@ dropout(A, 1.0)
了解了丢弃法的概念与实现,那你可能对它的本质产生了好奇。
如果你了解集成学习,你可能知道它在提升弱分类器准确率上的威力。一般来说,在集成学习里,我们可以对训练数据集有放回地采样若干次并分别训练若干个不同的分类器;测试时
,把这些分类器的结果集成一下作为最终分类结果。
如果你了解集成学习,你可能知道它在提升弱分类器准确率上的威力。一般来说,在集成学习里,我们可以对训练数据集有放回地采样若干次并分别训练若干个不同的分类器;测试时,把这些分类器的结果集成一下作为最终分类结果。
事实上,丢弃法在模拟集成学习。试想,一个使用了丢弃法的多层神经网络本质上是原始网络的子集(节点和边)。举个例子,它可能长这个样子。
![](../img/dropout.png)
我们在之前的章节里介绍过[随机梯度下降算法](linear-regression-scratch.md):我们在训练神经网络模型时一般随机采样一个批量的训练数
据。丢弃法实质上是对每一个这样的数据集分别训练一个原神经网络子集的分类器。与一般的集成学习不同,这里每个原神经网络子集的分类器用的是同一套参数。因此丢弃法只是在
模拟集成学习。
据。丢弃法实质上是对每一个这样的数据集分别训练一个原神经网络子集的分类器。与一般的集成学习不同,这里每个原神经网络子集的分类器用的是同一套参数。因此丢弃法只是在模拟集成学习。
我们刚刚强调了,原神经网络子集的分类器在不同的训练数据批量上训练并使用同一套参数。因此,使用丢弃法的神经网络实质上是对输入层和隐含层的参数做了正则化:学到的参数
得使原神经网络不同子集在训练数据上都尽可能表现良好。
我们刚刚强调了,原神经网络子集的分类器在不同的训练数据批量上训练并使用同一套参数。因此,使用丢弃法的神经网络实质上是对输入层和隐含层的参数做了正则化:学到的参数使得原神经网络不同子集在训练数据上都尽可能表现良好。
下面我们动手实现一下在多层神经网络里加丢弃层。
......@@ -85,8 +82,7 @@ train_data, test_data = utils.load_data_fashion_mnist(batch_size)
## 含两个隐藏层的多层感知机
[多层感知机](mlp-scratch.md)已经在之前章节里介绍。与[之前章节](mlp-scratch.md)不同,这里我们定义一个包含两个隐含层的模型
,两个隐含层都输出256个节点。我们定义激活函数Relu并直接使用Gluon提供的交叉熵损失函数。
[多层感知机](mlp-scratch.md)已经在之前章节里介绍。与[之前章节](mlp-scratch.md)不同,这里我们定义一个包含两个隐含层的模型,两个隐含层都输出256个节点。我们定义激活函数Relu并直接使用Gluon提供的交叉熵损失函数。
```{.python .input n=2}
num_inputs = 28*28
......@@ -113,8 +109,7 @@ for param in params:
## 定义包含丢弃层的模型
我们的模型就是将层(全连接)和激活函数(Relu)串起来,并在应用激活函数后添加丢弃层。每个丢弃曾的元素丢弃概率可以分别设置。一般情况下,我们推荐把更靠近输入层
的元素丢弃概率设的更小一点。这个试验中,我们把第一层全连接后的元素丢弃概率设为0.2,把第二层全连接后的元素丢弃概率设为0.5。
我们的模型就是将层(全连接)和激活函数(Relu)串起来,并在应用激活函数后添加丢弃层。每个丢弃层的元素丢弃概率可以分别设置。一般情况下,我们推荐把更靠近输入层的元素丢弃概率设的更小一点。这个试验中,我们把第一层全连接后的元素丢弃概率设为0.2,把第二层全连接后的元素丢弃概率设为0.5。
```{.python .input n=4}
drop_prob1 = 0.2
......
Markdown is supported
0% .
You are about to add 0 people to the discussion. Proceed with caution.
先完成此消息的编辑!
想要评论请 注册