loicland / cut-pursuit

C++ implementation for the cut pursuit algorithm, with Matlab interfaces
MIT License
77 stars 24 forks source link

Is it possible to provide a differentiable version of cut-pursuit? #24

Closed THHHomas closed 4 years ago

THHHomas commented 4 years ago

Is it possible to provide a differentiable version of cut-pursuit? such as the code written in pytorch with Variable. In this way, we can put the cut-pursuit in an end-to-end pipeline. Although there might be no weights need training in cut-pursuit, a differentiable version can pass the gradient to other parts.

loicland commented 4 years ago

Solving L0-Cut Pursuit cannot be backrpopagated through because it is non-differentiable (and even non-continuous). This is due to the two following reasons:

However, you can use a surrogate loss which allows to learn the input and edge parametersof L0-CP. See this paper: https://arxiv.org/abs/1905.04014 and its application to point cloud partition: https://arxiv.org/pdf/1904.02113

THHHomas commented 4 years ago

Thanks for your Detailed answer. Do you think K-means is a good substitute for L0-CP in point cloud segmentation? And What are the advantages of L0-CP for point cloud segmentation comparing with the traditional clustering methods?

loicland commented 4 years ago

K-means is not a spatial clustering algorithm natively, although it can be adapted (see SLIC3D, ref in the second paper I linked).

L0-CP has several advantages, depending on your application:

THHHomas commented 4 years ago

Thanks a lot.