在本文中,我们使用深度神经网络 (DNN) 解决几何中的一个基本问题:曲线长度的计算。
我们从监督学习方法的示例中学习了几何属性。 由于最简单的几何对象是曲线,因此我们重点学习平面曲线的长度。 为此,重建了基本长度公理并建立了ArcLengthNet。论文点击这里。
推荐:用 NSDT设计器 快速搭建可编程3D场景。
曲线长度的计算是许多现代和经典问题中最重要的组成部分之一。 例如,手写签名涉及沿曲线的长度的计算(Ooi 等人)。 当一个人处理现实生活中长度计算的挑战时,他面临着多种约束,例如加性噪声、离散化误差和部分信息。
在当前的工作中,我们解决了几何领域的一个基本问题,旨在使用 DNN 重建基本属性。 最简单的几何对象是曲线,评估曲线的简单度量是长度。 经典文献中有许多用于计算长度和其他几何性质的近似形式表达式(Kimmel,2003)。 然而,由于我们知道 DNN 的强大功能,因此我们非常有动力通过设计 DNN 来重建曲线的长度(弧长)属性。 为简单起见,我们关注二维欧几里得域。
1、一点几何知识
在我们深入研究机器学习公式之前,让我们简要回顾一下长度属性。 二维曲线 C 的欧几里得长度的一般方程由下式给出
长度的公理是可加性、不变性、单调性和非负性。 相对于串联的长度加法,相对于旋转和平移不变,它是单调的,并且根据定义,任何曲线的长度都是非负的。
为了找到连续曲线的长度,应该将其离散化。 离散化过程存在误差。 例如,让我们看一下蓝色曲线。 对该曲线进行粗略离散可以得到橙色离散曲线。 显然,将曲线分成许多无穷小的线可以最小化离散化误差。
在离散化误差中,我们可以发现加性噪声、部分信息以及由于长度方程中涉及的非线性和导数而出现的许多其他误差。
那么,我们如何将其制定为一项学习任务呢?
2、学习方法
我们通过监督学习方法解决了这个问题,该方法具有满足长度公理的独特损失函数。 训练后的模型称为 ArcLengthNet。 它使用 2D 向量作为输入,表示平面欧氏采样曲线,并输出它们各自的长度。 我们创建了一个包含 20,000 个采样的数据集,以完全支持 DNN 训练。 如此大量的示例旨在涵盖曲线变换并满足不同的模式。 我们数据中的一般曲线由下式给出
其中 R 是旋转矩阵,T 是平移向量,a 是幅度,phi 是相位。
我们设计了独特的损失函数:
其中 s1、s2 和 s3 是保持等式 L(s1) = L(s2) + L(s3) 的输入曲线,O 是 DNN 输出,k 是示例索引,lambda 是正则化参数,ij 是各种 DNN 权重。 通过模型传递示例来调整权重:
我们设计了一个简化的基于CNN的架构。 它包括一个卷积层和两个仅具有一个激活函数的全连接层。 每条曲线由 N = 200 个点表示。 该表示被插入到一个大小为 3 的小内核的卷积层中。它被处理成一个全连接层,通过修正线性单元 (ReLU) 激活函数仅输出 10 个权重到另一个全连接层,最后输出长度。
DNN 是通过使用反向传播方法小批量传递许多示例来进行训练的。 训练过程分批进行,每批 200 个样本,共 100 个 epoch。 我们使用的优化器是具有动量和权重衰减的随机梯度下降(SGD)。
该模型在 100 个 epoch 后就得到了良好的训练。 定义了一个保留集来测试架构在未见过的数据上的性能。 该集合包含 5,000 个尚未在训练集或测试集中使用的示例。 ArcLengthNet 获得的最小 MSE 为 0.17。 在此保留集上测试了 ArcLengthNet 的单调属性,其中在真实长度和 ArcLengthNet 之间建立了线性关系:
3、结束语
本文提出了一种基于学习的重建曲线长度的方法。 深度神经网络重建基本公理的能力得到了证明。 结果可以进一步用于改进手写签名并重建一些更多的微分几何性质和定理。
原文链接:基于CNN的曲线长度预测 — BimAnt