作者:手机用户2502905627_315 | 来源:互联网 | 2022-12-14 20:58
我有一个方形矩阵D
(目前表示为一个形状为numpy的阵列(572,572)),似乎对应于沿大致圆柱形物体表面的点之间的成对距离.即,该值D[i,j]
对应于沿该空心圆柱体表面的任何路径的最小长度.如何构建这些572个点的三维(或n维)嵌入欧几里德空间,以保留那些测地距离?
目前的尝试
局部线性嵌入和isomap等算法能够采用成对测地距离的矩阵并输出嵌入,以便成对的欧氏距离与原始测地线相同.虽然这通常不是同一个任务,但是在输出碰巧接近某个维度的超立方体的情况下,实际发生了所需的变换(考虑瑞士卷),因为嵌入本身就是一个流形,因此欧几里德距离对应于测地线距离.
对于像气缸这样稍微复杂的物体,情况并非如此.通过将测地距离视为欧几里德,期望圆柱上的对映点被映射到彼此远离期望的位置,并且相应的全局优化问题将经常导致分支结构,其中分支的末端对应于最远的对映点,放大气缸随机采样中的小扰动.通常,这些算法的天真应用似乎并不能解决手头的问题.
另一种有点富有成效(虽然昂贵)的方法是一种粗暴的蒙特卡罗技术.我从具有不同参数的管状物体中生成随机样本,直到我找到一组参数生成与我的类似的测地距离矩阵,直到排列(通过求解将该距离矩阵转换为采矿和测试的线性系统处理效率不是太低)查看结果是否接近排列矩阵).然后通过找到与上述近置换矩阵最接近的置换矩阵来执行从我的572点到保持成对距离的对象的近似最佳映射.
这会产生合理的结果,但它预先假定数据的形状并且非常昂贵.我已经执行了一些更明显的优化,比如使用小的随机样本而不是整个数据集,并使用基于梯度的技术进行参数估计,但更通用的技术会很好.
注意事项
这个问题当然没有一个独特的解决方案.即使假设可以通过有限均匀采样在3空间中明确地识别流形,也只是压缩圆柱体产生具有相同测地线和不同欧氏距离的形状(因此不同的嵌入).这不会比LLE和Isomap产生不同的解决方案更让我困扰,我会对任何合理的答案都很好.
关于从有限样本中唯一地识别流形,为了论证,我可以很好地使用来自包中dist_matrix_
的拟合Isomap
类的属性scikit-learn
而没有任何特殊参数来找到测地线.这是一个不必要的MDS
步骤,但它并不是非常昂贵,而且开箱即用.然后我们想要一个嵌入,它最小化原始测地距离矩阵和dist_matrix_
属性之间的frobenius距离.