全连接层(又称线性层)是神经网络中的一种基本结构。在全连接层中,每个神经元都与上一层的所有神经元相连 。其计算公式为 \(y = xA^{T}+b\) ,这里 x 是输入向量, A 是权重矩阵, b 是偏置向量。
- x(输入向量):代表上一层传递过来的信息,其维度反映了上一层神经元的数量等信息。例如给定输入 x 维度为 \(1\times3\),意味着上一层有 3 个神经元输出的信息组合成了这个 \(1\times3\) 的向量。
- A(权重矩阵): A 的每一列对应输入 x 的一个元素,每一行对应输出的一个神经元。 A 中的元素是权重值,它决定了输入信息对输出的影响程度。 A 和 b 是参与训练的参数,在训练过程中通过优化算法不断调整,以使得网络能够更好地完成任务。例如 A 的 shape 为 \(5\times3\),表示输入有 3 个特征(对应 x 的 3 个维度),输出有 5 个神经元(对应输出 y 的维度相关)。
- b(偏置向量):偏置向量 b 为每个输出神经元添加了一个可学习的常数项,增加了模型的拟合能力。其维度与输出神经元个数相关,如这里 b 的 shape 为 \(1\times5\),与输出维度相关联。
- y(输出向量):经过全连接层计算后的输出,是下一层的输入。其维度由 A 的行数(即 A 的 shape 的第一个维度)决定,公式 \(y = xA^{T}+b\) 实现了从输入 x 到输出 y 的线性变换。
- x 与 \(A^{T}\) 矩阵乘法维度推导:已知 x 维度为 \(1\times3\) , A 的 shape 为 \(5\times3\) ,那么 \(A^{T}\) 的 shape 为 \(3\times5\) 。根据矩阵乘法规则,当矩阵 M 维度为 \(m\times n\) ,矩阵 N 维度为 \(n\times p\) 时, \(M\times N\) 得到的矩阵维度为 \(m\times p\) 。所以 \(x\times A^{T}\) 中, x 相当于 M ( \(m = 1\) , \(n = 3\) ), \(A^{T}\) 相当于 N ( \(n = 3\) , \(p = 5\) ),则 \(x\times A^{T}\) 的 shape 为 \(1\times5\) 。
- 加上偏置 b 后的维度:因为 b 的 shape 为 \(1\times5\) ,与 \(x\times A^{T}\) 的 shape 相同,在矩阵加法中,要求相加的两个矩阵维度相同,所以 \(x\times A^{T}+b\) 的 shape 依然为 \(1\times5\) ,这个 \(1\times5\) 的向量就是该全连接层的输出。