核心差别只有一点:
“预训练”的权重已经在大规模数据上收敛过一次,而普通(从零开始)网络的权重仍是随机分布的。
“预训练”的权重已经在大规模数据上收敛过一次,而普通(从零开始)网络的权重仍是随机分布的。
除此之外,网络结构、前向计算、参数量、输入输出格式完全一样;差异只体现在“权重的初始状态”和随之而来的:
-
特征质量
预训练 CNN 的低层边缘/纹理、中层部件、高层语义都已在百万级图片上统计出来,特征通用且判别力强;随机 CNN 则全是噪声。 -
收敛速度
预训练模型通常只需 1/10 ∼ 1/100 的 epoch 就能在小数据集上微调好;随机网络要从零摸索。 -
数据需求量
预训练网络在小数据集(几千张)也能过拟合较少;随机网络极易过拟合或根本学不到。 -
下游任务方式
-
预训练:冻结 backbone 只训分类头,或整体微调。
-
随机:必须从头到尾一起训,需要大量标注和算力。
-
-
适用场景
预训练适合“数据少、算力小、想快速上线”;随机训练适合“数据极大且与预训练域差异巨大,或研究网络结构本身”。
总结:
预训练 CNN 就是“把普通 CNN 的初始权重换成已经学好特征的权重”,结构不变,能力天差地别。
预训练 CNN 就是“把普通 CNN 的初始权重换成已经学好特征的权重”,结构不变,能力天差地别。