深度学习 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)会自动处理这些维度,开发者只需关注整体架构设计。

相关推荐
Oculus Reparo!几秒前
InternLM 论文分类微调实践(XTuner 版)
人工智能·分类·数据挖掘
励志成为大佬的小杨4 分钟前
时间序列基础
人工智能·算法
Trae首席推荐官13 分钟前
字节跳动技术副总裁洪定坤:TRAE 想做 AI Development
前端·人工智能·trae
Smaller、FL27 分钟前
介绍MCP的背景及流程
人工智能·自然语言处理·llm·deepseek·mcp
一ge科研小菜鸡1 小时前
云原生时代的系统设计:架构转型的战略支点
大数据·人工智能
jndingxin1 小时前
OpenCV CUDA模块图像变形------对图像进行上采样操作函数pyrUp()
人工智能·opencv·计算机视觉
一块plus1 小时前
Polkadot 的 Web3 哲学:从乔布斯到 Gavin Wood 的数字自由传承
人工智能·程序员·架构
Java学术趴1 小时前
Transformer架构解密:从自注意力到组件协同,一文读懂AI核心引擎
人工智能
神州问学1 小时前
从DeepSeek-V3到DeepSeek-R1:中国AI团队的技术突破与创新
人工智能
神州问学1 小时前
AutoGLM沉思版:智能体推理的Deep Research探索
人工智能·python