跳到主要内容

3 篇博文 含有标签「深度学习」

查看所有标签

第1阶段:第2篇

在上一篇,我们学习了神经网络的骨架:神经元、层、反向传播。

但如果你直接把一张高清照片喂给全连接网络(MLP),不仅电脑会死机,网络的"观察方式"也不符合常理。 这一章,我们通过 CNN(卷积神经网络) 来看 AI 是如何优雅地处理图像的。 虽然今天 Vision Transformer(ViT)风头正盛,但 CNN 揭示的"提取局部特征,并逐层抽象"的思想,是深度学习中最经典的绝招。


1. 为什么全连接网络搞不定图片?

所谓全连接网络 (Fully Connected Network),就是每一层的每个神经元,都要去死记硬背上一层的所有输入。

假设你要处理一张用手机拍的照片(1200 万像素)。如果用全连接网络,把每个像素点都当成一个输入:

1200万像素×3(RGB颜色)×1000(随便一层隐藏层)360亿个参数1200\text{万像素} \times 3 (\text{RGB颜色}) \times 1000 (\text{随便一层隐藏层}) \approx 360 \text{亿个参数}

这还只是第一层!你电脑的显卡内存当场就会爆炸。

更要命的是,它没有"视觉常识":

当你找照片里的猫时,你是死盯着左上角那个像素点的 RGB 变动吗? 当然不是,你看的是特征:这儿有个尖尖的耳朵,那儿有个带胡须的鼻子。 而且,不管这只猫是在左边还是右边(平移),它都还是一只猫。全连接网络根本不懂这个道理,左边的猫和右边的猫对它来说完全是两幅毫不相干的输入。


2. 卷积的直觉:拿着滤镜的手电筒

CNN 改变了游戏规则。它的核心操作叫 卷积 (Convolution)

别怕这个词,在图像处理里,卷积就是拿着一个带图案滤镜的手电筒去扫图片。

image-20260203160953223

  1. 滤镜 (Filter / Kernel):这是一个很小的矩阵(比如 3x3 像素)。
    • 滤镜 A 专门用来找横线
    • 滤镜 B 专门用来找竖线
    • 滤镜 C 专门用来找对角尖角
  2. 滑动扫描 (Sliding):拿着滤镜从图片左上角一点点滑动到右下角,就像在做全身扫描。
  3. 激活匹配:如果底下的图块刚好和滤镜的图案长得很像,结果数值就会"爆表"(高亮显示出来)。

这样一扫,我们不用去记几千万个单独的像素,而是直接把图片变成了几张特征图(Feature Maps)——一张标记了所有横线在哪,一张标记了所有竖线在哪。


3. 层层建构:Pooling (池化) 的抽象艺术

找到了横线竖线又怎样呢?这依然不是猫。

这就是为什么我们需要很多个卷积层叠在一起,中间还要加一个核心操作——Pooling(池化)

池化的逻辑简单但有效:生成缩略图,顺便抓大放小。 比如 2x2 的格子里,取最大那个数值,抛弃掉三个不重要的细节。图片瞬间缩小 4 倍,但关键特征的相对位置被强行保留并放大了

经过一系列的 卷积 → 激活 → 池化 堆叠,神奇的事情发生了:网络学会了像搭积木一样层层抽象

  • Layer 1:看到很多基础的边缘和线条(横线、竖线)。
  • Layer 2:线条组成了部件(角落、圆弧这种基础形状)。
  • Layer 3:部件拼凑成了器官(猫耳朵猫眼睛胡须)。
  • Layer 4:将各个器官的概念整合,得出高维结论——(这是一只完整的猫)。

image-20260203161118780

这就是深度学习为什么带个"深"字。没有深度,就无法在一团杂乱的像素泥潭里,捏造出拥有高级语义的抽象概念。


4. 为什么在大模型时代,CNN 退居二线了?

统治了计算机视觉差不多 10 年(2012 AlexNet 到 2020 年初)后,CNN 的地位受到了挑战。 现在大火的多模态大模型(比如 GPT-4o 的视觉能力、Sora),底层的视觉架构正全面转向基于 Transformer 的架构(如 ViT,Vision Transformer)。

主要原因有两个:

1. 视野限制:只见树木,不见森林

CNN 天生是看局部的(比如只能看 3x3 的格子)。虽然堆叠很多层之后最终能覆盖整张图,但它骨子里很难在一开始就建立起跨越整张图两端的全局联系

而 Transformer 的注意力机制(Attention)截然不同——它第一眼就会让图片的每个切块,互相之间打个招呼建立联系

💡 归纳偏置 (Inductive Bias) 的双刃剑
  • CNN 是个"规矩"的好学生(强归纳偏置):它心里预设了"图像的相邻像素一定有关系"的物理常识。所以给它少量数据,它很快就能出成绩。
  • Transformer 是个"目中无规矩"的天才(弱归纳偏置):它什么先验规律都不假设,认为万物皆可互相关联。刚开始拿少量数据教它,它表现很烂;但只要喂海量数据给它,它自己领悟出的规律远比人类教的"空间局部性"更强悍。上限极高。

image-20260203164005401

2. 追求秦始皇式的"书同文、车同轨"

文本是序列,音频是序列。如果把图片也切成一个个小方块当成序列……那我们干脆全用同一套 Transformer 引擎处理算了! 这就是现在多模态统一模型(Omni-model)的工程美学,用同一套内核理解文字、声音和图像。


5. 总结

第1阶段核心知识点(CNN篇)
  1. 卷积操作:带着图案滤镜做滑动扫描,通过极少的参数完成局部特征提取。
  2. 平移不变性:猫在画面左边还是右边,都能被同一个滤镜提取出来。
  3. 池化(Pooling):生成缩小版的特征图,抛弃不必要的噪音,强制提取更高维度的轮廓。
  4. 层层抽象:从像素 → 线条 → 器官 → 语义概念。
  5. 历史意义:CNN 定义了过去十年的计算机视觉,今天在端侧芯片上仍占绝对主导;但最前沿云端模型正在走向 Transformer 大一统。

下一阶段预告: CNN 解决了空间上的局部关系——但如果是时间上漫游的关系呢?比如怎样理解一整本书、甚至理解跨越半个小时对话中的上下文?

这便是改变人类科技进程架构的诞生。准备好,我们将跨入第2阶段:Transformer与语言模型的璀璨星河。


下一章: Transformer基础

ai学习cnn计算机视觉深度学习阅读需 6 分钟

从理论走向工程

在上一节(1.1 神经网络骨架)中,我们见识了神经网络的底层引擎:神经元负责感知与扭曲,反向传播(链式法则)负责将损失分发定罪

但这只是图纸上的理想状态。 一旦你真的把层数堆到几十重、塞进上千万条数据,这头名为“梯度下降”的猛兽就会彻底失控:

  • 步子迈大了,它在山谷里疯狂震荡(不收敛);
  • 步子迈小了,训练慢得让人;
  • 层数太深,后方的“指责信号”根本传不到前线(梯度消失);
  • 它还喜欢投机取巧,死记硬背训练集的答案(过拟合)。

本节将介绍深度学习发展史上,那几项挽狂澜于既倒的纯工程黑科技


1. 教练的进化:优化器 (Optimizer)

既然“反向传播”算出了方向(梯度),也知道了错在哪(Loss),怎么改才能让 Loss 稳健缩小? 这就需要优化器控制下山的步伐,其中最具决定性的参数就是学习率(Learning Rate)

1.1 开山鼻祖:SGD(随机梯度下降)

最朴素的逻辑,看见坡就下,朝最陡的方向走固定的一定步子。

  • 致命弱点:如果遇到一个狭长的山谷,由于坡度陡但其实谷底在沿长轴方向,SGD 会在山谷两壁上疯狂反复横跳(震荡),迟迟不敢走向真正的谷底。

1.2 加上惯性:Momentum

物理学给了工程师灵感:给下山的小球加上动量(惯性)

  • 原理:如果连续几次都在朝东边走,那下次跨步时就把往东的步伐加大;如果一会儿往南一会儿往北,南北的幅度就会被惯性抵消。
  • 效果:它极大地缓解了 SGD 的无脑震荡,像一辆安装了悬挂系统的越野车。

1.3 现代标配与 LLM 御用:Adam 与 AdamW

image-20260301183033804

既然方向可以加惯性,那不同维度的学习步长能不能因人而异? 如果在某一个参数维度上地形非常平坦,那就步子迈大点;如果某一个维度崎岖,就自动把学习率降低。

这就是 Adam (Adaptive Moment Estimation):目前绝大部分深度学习模型的默认优化器。

  • AdamW:由于 Adam 在最后对抗“过拟合”的数值衰减上存在一个隐秘的代数 bug。研究人员修复了这个 bug 提出了 AdamW,它同时拥有自适应步长极速收敛的优势,又能让模型泛化能力更强。目前所有的大语言模型(LLM,包括 LLaMA、GPT等)一开场,优化器必填 AdamW。

1.4 P2 前沿:Lion 优化器

寻找最优解的算力成本越来越高,Google 近年提出了极简的 Lion。 如果不算精确梯度的具体数值,**只看梯度的“符号(正负号)”**呢?只要知道向左还是向右,闭着眼睛猛冲就行了。不仅霸道,更是被证明比 Adam 还能节省显存。


2. 驯服过拟合:正则化与 Dropout

AI 也喜欢“死记硬背历年模拟卷(训练集)”,到了“真正的考场(测试集)”就翻车,这叫过拟合。 参数越多,模型背答案的能力越强。

Dropout(随机失活)

这是深度学习史上最简单、也最天才的发明之一: 在训练时,随机拔掉一部分神经元的网线(比如 30%)。

image-20260301183150169

  • 为什么会有用? 如果一个公司里总有 30% 的人随时会旷工,为了保证项目正常交付,大家就不能搞单点依赖,每个人都得学点真本事,独立承担任务。 这逼迫神经网络里的每一个节点,不能依靠前面特定的几张面孔来投机取巧,必须各自去提取真正通用、抗干扰的特征。
# PyTorch 中一行代码搞定
import torch.nn as nn
self.dropout = nn.Dropout(p=0.3) # 30% 的概率摸鱼

黄金法则:千万记住!Dropout 只在训练时开启。等真正上线考试(推理预测)时,要恢复所有的神经元全量出击。


3. 把网络推向深渊再捞起来:残差连接 (ResNet)

在 2015 年前,哪怕再有钱、算力再高,没人敢把神经网络叠到 20 层以上。 因为存在死穴:梯度消失。 根据链式法则,小于 1 的导数连乘 20 次,到最前面的浅层时梯度已经接近无限小。浅层网络根本收不到指令,形同瘫痪。

2015年何凯明提出的 残差网络(ResNet),打破了深度学习的天花板,一举将网络推上了 150+ 层。

黄金跳跃(Skip Connection)

做法粗暴:如果你在后面几层可能什么都学不到,那我就在这个模块旁边直接修一条**“高速公路”**,把原始的输入原封不动地“跨层相加”到后面。

image-20260301183244990

Out=Network(x)+x\text{Out} = \text{Network}(x) + x

  • 容错率极高:哪怕中间那一坨 Network(x) 彻底训烂了输出为 0,最坏也就是把输入原样透传。
  • 梯度高速公路:在反向传播时,如果通过神经元那条路梯度消失了,损失信号可以沿着这条 "+" 号的直连通路,光速、毫无折损地直达网络的前线!

Transformer 为什么能叠 96 层甚至更多?它的骨架深处,依然铭刻着残差连接的烙印。


4. 数据也要排队洗澡:归一化 (Normalization)

除了把梯度传回去,数据在往前输送的过程中也会出事。

试想一条流水线,第一层神经元把输出放大到了 1000,第二层神经元却习惯处理 -1 到 1 的数字,第二层当场罢工(这就叫内部协变量偏移)。 所以我们要强制在两层之间设一道海关:把过来的数字,强行捏回均值为 0,方差为 1 的标准正态分布。

4.1 BatchNorm (批归一化,图像时代的王)

  • 原理:一次抓一堆数据(一个 Batch),计算这堆数据里某一个特征列的均值和方差,强行抹平他们的尺度。
  • 结局:它是 CNN 训练极速起飞的核心功臣。但由于它太依赖“同一批抓到的数据”(如果每一批长短不一,它就懵了),因此在自然语言处理里遭到了淘汰。

4.2 LayerNorm (层归一化,语言时代的基石)

在自然语言领域,一句话可能有 5 个词,另一段话有 50 个词。“跨句子横着算”完全行不通。

  • 原理:LayerNorm 改成了**“竖着对单句话”**内部所有维度的特征自己求均值和方差。
  • 地位:它是 Transformer 的命脉。没有 LayerNorm,注意力机制的数字会瞬间爆炸成 NaN

4.3 极限精简:RMSNorm

既然只是想要平滑尺度,我们有必要严格计算“均值”吗? RMSNorm (均方根归一化) 一脚踢开了大模型减均值的计算步骤,仅保留方差。 牺牲了可以忽略不计的一丁点表现,换来了肉眼可见的提速——今天你叫得上名号的开源多模态与语言模型(如 LLaMA、Qwen全系),用的全部都是 RMSNorm。


5. 总结与路线串联

炼丹术总结
  • 控制步幅(优化器):从 SGD 到当红顶流 AdamW,旨在不震荡、不停滞地驶入山谷。
  • 防止死记硬背(正则化):Dropout 让部分神经元失活,逼迫整体提取有用通用特征。
  • 冲破深度极限(残差连接):无损的高速公路传递,让百层乃至千层网络的反向传播成为可能。
  • 稳定信号传输(归一化):从大锅饭的 BatchNorm 到专门伺候变长序列的 LayerNorm/RMSNorm,确保层与层不发生量级代差。

现在,无论它是深陷欠拟合的泥潭,还是濒临过拟合的悬崖,无论是横跨 100 层的深渊还是面对不平滑曲面,你都已经给这个叫“多层感知器”的裸体机甲,挂载了全套的生存装备。

但这套骨架还缺一样东西: 它没有专门的定制器官。 当它被投入名为“像素”与“图像识别”的绞肉机里时,由于没有专门的结构(全连接的参数实在太多了),它将彻底被显存压垮。

我们需要为它换上特殊的机械臂。 下一章,我们将介绍一种专门利用“探照灯与局部手电筒”席卷视觉时代的网络器官——CNN 卷积层。


下一章: 1.3 CNN卷积网络

ai学习深度学习优化器resnetnormalization阅读需 8 分钟

核心骨架

第0阶段,我们知道了机器学习的闭环:给数据、定规则、跑训练。 但那个“模型函数”长什么样?

这一章的目标:搞清楚神经网络最底层、最原教旨主义的内部构造:多层感知机(MLP)是怎样通过“激活函数”扭曲空间的,而“反向传播”又是怎样精妙分发错误责任的。 我们将不留任何余地剖析它。


1. 为什么需要"深度"学习?

在第0阶段的猫狗分类例子里,如果所有猫都长得标准,一个简单的线性公式(画一条直线把猫和非猫分开)可能就够了。

但现实世界太复杂了:

但现实世界太复杂了:那些被拍下的猫可能正蜷缩成抽象的毛团而导致形状彻底畸变,也可能潜伏在暗灰色的草丛和阴影里被直接抹去了原有的辨识色。更别提由于设备老旧,有些照片直接褪色成了纯黑白。

简单的线性分类器遇到这些情况直接歇菜。 这好比你想用一把直尺去测量海岸线的长度——工具太简单,无法描述复杂的现实。

为了处理这种**非线性(Non-linear)**的复杂问题,我们需要一个更复杂的脑子——神经网络(Neural Networks)


2. 神经网络:模仿人脑的积木

2.1 神经元(Neuron)

生物神经元的工作方式很简单:

Neuron Analogy

在生物学意义上,一根神经元依靠树突从四面八方接收其他相连同伴传来的电信号。接收完毕后,细胞体负责将所有杂乱的电流强度进行汇总累加,若累加的刺激强度越过了那条临界阈值并变得足够“兴奋”,它便会毫不犹豫地通过长长的轴突将这一股强大的电流脉冲直接发射到下一个神经元上去。

我们在电脑里造的人工神经元逻辑完全一样:

输出=激活函数(i输入i×权重i+偏置)\text{输出} = \text{激活函数}\left(\sum_i \text{输入}_i \times \text{权重}_i + \text{偏置}\right)

拆解开来,这里- 输入 (xx):从外界接收的信号(比如图片的像素点、前一层传来的特征)。

  • 权重 (ww):表示这个输入有多重要。如果 ww 很大,说明神经元对这个输入非常敏感。
  • 偏置 (bb):神经元自己的"触底门槛",决定了它天生有多容易被激活。
  • 求和与扭曲:先把前面三样东西算一算(wx+bw \cdot x + b),然后交给激活函数 (Activation Function) 进行扭曲。

2.2 多层感知机(MLP)

把很多神经元堆成多层,就是多层感知机(Multi-Layer Perceptron,MLP),也叫全连接网络

这就是将神经元大规模堆叠并排布成好几个密集团队后的结构——全连接网络(Multi-Layer Perceptron,MLP)。它通常拥有三个严阵以待的区域:负责吞吐海量图片原始像素点的输入层,负责在黑暗黑盒里进行逐级特征抽取的庞大隐藏层,以及负责最终宣判概率结论(比如“这是个猫的概率是99%”)的输出层

输入层  →  隐藏层1  →  隐藏层2  →  输出层
像素值 线条/边缘 形状/部件 是猫/不是猫

Deep Network

"深度"就是"层数多"。层数越多,模型能理解的概念就越抽象、越高级。


3. 激活函数:它到底是干嘛的?

问题:为什么神经元算完乘法和加法后,非要多此一举,加上一个"激活函数"?

答案:为了能画出弯曲的线,而不是只会画直线

3.1 为什么我们需要"弯曲"?

假设你在做一个预测房价的简单 AI:直接抛出面积去预测房子的总价。如果你仅仅在网络里用死板的加减乘除计算,就算往中间堆叠了一万层也没有意义——因为一万根直线的叠加,依然是一条直线。这就意味着它会粗暴笃定任何事物都在恒定无限增长,往往会推演出 10 万平米的房子竟然价值 2 万亿的荒诞反常识结论。

真实世界的数据往往是**非线性(弯曲或折断)**的。

  • 假如没有激活函数,不管你叠多少层神经元,哪怕你叠了 1000 层,它本质上还是在做无聊的乘法和加法(线性变换)。
  • 线性变换永远只能画出"直线"或"平面的纸"。如果你的任务是把混在一起的一堆红球和蓝球分开,而它们本就弯弯曲曲地缠绕在一起,你是不可能用一条直线切开的。
  • 激活函数就像一双手,把这张"平面的纸"进行揉捏、折叠、扭曲,最终让网络拥有了拟合世界万物的能力。这就叫非线性表达能力

3.2 常见激活函数对比

3.2.1 ReLU(最主流的经典方案:水闸)

ReLU(x)=max(0,x)\text{ReLU}(x) = \max(0, x)

类比:水闸 💧

就像是一座截流的大坝水闸,当输入累加的信号居然是一个负数或者极小的负面情绪时,ReLU 直接冰冷地宣布关闸防洪,一滴水都不准流出去(强制输出为 0)。反之只要信号变为正数哪怕只是一丁点,它立马全面敞开大门进行原样等比放行。

就这么简单的一刀切,让神经网络彻底学会了过滤:直接舍弃掉那些带来噪音的无界负面信号,只传递真正有辨识度的高能特征。

为什么好用:它的计算便宜快捷,训练痛快平稳。哪怕到了今天,许多工业级的 CNN 与 ResNet 都仍在仰仗于这位水闸将军的恩赐。

3.2.2 Sigmoid / Tanh(历史遗物,了解即可)

Sigmoid(x)=11+ex,Tanh(x)=exexex+ex\text{Sigmoid}(x) = \frac{1}{1 + e^{-x}}, \quad \text{Tanh}(x) = \frac{e^x - e^{-x}}{e^x + e^{-x}}

早期神经网络用的激活函数,会把信号压缩到一个固定范围(比如 0 到 1 之间)。

缺点:信号太强或太弱时,梯度几乎变成 0,导致反向传播时"消息传不回去"(梯度消失)。现在的隐藏层基本不用了,偶尔在输出层用用。

3.2.3 GELU / SiLU(现代 LLM 用的)

GELU(x)xσ(1.702x)\text{GELU}(x) \approx x \cdot \sigma(1.702x)

可以把它们理解成"更聪明的水闸"——不是像 ReLU 那样非黑即白(要么完全关掉,要么原样放行),而是根据信号强度平滑过渡

现代大语言模型如 GPT 家族与 LLaMA 已经开始抛弃这套非黑即白的一刀切理论,而是将其逐步换成了“可以带着一点人情味的平滑水闸”。以 GELU(或是十分相近的 SiLU)为例,当它们遭遇强烈的负面信号时它照旧会彻底锁死通道;但在应对那些微微有些摇摆、轻微偏负的黯淡信号时,它不再残忍断交,而是会稍微留下一条极细的门缝让那么丁点负面残留也溜过去试探传导余温。而当它转向纯粹的正向信号高歌猛进时它便又恢复了无碍放行。

正是这种细微且带着导数连续切角的顺滑曲线过渡,使得当前被推上千万张并行显卡的极深网络系统里,能比那些棱角分明的 ReLU 跑出更加稳定强劲且毫无阻滞的健康梯度潜流流动。

为什么 LLM 要换成这个:更平滑的过渡让梯度在大规模训练时流动得更稳定,效果更好。GPT 系列用 GELU,LLaMA / Mistral / Qwen 用 SiLU SiLU(x)=xσ(x)\text{SiLU}(x) = x \cdot \sigma(x)

你只需要记住:ReLU → 经典场景(CNN);GELU/SiLU → 现代 LLM 标配。选哪个,框架会帮你决定。


4. 反向传播:训练的引擎

还记得第0阶段的训练循环吗?

猜答案 → 算 Loss → 找方向(梯度)→ 优化器改参数

"找方向"这一步,具体是**反向传播(Backpropagation)**在做:

  • 前向传播(Forward Pass): 数据从左到右流过网络,得到一个预测结果,然后算出 Loss。

  • 反向传播(Backward Pass): Loss 从右向左"反向"流动,利用链式法则(Chain Rule),精准计算每一个权重参数对这次错误"负多大责任"(这就是梯度)。

输出层 → 告诉隐藏层3"是你算错了!"
隐藏层3 → 告诉隐藏层2"我被你坑了!"
...一直传到第一层

责任大的参数狠狠改,责任小的略微调整。这就是神经网络能够学习的根本原因。

工程注意

理论上层数越深越好,但深度越大,梯度在反向传播时会越来越弱——传着传着就消失了(梯度消失问题)。这也是后来出现残差连接的原因。


5. 训练循环的重要拼图:损失函数与优化器

知道了反向传播怎么找方向,我们还需要两把尺子和一个教练。

5.1 损失函数(Loss Function)——衡量"错误"的尺子

Loss Function 的作用只有一个:告诉模型,你现在错得有多离谱。

[!TIP] 类比:射击比赛 🎯

试想你在参加一把严苛的射击定级赛。如果你脱靶了仅仅 1 米,虽然偏离了靶心,但有些严苛程度似乎还能忍受。可如果你干脆利落地脱靶了整整 10 米远,MSE(均方误差) 这种暴戾的损失函数就会当场翻脸。因为它计算出来的并不是误差恶化了原先的 10 倍,而是无比的 100 倍暴击惩罚!也就是平方级别的灾难性放大痛击。 这种对大范围跑偏深恶痛绝的极致惩戒设定,逼迫着每一次神经网络的反向传播必须首先全力剿灭那些最夸张严重的长尾失误地带。这也导致一贯被称为回归问题“老大哥”的 MSE 彻底化身为预估温度、气压与大宗商品连续浮动数值无可匹敌的头号终极判官。 与其对应的赛道相反,当我们站在那些并不是衡量距离感而是需要铁血裁决“它是猫还是狗”的这类的非黑即白分类场上时,Cross Entropy (交叉熵) 便举起了独裁制霸的权杖。它根本不关心你物理距离上跑偏了多少厘米远,它全盘盯死的是你在上报错误答案时究竟有着怎样嚣张狂妄的确信度。如果你仅仅只有一丁点模棱两可的微弱信心说这是一条狗,它大发慈悲只对你记下微末寥寥的损失教训;然而假如你蛮横狂傲地抱着 100% 盲目的坚决态度把一头雄狮强行按头认成了猫,它那隐藏着极限对数函数惩罚的重手铁锤将会当场引爆出势将冲破无穷大阻力的惊天报错警报狂飙!

一句话记住:Loss 越低 = 模型越好。训练的目标就是 Minimize Loss

5.2 Loss函数的硬核解剖

为了衡量预测和真相隔了多远,除了我们提到的 MSE 外,AI 处理分类问题时几乎一律采用交叉熵 (Cross Entropy),它的数学思想更为深邃:

  • 如果预测对了(比如 99% 的概率猜是猫,实际也是猫),惩罚极小。
  • 但如果错得很离谱还很自信(比如 99% 概率猜是猫,实际却是狗),交叉熵会给出一个爆炸级的无穷大惩罚
  • 这个无穷大的惩罚在反向传播时,会产生猛烈的梯度,瞬间把那些“自信且愚蠢”的参数拉回正轨。如果是 MSE 面对这种“信心满满的错误”,由于导数函数的特性,很多时候会引发可悲的“梯度消失”(惩罚传不回去,模型原地摆烂)。

一句话记住:回归数值用 MSE;算概率分类必用 Cross Entropy。


6. 总结

第一支柱总结
  1. 神经元:本质上就是 (x·w + b) 然后套上激活函数扭曲一下。
  2. 激活函数:没有它,网络就只是一堆无聊的直线。ReLU 像水闸,GELU 像带有弧度的水闸。
  3. 反向传播:模型能学习的唯一引擎。通过链式法则把 Loss 一层层往前推,精准定位每一个该挨板子的参数。
  4. 损失函数:回归数值用 MSE,分类算概率必须用交叉熵。

但这就是神经网络的最强体态了吗?不是的。 仅仅通过 MLP 的死记硬背,参数在下山的过程中很容易引发剧烈的维度震荡、由于步子太大掉下悬崖(梯度爆炸),甚至背完答案后无法理解新题(严重过拟合)。

如何控制住这头暴躁的猛兽?

下一章预告: 我们将为 MLP 披上真正的铠甲。从下山的神兵利器(AdamW 优化器),到封锁过拟合的 Dropout,直至后来拯救千层网络于水火之中的划时代基石——BatchNorm 与局部跳跃(残差连接)


下一章: 1.2 核心优化技术(优化器、BN与残差)

ai学习深度学习神经网络反向传播阅读需 12 分钟