This is a project submitted as a requirement for this course. The course was administered in Spring 2020 in Tel-Aviv University - School of Mathematical Sciences, and taught by Dr. Nir Sharon. This project is a reconstruction of experiments of [1] for an algorithm for the Multi-Reference Factor Analysis problem.
The code can be fetched from this repo. The Jupyter Notebook version does the same work, and can be deployed to Google Colab. While the the notebook version can be used immediately, this code has some prerequisites. Any questions about this project may be sent by mail to 'eladeatah' at mail.tau.ac.il (replace 'at' by @).
This code was developed for Windows10 OS and tested using the following Python 3.7 dependencies. These dependencies are listed in requirements.txt. All these packages can be installed using the 'pip' package manager (when the command window is in the main directory where requirements.txt is located):
pip install -r requirements.txt
All the packages, except for Sacred, are available as well using 'conda' package manager. It is highly-recommended that the CVXPY library is installed using the 'conda' package manager, and not 'pip'.
The Unit-Test files are:
- test_diagonal_extraction_and_construction.py - Tests for components of the first stage of the algorithm: diagonals estimation and estimator construction.
- test_phase_retrieval_actions.py - Tests for components of the second stage of the algorithm: coefficients matrix construction and Fourier basis transition.
- test_tri_spectrum_estimation.py - Tests for the tri-spectrum's estimation methods.
- test_optimization_step.py - Tests for the objective function for both the real case and the complex case.
Running any of these tests can be performed by:
<python_path> -m unittest <test_file_path>
Credits for the original algorithms, paper and results of [1] belong to its respectful authors: Prof. Yoel Shkolnisky and Boris Landa.
This project is licensed under the MIT License - see the LICENSE file for details
[1] B. Landa, Y. Shkolnisky. Multi-reference factor analysis: low-rank covariance estimation under unknown translations (arXiv: 2019, expected 2020-2021).