神经网络的计算原理之前向传播
1. 前向传播的基本概念
前向传播(Forward Propagation)是神经网络进行预测的核心计算过程。它描述了输入数据如何通过网络的每一层逐步变换,最终得到输出结果的过程。
关键特点:
- 单向计算:从输入层 → 隐藏层 → 输出层
- 无反馈循环
- 逐层进行线性变换和非线性激活
2. 数学表示
对于一个具有L层的神经网络:
单神经元计算
其中:
- :第l层第j个神经元与第l-1层第i个神经元的连接权重
- :偏置项
- :激活函数
矩阵形式表示
3. 计算过程示例(以3层网络为例)
- 输入层:接收原始数据
- 第一隐藏层:
- 输出层:
4. 激活函数的作用
常用激活函数在前向传播中的表现:
| 函数名称 | 数学表达式 | 特点 |
|---|---|---|
| Sigmoid | 输出范围(0,1),适合概率输出 | |
| ReLU | 计算简单,缓解梯度消失 | |
| Tanh | 输出范围(-1,1),中心对称 |
5. 实现伪代码
def forward_propagation(X, parameters):
"""
X: 输入数据 (n_x, m)
parameters: 包含各层W和b的字典
"""
A = X
L = len(parameters) // 2 # 网络层数
for l in range(1, L+1):
Z = np.dot(parameters['W'+str(l)], A) + parameters['b'+str(l)]
if l == L:
A = softmax(Z) # 输出层用softmax
else:
A = relu(Z) # 隐藏层用ReLU
return A
6. 数值稳定性问题
在前向传播中需要注意:
- 输入标准化:避免某些维度数值过大/过小
- 权重初始化:使用Xavier或He初始化防止激活值爆炸/消失
- 中间值检查:各层输出应在合理范围内
7. 与后续过程的联系
前向传播的结果将用于:
- 计算损失函数(预测值与真实值的差异)
- 作为反向传播的起点(计算各层梯度)
- 模型推理时的最终输出
关键理解:前向传播是神经网络"思考"的过程,通过层层变换将原始输入映射到目标输出空间。
