asteroid-team / asteroid

The PyTorch-based audio source separation toolkit for researchers
https://asteroid-team.github.io/
MIT License
2.21k stars 419 forks source link

SinkPIT #640

Closed xixihahaggg closed 1 year ago

xixihahaggg commented 1 year ago

Hi all,

I'm here for asking does anyone has experiment experience using SinkPIT? It was expected to have better performance than PIT but what I observed from my experiment is the contrary.

I really appreciate any insight of this.

Best

mpariente commented 1 year ago

Thanks for the question.

I think @tachi-hi can answer your questions, as he integrated SinkPIT loss in Asteroid.

tachi-hi commented 1 year ago

Since it is not clear enough what specific problems you are encountering, I can only answer in general terms, but basically SinkPIT is only an approximation of PIT, so if the exact PIT can be easily evaluated, then the exact PIT will probably give better results.

The following are situations in which SinkPIT are expected to be effective.

I hope this will be helpful.

xixihahaggg commented 1 year ago

*

Thank you for your answer! I think right now it's more clear to me. I still have a quick question regarding the first situation: do you mean if the optimal permutation is hard to learn, SinkPIT uses a weighted sum of all permutations could relieve this problem?

tachi-hi commented 1 year ago

Although we cannot say for sure on this point since I do not have so many experimental results, I would like to make a few comments.

In the original PIT, each element of the $N \times N$ permutation matrix was allowed to have only binary values (0 or 1), and the problem was to find the best one among the vertices of a polytope (called Birkhoff polytope) in $N\times N$-dim space. SinkPIT, on the other hand, allows the entire interior of the polytope (the entire set of doubly stochastic matrices) to be the solution space. In other words, SinkPIT is a convex relaxation problem of the original PIT. (Generally speaking, by and large, convex optimization problems are often easier to solve than non-convex problems, and from this perspective, SinkPIT is expected to behave well. However, this will of course depend on other conditions of the problem, and it may not be generalizable.)

If there are multiple candidate permutations, SinkPIT is likely to return an intermediate "soft permutation" (doubly stochastic matrix) as the solution, rather than settling on one of the "hard permutations". This seems to be similar to the behavior of probability weighting methods such as ProbPIT. (In my small experiments, ProbPIT often performs a little better than SinkPIT and PIT. However, the rigorous evaluation of ProbPIT is basically not scalable to the number of sources, so it may be a problem when dealing with problems with a large number of sources.)

xixihahaggg commented 1 year ago

Although we cannot say for sure on this point since I do not have so many experimental results, I would like to make a few comments.

In the original PIT, each element of the N×N permutation matrix was allowed to have only binary values (0 or 1), and the problem was to find the best one among the vertices of a polytope (called Birkhoff polytope) in N×N-dim space. SinkPIT, on the other hand, allows the entire interior of the polytope (the entire set of doubly stochastic matrices) to be the solution space. In other words, SinkPIT is a convex relaxation problem of the original PIT. (Generally speaking, by and large, convex optimization problems are often easier to solve than non-convex problems, and from this perspective, SinkPIT is expected to behave well. However, this will of course depend on other conditions of the problem, and it may not be generalizable.)

If there are multiple candidate permutations, SinkPIT is likely to return an intermediate "soft permutation" (doubly stochastic matrix) as the solution, rather than settling on one of the "hard permutations". This seems to be similar to the behavior of probability weighting methods such as ProbPIT. (In my small experiments, ProbPIT often performs a little better than SinkPIT and PIT. However, the rigorous evaluation of ProbPIT is basically not scalable to the number of sources, so it may be a problem when dealing with problems with a large number of sources.)

Thank you for this answer. This sounds reasonable, I'd like to perform some ablation experiments on this.

Again, thank you for your help.