从线性到非线性
当直线不再够用
如果你刚用线性回归拟合过真实数据,大概率遇到过这种情况:损失值降到某个位置就卡住,残差图画出明显的弧线。这通常意味着模型表达力到顶了。现实数据几乎总是非线性的,线性回归只能画直线。
我们需要一种能自动学习非线性映射的函数形式。工程中我们追求的是能用有限数据训练出来、泛化能力强的复杂函数,而非任意复杂的函数。这就引出三个实际问题:网络要多宽多深才够?怎么高效算梯度?表达力太强时怎么防过拟合?
本文围绕这三个问题展开,跳过数学证明,只讲什么时候用什么、为什么这样用。
万能近似定理的工程用法
万能近似定理说单隐藏层网络足够宽就能逼近任意连续函数。但“足够宽”在工程里是个黑箱,定理只管存在性,不管你能不能训出来。
实践中我们靠经验法则起步。输入维度为d时,隐藏层神经元通常要d到d平方量级才能捕捉特征交互,但超过阈值后加宽收益急剧下降,反而容易过拟合。
现代架构普遍偏好深而窄。深层通过组合低层特征构建抽象,用更少参数达到同等表达力。这也是ResNet和Transformer都走向纵深的原因。
可训练性才是真正的瓶颈。我原以为只要网络够宽就能拟合一切,后来才发现深度才是关键。理论上千神经元单层能拟合的数据,实际可能因梯度消失或优化地形崎岖而失败。此时加深度、加残差连接或换激活函数,往往比单纯加宽有效得多。