神经网络+激活函数+损失函数 三合一速查表
一、核心基础概念(神经网络)
1.1 神经元核心公式(必背)
线性变换:z=W⋅X+bz = W \cdot X + bz=W⋅X+b
非线性输出:a=σ(z)a = \sigma(z)a=σ(z)
符号说明:WWW(权重,可学习)、XXX(输入特征)、bbb(偏置,可学习)、σ\sigmaσ(激活函数)、aaa(神经元输出)
1.2 神经网络三层结构
| 层级类型 | 核心作用 | 神经元数量 | 关键特点 |
|---|---|---|---|
| 输入层 | 接收原始数据,无计算 | 等于输入特征维度(如28×28图像展平后为784个) | 无权重/偏置,无激活函数 |
| 隐藏层 | 特征提取与变换,决定模型深度 | 自定义超参数(越多拟合越强,易过拟合) | 有独立权重/偏置,必须加激活函数 |
| 输出层 | 输出最终预测结果 | 等于任务输出维度(回归1个,二分类1个,多分类=类别数) | 激活函数与损失函数强绑定 |
1.3 前向传播 vs 反向传播
| 流程类型 | 核心目的 | 计算逻辑 | 关键依赖 |
|---|---|---|---|
| 前向传播 | 做预测,得到Y^\hat{Y}Y^(预测值) | 输入层→隐藏层→输出层,逐层计算a=σ(WX+b)a=\sigma(WX+b)a=σ(WX+b) | 激活函数、权重/偏置 |
| 反向传播 | 更新参数,减小损失 | 输出层损失→反向求梯度→梯度下降更新W/bW/bW/b | 损失函数、激活函数导数、学习率 |
1.4 核心超参数与概念
-
学习率(η\etaη):控制参数更新步长,推荐1e-3/1e-4/1e-5,可衰减
-
批次(Batch Size):每次训练的样本数,常用32/64/128
-
轮次(Epoch):完整训练一遍所有数据的次数,损失收敛即停止
-
过拟合:训练集精度高,测试集精度低;解决:L2正则、Dropout、早停
-
欠拟合:训练集精度低;解决:增加网络层数/神经元、延长训练
二、激活函数核心汇总
2.1 按类别分类(重点标注首选)
| 函数类别 | 函数名称 | 输出范围 | 核心优缺点 | 适用场景 |
|---|---|---|---|---|
| 饱和型(淘汰) | Sigmoid | (0,1) | 优点:输出为概率;缺点:梯度消失、非0均值 | 仅二分类输出层 |
| 饱和型(淘汰) | Tanh | (-1,1) | 优点:0均值;缺点:梯度消失 | 早期浅层网络 |
| ReLU家族(主流) | ReLU(首选) | [0,+∞) | 优点:无梯度消失、计算快、稀疏性;缺点:死亡ReLU | 所有深层网络隐藏层(CNN/MLP) |
| ReLU家族(主流) | LeakyReLU | (-∞,+∞) | 优点:解决死亡ReLU;缺点:α需固定 | ReLU效果不好时替换 |
| 新型平滑(大模型) | GELU(首选) | (-∞,+∞) | 优点:平滑、梯度稳定;缺点:计算略慢 | Transformer/BERT/ViT等大模型 |
| 新型平滑(大模型) | Mish | (-∞,+∞) | 优点:性能最优、鲁棒性强;缺点:计算略慢 | 追求精度的所有场景 |
| 特殊输出层 | Softmax | [0,1](和为1) | 优点:输出概率分布;缺点:梯度消失 | 多分类输出层 |
| 特殊输出层 | 无激活(Linear) | (-∞,+∞) | 优点:输出连续值;缺点:无非线性 | 回归任务输出层 |
三、损失函数核心汇总
3.1 按任务分类(重点标注首选)
| 任务类型 | 损失函数名称 | 核心公式 | 核心优缺点 | 适用场景 |
|---|---|---|---|---|
| 回归任务 | Smooth L1(首选) | y^−y\hat{y}-yy^−y | ≤1:0.5(y^−y\hat{y}-yy^−y)²;否则: | |
| 回归任务 | MSE | MSE=1/N∑(y^i−yi)2MSE = 1/N \sum (\hat{y}_i - y_i)^2MSE=1/N∑(y^i−yi)2 | 优点:计算快、精度高;缺点:怕异常值 | 无异常值的回归任务 |
| 回归任务 | MAE | $MAE = 1/N \sum | \hat{y}_i - y_i | $ |
| 二分类任务 | BCEWithLogitsLoss(首选) | BCE=−1/N∑[ylogy^+(1−y)log(1−y^)]BCE = -1/N \sum [y log\hat{y} + (1-y)log(1-\hat{y})]BCE=−1/N∑[ylogy^+(1−y)log(1−y^)] | 优点:数值稳定、自带Sigmoid;缺点:无 | 二分类(垃圾邮件、情感分析) |
| 多分类任务 | Sparse CCE(首选) | SparseCCE=−1/N∑logy^i,yiSparseCCE = -1/N \sum log\hat{y}_{i,y_i}SparseCCE=−1/N∑logy^i,yi | 优点:无需独热标签、内存友好;缺点:无 | 多分类(图像分类、文本分类) |
| 多分类任务 | CCE | CCE=−1/N∑∑yiclogy^icCCE = -1/N \sum \sum y_{ic} log\hat{y}_{ic}CCE=−1/N∑∑yiclogy^ic | 优点:适配独热标签;缺点:内存开销大 | 多分类(标签为独热编码) |
| 优化型分类 | Focal Loss | −α(1−y^)γylogy^−(1−α)y^γ(1−y)log(1−y^)-α(1-\hat{y})^γ y log\hat{y} - (1-α)\hat{y}^γ (1-y)log(1-\hat{y})−α(1−y^)γylogy^−(1−α)y^γ(1−y)log(1−y^) | 优点:解决样本不均衡;缺点:需调α/γ | 样本不均衡任务(目标检测、医疗影像) |
| 优化型分类 | Label Smoothing | ysmooth=y(1−ε)+ε/Cy_{smooth} = y(1-ε) + ε/Cysmooth=y(1−ε)+ε/C | 优点:防止过拟合、提升泛化;缺点:无 | 所有追求泛化的分类任务(大模型) |
| 多标签分类 | BCEWithLogitsLoss | 同二分类BCE | 优点:适配独立标签判断;缺点:无 | 多标签任务(图片标签、商品分类) |
四、任务-激活-损失 黄金搭配表(必背)
| 核心任务 | 输出层激活函数 | 损失函数 | 关键备注 |
|---|---|---|---|
| 回归任务(预测连续值) | 无激活(Linear) | Smooth L1(首选)/ MSE / MAE | 如房价、温度、关键点坐标预测 |
| 二分类任务(2个类别) | Sigmoid | BCEWithLogitsLoss(首选) | 如垃圾邮件识别、情感分析(正负) |
| 多分类任务(≥3个类别) | Softmax | Sparse CCE(首选)/ CCE | Sparse CCE无需独热标签,更高效 |
| 多标签分类(多类别共存) | Sigmoid(每个标签独立) | BCEWithLogitsLoss | 如一张图含猫+狗+蓝天,标签为[1,1,0,1] |
| 不均衡分类任务 | Sigmoid/Softmax | Focal Loss | 如癌症检测(99%健康,1%患病) |
| 追求泛化的分类任务 | Sigmoid/Softmax | CCE/Sparse CCE + Label Smoothing | 大模型、图像分类等,防止过拟合 |
五、神经网络完整训练流程(7步闭环)
-
初始化参数:随机初始化所有隐藏层、输出层的WWW(权重)和bbb(偏置),WWW非全0,bbb可初始为0
-
数据准备:将特征XXX和真实标签YYY按批次(Batch)划分,输入输入层
-
前向传播:逐层计算z=WX+bz=WX+bz=WX+b和a=σ(z)a=\sigma(z)a=σ(z),得到输出层预测值Y^\hat{Y}Y^,保存中间输出
-
计算损失:将Y^\hat{Y}Y^和YYY代入对应损失函数,得到批次总误差LossLossLoss
-
反向传播:从输出层反向计算LossLossLoss对各层WWW、bbb的梯度(链式求导)
-
更新参数:用梯度下降法更新Wnew=Wold−η⋅∂Loss/∂WW_{new}=W_{old}-\eta·∂Loss/∂WWnew=Wold−η⋅∂Loss/∂W、bnew=bold−η⋅∂Loss/∂bb_{new}=b_{old}-\eta·∂Loss/∂bbnew=bold−η⋅∂Loss/∂b
-
迭代收敛:重复步骤2-6,直到LossLossLoss不再下降(收敛),停止训练,保存最优WWW和bbb