【论文解读11】深度残差网络中的恒等映射:ResNet改进

本文解读的是Kaiming He、Xiangyu Zhang、Shaoqing Ren和Jian Sun于2016年发表的改进论文《Identity Mappings in Deep Residual Networks》,该论文深入分析了ResNet中恒等映射的作用机制,提出了预激活(Pre-activation)的残差块设计,进一步优化了ResNet的训练稳定性和性能。这一改进不仅完善了ResNet的理论基础,更为理解残差连接的本质提供了深刻的洞察。 “恒等映射是残差网络成功的关键。"——这是He等人在ResNet改进论文中提出的核心观点。在原始ResNet中,残差块的设计虽然有效,但恒等映射的实现方式(激活函数的位置)对性能有重要影响。通过系统性的实验和理论分析,论文发现预激活(在卷积之前应用BatchNorm和ReLU)比后激活(在卷积之后应用)效果更好。 论文的核心创新是预激活残差块:将BatchNorm和ReLU移到卷积之前,使恒等映射的路径更加"干净”,梯度流动更加顺畅。这种设计不仅提高了训练稳定性,还进一步提升了模型性能,在ImageNet上取得了更好的结果。 在当今大模型时代,这一改进的思想仍然重要:理解恒等映射的本质,优化信息流动路径,这些原则仍然是深度网络设计的核心。理解ResNet改进,就是理解如何进一步优化残差连接。 本文将从问题根源、核心机制、解决方案、实践评估四个维度深度解读ResNet改进,包含完整的数学推导、梯度流动分析和实验评估,并在文末提出开放性问题与未来研究方向。 本文属于 论文阅读开篇:Ilya 30u30 阅读计划 系列,可前往该页查看完整目录、阅读顺序与发布状态。 原始ResNet的恒等映射问题 问题一:激活函数位置的影响 在原始ResNet中,残差块的设计为: $$ y = \mathcal{F}(x, {W_i}) + x $$ 其中 $\mathcal{F}$ 通常包含:Conv → BN → ReLU → Conv → BN,然后输出与 $x$ 相加,最后再应用ReLU。 后激活设计:激活函数在残差函数之后,恒等映射 $x$ 直接参与加法,然后应用激活函数。 问题分析:当 $x$ 经过ReLU激活时,如果 $x$ 的某些元素为负,会被置为0,破坏了恒等映射的性质。这导致恒等映射路径不够"干净",梯度流动可能受阻。 问题二:梯度流动的阻塞 在原始设计中,梯度需要通过激活函数的导数传播: $$ \frac{\partial y}{\partial x} = \frac{\partial \text{ReLU}(\mathcal{F}(x) + x)}{\partial x} = \text{ReLU}’(\mathcal{F}(x) + x) \left(1 + \frac{\partial \mathcal{F}}{\partial x}\right) $$ ...

ZHANG.z | February 10, 2026 | 16 min | Shanghai

【论文解读10】深度残差学习:ResNet解决网络退化问题

本文解读的是Kaiming He、Xiangyu Zhang、Shaoqing Ren和Jian Sun于2016年发表的里程碑论文《Deep Residual Learning for Image Recognition》,该论文提出的ResNet通过残差连接(Residual Connection)解决了深度网络的退化问题,将网络深度推到了前所未有的152层,在ImageNet上取得了3.57%的Top-5错误率,首次超越人类水平。ResNet不仅彻底改变了深度网络的设计范式,更为后续Transformer、生成模型等架构的残差连接奠定了理论基础。 “更深的网络应该至少不会比浅层网络更差。"——这是ResNet论文的核心洞察。在ResNet之前,深度网络面临一个悖论:理论上更深的网络应该能够学习更复杂的特征,但实际中更深的网络在训练集上的错误率反而更高。这不是过拟合,而是优化困难——网络无法有效学习恒等映射。 ResNet通过残差连接解决了这一根本问题。残差块定义为 $y = F(x) + x$,其中 $F(x)$ 是残差函数,$x$ 是恒等映射。如果最优映射是恒等映射 $H(x) = x$,传统网络需要学习 $H(x) = x$,而残差网络只需学习 $F(x) = 0$,后者显然更容易。这种设计使得网络可以非常深,性能可以持续提升。 在当今大模型时代,残差连接已经成为深度网络的标准组件:Transformer的残差连接、生成模型的跳跃连接(U-Net、StyleGAN)、大模型的深度扩展(GPT-3、PaLM等模型都依赖残差连接训练深层网络)。理解ResNet,就是理解深度网络设计的核心思想。 本文将从问题根源、核心机制、解决方案、实践评估四个维度深度解读ResNet,包含完整的数学推导、梯度流动分析和实验评估,并在文末提出开放性问题与未来研究方向。 深度网络的退化问题 问题一:网络深度与性能的悖论 理论上,更深的网络应该能够学习更复杂的特征表示,性能应该更好。但实际中,随着网络加深,出现了两个严重问题: 梯度消失问题:在深层网络中,梯度在反向传播过程中指数级衰减。对于Sigmoid激活函数,$\sigma’(x) \leq 0.25$,经过 $L$ 层后,梯度最多衰减到 $0.25^L$。当 $L$ 很大时,早期层的梯度接近0,无法有效更新参数。 退化问题(Degradation Problem):这是ResNet论文发现的新问题。实验显示,56层网络的训练误差比20层网络更高。这不是过拟合(因为训练误差也更高),而是优化困难——网络无法有效学习。 数学分析:假设最优映射是 $H(x) = x$(恒等映射),传统网络需要学习 $H(x) = x$,这需要所有层的权重矩阵都是单位矩阵,这在深层网络中很难实现。 问题二:恒等映射的学习困难 恒等映射 $H(x) = x$ 是最简单的映射,但在深层网络中学习恒等映射却非常困难。 ...

ZHANG.z | February 7, 2026 | 18 min | Shanghai

【论文解读07】循环神经网络正则化(Ilya经典论文)

本文解读的是Wojciech Zaremba、Ilya Sutskever和Oriol Vinyals于2014年发表的经典论文《Recurrent Neural Network Regularization》,该论文首次将Dropout正则化技术系统性地应用于循环神经网络(RNN),通过只在非循环连接上应用Dropout,既保持了RNN的记忆能力,又有效防止了过拟合。这一创新为RNN在序列建模任务中的成功应用奠定了重要基础,特别是在机器翻译、语言模型等需要处理长序列的任务中取得了突破性成果。 “正则化是深度学习的艺术。"——这是Ilya Sutskever等人在2014年提出的深刻洞察。RNN虽然能够处理变长序列,但在训练过程中极易过拟合,特别是在大规模数据集上训练深层RNN时。传统的Dropout技术直接应用于RNN会导致网络无法保持长期记忆,因为随机失活会破坏RNN的循环结构。 论文的核心创新是只在非循环连接上应用Dropout:在LSTM的输入-隐藏层连接和隐藏-输出层连接上应用Dropout,但在循环连接(hidden-to-hidden)上不使用Dropout。这种设计既保持了RNN的记忆能力,又有效防止了过拟合,使RNN能够在大型数据集上训练深层网络。 在当今大语言模型时代,这一思想仍然具有重要意义:虽然Transformer已经取代RNN成为主流架构,但正则化的核心思想(防止过拟合、提高泛化能力)仍然是深度学习的关键。理解RNN正则化,就是理解如何在高容量模型中平衡记忆能力和泛化能力。 本文将从问题根源、核心机制、解决方案、实践评估四个维度深度解读RNN正则化技术,包含完整的数学推导、算法流程和复杂度分析,并在文末提出开放性问题与未来研究方向。 本文属于 论文阅读开篇:Ilya 30u30 阅读计划 系列,可前往该页查看完整目录、阅读顺序与发布状态。 RNN过拟合问题的根源 问题一:RNN的高容量与过拟合风险 RNN的参数共享机制使其能够处理任意长度的序列,但这也带来了过拟合风险。对于长度为 $T$ 的序列,RNN实际上使用了 $T$ 次相同的权重矩阵 $W_h$(hidden-to-hidden连接),相当于将参数"复用"了 $T$ 次。 参数有效性的量化:虽然RNN的参数量是固定的(例如,对于隐藏维度 $d_h$,hidden-to-hidden权重矩阵 $W_h$ 的大小为 $d_h \times d_h$),但每个参数在序列的每个时间步都被使用,相当于有 $T$ 个"虚拟参数”。这种参数复用使得RNN具有很高的表达能力,但也增加了过拟合的风险。 过拟合的数学表现:当训练集规模 $N$ 相对于模型容量较小时,模型可能"记住"训练数据的细节,而不是学习数据的规律。在RNN中,这种过拟合表现为:训练集上的困惑度(perplexity)很低,但验证集上的困惑度很高,模型无法泛化到新序列。 问题二:传统Dropout在RNN中的失效 传统Dropout在RNN中直接应用会导致严重问题。Dropout的核心思想是在训练时随机将部分神经元输出置0,迫使网络学习更鲁棒的表示。但在RNN中,这种随机失活会破坏循环结构。 循环连接的脆弱性:RNN的循环连接 $h_t = f(W_h h_{t-1} + W_x x_t + b)$ 依赖于前一时刻的隐藏状态 $h_{t-1}$。如果在 $h_{t-1}$ 上应用Dropout,会导致信息在时间维度上的传播被随机打断,网络无法保持长期记忆。 数学分析:假设在隐藏状态上应用Dropout,则: $$ h_t = f(W_h (\text{Dropout}(h_{t-1})) + W_x x_t + b) $$ ...

ZHANG.z | January 27, 2026 | 24 min | Shanghai

【论文解读06】理解LSTM网络:解决长期依赖问题

本文解读的是Sepp Hochreiter和Jürgen Schmidhuber于1997年发表的经典论文《Long Short-Term Memory》,该论文提出了长短期记忆(LSTM)网络架构,通过门控机制和细胞状态彻底解决了循环神经网络(RNN)的梯度消失问题,使网络能够学习长期依赖关系。LSTM不仅成为序列建模领域的重要里程碑,更为后续的GRU、Transformer等架构奠定了理论基础,在机器翻译、语音识别、时间序列预测等任务中取得了突破性成果。 “记忆是智能的基础。"——这是Hochreiter和Schmidhuber在1997年提出的深刻洞察。传统RNN虽然理论上可以处理任意长度的序列,但在实际训练中面临严重的梯度消失问题:当序列长度超过几十个时间步时,梯度在反向传播过程中会指数级衰减,导致网络无法学习长期依赖关系。 LSTM通过门控机制和细胞状态解决了这一根本问题。细胞状态像一个"传送带”,信息可以在上面直接流动,不受梯度消失的影响;门控机制(遗忘门、输入门、输出门)控制信息的流动,使网络能够有选择地保存和遗忘信息。这种设计使得LSTM能够学习跨越数百甚至数千个时间步的依赖关系。 在当今大语言模型时代,LSTM的思想以新的形式延续:Transformer的自注意力机制可以看作是对LSTM门控机制的改进,GPT等模型虽然不再使用LSTM,但其序列建模的核心思想仍然源于LSTM。理解LSTM,就是理解序列建模的本质,理解神经网络如何"记忆"和"遗忘"。 本文将从问题根源、核心机制、解决方案、实践评估四个维度深度解读LSTM网络,包含完整的数学推导、算法流程和复杂度分析,并在文末提出开放性问题与未来研究方向。 本文属于 论文阅读开篇:Ilya 30u30 阅读计划 系列,可前往该页查看完整目录、阅读顺序与发布状态。 RNN长期依赖问题的根源 问题一:梯度消失的数学本质 传统RNN在每个时间步的计算为: $$ h_t = \tanh(W_h h_{t-1} + W_x x_t + b) $$ 其中 $h_t$ 是隐藏状态,$W_h$、$W_x$ 是权重矩阵,$b$ 是偏置向量。 在反向传播过程中,需要计算损失函数 $L$ 对早期时间步 $h_k$ 的梯度: $$ \frac{\partial L}{\partial h_k} = \frac{\partial L}{\partial h_t} \cdot \frac{\partial h_t}{\partial h_k} = \frac{\partial L}{\partial h_t} \cdot \prod_{j=k+1}^{t} \frac{\partial h_j}{\partial h_{j-1}} $$ ...

ZHANG.z | January 25, 2026 | 27 min | Shanghai

【论文解读05】循环神经网络的不可思议的有效性

本文解读的是Andrej Karpathy于2015年发表的经典博客文章《The Unreasonable Effectiveness of Recurrent Neural Networks》,该文章深入探讨了循环神经网络(RNN)在序列建模任务中的强大能力和应用潜力。这篇文章不仅展示了RNN在文本生成、代码生成、音乐创作等领域的惊人表现,更为理解序列数据的本质、神经网络的语言能力以及生成式AI的发展奠定了重要基础。 “循环神经网络具有不可思议的有效性。"——这是Karpathy在文章开篇的断言。在Transformer尚未兴起的2015年,RNN就已经展现出处理序列数据的强大能力。从生成莎士比亚风格的文本,到编写Python代码,再到创作音乐,RNN似乎能够"理解"序列中的模式,并生成符合这些模式的新序列。 RNN的核心思想是记忆:通过隐藏状态(hidden state)保存历史信息,使网络能够处理任意长度的序列。这种记忆机制使得RNN能够捕捉序列中的长期依赖关系,理解上下文,生成连贯的文本。虽然RNN后来被Transformer超越,但其核心思想(序列建模、注意力机制)仍然影响着现代AI的发展。 在当今大语言模型时代,RNN的思想以新的形式延续:Transformer的自注意力机制可以看作是对RNN记忆机制的改进,GPT等模型本质上仍然是序列到序列的生成模型。理解RNN,就是理解序列建模的本质,理解语言模型如何"理解"和"生成"文本。 本文将从问题根源、核心机制、解决方案、实践评估四个维度深度解读RNN的不可思议有效性,包含完整的数学推导、算法流程和复杂度分析,并在文末提出开放性问题与未来研究方向。 本文属于 论文阅读开篇:Ilya 30u30 阅读计划 系列,可前往该页查看完整目录、阅读顺序与发布状态。 序列建模的根本挑战 问题一:变长序列的处理难题 传统神经网络(如全连接网络、CNN)要求输入具有固定维度。但现实中的序列数据(文本、语音、时间序列)长度是变化的。如何设计能够处理任意长度序列的模型? 固定窗口的局限性:如果使用固定大小的窗口(如n-gram模型),只能捕捉局部依赖关系,无法处理长距离依赖。例如,在句子"The cat, which was very hungry, ate the food"中,“cat"和"ate"之间的依赖关系跨越了多个词,固定窗口无法捕捉。 序列的本质:序列数据具有时间或顺序结构,每个元素不仅包含自身的信息,还包含其在序列中的位置信息。这种结构信息对于理解序列至关重要。 RNN通过循环结构解决了这个问题:网络在每个时间步处理一个元素,并将处理结果传递给下一个时间步,从而能够处理任意长度的序列。 问题二:长期依赖的捕捉 序列数据中的依赖关系可能跨越很长的距离。在语言中,一个词的含义可能依赖于前面很远的词;在音乐中,一个音符的意义可能依赖于整个旋律的结构。 梯度消失问题:在训练RNN时,梯度需要通过时间反向传播(Backpropagation Through Time, BPTT)。如果序列很长,梯度在反向传播过程中会指数级衰减,导致网络无法学习长期依赖关系。 记忆容量限制:即使理论上RNN可以保存任意长的历史信息,但实际中隐藏状态的容量是有限的。如何有效地利用有限的记忆容量来保存最重要的信息? LSTM和GRU等改进架构通过门控机制(gating mechanism)解决了这些问题,能够有选择地保存和遗忘信息,从而更好地捕捉长期依赖。 问题三:序列生成的创造性 序列建模不仅要理解序列,还要能够生成新的序列。生成任务面临三个核心挑战:如何保证生成的序列符合训练数据的分布?如何保证生成的序列是连贯的?如何保证生成的序列具有创造性(不是简单复制训练数据)? 分布匹配:生成的序列应该遵循训练数据的分布。如果训练数据是莎士比亚的文本,生成的文本应该像莎士比亚的风格。 连贯性:生成的序列应该是连贯的,每个元素应该与前文一致。例如,如果前文提到"猫”,后文不应该突然提到"狗”(除非有合理的上下文)。 创造性:生成的序列应该具有创造性,不是简单复制训练数据。这需要在模仿和创造之间找到平衡。 RNN通过自回归生成(autoregressive generation)解决了这些问题:在每个时间步,网络根据前文生成下一个元素,通过采样策略(如温度采样)控制生成的随机性和创造性。 RNN的核心机制 循环结构:记忆与状态 RNN的核心是循环结构:网络在每个时间步接收输入 $x_t$ 和前一时刻的隐藏状态 $h_{t-1}$,计算当前时刻的隐藏状态 $h_t$ 和输出 $y_t$: $$ h_t = \tanh(W_h h_{t-1} + W_x x_t + b) $$ ...

ZHANG.z | January 11, 2026 | 28 min | Shanghai