增加深度(层数):
更深的网络可以学习更复杂特征,但容易导致梯度消失/爆炸问题,且计算量随深度线性增长。
问题:深层网络训练困难,性能提升呈现明显的收益递减。
增加宽度(通道数):
更宽的网络能捕捉更丰富的特征,但参数量和计算量随通道数平方增长。
问题:过于浅层的宽网络可能浪费计算资源,无法有效捕捉高阶特征。
提高分辨率:
高分辨率输入保留更多细节,但计算量随分辨率平方增长。
问题:分辨率过高时,特征信息冗余且计算成本激增。
传统模型的浪费 :
若仅增加网络深度(层数),可能导致梯度消失且计算量激增;若仅加宽通道数,参数量会平方级增长;若仅提高分辨率,冗余计算增多。这些单维度调整会导致 “投入多,回报少” ,即资源浪费。
EfficientNet 的改进 :
复合缩放通过同时但适度地增加这三个维度,能够更好地平衡模型的容量和计算效率,避免了某一维度过度增长带来的负面影响。
EfficientNet 提出用复合系数 ϕ \phi ϕ同步缩放深度、宽度、分辨率:
深度 = α ϕ , 宽度 = β ϕ , 分辨率 = γ ϕ \text{深度} = \alpha^\phi, \quad \text{宽度} = \beta^\phi, \quad \text{分辨率} = \gamma^\phi 深度=αϕ,宽度=βϕ,分辨率=γϕ
其中 α , β , γ \alpha, \beta, \gamma α,β,γ 是通过网格搜索确定的最佳比例(例如 α = 1.2 , β = 1.1 , γ = 1.15 \alpha=1.2, \beta=1.1, \gamma=1.15 α=1.2,β=1.1,γ=1.15), ϕ \phi ϕ 控制总放大倍数。
深度可分离卷积(Depthwise Separable Conv):
残差连接:
在输入和输出通道数一致时添加残差连接,有效缓解梯度消失问题。
膨胀机制(Expansion):
通过 1 × 1 1 \times 1 1×1 卷积先扩展通道数(例如从32到144),再用深度卷积处理,最后压缩回原始通道数。
效果:有效扩大感受野,显著增强特征表达能力。
直观类比:
传统方法就像给汽车单独升级引擎、轮胎或油箱,可能跑得更快但油耗剧增;
EfficientNet则像系统性地优化引擎功率、轮胎抓地力和油箱容量的平衡,让车在省油的同时跑得更远!
从技术上来说,"分辨率"通常指图片中像素的数量,与图像的尺寸直接相关。也就是说,大图片(像素多)在分辨率上是高的,而小图片(像素少)在分辨率上是低的。
但“清晰度”不仅仅取决于像素数量,还受到诸如对焦、噪点、压缩质量等因素的影响。所以一个分辨率高的大图片如果拍摄时模糊或存在噪点,可能看起来并不清晰;而一个小图片如果拍摄得非常精细和清晰,即使像素较少,视觉效果也可能更好。
总结来说,分辨率高与图片清晰度是两个不同的概念:
因此,“大图片”确实等于具有更高的分辨率,但并不必然意味着它的视觉清晰度也更好。
模型的表现很大程度上取决于输入图像的信息质量,而不仅仅是像素数量。具体来说:
高分辨率的“大图片”
如果图片虽然尺寸大,但不清晰(例如模糊、有噪点或者对焦不准),那么其中的细节信息可能会受到干扰,导致模型难以准确捕捉到有用的特征。
清晰的“小图片”
清晰的图片虽然尺寸较小、像素较少,但信息更集中、细节更明确,这样模型更容易提取到准确、可靠的特征。
总的来说,模型通常更倾向于从图像质量较高的输入中学习到更有用的信息。换句话说,即使大图片具有更多像素,如果图像质量较差,所提供的信息可能并不比一张清晰的小图片更有价值。理想状态下,模型最好能获得既清晰又高分辨率的图像,这样可以充分利用细节信息,同时保证图像的清晰度和质量。
所以在两者中,清晰的“小图片”通常会比不清晰的“大图片”带来更好的学习效果。