dropout层加在哪里_keras教程-08-Dropout的原理和实现

本文介绍了 Dropout 正则化技术的原理,它能防止神经网络过拟合。在 Keras 中,Dropout 层可以在输入层和隐藏层使用,并在训练期间随机关闭一定比例的神经元。文章展示了在 Sonar 数据集上应用 Dropout 的示例,包括在输入层和隐藏层使用 Dropout 的效果,并提供了实用技巧和建议。
摘要由CSDN通过智能技术生成

本文代码运行环境:

windows10

python3.6

jupyter notebook

tensorflow 1.x

keras 2.x

神经网络和深度学习模型的简单而强大的正则化技术是Dropout。在这篇文章中,您将发现dropout正则化技术以及如何将其应用于Keras的模型中。

阅读这篇文章后你会知道:

dropout正则化技术原理

如何在输入层上使用dropout。

如何在隐藏图层上使用dropout。

如何根据不同的问题情景调整dropout水平

Dropout正则化原理

Dropout 是Srivastava等人提出的神经网络模型的正则化技术。在2014年的论文 Dropout: A Simple Way to Prevent Neural Networks from Overfitting (下载 PDF )

Dropout是一种在训练过程中随机忽略神经元的技术。他们随机“Dropout”, 意味着它们对下游神经元激活的贡献在正向通过时暂时消除,并且任何权重更新都不会发生于这些神经元。

当神经网络训练时,不同神经元会根据不同特征来调整自己的参数。神经元变得依赖于这种特殊的特征, 有些特省甚至是有害的,如果学习太多这些特征可能导致模型泛化能力下降, 无法适应训练数据以外的数据。

您可以想象,如果在训练期间神经元随机掉出网络,其他神经元将不得不承担这些缺失神经元的工作, 分担缺失神经元的一部分特征表示。我们相信, 这会导致网络学习多个独立的内部表示。

其结果是网络对神经元的特定权重变得不那么敏感。这反过来导致网络能够更好地概括并且不太可能过度拟合训练数据。

Keras中的Dropout层

每次训练时, 以一定的概率(比如20%)丢弃一些神经元很容易实现。这就是在Keras中实施Dropout的方式。 Dropout仅在模型训练期间使用,在评估模型的效果时不使用。

接下来,我们将探讨在Keras中使用Dropout的几种不同方法。

这些示例将使用Sonar数据集。这是一个二元分类问题,其目标是从声纳信息中正确识别岩石和模拟地雷。它是神经网络的一个很好的测试数据集,因为所有输入值都是数字的并且具有相同的单位。

可以从UCI机器学习库下载数据集。您可以将声纳数据集放在notebook所在目录下的data文件夹中,文件名为sonar.csv。

我们将使用scikit-learn中的10折交叉验证法来评估的模型,以便更好地梳理结果中的差异。

输入是60维的向量,输出是1维的。输入值在用于训练之前已标准化。基线神经网络模型具有两个隐藏层,第一层具有60个单元,第二层具有30个。使用随机梯度下降法进行模型训练, 并且设置相对较低的学习率。

下面列出了完整的基线模型。

1

2

3

4

5

6

7

8

9

10

11

12

13

14

15

16

17

18

19

20

21

22

23

24

25

26

27

28

29

<
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值