基于VGG19的二分类任务:输出层选1个还是2个神经元?
针对VGG19二分类任务的输出层选择
直接给结论:你应该选择2个神经元搭配Softmax的输出层,原因如下:
单神经元+
Softmax的本质问题:Softmax的作用是对所有输出神经元的结果做归一化,让它们的和为1。当只有1个神经元时,无论输入是什么,Softmax的输出永远是1(单个值除以自身等于1)。这意味着你的模型根本无法学习到区分两类样本的特征,相当于每次都固定预测同一类——如果你的数据集是均衡的(两类样本数量相近),准确率自然会卡在0.5,完全没有优化空间。2个神经元+
Softmax的合理性:二分类任务中,两个神经元分别对应「带裂缝」和「无裂缝」两类的原始输出,经过Softmax后会转化为两类的概率值(和为1)。模型可以通过反向传播调整权重,让正确类别对应的神经元输出更高,从而有效区分两类样本,这也是你能得到0.9+准确率的核心原因。额外补充:如果坚持想用单神经元,你需要把激活函数换成
Sigmoid,而不是Softmax。Sigmoid会输出0到1之间的数值,代表其中一类的概率,另一类的概率就是1减去这个值,这样模型才能正常学习。但从你的实验结果来看,2个神经元+Softmax已经能达到很好的效果,直接用这个方案就足够了。
内容的提问来源于stack exchange,提问作者yasmin
相关产品推荐
相关产品推荐

