深度学习(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)

    • 最后一层神经元负责输出结果,例如分类概率或回归值。

    • 在分类任务中,常使用 SigmoidSoftmax 函数输出概率。

有时在输出层之后,会增加一个"阈值处理(Thresholding)"步骤,比如当预测概率 ≥ 0.5 时,输出类别为 1,否则为 0。


二、更复杂的神经网络

当神经网络的隐藏层数增多时,我们称之为 深度神经网络(Deep Neural Network, DNN)

注意: 计算网络层数时,不包括输入层

例如,一个包含两层隐藏层和一个输出层的网络,我们称它是一个 "2 层神经网络"

在每一层中,我们都会有对应的公式:

其中:

  • :输入层的特征向量;

  • :第一层隐藏层的输出;

  • :第二层隐藏层的输出;

  • 最后一层 :输出层的结果。

例如:

层数增加可以让模型学习到更复杂的特征,但也会增加过拟合风险,需要配合正则化或 Dropout 控制模型复杂度。


三、向前传播的神经网络推理

前向传播(Forward Propagation) 是神经网络进行"推理(inference)"的计算过程。

它的目标是:从输入出发,经过多层计算,得到最终预测结果。

流程如下:

  1. 输入层接收数据;

  2. 每一层执行线性计算 + 激活函数;

  3. 输出层得到预测值;

  4. 若是训练阶段,会将输出值与真实值计算损失函数(Loss)。

用公式表示:


四、代码示例:前向传播推理

下面通过一个简单示例来说明------预测咖啡烘焙质量

假设我们有两个输入特征:

  • 烘焙时间(Time)

  • 烘焙温度(Temperature)

目标是预测烘焙是否成功(输出一个概率)。

1.使用 TensorFlow 实现

python 复制代码
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 实现

python 复制代码
import torch
import torch.nn as nn

x = 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
使用场景 通用科学计算 深度学习训练与推理

代码对比示例

python 复制代码
import numpy as np
import tensorflow as tf

a_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 加速与自动求导优势。

相关推荐
NAGNIP4 小时前
一文搞懂深度学习中的通用逼近定理!
人工智能·算法·面试
冬奇Lab5 小时前
一天一个开源项目(第36篇):EverMemOS - 跨 LLM 与平台的长时记忆 OS,让 Agent 会记忆更会推理
人工智能·开源·资讯
冬奇Lab5 小时前
OpenClaw 源码深度解析(一):Gateway——为什么需要一个"中枢"
人工智能·开源·源码阅读
AngelPP9 小时前
OpenClaw 架构深度解析:如何把 AI 助手搬到你的个人设备上
人工智能
宅小年9 小时前
Claude Code 换成了Kimi K2.5后,我再也回不去了
人工智能·ai编程·claude
九狼9 小时前
Flutter URL Scheme 跨平台跳转
人工智能·flutter·github
ZFSS9 小时前
Kimi Chat Completion API 申请及使用
前端·人工智能
天翼云开发者社区11 小时前
春节复工福利就位!天翼云息壤2500万Tokens免费送,全品类大模型一键畅玩!
人工智能·算力服务·息壤
知识浅谈11 小时前
教你如何用 Gemini 将课本图片一键转为精美 PPT
人工智能
Ray Liang11 小时前
被低估的量化版模型,小身材也能干大事
人工智能·ai·ai助手·mindx