神经网络基础-正则化方法

文章目录

    • [1. 什么是正则化](#1. 什么是正则化)
    • [2. 正则化方法](#2. 正则化方法)
      • [2.1 Dropout正则化](#2.1 Dropout正则化)
      • [2.2 批量归一化(BN层)](#2.2 批量归一化(BN层))

学习目标:

  1. 知道正则化的作用
  2. 掌握随机失活 DropOut 策略
  3. 知道 BN 层的作用

1. 什么是正则化

  • 在设计机器学习算法时希望在新样本上的泛化能力强。许多机器学习算法都采用相关的策略来减小测试误差,这些策略被统称为正则化
  • 神经网络的强大的表示能力经常遇到过拟合,所以需要使用不同形式的正则化策略。
  • 目前在深度学习中使用较多的策略有范数惩罚DropOut特殊的网络层等,接下来我们对其进行详细的介绍。

2. 正则化方法

2.1 Dropout正则化

在练神经网络中模型参数较多,在数据量不足的情况下,很容易过拟合。Dropout(随机失活)是一个简单有效的正则化方法。

  • 在训练过程中,Dropout 的实现是让神经元以超参数 p 的概率停止工作或者激活被置为0,未被置为0的进行缩放,缩放比例为1/(1-p)。训练过程可以认为是对完整的神经网络的一些子集进行训练,每次基于输入数据只更新子网络的参数。
  • 在测试过程中,随机失活不起作用。

python实现:

python 复制代码
import torch
import torch.nn as nn


# Dropout 正则化
def test():
    # 初始化随机失活层
    dropout = nn.Dropout(p=0.4)
    # 初始化输入数据:表示某一层的 weight 值
    inputs = torch.randint(0,10,size=[1,4]).float()
    layer = nn.Linear(4,5)
    y = layer(inputs)
    print("未失活FC层的输出结果\n",y)
    y = dropout(y)
    print("失活后FC层的输出结果\n",y)

test()

输出结果:

tex 复制代码
未失活FC层的输出结果
 tensor([[-2.2610, -0.7930,  0.3200,  7.0264, -2.2781]],
       grad_fn=<AddmmBackward0>)
失活后FC层的输出结果
 tensor([[-0.0000, -1.3217,  0.0000,  0.0000, -3.7968]], grad_fn=<MulBackward0>)

上述代码将 Dropout 层的概率 p 设置为 0.4,此时经过 Dropout 层计算的张量中就出现了很多 0 , 未变为0的按照(1/(1-0.4))进行处理。

2.2 批量归一化(BN层)

先对数据标准化,再对数据重构(缩放+平移),如下所示:

  1. λ 和 β 是可学习的参数,它相当于对标准化后的值做了一个线性变换,λ 为系数,β 为偏置;
  2. eps 通常指为 1e-5,避免分母为 0;
  3. E(x) 表示变量的均值;
  4. Var(x) 表示变量的方差;

批量归一化层在计算机视觉领域使用较多,具体使用方法我们到后面在给大家进行介绍。

相关推荐
Coder_Boy_32 分钟前
技术发展的核心规律是「加法打底,减法优化,重构平衡」
人工智能·spring boot·spring·重构
会飞的老朱3 小时前
医药集团数智化转型,智能综合管理平台激活集团管理新效能
大数据·人工智能·oa协同办公
聆风吟º4 小时前
CANN runtime 实战指南:异构计算场景中运行时组件的部署、调优与扩展技巧
人工智能·神经网络·cann·异构计算
Codebee6 小时前
能力中心 (Agent SkillCenter):开启AI技能管理新时代
人工智能
聆风吟º7 小时前
CANN runtime 全链路拆解:AI 异构计算运行时的任务管理与功能适配技术路径
人工智能·深度学习·神经网络·cann
uesowys7 小时前
Apache Spark算法开发指导-One-vs-Rest classifier
人工智能·算法·spark
AI_56787 小时前
AWS EC2新手入门:6步带你从零启动实例
大数据·数据库·人工智能·机器学习·aws
User_芊芊君子7 小时前
CANN大模型推理加速引擎ascend-transformer-boost深度解析:毫秒级响应的Transformer优化方案
人工智能·深度学习·transformer
智驱力人工智能8 小时前
小区高空抛物AI实时预警方案 筑牢社区头顶安全的实践 高空抛物检测 高空抛物监控安装教程 高空抛物误报率优化方案 高空抛物监控案例分享
人工智能·深度学习·opencv·算法·安全·yolo·边缘计算
qq_160144878 小时前
亲测!2026年零基础学AI的入门干货,新手照做就能上手
人工智能