我有一个方阵D
(目前表示为一个形状为numpy的阵列(572,572)),似乎对应于沿大致圆柱形物体表面的点之间的成对距离。即,值D[i,j]
对应于沿空心圆柱表面的任何路径的最小长度。如何构建这些572个点到欧几里德空间的三维(或n维)嵌入,以保留那些测地距离?
locally linear embedding和isomap等算法能够采用成对测地距离矩阵并输出嵌入,以便成对的欧几里德距离与原始测地线相同。虽然这通常不是同一个任务,但是在输出恰好接近某个维度的超立方体的情况下,实际发生了所需的转换(考虑swiss roll),因为嵌入本身就是一个流形,所以欧几里德距离对应于测地距离。
对于像气缸这样稍微复杂的物体,情况并非如此。通过将测地距离视为欧几里德,期望圆柱上的对映点被映射到彼此远离期望的位置,并且相应的全局优化问题将经常导致分支结构,其中分支的末端对应于最远的对映点,放大气缸随机采样中的小扰动。一般来说,这些算法的天真应用似乎并不能解决手头的问题。
另一种有成效(虽然昂贵)的方法是一种粗暴的 monte carlo 技术。我从具有不同参数的管状物体中生成随机样本,直到我找到一组参数生成与我的类似的测地距离矩阵,直到排列(通过求解将该距离矩阵转换为采矿和测试的线性系统处理效率不是太低)查看结果是否接近排列矩阵)。然后通过找到与上述近置换矩阵最接近的置换矩阵,从我的572点到保留成对距离的对象的近似最优映射。
这会产生合理的结果,但它预先假定数据的形状并且非常昂贵。我已经执行了一些更明显的优化,比如使用小型随机样本而不是整个数据集,并使用基于梯度的技术进行参数估计,但更通用的技术会很好。
这个问题当然没有一个独特的解决方案。即使假设可以通过有限均匀采样在3空间中明确地识别流形,也只是压缩圆柱体产生具有相同测地线和不同欧氏距离的形状(因此不同的嵌入)。这并没有比LLE和Isomap产生不同解决方案更让我感到烦恼,我会对任何合理的答案都很好。
关于从有限样本中唯一识别流形的问题,为了论证,我可以使用来自dist_matrix_
包中的拟合Isomap
类的scikit-learn
属性。找到测地线的任何特殊参数。这会执行不必要的MDS
步骤,但它并不是非常昂贵,而且开箱即用。然后我们想要一个嵌入,它可以最小化原始测地距离矩阵和dist_matrix_
属性之间的frobenius距离。
答案 0 :(得分:1)
虽然我最初排除了局部线性嵌入和其他类似技术,但这似乎已经匆忙。由于流形实际上是局部线性的,因此充分良好采样,足够好的流形具有小球形距离与它们的<强>相应的欧氏距离大致相同的特性。 / p>
考虑到这一点,任何将最近的测地邻居视为最近的欧几里德邻居并通过测地距离近似欧氏距离的重建将近似保留全球测地距离,直至累积的误差项。这意味着所有仅使用局部距离的标准算法都能够提供近似正确的嵌入。这些包括但不限于
一些经典的嵌入算法在这个应用程序中无法正常工作,因为它们试图保留所有距离,而大的测地线可能是欧几里德距离的不良表示。例如,多维缩放是不合适的,无需修改。
注意 LLE似乎在我的初步分析中得出的结果不佳的原因是我的一个假设被违反了 - 多样性被充分抽样。我将它应用于具有已知所需行为的简单形状,但我错误地使用了太少的点来确保我的分析中的快速反馈循环。更好采样的流形行为与它们应该完全一样。
答案 1 :(得分:0)
本博士学位论文第四章
“关于从固定视点在图像序列中进行运动参数化”, 曼弗雷德·乔治,华盛顿大学,2010年
可用:https://openscholarship.wustl.edu/cgi/viewcontent.cgi?article=1127&context=etd
使用一些算法来讨论其中的一些问题,这些算法取决于例如歧管是否真的是圆柱体(或圆锥体或其他东西)以及圆柱体的相对宽度和长度。
根据您的最终目标,像t-SNE这样的替代产品可能更合适;它们完全放弃了全局测地距离约束,因此可以像圆柱体这样的形状更加灵活,在圆柱体中无法嵌入欧氏空间并保留测地线。