Dropout正则化

Dropout介绍

除了L2正则化之外,还有一个很重要的正则化方法叫随机失活(Dropout),下面,我们来了解一下。

如图所示,假设网络中的每一层的节点都以抛硬币的形式来设置概率,每一个节点得以保留和消除的概率都是0.5。

设置完节点之后,我们会删除得分是0分节点,然后删除从该节点进出的连线。最后得到一个节点更少,规模更小的网络。之后我们用反向传播算法进行训练。

其他样本,我们也按照这个方法进行训练,即删除一些节点,然后用一些精简的网络进行训练。对于每一个样本,我们都用精简的网络进行训练。

如何实施Dropout

实施Dropout的方法有很多,最常见的是反向随机失活(Inverted Dropout)

如图所示,我们使用三层神经网络举例。

d3表示一个三层的Dropout向量,keep-prob是一个具体的数,比如说上个例子中的0.5,这个例子我们用0.8来表示。这个数表示的是保留某个隐藏单元的概率

d3 = np.random.rand(a3.shape[0], a3.shape[1]) < keep-prob

这行代码表示的是它消除任意一个隐藏单元的概率是0.2,它的作用就是生成一个随机矩阵。也就是对于每一个隐藏单元而言,d3的值是1的概率都是0.8,而对应的值是0的概率是0.2。

接下来我们要做的是从第三层获取激活函数。

a3 = np.multiply(a3, d3)

他的作用就是过滤d3中所有等于0的元素。乘法运算最终把d3中的相应元素归零。

最后,我们进行

a3 /= keep-prob

他的功能是比如就像图中下面部分说的

z[4]=w[4]a[3]+b[4]

z^{[4]} = w^{[4]}a^{[3]}+b^{[4]}
如果a3的值减少了20%,那么直接计算的话z的值一定会受到影响。为了不影响这个z的值得话,我们对a3除以一个keep-prob。

这个就是Dropout的反向随机失活(Inverted Dropout)实现,不管keep-prob的值是多少,确保a3的期望值不变

在测试阶段进行预测

在测试阶段,我们不使用Dropout,因为在测试阶段,我们不希望输出的值是随机的。如果在测试阶段使用Dropout函数,那么预测值就会收到干扰。

理解Dropout

Dropout可以随机的删除神经网络中的节点,这一做法实在是有点疯狂。但是为什么正则化可以发挥这么大的作用,我们一起来了解一下。

如图所示,神经网络下面的每一个参数是keep-prob的不同的数值,他代表了每一层保留单元的概率。所以不同层的keep-prob值是可以变化的。对于第二层而言,w的矩阵比较大,所以我们可以把keep-prob的值设置的低一些。

因此,如果你担心某些层可能比其他的层更容易发生过拟合,那么你可以把这个层的参数设置的更低一些。

但是我们要注意的是,除非算法发生了过拟合,一般不建议使用Dropout。Dropout的一大缺点就是cost function不再明确定义了,每次迭代都会随机的移除一些节点。这样就不太容易去检查梯度下降的性能了。通常不移除节点的话cost function的值是在不断下降的,但是移除了节点之后就不好说了。不一定可以保证J单调递减。

其他正则化方法

我们先来介绍一下early stopping的概念。

如图所示,梯度下降过程中cost function的值在不断减小。然而验证集的误差可能会像紫色曲线。

early stopping的概念就是说,一个神经网络在这一点之前迭代的很好,我们在此刻停止训练吧,得到的验证集误差。

这是什么原因呢?

因为你的神经网络在还没有迭代很多次的时候,你的参数w的值接近于0。而在迭代过程中w的值会逐渐变得越来越大。

因此early stopping要的就是我们在此刻停止迭代过程,得到一个较小的w。避免了神经网络的过拟合。

但是early stopping也有不足之处

我们在训练一个机器学习模型的时候,通常希望他的成本函数(cost function)尽可能的小,同时又不要过拟合,然而early stopping因为早早的就停止了迭代过程,所以他无法保证我的J尽可能的小。

2.1.2 Dropout正则化以及其他正则化相关推荐

  1. 偏差与方差、L1正则化、L2正则化、dropout正则化、神经网络调优、批标准化Batch Normalization(BN层)、Early Stopping、数据增强

    日萌社 人工智能AI:Keras PyTorch MXNet TensorFlow PaddlePaddle 深度学习实战(不定时更新) 3.2 深度学习正则化 3.2.1 偏差与方差 3.2.1.1 ...

  2. keras添加L1正则化,L2正则化和Dropout正则化及其原理

    一.什么是正则化,用来干嘛的? 正则化(regularization),是指在线性代数理论中,不适定问题通常是由一组线性代数方程定义的,而且这组方程组通常来源于有着很大的条件数的不适定反问题.大条件数 ...

  3. L1正则化、L2正则化的多角度分析和概率角度的解释

    L1正则化.L2正则化的公式如下 min ⁡ w L 1 ( w ) = min ⁡ w f ( w ) + λ n ∑ i = 1 n ∣ w i ∣ min ⁡ w L 2 ( w ) = min ...

  4. L1正则化和L2正则化(从解空间角度)

    文章目录 一.什么是过拟合? 二.为什么模型会过拟合? 三.如何防止模型过拟合? 四.L1正则和L2正则 4.1 L1.L2的区别 4.2 为什么正则化能够防止过拟合? 4.3 为什么L1正则具有稀疏 ...

  5. L1正则化与L2正则化

    1.1-范数,2-范数 1-范数: 2-范数:2-范数就是通常意义下的距离 2.L1和L2正则化 我们所说的正则化,就是在原来的loss function的基础上,加上了一些正则化项或者称为模型复杂度 ...

  6. L1正则化和L2正则化的直观解释

    正则化(Regularization) 机器学习中几乎都可以看到损失函数后面会添加一个额外项,常用的额外项一般有两种,一般英文称作ℓ1ℓ1-norm,中文称作L1正则化和L2正则化,或者L1范数和L2 ...

  7. 【AI面试】L1 loss、L2 loss和Smooth L1 Loss,L1正则化和L2正则化

    损失函数是深度学习模型优化的一个灵魂基础,所以无论是很新的transform模型,还是比较早期的AlexNet,都不可避免的要涉及到损失函数的设计和应用. 所以,各种形形色色的损失函数(Loss)也就 ...

  8. L1正则化与L2正则化详解

    L1.L2正则化 什么是正则化? L1.L2正则化公式 正则化的作用 为什么加入L1正则化的模型会更稀疏 1.梯度视角 2.解空间形状视角 为何黄色区域为解空间? 3.函数叠加视角 为何L1正则化可将 ...

  9. 正则项的原理、梯度公式、L1正则化和L2正则化的区别、应用场景

    先对"L1正则化和L2正则化的区别.应用场景"给出结论,具体见后面的原理解释: L1正则化会产生更稀疏的解,因此基于L1正则化的学习方法相当于嵌入式的特征选择方法. L2正则化计算 ...

最新文章

  1. OpenCV 笔记(04)— OpenCV2 升级到 OpenCV3/CV4 的改动(去掉 CV_前缀、使用新的前缀替换、使用新的命名空间宏)
  2. FirstDay@JavaOne2017
  3. CSS的三种使用方式
  4. stm8s003 8K空间不够用,出现报错,修改stvd参数进行最优化
  5. pycharm 如何设置文件头信息?信息模板 头文件 coding: utf-8
  6. HMS数据库设置和优化
  7. ldd3笔记_2_加载模块方法, 模块程序组成【ZT】
  8. 漫漫长路十多小时,谁是机上WiFi的“业界良心”?
  9. 看看华为 Java 编程的军规...
  10. altium Designer布等长线、蛇形线
  11. java webservice 实例_Java WebService 简单实例(附实例代码)
  12. 信息系统项目管理知识记忆口诀-总结
  13. 服务器监控报警系统软件设计,Monitor监控报警系统
  14. javascript中mouseover和mouseout事件详解
  15. Android隐藏的权限管理机制:AppOps
  16. Navicat 使用IP连接本地mysql服务提示无权限访问
  17. 【密码学】费马小定理素性检测(C++代码实现)
  18. 数据库SQL实战 --43.将id=5以及emp_no=10001的行数据替换成id=5以及emp_no=10005
  19. CSS+HTML实现学成在线静态页面
  20. Java 高并发项目笔记

热门文章

  1. 安卓应用安全指南 4.4.3 创建/使用服务高级话题
  2. 少年郎,你需要封装好的ViewPager工具类
  3. Android 百度鹰眼轨迹SDK(v2.1.6)
  4. 论文笔记之:Multiple Feature Fusion via Weighted Entropy for Visual Tracking
  5. 使用lisp函数控制cursor
  6. 【Android】CM在repo中使用local manifest
  7. CCNP学习笔记(5)
  8. 单防区扩展模块怎么用_Zens推出模块化可扩展无线充电器 可为6台设备同时供电...
  9. ICCV2017: Unlabeled Samples Generated by GAN Improve the Person Re-Identification Baseline in Vitro
  10. eclipse卸载插件小记