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

相关推荐
伏小白白白38 分钟前
【论文精度-2】求解车辆路径问题的神经组合优化算法:综合展望(Yubin Xiao,2025)
人工智能·算法·机器学习
应用市场42 分钟前
OpenCV编程入门:从零开始的计算机视觉之旅
人工智能·opencv·计算机视觉
星域智链1 小时前
宠物智能用品:当毛孩子遇上 AI,是便利还是过度?
人工智能·科技·学习·宠物
taxunjishu1 小时前
DeviceNet 转 MODBUS TCP罗克韦尔 ControlLogix PLC 与上位机在汽车零部件涂装生产线漆膜厚度精准控制的通讯配置案例
人工智能·区块链·工业物联网·工业自动化·总线协议
说私域1 小时前
基于多模态AI技术的传统行业智能化升级路径研究——以开源AI大模型、AI智能名片与S2B2C商城小程序为例
人工智能·小程序·开源
囚生CY2 小时前
【速写】优化的深度与广度(Adam & Moun)
人工智能·python·算法
hqyjzsb2 小时前
2025年市场岗位能力重构与跨领域转型路径分析
c语言·人工智能·信息可视化·重构·媒体·改行学it·caie
爱学习的uu2 小时前
CURSOR最新使用指南及使用思路
人工智能·笔记·python·软件工程
叶凡要飞2 小时前
RTX5060Ti安装双系统ubuntu22.04各种踩坑点(黑屏,引导区修复、装驱动、server版本安装)
人工智能·python·yolo·ubuntu·机器学习·操作系统
叶庭云2 小时前
一文掌握 CodeX CLI 安装以及使用!
人工智能·openai·安装·使用教程·codex cli·编码智能体·vibe coding 终端