机器学习笔记---神经网络中正向传播和反向传播当的偏置以及权重的矩阵维数是什么?

在神经网络中,权重和偏置的矩阵维度取决于相邻两层的神经元数量。以下是详细说明:

1. 正向传播时的维度

权重矩阵:
若当前层有 n 个神经元,前一层有 m 个神经元,则权重矩阵 W 的维度为 n×m。
公式:z=W⋅a prev +b,其中 a prev 是前一层输出(维度 m×1),W 将 m×1 映射到 n×1。

偏置向量:
偏置 b 的维度为 n×1,与当前层神经元数量一致。每个神经元对应一个独立的偏置值。

批量输入情况:
当输入为 m×b 的矩阵(b 为批量大小)时,W⋅a prev结果为 n×b,偏置 b 通过广播机制加到每一列。

2. 反向传播时的梯度维度


权重梯度:
梯度   的维度与权重矩阵 W 相同,即 n×m。
计算方式:


其中  的维度为 n×b,  的维度为 b×m,相乘后得到 n×m。

偏置梯度:
梯度 
 的维度为 n×1。
计算方式:

 
对批量数据中每个样本的梯度求和,最终得到 n×1。

3. 关键总结

4、示例

假设网络结构为:输入层 3 个神经元,隐藏层 2 个神经元,则:

5、关键总结


参数维度固定:权重 W 和偏置 b 的维度仅由网络结构决定,与训练集大小 m 无关。

6、常见误区

7、代码示例:

import numpy as np

# 网络结构:前一层 3 个神经元,当前层 2 个神经元,批量大小 m=100
m_prev, n, m = 3, 2, 100

# 初始化参数(维度固定)
W = np.random.randn(n, m_prev)  # 2x3
b = np.random.randn(n, 1)       # 2x1

# 正向传播
A_prev = np.random.randn(m_prev, m)  # 3x100
Z = W.dot(A_prev) + b                 # 2x100

# 反向传播
dZ = np.random.randn(n, m)            # 2x100
dW = (1/m) * dZ.dot(A_prev.T)        # 2x3
db = (1/m) * np.sum(dZ, axis=1, keepdims=True)  # 2x1

print("dW shape:", dW.shape)  # (2, 3)
print("db shape:", db.shape)  # (2, 1)

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值