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 随机 "关掉" 部分神经元,让模型不 "死记硬背",换数据也能表现好。
相关推荐
凯丨18 分钟前
AI 蠕虫来了:恶意文档如何通过 Copilot for Word 自我传播?
人工智能·c#·copilot
武子康21 分钟前
GPT-5.6 Luna 降价 80%:Agent 真正该重算的是单次成功成本
人工智能·chatgpt·llm
Gu Gu Study23 分钟前
ScoutLoop开放域深度研究引擎(agent的初步设计想法)
人工智能·python
HyperAI超神经1 小时前
15亿参数挑战机器人控制,MiniCPM-RobotManip正式开源;覆盖文本/图/视频/动作序列,英伟达发布全模态模型Cosmos3-Edge
人工智能·深度学习·机器人·多模态·图像生成·具身智能·智能体
搞科研的小刘选手1 小时前
【国际生态学协会主办】2026年生态环境与人工智能国际学术会议(ICAIEE 2026)
人工智能·生态环境·学术会议·会议推荐
笨鸟先飞,勤能补拙1 小时前
AI 赋能网络安全领域深度剖析
网络·人工智能·windows·安全·web安全·网络安全·github
小鸟你好啊1 小时前
搭建基于 Solon AI 的 Streamable MCP 服务并部署至阿里云百炼
人工智能·阿里云·云计算
Summer-Bright1 小时前
深度 | Agent框架大洗牌:AutoGen退场后的新秩序
人工智能·ai·语言模型·ai软件
ThsPool1 小时前
【遥感学习整理 02】ENVI遥感图像处理基础:从数据读取到遥感信息产品
图像处理·人工智能·学习
非凸科技1 小时前
非凸智能APP
人工智能