9.2 Dropout

一、Dropout的概念

二、Dropout的使用

实际使用有:torchvision自带的alexnet模型

一、Dropout概念

随机失活。随机是指:有一定的概率让神经元失去活性。失活:权重等于0.

看如下示意图:

左边是正常的全连接神经网络。右边是加了dropout,打×的是失活了。

这就可以让神经元学习到更鲁棒的特征,减轻过度的依赖性,从而缓解了过拟合,降低方差,达到正则化的效果。

这个操作也会使得我们的模型更加多样化,因为每一次进行前向传播,神经元都是随机失活,所训练的模型都是不一样的。

为什么可以得到正则化的效果呢?可以从两个角度进行思考。

1. 从依赖性角度。一个神经元可以接受上层的输出,如果特别它特别依赖与某个特征,它可能会给这个的权值很大,而其他的权重很小。加了dropout之后,就不知道上一层哪些神经元会出现,所以就不会对某些神经元过度依赖。这时候就需要把经历平均地放到前面的神经元上。

2. 从数值的角度考虑。所有的权重在数值上是差不多大小的。这样就实现了权重的约束。

二、Dropout的使用

1. 注意事项

使用过程中,需要注意:

在测试的时候,需要乘以一个系数。

我的理解是,比如我跟张三一起做一个项目。今天我来了,张三不来,我干的很好。明天,我不来,张三来了,他也干的很好。干了很多天之后,最后结果就是我和张三都能单独的做项目。突然有一天我俩一起来了。。。我俩一起干半天估计就能把一天的活干完。

2. pytorch中dropout的使用

我们来看一下pytorch提供的dropout层:

例1:dropout的使用

#dropout_regularization.py

# -*- coding:utf-8 -*-
"""
@file name  : dropout_regularization.py
@brief      : dropout 使用实验
"""
import torch
import torch.nn as nn
import matplotlib.pyplot as plt
import sys, os
hello_pytorch_DIR = os.path.abspath(os.path.dirname(__file__)+os.path.sep+".."+os.path.sep+"..")
sys.path.append(hello_pytorch_DIR)

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值