深度学习(3)神经网络
一、神经网络的层(Neural Network Layers)
1. 工作原理
在神经网络(Neural Network)中,数据是逐层传递(feed-forward)的。每一层都会接收前一层的输出,经过加权、偏置和激活函数(activation function)计算后,再将结果传递给下一层。
神经网络一般包含以下三类层次结构:
输入层(Input Layer)
接收原始输入数据(如图像像素、特征向量、数值型输入等)。
输入层本身不进行任何计算,只负责将数据传递给下一层。
隐藏层(Hidden Layers)
每一层都会执行以下操作:

其中:
方括号中的上标 [l] 表示第几层,方便区分不同层的计算。
W[l]:第 l 层的权重矩阵(Weights)
b[l]:偏置(Bias)
a[l]:激活值(Activation),即该层的输出
σ:激活函数(Activation Function)
输出层(Output Layer)
最后一层神经元负责输出结果,例如分类概率或回归值。
在分类任务中,常使用 Sigmoid 或 Softmax 函数输出概率。
有时在输出层之后,会增加一个“阈值处理(Thresholding)”步骤,比如当预测概率 ≥ 0.5 时,输出类别为 1,否则为 0。
二、更复杂的神经网络
当神经网络的隐藏层数增多时,我们称之为 深度神经网络(Deep Neural Network, DNN)。
注意: 计算网络层数时,不包括输入层。
例如,一个包含两层隐藏层和一个输出层的网络,我们称它是一个 “2 层神经网络”。
在每一层中,我们都会有对应的公式:

其中:
:输入层的特征向量;
:第一层隐藏层的输出;
:第二层隐藏层的输出;最后一层
:输出层的结果。
例如:

层数增加可以让模型学习到更复杂的特征,但也会增加过拟合风险,需要配合正则化或 Dropout 控制模型复杂度。
三、向前传播的神经网络推理
前向传播(Forward Propagation) 是神经网络进行“推理(inference)”的计算过程。
它的目标是:从输入出发,经过多层计算,得到最终预测结果。
流程如下:
输入层接收数据;
每一层执行线性计算 + 激活函数;
输出层得到预测值;
若是训练阶段,会将输出值与真实值计算损失函数(Loss)。
用公式表示:

四、代码示例:前向传播推理
下面通过一个简单示例来说明——预测咖啡烘焙质量。
假设我们有两个输入特征:
烘焙时间(Time)
烘焙温度(Temperature)
目标是预测烘焙是否成功(输出一个概率)。
1.使用 TensorFlow 实现
import tensorflow as tf# 输入数据
x = tf.constant([[15.0, 180.0]]) # 时间、温度# 定义参数
W1 = tf.Variable([[0.1, 0.2],[0.3, 0.4],[0.5, 0.6]])
b1 = tf.Variable([[0.1, 0.1, 0.1]])W2 = tf.Variable([[0.7],[0.8],[0.9]])
b2 = tf.Variable([[0.2]])# 前向传播
a1 = tf.nn.relu(tf.matmul(x, W1) + b1)
y_hat = tf.sigmoid(tf.matmul(a1, W2) + b2)print("预测结果概率:", y_hat.numpy())
输出的概率值(例如 0.87)表示“烘焙成功”的可能性为 87%。
2.使用 PyTorch 实现
import torch
import torch.nn as nnx = torch.tensor([[15.0, 180.0]])# 定义两层神经网络
model = nn.Sequential(nn.Linear(2, 3), # 输入层到隐藏层nn.ReLU(),nn.Linear(3, 1), # 隐藏层到输出层nn.Sigmoid()
)# 前向传播
y_hat = model(x)
print("预测结果概率:", y_hat.item())
TensorFlow 与 PyTorch 的计算逻辑一致:输入 → 矩阵运算 → 激活函数 → 输出概率。
五、TensorFlow 中的数据处理
TensorFlow 的数据结构与 NumPy 十分类似,但有几个关键区别:
| 比较项 | NumPy | TensorFlow |
|---|---|---|
| 基本数据类型 | ndarray | tf.Tensor |
| 是否支持 GPU 运算 | 否 | 是 |
| 是否支持自动求导 | 否 | 是(通过 tf.GradientTape) |
| 使用场景 | 通用科学计算 | 深度学习训练与推理 |
代码对比示例
import numpy as np
import tensorflow as tfa_np = np.array([[1, 2], [3, 4]])
a_tf = tf.constant([[1, 2], [3, 4]])print("NumPy 求和:", np.sum(a_np))
print("TensorFlow 求和:", tf.reduce_sum(a_tf))
输出结果类似,但 TensorFlow 的计算图可自动在 GPU 上执行,并支持反向传播。
TensorFlow 是建立在计算图(Computation Graph)之上的框架,所有操作都能追踪梯度,用于模型训练。
六、总结(Summary)
神经网络由输入层、隐藏层、输出层组成;
每一层的输出是下一层的输入;
层数计算时不包括输入层;
前向传播是神经网络进行推理的核心过程;
TensorFlow 与 PyTorch 都能实现相同的前向计算逻辑;
TensorFlow 的张量(Tensor)与 NumPy 的数组类似,但具有 GPU 加速与自动求导优势。
