深度学习 w b

在深度学习中,权重 w偏置 b 是神经网络的核心参数,它们的形态(shape)取决于网络结构和数据维度。以下是关于 w 和 b 的详细解析:

1. 数学表示与物理意义

  • 权重 w: 连接神经元之间的强度,决定输入信号的重要性。

    • 数学上是一个 矩阵,用于线性变换(如 \(y = wx + b\))。
    • 训练过程中通过反向传播自动学习得到。
  • 偏置 b: 调整神经元激活函数的阈值,增加模型的灵活性。

    • 数学上是一个 向量,每个神经元对应一个偏置值。

2. 不同层的 w 和 b 形态

假设:

  • 输入特征维度为 \(n_{\text{in}}\)
  • 输出特征维度为 \(n_{\text{out}}\)
  • 批量大小为 m
全连接层(Dense Layer)
  • 权重 w:形状为 \((n_{\text{in}}, n_{\text{out}})\)
  • 偏置 b:形状为 \((n_{\text{out}},)\)
  • 计算示例: 输入 x 形状为 \((m, n_{\text{in}})\),则输出 \(y = xw + b\),形状为 \((m, n_{\text{out}})\)。
卷积层(Convolutional Layer)
  • 权重 w :形状为 \((k, k, c_{\text{in}}, c_{\text{out}})\)
    • k:卷积核大小
    • \(c_{\text{in}}\):输入通道数
    • \(c_{\text{out}}\):输出通道数
  • 偏置 b:形状为 \((c_{\text{out}},)\)
  • 每个卷积核共享同一组 w 和 b
循环层(RNN/LSTM)
  • 权重 w:通常分为多个矩阵(如输入门、遗忘门等)。
  • 偏置 b:每个门对应一个向量。
  • 形态示例: LSTM 的隐藏状态维度为 h,则每个门的权重矩阵形状为 \((h, h)\) 或 \((n_{\text{in}}, h)\)。

3. 直观理解:以简单网络为例

假设一个 3 层神经网络:

  • 输入层:2 个神经元
  • 隐藏层:3 个神经元
  • 输出层:1 个神经元
第一层(输入→隐藏)
  • 权重 \(w_1\) : 形状为 \((2, 3)\),即:

    python

    运行

    复制代码
    w1 = [
      [w11, w12, w13],  # 连接输入层第1个神经元到隐藏层
      [w21, w22, w23]   # 连接输入层第2个神经元到隐藏层
    ]
  • 偏置 \(b_1\) : 形状为 \((3,)\),即:

    python

    运行

    复制代码
    b1 = [b1, b2, b3]  # 每个隐藏层神经元对应一个偏置
第二层(隐藏→输出)
  • 权重 \(w_2\) : 形状为 \((3, 1)\),即:

    python

    运行

    复制代码
    w2 = [
      [w1],  # 连接隐藏层第1个神经元到输出层
      [w2],  # 连接隐藏层第2个神经元到输出层
      [w3]   # 连接隐藏层第3个神经元到输出层
    ]
  • 偏置 \(b_2\) : 形状为 \((1,)\),即:

    python

    运行

    复制代码
    b2 = [b]  # 输出层神经元的偏置

4. 在代码中的表示

以 PyTorch 为例,定义一个简单的全连接层:

python

运行

复制代码
import torch.nn as nn

# 输入维度=2,输出维度=3
fc_layer = nn.Linear(in_features=2, out_features=3)

# 权重和偏置的形态
print(fc_layer.weight.shape)  # 输出: torch.Size([3, 2]) 即 (n_out, n_in)
print(fc_layer.bias.shape)    # 输出: torch.Size([3]) 即 (n_out,)

5. 初始化与训练后的状态

  • 初始化时:w 和 b 通常随机初始化(如高斯分布、均匀分布)。

    python

    运行

    复制代码
    # PyTorch默认初始化方式示例
    nn.init.xavier_uniform_(fc_layer.weight)  # Xavier初始化权重
    nn.init.zeros_(fc_layer.bias)             # 偏置初始化为0
  • 训练后:w 和 b 的值通过反向传播更新,最终收敛到能最小化损失函数的值。

6. 为什么需要偏置 b

  • 增加模型灵活性: 若无偏置,线性变换 \(y = wx\) 始终过原点,无法表示偏移。 偏置允许模型学习 \(y = wx + b\) 这样的更一般的线性关系。

  • 示例: 若目标函数为 \(y = 2x + 5\),则 \(w = 2\),\(b = 5\)。

总结

  • 权重 w

    • 矩阵,形状为 \((n_{\text{in}}, n_{\text{out}})\)
    • 控制输入与输出之间的映射关系
  • 偏置 b

    • 向量,形状为 \((n_{\text{out}},)\)
    • 调整神经元的激活阈值

理解 w 和 b 的形态对设计网络架构和调试训练过程至关重要。在实践中,现代深度学习框架(如 PyTorch、TensorFlow)会自动处理这些维度,开发者只需关注整体架构设计。

相关推荐
Moshow郑锴3 小时前
人工智能中的(特征选择)数据过滤方法和包裹方法
人工智能
TY-20253 小时前
【CV 目标检测】Fast RCNN模型①——与R-CNN区别
人工智能·目标检测·目标跟踪·cnn
CareyWYR4 小时前
苹果芯片Mac使用Docker部署MinerU api服务
人工智能
失散134 小时前
自然语言处理——02 文本预处理(下)
人工智能·自然语言处理
mit6.8245 小时前
[1Prompt1Story] 滑动窗口机制 | 图像生成管线 | VAE变分自编码器 | UNet去噪神经网络
人工智能·python
sinat_286945195 小时前
AI应用安全 - Prompt注入攻击
人工智能·安全·prompt
迈火6 小时前
ComfyUI-3D-Pack:3D创作的AI神器
人工智能·gpt·3d·ai·stable diffusion·aigc·midjourney
Moshow郑锴7 小时前
机器学习的特征工程(特征构造、特征选择、特征转换和特征提取)详解
人工智能·机器学习
CareyWYR8 小时前
每周AI论文速递(250811-250815)
人工智能
AI精钢8 小时前
H20芯片与中国的科技自立:一场隐形的博弈
人工智能·科技·stm32·单片机·物联网