Convex hull in higher dimensions, finding the vertices of a polytope

后端 未结 1 760
独厮守ぢ
独厮守ぢ 2021-02-09 03:14

Suppose I have a point cloud given in 6-dimensional space, which I can make as dense as needed. These points turn out to lie on the surface of a lower-dimensional polytope (i.e.

相关标签:
1条回答
  • 2021-02-09 03:21

    In this answer, I will assume you have already used PCA to near-losslessly compress the data to 4-dimensional data, where the reduced data lies in a 4-dimensional polytope with conceptually few faces. I will describe an approach to solve for the faces of this polytope, which will in turn give you the vertices.

    Let xi in R4, i = 1, ..., m, be the PCA-reduced data points.

    Let F = (a, b) be a face, where a is in R4 with a • a = 1 and b is in R.

    We define the face loss function L as follows, where λ+, λ- > 0 are parameters you choose. λ+ should be a very small positive number. λ- should be a very large positive number.

    L(F) = sumi+ • max(0, a • xi + b) - λ- • min(0, a • xi + b))

    We want to find minimal faces F with respect to the loss function L. The small set of all minimal faces will describe your polytope. You can solve for minimal faces by randomly initializing F and then performing gradient descent using the partial derivatives ∂L / ∂aj, j = 1, 2, 3, 4, and ∂L / ∂b. At each step of gradient descent, constrain a • a to be 1 by normalizing.

    ∂L / ∂aj = sumi+ • xj • [a • xi + b > 0] - λ- • xj • [a • xi + b < 0]) for j = 1, 2, 3, 4

    ∂L / ∂b = sumi+ • [a • xi + b > 0] - λ- • [a • xi + b < 0])

    Note Iverson brackets: [P] = 1 if P is true and [P] = 0 if P is false.

    0 讨论(0)
提交回复
热议问题