强化学习前置:神经网络

神经网络是模仿生物神经元层级结构的非线性计算模型,是深度学习的核心基础

核心能力是通过多层非线性变换,自动学习数据的层级化特征 ------ 从低级的边缘、纹理,到高级的语义、物体结构,无需人工设计特征

1.神经网络的基本构成部分

1.1 神经元

神经元在左边会接受 n 个数作为输入,然后在右边产生一个数的输出。这个神经元由参数 w 和 b 以及激活函数 f 构成。

神经元有三个输入,对应的三个权重分别为 。我们会计算一个乘积和 ,然后将这个值与偏置相加。这相当于输入有四个,其中第四个恒为1,而第四个输入对应的权重为,这样偏置的计算可以统一到前面计算乘积和的步骤中。接着,这个乘积和会经过一个非线性的激活函数,然后就会得到这一个神经元的输出。

计算公式为:

1.2 单层神经网络

利用多个这样的神经元联系在一起,可以构成一个只有一层的的神经网络

1.3 多层神经网络

单层神经网络可以继续叠加类似的层,变成一个多层的神经网络,其中每层都有若干个神经元。计算的时候从最左边的输入开始,依次计算每一层的结果,其中每一层的输出结果会作为下一层的输入,这就是前向计算

通常把在输入之上添加的多层网络称之为隐藏层 ,输入部分称之为输入层

为了得到输出结果,我们需要在神经网络最右边再网络的最后一层,即输出层

  • 输入层:接收输入特征
  • 隐藏层:进行数据处理和特征转换。隐藏层的神经元个数通常是一个超参数
  • 输出层:输出结果,通常用于分类任务(如Softmax)或回归任务(如线性回归)

1.4 非线性激活函数

如果神经网络中并没有激活函数 ,神经网络中就只存在线性运算了,比如对于两层的神经网络,两层的运算其实可以被表示成单层的运算,也就是说在这样情况下,多层网络和单层网络的表达能力是相同的。因此我们需要引入非线性的激活函数,这样可以防止多层神经网络塌缩为一层的神经网络,我们也可以通过更加复杂的激活函数来加强多层网络的表达能力。

常见的激活函数:

1.Sigmoid

公式:

优点:输出有界,梯度计算简单(导数为),适合二分类任务的输出层。

缺点:输入绝对值 > 5 时导数趋近于 0,存在严重梯度消失 ;输出非零均值,权重收敛慢;指数运算计算成本高。

2.Tanh(双曲正切函数)

公式:

特点:零均值输出,解决了 Sigmoid 的非零均值缺陷,收敛速度显著快于 Sigmoid,早期广泛用于 RNN/LSTM。

缺点:仍存在梯度消失问题(输入绝对值 > 3 时导数趋近于 0);仍有指数运算成本。

3.Softmax 函数

公式:,n为类别总数

核心特点:将多维度输入转化为归一化的类别概率分布,是多分类任务的标准输出层激活函数,仅用于网络输出层,隐藏层几乎不使用。

1.5 输出形式

不使用激活函数,直接线性输出:

使用 sigmoid 激活函数:

使用 softmax 激活函数:

2.神经网络的训练方式

**训练流程:**数据准备 → 搭模型 → 选损失 / 优化器 → 前向算损失 → 反向算梯度 → 优化器更新参数 → 多轮迭代 + 验证 + 早停 → 测试评估

2.1 数据准备

收集数据:清洗(去脏数据、异常值、重复)

标注:分类 / 回归标签

划分:训练集 / 验证集 / 测试集(70%/20%/10%)

预处理:

  • 归一化 / 标准化(比如缩到 0~1 或均值 0 方差 1)
  • 编码(one-hot、词嵌入)
  • 增强(图像翻转、裁剪;文本随机删词)

2.2 构建网络结构(定义模型)

选择网络类型:MLP、CNN、RNN、Transformer...

堆叠层:

  • 线性层 / 卷积层
  • 激活函数(ReLU/GELU)
  • 池化、Dropout、BN(防止过拟合)

定义前向传播:输入 → 逐层计算 → 输出预测值

2.3 选择损失函数

回归:均方误差

分类:交叉熵

2.4 选择优化器(梯度下降法)

目标是最小化损失函数 ,核心思想是沿损失函数梯度的反方向迭代更新参数,逐步逼近损失函数的全局最小值

  • 方向:损失函数上升最快的方向
  • 大小:上升的速率(斜率)
  • 公式: α是学习率,控制每一步走多远

批量梯度下降(BGD)

  • 更新规则用全部m个样本计算梯度,再更新参数(每轮迭代用所有数据);
  • 公式:同上述线性回归示例;
  • 优点 :梯度计算稳定、无噪声,收敛到全局最优(凸函数);
  • 缺点超慢、内存开销大(大数据集无法一次性载入);
  • 适用小数据集、凸损失函数(如简单线性回归)。

随机梯度下降(SGD)

  • 更新规则每次只用 1 个随机样本计算梯度,立即更新参数(1 样本 = 1 次更新);
  • 公式
  • 优点速度极快、适合大数据(逐样本更新,内存友好);可跳出局部最优;
  • 缺点 :梯度噪声大、震荡严重(单样本梯度不准),收敛到最优附近后难收敛;
  • 适用大数据集、在线学习、深度学习(标准 SGD)。

小批量梯度下降(Mini-Batch GD)

  • 更新规则每次用 1 个小批量(batch,b个样本,1<b<m)计算梯度,更新参数
  • 公式
  • 优点BGD+SGD 折中------速度快、梯度噪声小、收敛稳定;GPU 并行高效;
  • 缺点 :需调batch size(常见 32/64/128);
  • 适用几乎所有深度学习场景(CNN/Transformer),工业界默认首选。
算法 数据使用 速度 梯度噪声 收敛性 适用场景
BGD 全量样本 最慢 稳定到全局最优 小数据、凸函数
SGD 单样本 最快 极大 震荡、难精调 在线学习、大数据
Mini-Batch 小批量(32/64) 稳定、易收敛 深度学习、工业界

2.5 前向传播

  • 输入一个 batch 数据
  • 从第一层到最后一层逐层计算
  • 得到预测值 y^
  • 计算损失 J

2.6 反向传播

核心逻辑:先算输出层误差 ,再反向 逐层传递误差,最后用误差算出所有参数的梯度

和梯度下降是互补关系:BP 算梯度,梯度下降更新参数,二者配合完成神经网络训练

输出层误差方程(BP1)

作用:计算输出层的误差项δL,是反向传播的起点

  • 含义:输出层的误差 = 损失对输出层激活值的偏导 × 输出层激活函数的导数
  • 分类任务最常用的组合(交叉熵损失 + Softmax 激活),这个公式会简化为:(预测值减真实值),无梯度衰减,完美规避梯度消失,是工程首选。

误差反向传播方程(BP2)

作用:将后一层的误差,传递到前一层,实现误差的反向流动,是 BP 的核心

  • 含义:当前层的误差 = 后一层权重的转置 × 后一层误差 × 当前层激活函数的导数
  • 关键:误差从输出层往输入层逐层传递,每一层的误差仅依赖后一层的误差和当前层的激活导数,无需重复计算,极大提升了效率

偏置的梯度方程(BP3)

作用:用当前层的误差项,直接算出偏置bl的梯度

  • 含义:偏置的梯度,完全等于当前层的误差项,无需额外计算

权重的梯度方程(BP4)

作用:用当前层的误差项和上一层的激活输出,算出权重Wl的梯度

  • 含义:权重的梯度 = 当前层误差 × 上一层激活输出的转置
  • 关键:前向传播时已经保存了每一层的al−1,反向传播时直接复用,无需重复计算

2.7 参数更新

用反向传播算出的梯度 ,按优化器规则实际更新参数

2.8 循环训练 + 验证 + 早停

对多个 Epoch 循环:

  1. 遍历所有 batch:前向 → 反向 → 更新
  2. 每轮结束用验证集算 loss/acc
  3. 监控:
    • 训练集 loss:不断下降
    • 验证集 loss:下降后平稳(上升 = 过拟合)
  4. 早停:验证集不涨了就停
  5. 最后用测试集评估最终性能(从未见过的数据)

3.常见的神经网络结构

3.1 卷积神经网络CNN

定义

卷积神经网络是一种通过局部连接、权值共享池化操作,来高效、分层地提取输入数据空间特征的神经网络架构

结构组成

输入层:输入图像

卷积层:特征提取

激活层:引入非线性变换

池化层:降维、防止过拟合

输入层

在处理图像的CNN中,输入层一般代表了一张图片的像素矩阵 。可以用三维矩阵代表一张图片 。三维矩阵的长和宽代表了图像的大小,而三维矩阵的深度代表了图像的色彩通道。比如黑白图片的深度为1,而在RGB色彩模式下,图像的深度为3

在输入层进行输入时,便是将对应图片的三个通道的矩阵进行输入

卷积层

卷积操作的完整过程

  1. 卷积核在输入特征图上,按设定的步长滑动;
  2. 每滑动到一个位置,卷积核的权重和对应区域的像素值逐元素相乘再求和,加上偏置,得到输出特征图的一个像素值;
  3. 滑动完成后,生成一张新的特征图(输出通道数 = 卷积核的个数)。

单通道输入,单卷积核

多通道输入,单卷积核

多通道输入,多卷积核

池化层

通过对特征图进行下采样来降低维度、增强模型鲁棒性

最大池化

平均池化

|-----------|----------|----------|---------|
| 输入特征图 | 最大池化 | 平均池化 | 说明 |
| 边缘检测图 | 保留边缘强 | 弱化边缘 | 最大池化更适合 |
| 背景均匀图 | 随机选点 | 保持均匀 | 平均池化更稳定 |
| 稀疏激活图 | 保留激活点 | 稀释信号 | 最大池化更有效 |

全连接层

将卷积 / 池化提取的特征映射到输出类别

数学表示:输出 = 输入 * 权重矩阵 + 偏置向量

作用

  • 特征整合:将卷积/池化提取的局部特征整合为全局特征,输出固定大小向量,用于后续任务
  • 分类决策:将学到的特征映射到具体类别或数值,完成分类/回归等最终决策
  • 特征降维:将高维特征映射到低维空间,实现特征选择、减少计算量、防止过拟合

3.2Transformer

定义

一种用于自然语言处理(NLP)和其他序列到序列任务的深度学习模型架构神经网络

组成

输入预处理模块

Transformer 的自注意力机制天然无法感知序列的顺序 / 位置信息,也无法直接处理离散文本,因此所有输入必须先经过两步预处理,才能送入编码器 / 解码器。

1.Token Embedding

核心作用:将离散的文本 Token(字 / 子词 / 单词)映射为固定维度的稠密向量,把人类可理解的文本转化为模型可计算的语义表示

2. Positional Encoding

核心作用 :为模型注入序列的位置 / 顺序信息,弥补自注意力机制无法区分 Token 先后顺序的核心缺陷。


编码器 Encoder 栈

编码器的核心目标是对输入序列进行全局语义编码,生成包含完整上下文信息的特征表示,是文本理解类任务的核心

1. 整体结构

标准为6层完全相同的 Encoder 层串行堆叠,前一层的输出直接作为后一层的输入,最终输出的编码特征会送入解码器的交叉注意力层

2. 单 Encoder 层的固定组成(严格顺序不可调换)

输入 → 多头自注意力层 → Add & LayerNorm → FFN 层 → Add & LayerNorm → 输出

① 多头自注意力层(Multi-Head Self-Attention)

负责建模输入序列中所有 Token 之间的全局依赖关系,让每个 Token 的特征都融合整句话的上下文语义

  • 核心逻辑:将 Q(查询)、K(键)、V(值)三个向量拆分为h个独立头,每个头独立计算自注意力,最终将所有头的输出拼接,再经过一次线性变换得到最终结果。
  • 核心特点:双向注意力,每个 Token 都能关注序列中所有其他 Token(包括前文和后文),无信息屏蔽。

② 残差连接 + 层归一化(Add & LayerNorm)

  • 残差连接:将子层的输入和输出直接相加,彻底解决深层网络的梯度消失问题,让超深层 Transformer 能够稳定训练。
  • LayerNorm(层归一化):对每个样本的特征向量做归一化,稳定训练过程、加速模型收敛,是 Transformer 的标配。
  • 规范说明:原始论文采用 Post-Norm,工业界主流模型(GPT、BERT)均采用 Pre-Norm,训练稳定性更强。

③ 前馈神经网络(FFN)

对每个 Token 的特征向量做独立的非线性变换,增强模型的表达能力,不做跨 Token 的信息交互。

  • 标准结构:2 层全连接层 + 激活函数,公式为:
  • 关键细节:原始论文使用 ReLU 激活,当前主流大模型均采用 GELU 激活;中间层维度通常为d_model的 4 倍(标准 d_model=512,中间层维度 2048)。

④ 第二组残差连接 + 层归一化

与前一组完全一致,将 FFN 层的输入和输出相加后做层归一化,结果输出到下一层 Encoder。


解码器 Decoder 栈

解码器的核心目标是基于编码器的输入语义,自回归地逐 Token 生成输出序列,是文本生成类任务的核心

  1. 整体结构

标准为6 层完全相同的 Decoder 层串行堆叠,前一层的输出作为后一层的输入,最终输出送入预测模块。

  • 核心约束:自回归生成要求模型只能关注已经生成的 Token,不能看到未来的 Token,因此比 Encoder 多了掩码机制和交叉注意力层。
  1. 单 Decoder 层的固定组成(严格顺序不可调换)

输入 → 掩码多头自注意力层 → Add & LayerNorm → 交叉注意力层 → Add & LayerNorm → FFN 层 → Add & LayerNorm → 输出

① 掩码多头自注意力层(Masked Multi-Head Self-Attention)

与 Encoder 自注意力的核心区别是加入了下三角因果掩码(Causal Mask)

  • 核心作用:强制模型在生成第 i 个 Token 时,只能关注第 i 个之前的 Token(已生成的内容),完全屏蔽 i 之后的未来 Token,防止信息泄露。
  • 其他计算逻辑与多头自注意力完全一致。

② 交叉注意力层(Encoder-Decoder Attention / Cross-Attention)

连接编码器和解码器的核心层,负责将编码器生成的输入语义信息,融合到解码器的生成过程中,让输出内容与输入精准对齐(如机器翻译中,让译文和原文语义对应)。

  • 核心逻辑:Q(查询)来自上一层 Decoder 的输出,K(键)和 V(值)来自 Encoder 栈的最终输出,其余计算逻辑与多头注意力一致。

输出预测模块

位于 Transformer 的最末端,负责将解码器输出的特征转化为最终的预测结果。

  1. 线性全连接层 :将解码器最终输出的d_model维特征向量,映射到与词表大小一致的维度,得到每个 Token 的 logits 分数。
  2. Softmax 激活层:将 logits 分数转化为归一化的概率分布,概率最高的 Token 即为模型预测的下一个输出 Token。
  3. 自回归生成逻辑 :将预测出的 Token 拼接到输入序列末尾,再次送入解码器,循环往复,直到生成结束符<EOS>或达到最大长度。
相关推荐
夏莉莉iy7 小时前
[ICCV 2023]Scalable Diffusion Models with Transformers
人工智能·深度学习·transformer·图像·扩散模型·视觉·dit
深蓝易网7 小时前
工厂目视化实操手册,告别形式主义
运维·网络·数据库·人工智能·汽车
程序大视界7 小时前
Agent Skills:让AI助手真正“有技能“的开源标准,正在悄悄改变整个行业
人工智能·开源
老鱼说AI7 小时前
大模型面试:从字节到集群的大模型微调底层推演指南
人工智能·深度学习·神经网络·机器学习·自然语言处理
ishangy7 小时前
智慧港口周界安防模块AI视觉解决方案
人工智能·智慧港口·ai监控·ai视频监控
FONE_Platform7 小时前
FONE大健康行业全面预算解决方案:重塑全链路敏捷预算体系
大数据·人工智能·区块链·全面预算
tianyuanwo7 小时前
AI Harness Engineering 应用最佳实践:从单点故障到系统护栏
人工智能·git·harnnees
纤纡.7 小时前
基于 Qwen2.5-1.5B-Instruct 大模型实现文本分类、多轮对话与信息抽取实战
人工智能·语言模型·分类·数据挖掘
科技小花7 小时前
AI原生 vs 云原生:数据治理平台选型如何匹配你的数据中台架构?
大数据·数据库·人工智能·数据治理·数据中台