全连接层详解
该博客仅是笔者对于全连接层的浅薄理解。如果存在问题,请务必告知我,谢谢。
前言
全连接层是常见的神经网络层,可以作为模型的分类器(可理解为将特征维度映射到类别维度上),也可以作为特征提取。不过,对于初学者,可以直接认为全连接层是模型的分类器。毕竟大多数情况下,全连接层都是扮演的分类器的角色。
全连接层中的每一个结点都会与前一层的全部结点相连,因此全连接层的可学习参数非常多,可能会占该模型参数量的80%(数据为经验值,不准确),会消耗大量的计算资源,所以如果希望模型训练得更快,可考虑精简全连接层,比如使用卷积代替全连接层。常见的全连接层的结构如下图,但笔者认为该图仅能清晰地展示全连接层的每一个结点都与前一层结点,不过不能揭示全连接层的本质——矩阵Matrix。
全连接层计算
计算公式:
从公式里可以看出,全连接层其实跟MLP(多层感知机)、卷积层类似,都是在做多项式求和。注意:整个神经网络本质上其实都是在做多项式求和。
在Pytorch中,全连接层的使用是nn.Linear(input_features, output_features)
,即输入维度和输出维度,全连接层的作用可理解为维度映射。
示例
假设
在模型输出的时候,选择概率大的一个作为最终输出。由上述例子可以看出,
换个角度理解,提取特征——> 对特征进行多项式求和,给特征确定权重,以表示该特征在此任务中的重要性。那是否可以将全连接层也看作是特征提取呢?
本文作者:顾子郤
本文链接:https://www.cnblogs.com/coder-shane/p/18355096
版权声明:本作品采用知识共享署名-非商业性使用-禁止演绎 2.5 中国大陆许可协议进行许可。
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步