Notes on Section 7.6

bobown_yao

“随着我们设计越来越深的网络,深刻理解“新添加的层如何提升神经网络的性能”变得至关重要。”

在研究ResNet之前,有必要引入一些数学概念

函数族

Image: image_001

我们可以理解其为一个由若干参数和变量构成,但是函数形式固定的组,所有的参数取值张成了整个函数族空间

Image: image_002

这里f^*就是理论上存在的,对于目标函数的真实表达,下面则是我们在F即函数族的范围内可以达到的最佳近似

以下是我们的优化预期,也就是对于特定的训练集(X特征,y标签),还有理想函数f,我们在现有的函数族里,找到最逼近的那个函数表达

(argmin 是数学语言,全称是 Arguments of the Minimum,即给定条件下的最小值,这里的条件就是指X,y

Image: image_003

我们可以用损失函数来衡量逼近程度

先验的来说,我们认为初始的F不应该包含理想函数f,因为后者对于真实问题来说应该是一个极其复杂且具有随机性的函数。所以说我们当我们在原有框架F上升级的时候,我们首先考虑的是如何扩大其表达范围,使得其中的某些区域可以更加靠近目标理想函数。

以及我们需要考虑迭代的单调性,我们不希望背道而驰——以下的嵌套函数类可以保证区域最优解不至于变差

Image: image_004

结合上面的探讨,我们可以知道我们在加深网络的时候需要达到的一个效果——也即网络是可以退化的,对于一个复杂网络,应该允许其可以模拟简单网络。这里面的核心就是我们需要有一些块可以被容易的训练成f(x)=x,也就是恒等映射

假设我们希望一个块模拟函数f(x),对于一个正常块,我们不做处理,则网络需要模拟的是f(x)=x,相对复杂。而对于残差网络,我们在权重层输出后加上原始数据x然后送入下一层,则权重层需要模拟的实际上是g(x)=f(x)-x这一函数,这相对简单很多,因为如果需要模拟恒等输出,我们只需要模拟g(x)=0,即所有的权重和偏置都趋于0,这比精准的拟合一个x要方便的多

Image: image_005

这里其实会有一个问题:矩阵相加运算要求形状(Shape)必须严格对齐,那么是不是要求输入输出的张量形状完全一样?这是否引入诸多限制?

我们观察实际工程中的解决方案

以下是残差块的代码实现

Image: image_006

这部分实现了一个标准VGG块,其中Conv1/2是VGG的基本组件,配合BN和ReLU的使用

Conv3则略有不同,首先其存在一个开关状态。事实上是考虑到了两种情况:在最理想的情况下,输入通道数和输出通道数相同,这时候我们可以直接使用矩阵加法;如果不幸的,我们有输出通道改变了,那么我们将启用Conv3,这个1*1卷积层本质就是在放缩通道

另外如果有空间维度(长和宽)不对齐时,我们还可以使用下采样来同样的解决这个问题

这里我们注意到strides的对齐情况,在Conv1/3中都使用了外传strides(default by 1),以及Conv2默认使用了stride=1

这里我们会有另外的疑问:怎么保证经过采样,或者1*1卷积层的通道缩放之后,我们的原始数据x可以变形成我们期望的x‘呢?而且参数也是训练浮动的,我们怎么保证我们可以合理的处理这些数据?

通俗的一个解释是,在变换原数据的时候,我们使用的方法为“线性投影(Linear Projection)”,比如说,放大通道的时候,相当于把现有的张量投射到更高维的空间中,因为rank前后相同,所以信息没有损失也没有变多

另外我们可以认为x对应一个x‘,这个变换后的x’不会引入多余的噪音,那么自然的在梯度下降中,更新后的参数就会倾向于把x塑造成x‘的样子(而不是奇形怪状)

对于下采样,我们不可避免的丢失了关于原输入x的信息,不过由于在空间采样频率和感受野对齐上保持了严格的同步,这也是可以接受的。

以下是ResNet-18的架构,注意到交替使用的1*1ConvRes/DirectRes

Image: image_007

我们发现,在这样的架构中,空间维度先下降,然后持平,然后继续下降(相对应的感受野先上升,再持平,再上升)。这主要是出于一些视觉特征提取的考虑。

最后一个问题,但是笔者其实对于这一部分也不能说充尽理解

Image: image_008

Image: image_009

Image: image_010

Image: image_011

  • Title: Notes on Section 7.6
  • Author: bobown_yao
  • Created at : 2026-01-22 00:00:00
  • Updated at : 2026-03-08 19:46:44
  • Link: https://bobownyao.github.io/2026/01/22/Notes-on-Section-7-6/
  • License: All Rights Reserved © bobown_yao
On this page
Notes on Section 7.6