dropout

Dropout是一种用于神经网络的正则化技术,旨在减少过拟合。过拟合通常在模型在训练数据上表现得很好,但在新数据上表现不佳时发生。Dropout通过在训练过程中随机关闭(丢弃)神经元的方式来防止过拟合。

Dropout的原理如下:

  1. 随机丢弃神经元: 在每个训练迭代中,Dropout会随机选择一些神经元并将其输出置零。这相当于将这些神经元从网络中删除,因此网络的每个训练迭代都会使用不同的子集神经元。

  2. 独立丢弃: 每个神经元都有一个与其相关的丢弃概率,通常用超参数 dropout 表示。该概率表示在训练时每个神经元被丢弃的概率。例如,如果 dropout=0.5,则每个神经元在每个训练迭代中都有50%的概率被丢弃。

  3. 防止过拟合: Dropout通过减少神经元之间的共适应性(co-adaptation)来防止过拟合。因为每个神经元都可能在某个训练迭代中被丢弃,网络不能过度依赖于任何一个特定的神经元,从而增加了模型的泛化能力。

  4. 测试时全保留: 在测试阶段,所有神经元都被保留,但其输出值要乘以 1 - dropout 这个比例。这是为了在测试时保持输入和输出之间的一致性,因为在训练时某些神经元被丢弃了。

Dropout的引入可以看作是在训练过程中对模型进行了集成学习,通过多次训练不同的子集,模型能够更鲁棒地适应不同的数据分布,从而提高泛化性能。

复制代码
def dropout_layer(X,dropout):
    assert 0 <= dropout <= 1
    if dropout == 1:
        return torch.zeros_like(X)
    if dropout == 0:
        return X
    mask = (torch.rand(X.shape) > dropout).float()
    return mask * X / (1.0 - dropout)
相关推荐
jay神1 小时前
基于 YOLOv8 与 Faster R-CNN 的盲道障碍检测系统
人工智能·深度学习·yolo·计算机视觉·cnn·课程设计·计算机毕业设计
打不了嗝 ᥬ᭄2 小时前
Swin Transformer 详解:窗口注意力如何成为新一代视觉 backbone
深度学习·计算机视觉·自注意力机制·swintransformer
落雪snowflake2 小时前
论文精讲:A Language-Informed Loss for Visual Generation中文题目:一种面向视觉生成的语言信息引导损失函数
人工智能·深度学习·计算机视觉
葫三生3 小时前
关于三生原理系列被技术开发社区批量收录或引发策展边界讨论的一种思考
大数据·人工智能·深度学习·算法·机器学习·数据挖掘·开源
持续学习的程序员+13 小时前
跟随一次“沙拉酱瓶入篮”任务,理解 RPent(harness vla) 的完整工作流程
人工智能·深度学习·机器学习
jay神3 小时前
基于 YOLOv8 的无人机识别与检测系统
人工智能·深度学习·yolo·计算机视觉·无人机·课程设计·计算机毕业设计
田里的水稻3 小时前
FA_CNN卷积神经网络四---线性层及其拉平PyTorch
人工智能·pytorch·python·深度学习·神经网络·cnn
碧海银沙音频科技研究院3 小时前
实现炬芯ATS308X的usb cdc 串口IAP 固件升级功能实现
人工智能·嵌入式硬件·深度学习·算法
跟我学机器学习4 小时前
拥有短期记忆的RAG Agent:记忆增强检索实战
人工智能·深度学习·语言模型·数据挖掘·rag
QN1幻化引擎4 小时前
信号场注意力(SFA):把 KV Cache 变成 O(1) 的双通道注意力——0.1B/0.3B 受控 A/B 精度反升 15.5% / 24.3%
pytorch·深度学习·大模型·transformer·注意力机制·推理优化