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 随机 "关掉" 部分神经元,让模型不 "死记硬背",换数据也能表现好。
相关推荐
Element_南笙15 分钟前
VGG网络-深度学习经典架构解析
网络·深度学习·架构
薛定猫AI18 分钟前
【深度解析】Claude Code Skills 工作流:用知识图谱、设计规范与 Agent 工具链提升 AI 编程效率
人工智能·知识图谱·设计规范
AI自动化工坊20 分钟前
Cloudflare Project Think技术实践:零成本AI Agent部署架构深度解析
人工智能·架构·agent·cloudflare
IT_陈寒1 小时前
JavaScript里这个隐式类型转换的坑,我终于爬出来了
前端·人工智能·后端
星幻元宇VR1 小时前
VR航空航天科普设备助力航天知识普及
人工智能·科技·学习·安全·vr·虚拟现实
Agent产品评测局1 小时前
制造业生产调度自动化落地,完整步骤与避坑指南:2026企业级智能体选型与实战全景
运维·人工智能·ai·chatgpt·自动化
志栋智能1 小时前
超自动化巡检:让合规与审计变得轻松简单
运维·网络·人工智能·自动化
用户1708542888852 小时前
用 Codex + Huashu Design Skill,15 分钟做出设计师级别的演示文稿(PPT)
人工智能
Elastic 中国社区官方博客2 小时前
Elasticsearch:智能搜索 - AI builder 及 skills
大数据·人工智能·elasticsearch·搜索引擎·ai·信息可视化·全文检索
陶陶然Yay2 小时前
神经网络卷积层梯度公式推导
人工智能·深度学习·神经网络