You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

深度学习入门疑问:分类网络为何仅最后一层用Dense层?

Hey there! Let's break down your two questions one by one—they're really thoughtful for someone just getting into deep learning classification models.

1. 为什么构建分类任务神经网络时,最后一层需要采用Dense层?
  • 核心原因是分类任务的最终目标是输出每个类别的置信度(或概率),而Dense层的全连接特性刚好能完成从高维特征到类别空间的映射。前面的特征提取层(比如卷积层、Transformer encoder)会从原始数据中学习到分散的、高维度的特征(比如图像的边缘纹理、文本的语义向量),Dense层会把这些分散的特征全部整合起来,计算出对应每个类别的最终得分。
  • 其次,Dense层的输出可以直接搭配分类任务专属的激活函数:比如多分类用softmax把得分转化为符合概率分布的结果,二分类用sigmoid输出0-1之间的概率值,这是后续计算交叉熵损失、判断分类结果的基础。
  • 举个直观的例子:用CNN做猫狗分类时,前面的卷积层能识别出耳朵、爪子这些部件特征,但这些特征分散在不同的通道里。最后一层Dense层会把所有这些部件特征的信息汇总,输出"是猫"和"是狗"两个类别的得分,这才是我们最终需要的分类输出。
2. 既然Dense层容易引发过拟合,为什么仅在网络最后一层使用该层?
  • 首先,前面的特征提取层(卷积、循环、Transformer层等)的设计逻辑是学习通用的、结构化的特征,它们的参数和局部信息绑定(比如卷积核只关注局部图像区域),参数数量远少于同规模的Dense层,过拟合的风险本来就低。如果在中间插入Dense层,大量的全连接参数很容易"记住"训练数据里的噪声细节,反而破坏了特征的通用性,导致模型泛化能力下降。
  • 其次,最后一层Dense层的参数规模是可控的:它的输出维度等于任务的类别数(比如10分类就是10个神经元),参数数量仅为「前一层输出维度 × 类别数」,相比中间加一个大Dense层,参数少很多,过拟合风险也更低。而且我们还能通过Dropout、L2正则化这些手段进一步约束它的参数,降低过拟合概率。
  • 最后从任务逻辑来看,只有最后一步需要把特征映射到类别空间,前面的层只需要专注于提取高质量的特征即可。中间加Dense层不仅没必要,还会打乱前面层学习到的特征结构,增加训练难度和过拟合的可能性。

内容的提问来源于stack exchange,提问作者Yuki.U

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.05.15 07:42:48