帮助我更好理解神经网络的实验(系列第3篇)
实验背景
在上次发文后,我忍不住开始进行一些实验,试图观察是否能在训练的神经网络中诱发"过拟合"现象——让高度过参数化的神经网络单纯"记忆"训练点,从而导致泛化能力下降。
在前几次实验中的关键优势是,我知道生成训练数据的"真实分布"——输入图像。过拟合的网络会找到正确着色训练点的方法,但不会通过在白背景上绘制黑色圆环来实现(这样在训练数据上正确但无法泛化)。
实验设计
我设计了以下实验:使用参数数量远多于训练点的网络。由于我们从5000个训练点开始,我选择了30层、每层30个神经元的网络,总参数约27000个。如果冯·诺依曼说能用4个参数画大象,用5个参数让象鼻摆动,那他肯定能用27000个参数拟合5000个训练点?
实验结果
令人惊讶的是,完全没有过拟合的迹象: 网络明显学会了绘制圆形,而不是拟合单个点。这有些出乎意料,但这可能只是因为我们训练点在空间中相对"密集"的假象——5000个点占1024×1024空间的0.4%,这已经是相当大的比例。
接下来,我用逐渐减少的训练数据训练相同网络:2500点、1250点、625点和312点。用27000个参数训练312个数据点肯定会产生明显的过拟合迹象吧?
在2500个点时,虽然训练过程明显变慢,但基本概念学习得很好: 当降到625个点时,可以看到网络学习概念更加困难,但…它似乎仍然强烈倾向于创建类似圆环的几何形状,而不是过拟合单个点?
学习过程明显变慢——到6000个周期时网络还没能重现整个圆环——训练似乎也不够稳定,但网络看起来正朝着正确方向发展。如果再减半训练点会怎样?
发现与思考
这些实验引发了我几个问题:
-
网络似乎内置了形成连续区域——甚至是几何形状——的倾向,需要数据变得非常稀疏才会出现真正的过拟合。为什么会出现形状涌现还不清楚——网络本可以简单选择训练点所在的多面体及其邻近区域,然后用大参数的陡峭线性函数仅将单个点涂黑。但实际情况并非如此,存在某种导致形状涌现的机制或过程。
-
似乎存在一种权衡——数据越少,需要训练时间越长,可能长得多。但我不确定即使只有312个数据点,我们是否最终无法得到相对较好的近似。
下一步计划
作为下一步,我将用20000个周期重新运行这些实验,观察在稀疏训练数据上训练的网络是否能随着时间的推移赶上数据更多的网络。
发布时间:2025年4月10日星期四 上午12:36
作者:halvar.flake