听到过拟合三个字,大部分机器学习研究者都会如临大敌。
毕竟没有人会希望自家模型崽崽,脱离了题集范围就不会考试了。
但现在,多伦多大学和麦吉尔大学的一项最新研究表明,过拟合也并非一无是处。
比如在重建3D物体外观上,过拟合神经网络就有奇效。
用过拟合神经网络重塑物体形状
有向距离场SDF(signed distance field)是计算机图形学中,常见的一种隐式曲面表示方法。
可以无损放大渲染字体:
还能实现极具真实感的的着色和光照效果:
不过,如果要用SDF来存储具有复杂细节的物体外观,则将面临无法进行扩展的问题。
此前已有研究证明,神经网络是3D物体SDF的有效近似。于是,多伦多大学和麦吉尔大学的研究人员们开了个脑洞:
能不能带有目的性地去过拟合一个单一3D物体表面的SDF表示?
换句话说,就是能否让过拟合神经网络,作为一种隐式形状表示,来高精度重建3D物体的外观?
这个可以有。
网络结构
研究人员们首先打造了一个N层前馈全连接网络,其隐藏层大小为H,隐藏层激活函数为ReLU,而输出层则由TanH激活。
需要注意的是,虽然增大网络深度和宽度会得到更好的结果,但也会使得内存占用和渲染时间倍增。
经过测试,研究人员发现当N为8,H为32时,网络能在重建精度、渲染速度和内存占用之间取得良好的平衡。
这一架构与前辈方法DeepSDF的默认架构相比,参数数量减少了99%,渲染第一帧的速度加快了93%,仅需要64kB内存,同时重建质量的损失仍在可接受范围之内。
网络的输入为给定对象的SDF点样本,输出则为网络预测的每个输入点的有向距离。
研究人员将这一网络结构命名为OVERFITSDF。
采样策略和损失函数
为了让过拟合神经网络能在相同的存储成本下,实现更高的精度。研究人员还精心设计了采样策略和损失函数。
在采样策略上,研究人员没有采用随机采样的方案,而是集中关注对边界转换更具「信息量」的点。
具体而言,就是根据点到输入形状表面的距离,来进行采样。
而在损失函数方面,研究人员采用简单的最小绝对偏差(L1)作为损失函数。他们发现,与平方误差(L2)相比,其表面重建效果会更好。
该方法根据重要性度量w(x),对损失函数进行缩放,这样重要性小的训练样本对损失的影响也就较小。
如此,就可以赋予指定区域(如更接近表面的样本点)更高的影响权重。也能够根据需求提高局部区域的重建精度。
有向距离
另外,研究人员采用广义缠绕数而非法线来标记距离方向,这样就能够处理带有自交点、开放边界、非流形的网格,在补习生网格真实拓扑结构的情况下,大大降低了模型的复杂性。
实验结果
那么,用OVERFITSDF替代真实的SDF,效果究竟如何呢?
实验证明,此前的SOTA方法DeepSDF的重建质量,会因为几何结构没有对齐到默认方向而受到明显影响。
但OVERFITSDF无论方向如何,都会收敛到相同的精度。
而在同样的内存预算下,无论是和原始三角形网格(下图左)相比,还是和统一有向距离网格(下图中)相比,该方法(下图右)都具有更强的表现力。
传送门
论文地址:
https://arxiv.org/abs/2009.09808
“