-
Notifications
You must be signed in to change notification settings - Fork 7
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Direct Projection onto Unit Simplex #27
Comments
I have finished projection (both direct one and the L1-Normalization in Morup and Hansen) and PGDs for NumPy in wangzcl/archetypes@7b3d07d. I will explain my design a little bit later. |
The reason for doing so is, projection requires additional memories for all kinds of intermediate arrays. If memories allocated every time we do the projection, the performance would be intolerable. The current unit simplex projection algorithm may not be the fastest on, but it is easy to implement and vectorize. However, there is still some unavoidable memory allocation in |
The same memory allocation issue may also be in PGD processes. To improve the performance and reduce repetition in the code, I created an abstract base class |
The new projection and PGD has not finished yet. I haven't done any tests for the new utilities, but if you think this possible improvement works for you, I can go on finishing, testing and benchmarking all those. |
Implement a direct projection onto unit simplex insted of an alternating projection.
See https://math.stackexchange.com/questions/2005154/how-to-project-onto-the-unit-simplex-as-intersection-of-two-sets-optimizing-a-c
The text was updated successfully, but these errors were encountered: