吴恩达深度学习复盘(4)神经网络的前向传播

笔者注

神经网络的前向传播(Forward Propagation)是指输入数据从输入层经过各隐藏层传递到输出层,逐层计算激活值的过程。这一过程不涉及参数更新,主要用于生成预测结果或为反向传播提供中间值。如果觉得理解起来过于抽象,就把这个过程作为为了得到结果所需要做的必要过程好了。

1. 神经网络结构基础

之前笔记介绍过

神经网络由多层神经元组成,一般有3层结构:

  • 输入层:接收原始数据。

  • 隐藏层:1个或多个中间层,通过非线性变换提取特征。

  • 输出层:生成最终预测结果。

  • 神经元连接:每层神经元通过带权重的边与下一层神经元相连,权重决定输入信号的重要性。

2. 前向传播核心步骤

假设神经网络有L层,第l层的输入为,输出为。每一层的计算分为两步:

步骤1:线性变换(Linear Transformation)

  • 公式:

  • :第l层的权重矩阵(维度为 )。

  • :第l层的偏置向量(维度为 )。

  • :第l-1层的激活值(输入)。

  • :第l层的线性组合结果(未激活值)。

步骤2:非线性激活(Non-linear Activation)

  • 公式:

  • :激活函数(如ReLU、sigmoid、tanh等)。

  • 作用:引入非线性,使神经网络能学习复杂模式。

3. 逐层计算示例

以一个简单的3层网络(输入层→隐藏层→输出层)为例:

1. 输入层到隐藏层:

  • 输入数据 (假设X为样本矩阵,维度为,m为样本数)。

  • 计算

  • 激活:

2. 隐藏层到输出层:

  • 计算

  • 输出层激活(根据任务选择函数):

  • 回归任务:线性激活

  • 分类任务:Softmax激活(输出概率分布)。

4. 激活函数的选择

  • 常见激活函数:

  • Sigmoid:输出范围(0,1),适合二分类。

  • ReLU:计算高效,缓解梯度消失()。

  • Softmax:输出层多分类常用,将值归一化为概率分布。

  • 选择依据:根据任务类型(分类/回归)和网络深度(避免梯度问题)。

5. 矩阵运算的高效性

  • 向量化计算:通过矩阵乘法同时处理多个样本,避免循环。

  • 示例:若有m个样本,每个样本的输入为 ,则 ,矩阵运算可批量计算所有样本的激活值。

6. 前向传播的作用

  • 预测阶段:输入新数据,逐层计算输出,得到预测结果。

  • 训练阶段:为反向传播提供中间值(如各层的z和a),用于计算梯度并更新参数。

7.简单的算法示例代码

复制代码
import numpy as np

# 定义激活函数
def sigmoid(z):
    return 1 / (1 + np.exp(-z))

# 前向传播函数
def forward_propagation(X, W1, b1, W2, b2):
    # 输入层到隐藏层的线性变换
    z1 = np.dot(W1, X) + b1
    # 隐藏层的激活函数
    a1 = sigmoid(z1)
    # 隐藏层到输出层的线性变换
    z2 = np.dot(W2, a1) + b2
    # 输出层的激活函数
    a2 = sigmoid(z2)
    return a2

# 示例数据
# 输入特征,假设有3个样本,每个样本有2个特征
X = np.array([[0.1, 0.2], [0.3, 0.4], [0.5, 0.6]]).T
# 隐藏层神经元数量
n_hidden = 3
# 输入层神经元数量
n_input = X.shape[0]
# 输出层神经元数量
n_output = 1

# 初始化权重和偏置
# 输入层到隐藏层的权重
W1 = np.random.randn(n_hidden, n_input)
# 隐藏层的偏置
b1 = np.zeros((n_hidden, 1))
# 隐藏层到输出层的权重
W2 = np.random.randn(n_output, n_hidden)
# 输出层的偏置
b2 = np.zeros((n_output, 1))

# 执行前向传播
output = forward_propagation(X, W1, b1, W2, b2)
print("前向传播的输出结果:")
print(output)

8. 总结

前向传播的核心是将输入数据通过层层线性变换和非线性激活,最终映射到输出空间。其数学本质是复合函数的嵌套计算,而矩阵运算的优化使得这一过程在大规模数据上高效运行。理解前向传播是掌握反向传播、梯度下降等神经网络核心算法的基础。

相关推荐
HiDev_18 小时前
【非标自动化】2、认识元器件(液压泵和液压阀)
大数据·人工智能·自动化
这张生成的图像能检测吗18 小时前
即插即用模块 + 改进思路汇总目录
图像处理·人工智能·深度学习·目标检测·机器学习
Geek-Chow18 小时前
12 开源 vs 闭源:同一份权重,两种交付
人工智能·llm·大语言模型
一个处女座的程序猿19 小时前
Agent之Tool:MoneyPrinterTurbo(一站式 AI 短视频生成工具)的简介、安装和使用方法、案例应用之详细攻略
人工智能·音视频·moneyprinter
港股研究社19 小时前
物理AI临界点:智驾Tier 1越过规模效应拐点
人工智能
m4Rk_19 小时前
【论文阅读】Agent 记忆机制(48):Fine-Mem——用细粒度奖励解决长期记忆管理中的奖励稀疏与信用分配
论文阅读·人工智能·学习·开源·github
IanSkunk19 小时前
眼视光设备全周期台账:从验收入库到使用效果数据化的管理闭环
大数据·网络·人工智能
拓人间精准客19 小时前
2025–2026 ToB 精准拓客实战手册:用“企业数据画像 + 动态筛选“击穿七大行业获客内卷
大数据·数据库·人工智能
北京GEO服务商余小铁19 小时前
北京建材行业怎么通过 GEO 推广实现获客
人工智能
txg66619 小时前
Less Is More:如何用半监督学习提升漏洞检测能力
人工智能·深度学习·学习·安全·开源软件