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

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

相关推荐
PILIPALAPENG几秒前
第3周 Day 2:Function Calling —— 让 Agent 听懂人话,自己干活
前端·人工智能·python
阿里云大数据AI技术12 分钟前
PAI Physical AI Notebook详解8:Isaac Lab Arena 全身机器人机动+操控工作流
人工智能
高木木的博客26 分钟前
数字架构智能化测试平台(1)--总纲
人工智能·python·nginx·架构
wanghowie27 分钟前
11. AI 客服系统架构设计:不是调 API,而是系统工程
人工智能·系统架构
袋鼠云数栈UED团队34 分钟前
基于 OpenSpec 实现规范驱动开发
前端·人工智能
Raink老师35 分钟前
【AI面试临阵磨枪】什么是 Tokenization?子词分词(Subword)的优缺点?
人工智能·ai 面试
迷你可可小生1 小时前
面经(三)
人工智能·rnn·lstm
云烟成雨TD1 小时前
Spring AI Alibaba 1.x 系列【28】Nacos Skill 管理中心功能说明
java·人工智能·spring
AI医影跨模态组学1 小时前
Cancer Letters(IF=10.1)中科院自动化研究所田捷等团队:整合纵向MRI与活检全切片图像用于乳腺癌新辅助治疗反应的早期预测及个体化管理
人工智能·深度学习·论文·医学·医学影像
oioihoii1 小时前
Graphify 简明指南
人工智能