全连接层

  • 全连接层指本层的每一个结点都和上一层的所有结点相连接

  • 全连接层适合处理特征数量较少的全局特征数据,要求各条样本之间不含空间或时间上的相关性

  • 全连接层通常作为任务头,用于生成输出而不是中间计算,例如作为输出层

  • 全连接层在不同深度学习框架中的命名有所不同,例如:

    • Affine层(仿射变换层):根据其数学本质(线性变换与偏移)命名
    • Linear层(线性层)
    • Dense层(密集层)
  • 具体结构:

    • 全连接层的输入和输出均为特征展平的列向量x\boldsymbol x,本层输入的元素个数和上一层结点数相同、本层输出的元素个数和本层结点数相同

    • 权重为二维矩阵WW,Wi,j(l)W_{i,j}^{(l)}表示第l−1l-1层第ii个结点到第ll层的第jj个结点的权重

      因此若第kk层结点数为c(k)c^{(k)},则W(l)W^{(l)}是一个c(l−1)c^{(l-1)}行c(l)c^{(l)}列的矩阵

    • 偏置则为列向量b\boldsymbol b,它的元素个数与所在层的结点数相同

  • 全连接层的FP(此后假设同一层的激活函数相同):

    xj(l+1)=gj(l)((W:,j(l))Tx(l)+b(l))x(l+1)=g(l)((W(l))Tx(l)+b(l)) \begin{align}&x_{j}^{(l+1)}=g_j^{(l)}\left(\left(W_{:,j}^{(l)}\right)^T\boldsymbol x^{(l)}+\boldsymbol b^{(l)}\right)\\&\boldsymbol x^{(l+1)}=g^{(l)}\left(\left(W^{(l)}\right)^T\boldsymbol x^{(l)}+\boldsymbol b^{(l)}\right)\end{align}
  • 全连接层的BP梯度计算:

    δ(l)={∂L(y^)∂y^∂g(l)(Y(l))∂Y(l),l为输出层W(l+1)δ(l+1)∂g(l)(Y(l))∂Y(l),l为隐藏层∂L∂W(l)=x(l)(δ(l))T∂L∂b(l)=δ(l) \begin{align}&\boldsymbol\delta^{(l)}=\begin{cases}{\Large\frac{\part L(\hat y)}{\part\hat y}\frac{\part g^{(l)}(Y^{(l)})}{\part Y^{(l)}}},&l为输出层\\W^{(l+1)}\boldsymbol\delta^{(l+1)}{\Large\frac{\part g^{(l)}(Y^{(l)})}{\part Y^{(l)}}},&l为隐藏层\end{cases}\\&\frac{\part L}{\part W^{(l)}}=\boldsymbol x^{(l)}(\boldsymbol\delta^{(l)})^T\\&\frac{\part L}{\part\boldsymbol b^{(l)}}=\boldsymbol\delta^{(l)}\end{align}