吴恩达深度学习复盘(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. 总结

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

相关推荐
个入资料29 分钟前
阿里云ecs+飞书搭建openclaw
人工智能
CoovallyAIHub39 分钟前
OpenClaw一脚踩碎传统CV?机器终于不再只是看世界
深度学习·算法·计算机视觉
CoovallyAIHub1 小时前
仅凭单目相机实现3D锥桶定位?UNet-RKNet破解自动驾驶锥桶检测难题
深度学习·算法·计算机视觉
孤烟1 小时前
【RAG 实战系列 02】检索精度翻倍!混合检索(稀疏 + 稠密)实战教程
人工智能·llm
明明如月学长2 小时前
OpenClaw 帮我睡后全自动完成了老板交代的任务
人工智能
uuware2 小时前
Lupine.Press + AI 助您分分钟搞定技术项目的文档网站
人工智能·前端框架
海上日出2 小时前
使用 QuantStats 进行投资组合绩效分析:Python 量化实战指南
人工智能
Qinana2 小时前
150行代码搞定私有知识库!Node.js + LangChain 打造最小化 RAG 系统全流程
人工智能·程序员·node.js
猿猿长成记2 小时前
AI专栏 | AI大法则之思维链、自洽性、思维树
人工智能
用户5191495848452 小时前
CrushFTP 条件竞争认证绕过漏洞利用工具 (CVE-2025-54309)
人工智能·aigc