仿射变换(Affine Transformation)

形如 y=wx+b 的变换,在线性变换基础上增加了平移项 b。nn.Linear 实际做的就是仿射变换,严格来说不是线性变换(线性要求 f(0)=0)。

什么是仿射变换

仿射变换 = 线性变换 + 平移。

最简单的形式:y=wx+by = wx + by=wx+b,其中 www 是线性部分(缩放),bbb 是平移部分。

严格的线性变换要求 f(0)=0f(0) = 0f(0)=0,但加了偏置 bbb 之后 f(0)=b0f(0) = b \neq 0f(0)=b=0,所以 nn.Linear 做的其实是仿射变换,不是数学意义上的线性变换。

为什么 AI 里叫"线性层"

业界约定俗成。PyTorch 的 nn.Linear、TensorFlow 的 Dense 层,做的都是 y=Wx+by = Wx + by=Wx+b(仿射变换),但大家习惯叫"线性层"。知道这个区别即可,不影响使用。

高维情况

多输入时,仿射变换变成矩阵形式:y=Wx+b\mathbf{y} = W\mathbf{x} + \mathbf{b}y=Wx+b,其中 WWW 是权重矩阵,b\mathbf{b}b 是偏置向量。