Skip to content

Autograd compatible Givens Transforms which is especially useful for optimization on a Stiefel Manifold.

Notifications You must be signed in to change notification settings

marcpalaci689/Givens-Transform

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

4 Commits
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

This project was developped in order to use autograd compatible Givens Transforms. Unfortunately, Givens Transforms requires defining roation matrices (which involves array assignments) which is incompatible with Autograd. Hence this script was created to circumvent this issue so that we may transparently use the givens transform with Autograd. In order to use the script, we need the following packages installed:

  1. Python 3
  2. Autograd
  3. Numba (comes with Anaconda stack)

Givens Transforms is a neat way to transform an optimization problem constrained to a Stiefel manifold into an unconstrained optimization. Givens Transforms have recently been exploited for orthonormal inference (https://arxiv.org/pdf/1710.09443.pdf).

I have included a jupyter notebook tutorial going over 2 examples so as to see how to use the script. The notebook goes over the 2 test scripts pca_1D_test.py and pca_2D_test.py.

About

Autograd compatible Givens Transforms which is especially useful for optimization on a Stiefel Manifold.

Topics

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Languages