PyTorch深度学习参数初始化和正则化

核心结论:参数初始化 决定模型能否顺利学习,正则化能避免模型 "学太死",两者都是深度学习训练的关键操作。

一、参数初始化:给模型一个好的起点

参数(主要是全连接层的权重和偏置)就像模型的 "初始技能点",选对了能让模型快速学出规律,选错了可能直接 "学废"。

1. 为啥不能随便初始化?

  • 全设为 0 或相同值:模型所有权重更新都一样,相当于 "所有技能点都一样",没法学习不同特征,完全没用。
  • 数值太大 / 太小:会导致梯度消失(学不动)或梯度爆炸(学乱了),模型没法收敛。

2. 常用的初始化方法(对应不同激活函数)

  • 常数初始化:全设为 0、1 或某个固定值,不推荐(除了偏置偶尔设为 0)。
  • 正态 / 均匀分布初始化:随机给权重赋符合正态或均匀分布的值,是基础且通用的选择。
  • Xavier (Glorot)初始化:专门适配 Sigmoid、Tanh 激活函数,能让每层输入输出的 "信号强度" 保持稳定,避免梯度消失。
  • He (kaiming)初始化:专门适配 ReLU 及其变体(比如 Leaky ReLU),是目前隐藏层最常用的初始化方法之一。

相关代码如下:

复制代码
import torch.nn as nn
linear = nn.Linear(5, 2)
#正态分布初始化
#参数初始化为制定均值和标准差的正态分布
nn.init.normal_(linear.weight,mean=0,std=1)
print(linear.weight)

#均与分布初始化
#参数初始化为指定范围均匀分布
nn.init.uniform_(linear.weight,a=0,b=10)

#Xavier正态分布初始化
nn.init.xavier_normal_(linear.weight)
#Xavier均匀分布初始化
nn.init.xavier_uniform_(linear.weight)
#He初始化
nn.init.kaiming_normal_(linear.weight)
#He初始化
nn.init.kaiming_uniform_(linear.weight)

二、正则化:防止模型 "死记硬背"

模型训练时容易 "学太细",把训练数据里的噪音都记住(这叫过拟合),导致换个新数据就出错。正则化就是给模型 "松绑",让它学通用规律而非细节。

1. 核心方法:Dropout(随机失活)

  • 原理:训练时随机 "关掉" 一部分神经元,让模型没法依赖某个特定神经元,被迫学更通用的特征。
  • 操作:
    • 训练时:按概率(比如 50%)随机关闭神经元,没被关闭的神经元输出会稍微放大,保证信号强度不变。
    • 测试时:所有神经元都工作,不关闭也不放大。
  • 优点:简单有效,不管是全连接层还是卷积层都能用,尤其适合复杂模型。

简单代码如下:

复制代码
#正则化,随机失活
import torch

dropout = torch.nn.Dropout(p = 0.5) #p参数:表示随机失活的概率
#torch.randint(low, high, size)
x = torch.randint(1,10,(10,),dtype=torch.float) #创建一个10行1列的随机数
print("dropout前", x)
print("dropout后", dropout(x))

三、通俗总结

  • 初始化:给模型选 "初始技能点",He 配 ReLU、Xavier 配 Sigmoid/Tanh,别全设 0 或乱设值。
  • 正则化:用 Dropout 随机 "关掉" 部分神经元,让模型不 "死记硬背",换数据也能表现好。
相关推荐
私人珍藏库3 小时前
[Android] PeakFinder AR v4.8.89 (山峰全景识别+增强现实山峰查看器)
android·人工智能·智能手机·ar·工具·软件
月疯3 小时前
CNN卷积和反卷积输出的计算方法
深度学习·神经网络·cnn
CS创新实验室3 小时前
算法、齿轮与硅基大脑:数值计算发展简史
人工智能·算法·数值计算
能有时光3 小时前
PyTorch KernelAgent 源码解读 ---(4)--- ExtractorAgent
人工智能·pytorch·python
直接冲冲冲3 小时前
鱼书-PH4-类的作用
深度学习
fthux4 小时前
GitZip Pro 源码解析:一个 GitHub 文件/文件夹下载扩展是如何工作的(一)整体架构与扩展入口
人工智能·ai·开源·github·open source
aqi004 小时前
15天学会AI应用开发(十七)使用LangGraph实现会话记忆功能
人工智能·python·大模型·ai编程·ai应用
xixixi777775 小时前
三大 AI 安全里程碑:Akamai 高危风险预警、智能体水印强制落地、PQC 量子安全全产业链统一
大数据·人工智能·安全·ai·大模型·智能体·政策
AI小码5 小时前
LLM 应用的缓存工程:当每次 API 调用都在燃烧成本
java·人工智能·spring·计算机·llm·编程·api
code 小楊5 小时前
AI函数调用:Function Calling从理论到实战全解析
人工智能