3分钟搞懂深度学习AI:实操篇:ResNet
github仓库及代码(额外补充,持续更新):
yiyu0716/3mins-dl: 专为零基础小白打造的深度学习极简指南。这里没有令人头疼的公式,只有通俗易懂的知识拆解。每天只需 3 分钟,带你利用碎片时间轻松看懂 AI 核心概念,从零开始,毫无压力地跨入人工智能大门。
为什么3分钟搞懂AI
- 现代人平均注意力仅 8 秒,3 分钟正好匹配大脑“黄金专注窗”,避免疲劳与遗忘。
- 微学习可将知识保留率提升 25%-80%,远超传统长课。
- 零基础读者能在碎片时间快速建立直觉,真正“懂”而非只是“看过”。
- 我们不仅知其然,还要知其所以然。
- 让你轻松坚持学完整个深度学习系列
1. 问题引入

想象你在玩一场五十人参与的“传话游戏”。第一排的人看到一句原话,依次向后传。理论上,经过思考的人越多,信息处理得越深。但现实是,传到第 20 个人时,原话早变味了,甚至连最初的意思都完全丢失。在人工智能领域,科学家曾面临完全一样的困境:既然 AI 的神经网络层数越多应该越聪明,为什么一旦超过 20 层,它反而突然变笨,连最简单的任务都做不好了?
2. 最直观解释(核心结论)

ResNet(残差网络)的核心原理,就是给信息的传递修建了一条绕过中间人的“高速公路”。在传统的传话里,每个人都必须重新复述整段内容,极易出错。ResNet 的做法是:把原始的话写在纸条上,直接沿着“高速公路”递给后面的人。中间的参与者不再需要艰难地去复述原话,他们只需要在纸条旁边,写下自己想补充的“修改意见”即可。这样一来,无论队伍有多长,最基础的信息都能完美保留,AI 只需要专注于学习那些细微的补充变化。
3. 为什么它有用(价值解释)
在 ResNet 出现前,AI 界被“网络退化”的乌云笼罩:当网络从 20 层加深到 100 层时,AI 反而变笨了。因为信息在层层传递中不断损耗,就像让一百个人依次临摹同一幅画,最后一张注定面目全非。 ResNet 通过“高速公路”完美解决了这个痛点。它保证了即便后排的 AI 节点什么新知识都没学到,最起码可以直接把前排的正确答案“原封不动”地拿过来,确保成绩绝不会变差。这让 AI 模型成功突破了深度的物理限制,直接迈向成百上千层的新时代,奠定了今天无数强大 AI 大模型的基础。
4. AI 是怎么用的(技术联系)

在神经网络中,传统网络是串联的单行道:
【输入】 -> [层 A] -> [层 B] -> 【输出】 一旦中间某个层处理出错,原本的信息就全毁了。
ResNet 引入了名为“残差块”的结构,在 AI 内部加上了一条跨越层的弧线通道 :
【输入】 ----------------------------> (+) -> 【最终输出】 ↘ -> [层 A] -> [层 B] -> ↗
数据来到这里兵分两路:一路走传统处理层去提取新的复杂特征;另一路直接走高速公路(专业称为“跳跃连接”)直达终点。在终点处,两路数据直接相加融合。 因为这条通道的存在,AI 纠错的信号也能毫无阻碍地瞬间逆向传回起点。AI 不再费尽心机去学习如何完整地把猫变成狗,只需学习输入和输出之间那一点点补充的“变化量”。这彻底打通了网络任督二脉,让上百层的计算变得异常顺畅。
5. 一句话总结 + 记忆钩子

一句话总结:ResNet 通过建立跨越网络层的直接连接,让深层 AI 模型只需学习信息的微小变化量,彻底解决了层数越深越笨的退化难题。
直觉记忆钩子:ResNet 就像 带有原稿的传话游戏,中间人只递交修改意见。
6. 实操最简代码
以下是一段可以直接在 PyTorch 中运行的最简代码。即使你完全不懂编程,也可以把每一行代码当作故事来读。我们用画图的方式,直观展示“原话”和“修改意见”是如何合并的。
Python
import torch
import torch.nn as nn
import matplotlib.pyplot as plt
# 1. 定义一个最简单的“残差块”(ResNet的核心部件)
class SimpleResBlock(nn.Module):
def __init__(self):
super().__init__()
# 中间人:代表传统神经网络的处理层
self.middle_man = nn.Linear(10, 10)
def forward(self, original_info):
# 第一路:数据走传统网络,提取出“修改意见”
modifications = self.middle_man(original_info)
# 第二路:核心魔法!原始信息走“高速公路”直接送达,与修改意见相加
# 对应逻辑:最终输出 = 原话 + 修改意见
final_output = original_info + modifications
return final_output, modifications
# 2. 准备实验数据
# 假设这是一段包含 10 个数字的初始信息(全为 1,代表原话的原始状态)
original_data = torch.ones(1, 10)
# 创建残差块并输入数据
block = SimpleResBlock()
# 提取出最终输出结果,以及中间人的修改意见
output_data, change_data = block(original_data)
# 3. 将结果可视化(生成一张图表帮助理解)
# 我们将把三组数据画在图表上,直观展示它们的合并关系
plt.figure(figsize=(10, 5))
# 画出走高速公路的原话(蓝线,始终为1)
plt.plot(original_data[0].detach().numpy(), label="Highway: Original Info", marker='o', linewidth=2)
# 画出中间人给出的修改意见(橙线,微小的变化量)
plt.plot(change_data[0].detach().numpy(), label="Middle Man: Modifications", marker='x', linestyle='--')
# 画出最终的输出结果(绿线,等于蓝线+橙线)
plt.plot(output_data[0].detach().numpy(), label="Combined: Final Output", marker='s', linewidth=2)
plt.title("How ResNet Works: Final Output = Original + Modifications")
plt.xlabel("Data Features")
plt.ylabel("Values")
plt.grid(True, linestyle=':', alpha=0.6)
plt.legend()
plt.show()

为什么 AI 网络超 20 层就“变笨”?传统网络像传话游戏,信息随层数加深而严重退化。ResNet 巧妙引入“跳跃连接”修建数据“高速公路”,让原始信息直达终点,网络仅需学习微小的“残差”。这彻底打破了深度限制,让成百上千层的极深大模型训练成为现实!
浙公网安备 33010602011771号