深度学习基础回顾:神经网络核心概念

各位同学,欢迎来到第二章。这一章咱们要聊的是深度学习最底层的那些东西——神经元、激活函数、前向反向传播、损失函数、优化器,还有过拟合和正则化。

说实话,这些概念你如果只是看书,会觉得挺枯燥的。但我做嵌入式AI这些年,发现一个规律:凡是能把这几块吃透的人,后面做模型压缩、定点量化、DSP移植的时候,基本不会踩大坑。反过来,那些一上来就调库、跑模型的人,遇到性能瓶颈往往束手无策。

所以这一章,我会结合我实际项目中的经验,把这些核心概念掰开了讲。你跟着我走一遍,后面会轻松很多。

2.1 神经元与激活函数

神经网络的灵感确实来自人脑,但你别把它想得太玄乎。说白了,一个神经元就是一个数学函数:输入加权求和,再加一个偏置,最后过一下激活函数。

公式长这样:

z = w₁x₁ + w₂x₂ + ... + wₙxₙ + b
a = f(z)

其中 w 是权重,x 是输入,b 是偏置,f 是激活函数。

我在项目中见过不少新手,觉得激活函数随便选一个就行。其实不是的。激活函数决定了网络的表达能力,也直接影响训练能不能收敛。

常用的激活函数有这些:

激活函数 公式 输出范围 优点 缺点
Sigmoid σ(x) = 1/(1+e⁻ˣ) (0, 1) 平滑、可解释性强 梯度消失、输出非零中心
Tanh tanh(x) = (eˣ-e⁻ˣ)/(eˣ+e⁻ˣ) (-1, 1) 零中心、比Sigmoid好 仍有梯度消失问题
ReLU ReLU(x) = max(0, x) [0, +∞) 计算快、缓解梯度消失 神经元死亡(负半轴梯度为0)
Leaky ReLU LReLU(x) = max(αx, x) (-∞, +∞) 缓解神经元死亡 α需要调参
我的经验:在DSP部署时,ReLU是最友好的。因为它计算量小,而且量化后精度损失也小。Sigmoid和Tanh在嵌入式上尽量少用,指数运算太费资源了。

2.2 前向传播与反向传播

这两个概念是神经网络训练的基石。我换个角度给你讲——前向传播是“猜”,反向传播是“改”。

前向传播:输入数据从输入层开始,一层一层往前算,最后得到输出。这个过程就是网络在做预测。

反向传播:算出来的预测值和真实值有差距,这个差距就是损失。然后从输出层开始,一层一层往回算,算出每个参数对损失的贡献(梯度),最后用梯度去更新参数。

我曾经在调试一个语音唤醒模型时,发现训练了十几个epoch损失就是不降。后来一查,是反向传播时梯度计算写错了,把链式法则的某一步漏掉了。嗯,这种错误很难查,但一旦你理解了反向传播的数学本质,就能快速定位。

反向传播的核心就是链式法则:

∂L/∂w = ∂L/∂a · ∂a/∂z · ∂z/∂w

其中L是损失,a是激活输出,z是加权和,w是权重。

注意:在DSP上做推理时,我们只需要前向传播。反向传播只在训练阶段用。但理解反向传播能帮你更好地做模型剪枝和量化——因为你知道哪些层对梯度敏感。

2.3 损失函数与优化器

损失函数衡量的是“模型猜得有多离谱”。优化器决定的是“怎么调整参数才能让损失变小”。

常见的损失函数:

  • 均方误差(MSE):回归任务常用。公式是 (ŷ - y)²。对异常值敏感。
  • 交叉熵损失(Cross-Entropy):分类任务常用。配合Softmax使用效果很好。
  • Huber损失:MSE和MAE的结合,对异常值不那么敏感。我在做传感器数据拟合时经常用。

优化器这块,我建议你记住几个关键点:

优化器 特点 适用场景
SGD 简单、稳定、需要手动调学习率 小数据集、需要精细调参
Adam 自适应学习率、收敛快 大多数场景的首选
RMSprop 对非平稳目标效果好 RNN、在线学习

我个人习惯:做原型验证时先用Adam,快速看到效果。等模型结构稳定了,再切回SGD+学习率衰减,往往能得到更好的泛化性能。这个技巧在我做关键词唤醒模型时屡试不爽。

2.4 过拟合与正则化

过拟合,说白了就是模型把训练数据背下来了,但换个新数据就懵了。你想想看,这在实际部署中多可怕——在实验室跑得好好的,一到现场就翻车。

我遇到过最夸张的一次,一个图像分类模型在测试集上准确率98%,但部署到产线上之后,因为光照条件变了,准确率直接掉到60%。后来一查,模型过拟合了训练数据中的光照特征。

正则化就是用来治过拟合的。常用的方法有:

  • L1/L2正则化:在损失函数后面加一个惩罚项。L1会让权重变稀疏,L2会让权重变小。
  • Dropout:训练时随机让一部分神经元失活。相当于每次训练一个不同的子网络。
  • 早停(Early Stopping):验证集损失不再下降时就停止训练。
  • 数据增强:对训练数据做随机变换,相当于变相增加数据量。
避坑指南:在DSP部署时,Dropout层必须在推理时关闭。我曾经见过有人把Dropout带到了推理代码里,结果每次推理结果都不一样。嗯,排查了整整一天才找到原因。

2.5 本章知识体系

下面这张图把本章的核心知识点串起来了。你可以把它当作一个思维导图来看:

深度学习核心概念知识体系 深度学习核心概念 神经元与激活函数 前向/反向传播 损失函数与优化器 过拟合与正则化 加权求和 + 偏置 Sigmoid / ReLU 前向:预测 反向:链式法则 MSE / 交叉熵 SGD / Adam L1/L2正则化 Dropout / 早停 💡 学习建议 1. 先理解每个概念单独的含义,再串起来理解训练流程 2. 动手推导一次反向传播的链式法则,比看十遍书都管用 3. 在DSP部署时,重点关注激活函数和正则化对计算量的影响

这张图把本章的四个核心模块串在了一起。你从中心节点出发,沿着箭头走一遍,就能建立起完整的知识框架。

好了,第二章的内容就到这里。这些概念是后面所有章节的基础——不管是模型剪枝、量化,还是DSP上的算子优化,都离不开这些底层的理解。你花时间把这章吃透,后面会越走越顺。