AIGC标识 上-从函数到训练神经网络

神经网络本质上是一系列函数的嵌套组合。再复杂的模型,也建立在最朴素的线性变换 y = wx + b 之上。本文梳理人工智能入门最基础的三部分内容:神经网络的结构、参数如何通过学习得到,以及训练过程中需要应对的典型问题。

一、神经网络是什么:从函数说起

理解神经网络,通常从两条研究路线入手:

  • 符号主义:认为世界万物都能用精确公式描述。例如输入直角两边长,用勾股定理得到斜边长;输入质量和加速度,用牛顿第二定律得到力。这一类方法依赖人为找到正确的公式。
  • 联结主义:认为许多问题无法写出精确公式,例如"识别一张猫的图片""听懂一段语音",只能通过学习给出一个"足够接近"的答案。神经网络属于这一派。

image-20261005161329554

image-20261005161423260

神经网络的核心任务往往不是严格的符号推理,而是从样本中拟合出一个足够逼近真实规律的函数。

一切都从这条最朴素的直线开始:

  • x 是输入,w 是权重(weight),控制输入对输出的影响程度;
  • b 是偏置(bias),提供一个基准输出;
  • y 是预测结果。

给定一堆真实数据点,任务是找出一组 w 和 b,让这条直线尽量贴合数据。

image-20261005161531842

但真实世界的数据很少是笔直的,例如成绩与努力程度的关系往往是非线性的。为此在线性函数外再套一层激活函数 g(·):

f(x) = g(wx + b)

这一下,线性函数变成表达能力更强的非线性函数。常见的激活函数有 ReLU、Sigmoid 等,它们给模型提供"掰弯"的能力,使其能贴近不规则的真实分布。

image-20261005161707499

输入变多时:

f(x) = g(w₁x₁ + w₂x₂ + b)

若再套一层激活函数,中间那层就成为隐藏层(hidden layer):

f(x) = g( w₃ · g(w₁x₁ + w₂x₂ + b) + b )

将无数个这样的"神经元"按层连接,便构成了神经网络,包含:

  • 输入层:接收原始数据
  • 隐藏层:真正进行特征变换的地方(可以有很多层)
  • 输出层:给出最终结果

image-20261005161844856

所谓前向传播(Forward Propagation),即数据从输入层逐层向右计算,直到算出输出 y。整个过程相当于把嵌套函数从内到外求值一遍。训练网络的核心目标,就是依据已有数据求出未知的 w 和 b,让函数更好地拟合真实世界。

image-20261005161922312

二、参数从哪来:损失、梯度与反向传播

什么样的 w、b 才算好?答案是与真实数据"拟合"得好。但"好"需要量化指标,机器也需要一套可执行的步骤去逼近它。

假设有一堆真实数据点,每个点都有真实值 y 与模型预测值 ŷ = wx + b。量化"差多远"的直观做法是:在每个数据点画一条竖直线连接预测值与真实值,线长即误差。

image-20261005162352976

绝对值不便优化(不平滑),因此改用平方,既能放大较大误差的影响,又可按样本数平均,得到均方误差(MSE):

MSE = (1/N) × Σ (yᵢ − ŷᵢ)²

image-20261005162431118

这个衡量"预测与真实差距"的函数称为损失函数(Loss Function)。损失越小,w、b 越好。

目标明确:让损失函数尽量小。损失函数形如一个"山坡",要找的是谷底。数学上,梯度(Gradient) 是损失函数对每个参数的偏导数,指向"损失上升最快"的方向——只要反方向走,就能最快下山。每次更新参数的方式:

w = w − 学习率 × ∂Loss/∂w
b = b − 学习率 × ∂Loss/∂b

学习率(Learning Rate) 控制每步迈多大:太大容易冲过谷底来回震荡,太小则收敛缓慢,是需要经验调节的"超参数"。

image-20261005162822883

深层网络参数众多,逐个手动求偏导不现实。反向传播(Backpropagation) 借助链式法则,从输出层往回逐层计算,高效得到"损失对每个参数的梯度"。

image-20261005163157466

前向传播把数据从输入算到输出(算预测),反向传播把"误差"从输出传回每一层(算责任归属),告诉每个参数"该往哪调、调多少"。

三、怎么训练得"好":过拟合与训练优化

上一节说明了机器如何"学"(梯度下降 + 反向传播),但"学"不等于"学好"。这一节讨论训练中的典型问题及常用优化手段。

  • 过拟合(Overfitting):模型在训练数据上表现极好,在未见数据上却很差。本质是它把训练数据中的噪声与随机波动也一并记住,而非学到真正规律。
  • 泛化能力(Generalization):在未见数据上的表现,这才是模型真正的价值所在。

例如:考前把往年真题和标准答案全部背下(包括印刷错误),考原题能拿满分,但题目稍变就不会——这正是过拟合。

image-20261005163949166

应对过拟合的常用办法:

方法 思路
数据增强 旋转、翻转、加噪,造出更多训练样本
简化模型 降低复杂度,减少记忆容量
提前终止 训练到一定程度即停止(较粗糙)
Dropout 训练时随机"掐掉"一部分神经元,防止某些参数一家独大
正则化 在损失中加"参数大小"惩罚项,抑制参数野蛮生长

正则化分两种:

  • L1 正则:新损失 = 旧损失 + λΣ|w|(用绝对值)
  • L2 正则:新损失 = 旧损失 + λΣw²(用平方)

λ 是正则化系数,控制惩罚力度。加入惩罚后,参数越大代价越高,模型便不会"用力过猛"去死记训练集。

image-20261005164138814

除了过拟合,还有几个经典难题:

  1. 梯度消失:网络越深,梯度往回传时越小,深层参数几乎不更新。
  2. 梯度爆炸:梯度越来越大,参数调整失控,训练发散。
  3. 收敛慢:陷入局部最优,或在谷底来回震荡。
  4. 计算开销大:数据海量,前向 + 反向均耗时。

对应的工程对策:

  • 梯度裁剪:给梯度设上限,防止更新过大(对付爆炸)。
  • 残差网络(ResNet):加"短路连接",让梯度能直接回流,解决深层梯度消失,网络才能堆得很深。
  • 权重初始化 + 输入归一化:让梯度分布更平缓,训练更稳。
  • 自适应优化器:动量法、RMSprop、Adam 等,加速收敛、减少震荡。
  • Mini-batch:将海量数据切成小批次训练,显存与时间都更可控。
  • 调节这些"参数的参数"的旋钮统称超参数(Hyperparameter),如学习率、层数、λ。

小结

  • 神经网络 = 线性变换 wx+b + 激活函数(掰弯) + 多层堆叠;前向传播即从输入算到输出。
  • 训练的本质:用损失函数(如 MSE)量化偏差,靠梯度下降沿反方向更新参数,反向传播高效回溯每个参数的梯度。
  • 过拟合 = 过度贴合训练分布、泛化不足;缓解靠数据增强 / Dropout / 正则化(L1、L2)。
  • 梯度消失、爆炸、收敛慢、开销大等难题,对应有梯度裁剪、残差、归一化、Adam、Mini-batch 等对策。
  • 至此搭好了"通用神经网络"的地基,后续将进入具体结构:让网络看懂图、读懂话。

参考:B 站 BV1NCgVzoEG9《【闪客】一小时从函数到 Transformer》。本文根据该系列前 3 节内容整理,配图来自原视频笔记。

posted @ 2026-10-05 20:40  xsec  阅读(24)  评论(0)    收藏  举报