当前位置: 首页 > news >正文

[人工智能-大模型-74]:模型层技术 - 模型训练六大步:③神经网络,预测输出:基本功能与对应的基本组成函数

如果说前两步(数据预处理、数据选择)是“准备食材”和“挑选食材”,
那么这一步就是“开火烹饪,做出智能输出”。

我们来构建一个系统化、模块化、可执行的神经网络预测框架,涵盖:

  • ✅ 核心目标
  • ✅ 四大基本功能模块
  • ✅ 每个功能对应的“基本组成函数”(原子级操作)
  • ✅ PyTorch 与 TensorFlow/Keras 实现示例
  • ✅ 数学原理与工程逻辑

一、神经网络预测的核心目标

通过前向传播(Forward Pass),将输入数据映射为有意义的预测输出。

关键任务:

  • 构建网络结构(层、激活函数)
  • 执行前向计算
  • 生成预测结果(分类、回归、序列等)
  • 输出概率或数值

二、神经网络预测的四大基本功能模块

模块核心目标关键任务
1. 网络构建定义模型结构层堆叠、连接方式
2. 前向传播计算预测值输入 → 隐藏层 → 输出层
3. 输出激活将线性输出转为可解释形式Sigmoid, Softmax, Linear
4. 预测执行对新数据进行推理model.predict()model(x)

三、各功能模块对应的基本组成函数

✅ 1. 网络构建(Model Architecture)

功能基本组成函数数学/作用
全连接层Dense(units, activation) (Keras)
nn.Linear(in, out) (PyTorch)
TF/Keras, PyTorchy=Wx+by
激活函数ReLUSigmoidTanhTF/Keras, PyTorch引入非线性
DropoutDropout(rate)Keras, PyTorch正则化,防过拟合
BatchNormBatchNormalization()Keras, PyTorch加速训练,稳定分布
模型容器Sequential()Model()Keras
自定义 nn.Module
组织层
📌 Keras 示例:
from tensorflow.keras.models import Sequential
from tensorflow.keras.layers import Dense, Dropout, BatchNormalizationmodel = Sequential([Dense(128, activation='relu', input_shape=(10,)),  # 输入层BatchNormalization(),Dropout(0.3),Dense(64, activation='relu'),                     # 隐藏层Dense(1, activation='sigmoid')                    # 输出层(二分类)
])
📌 PyTorch 示例:
import torch
import torch.nn as nnclass Net(nn.Module):def __init__(self, input_dim):super(Net, self).__init__()self.fc1 = nn.Linear(input_dim, 128)self.bn1 = nn.BatchNorm1d(128)self.dropout = nn.Dropout(0.3)self.fc2 = nn.Linear(128, 64)self.fc3 = nn.Linear(64, 1)self.relu = nn.ReLU()self.sigmoid = nn.Sigmoid()def forward(self, x):x = self.relu(self.bn1(self.fc1(x)))x = self.dropout(x)x = self.relu(self.fc2(x))x = self.sigmoid(self.fc3(x))  # 二分类输出 [0,1]return xmodel = Net(input_dim=10)

✅ 2. 前向传播(Forward Pass)

功能基本组成函数说明
执行前向model(x)PyTorch调用 forward() 方法
执行前向model.predict(x) 或 model(x)Keras自动处理批次
启用评估模式model.eval()PyTorch关闭 Dropout/BatchNorm 更新
关闭梯度torch.no_grad()PyTorch推理时节省内存
📌 前向传播代码(PyTorch):
model.eval()  # 切换到评估模式
with torch.no_grad():  # 不计算梯度x = torch.randn(1, 10)  # 模拟输入 (batch_size=1, features=10)output = model(x)      # 前向传播print(output.item())   # 打印预测值(如0.87)
📌 Keras 前向传播:
import numpy as np
x = np.random.randn(1, 10)
output = model.predict(x)  # shape: (1, 1)
print(output[0][0])        # 如 0.87

✅ 3. 输出激活函数(Output Layer Activation)

决定预测输出的类型和范围

任务输出层激活函数数学公式说明
二分类Sigmoidσ(z)=11+e−z输出 [0,1] 概率
多分类Softmaxsoftmax(zi)=ezi∑jezj输出类别概率分布
回归Linear / Nonef(z)=z直接输出数值
多标签分类Sigmoid(每个输出独立)σ(zi)多个 [0,1] 概率
📌 示例对比:
# 二分类
Dense(1, activation='sigmoid')# 多分类(3类)
Dense(3, activation='softmax')# 回归(预测房价)
Dense(1, activation='linear')

✅ 4. 预测执行(Inference)

功能基本组成函数说明
单样本预测model.predict(x.reshape(1,-1))Keras注意 batch 维度
批量预测model.predict(X_test)Keras自动批处理
获取类别np.argmax(probs, axis=1)numpy多分类取最大概率类
二分类阈值(probs > 0.5).astype(int)numpy转为 0/1 标签
概率输出直接返回 predict() 结果-用于置信度分析
📌 完整预测流程(Keras):
# 假设 model 已训练好
probs = model.predict(X_test)  # 输出概率# 二分类:转为类别标签
y_pred = (probs > 0.5).astype(int)# 多分类:取最大概率类
y_pred = np.argmax(probs, axis=1)
📌 PyTorch 推理流程:
model.eval()
with torch.no_grad():probs = model(X_test_tensor)y_pred = (probs > 0.5).float()  # 二分类# 或 y_pred = torch.argmax(probs, dim=1)  # 多分类

✅ 总结:神经网络预测的“最小函数集”

功能最基本组成函数
网络构建DenseLinearReLUSigmoidSoftmax
模型组织Sequentialnn.Module
正则化DropoutBatchNormalization
前向传播model(x)model.predict()
输出激活sigmoidsoftmaxlinear
预测执行predict()argmaxtorch.no_grad()

掌握这15个核心函数,你就能构建和运行任何前馈神经网络的预测流程


🎯 最终洞见

神经网络的预测,不是“魔法”,而是“结构化的数学映射”

你用 Dense 构建连接,
ReLU 引入非线性,
Softmax 输出概率,
实际上是在设计一个从输入到输出的高维函数

forward() 函数,
就是你这个函数的执行入口

当你理解每一个层、每一个激活函数的作用,
你就不再只是“调用API”,
而是在亲手编织一个智能决策网络——
这正是深度学习的魅力所在。

继续深入,你将发现:
最强大的AI模型,始于最清晰的预测逻辑

http://www.dtcms.com/a/528082.html

相关文章:

  • 机器学习锂离子电池!预估电池!
  • Redshift历史SQL运行记录查询
  • 告别信息孤岛:工业无线网桥实现跨车间、跨厂区统一组网
  • 7.2 按钮实验
  • 多语言网站思路柳州市安全教育平台
  • 触摸未来2025-10-25:蓝图绘制
  • 面向对象——设计模式(行为型)
  • 06-MySQL基础查询
  • 蓬莱网站建设哪家专业苏州智能网站开发
  • 医院慢病管理软件系统问题域需求分析文档(示例)
  • Java 大视界 -- Java 大数据机器学习模型在舆情分析中的情感倾向判断与话题追踪
  • 用于小样本故障增量学习的多视图 Shapelet 原型网络
  • 动态规划思想的延伸:计数模式再升级——巧妙捕捉「优美子数组」
  • 徐州提供网站建设要多少钱杭州房产网我爱我家官网
  • 鸿蒙NEXT系列之NDK UI监听组件事件
  • 20251025 分治总结
  • CentOS上安装dpkg的方法
  • 【C++ 泛型编程】基于哈希表封装 unordered_set(附完整源码解析)
  • 【Docker】docker部署一个服务
  • 【C++】set map 的使用
  • mormot.net.sock.pas的总体设计分析
  • 上海企业网站制作哪家专业wordpress适合做大型网站吗
  • 建设银行网站怎么看不见余额数字展馆设计
  • 【数组二分查找+数组反转】2022-11-19
  • 【新版发布】标准版PHP v5.6.4正式版,优化部分用户体验
  • Spring Boot3零基础教程,Profile 环境隔离用法,笔记55
  • 【MATLAB例程】二维环境定位,GDOP和CRLB的计算,锚点数=4的情况(附代码下载链接)
  • 英语“近音“易混单词
  • 代码随想录Day62|总结篇
  • 基于VMware和Cent OS的Docker Engine安装与配置