Dropout 是一种用于深度学习模型的正则化技术,旨在减少模型对特定训练样本的过度拟合。其主要作用包括:
-
减少过拟合: Dropout 阻止神经网络对某些特定输入值过度依赖,从而提高模型的泛化能力。通过随机地失活神经元(将其输出设为零),模型在训练期间不会过度依赖于任何一个神经元,减少了复杂模型在训练数据上的过拟合风险。
-
提高模型的鲁棒性: Dropout 可以使模型对输入的微小变化更加鲁棒,因为模型不会过分依赖于特定的输入特征。
类似半监督,有点数据增强的味道。
示例:
import torch
import torch.nn as nn# 定义一个具有随机失活的模块
dropout = nn.Dropout(p=0.5)# 输入张量
input_tensor = torch.randn(3, 5)# 应用随机失活
output = dropout(input_tensor)
默认定义的参数为0.5,可自行设置炼丹。此外,默认是在dim=1维度上进行抑制,如果有问题可自行定义失活的维度,或者检查自己的维度转换是否有问题。