This repository presents an implementation of the APIS algorithm. The accompanying paper can be accessed at [https://doi.org/10.1007/s10994-021-06045-z]
The python packages required to run the code are listed in requirement.txt, with the respective version number at the time of publishing the code. You may use the following command to install the libraries with the given versions if you are a pip user.
pip3 install -r requirements.txt
To install the latest version, please drop the version numbers from the requirements.txt file.
Most experiments are performed on synthetic data, which are generated on the fly. For image experiments, we have used the standard Set12 dataset with images scaled to 512 * 512. It is available in the img/input/Set12 folder.
The application of APIS is demonstrated in three areas:
-
Robust non-parametric Kernel Regression: The ker_reg folder contains four jupyter notebook files applying APIS for functions shown in Fig. 3 of the paper.
-
Robust Linear Regression: The lin_reg folder contains two jupyter notebook files applying APIS for robust linear regression setting in Fig. 4.
-
Image Denoising: In the img folder, the Adversarial_Salt_Pepper_Corruption.ipynb file gives APIS for adversarial salt-pepper corruption as reported in Fig. 6 and Block_Corruption.ipynb gives APIS for block corruption as reported in Fig. 7. Additionally, the Generate_Corrupted_Image.ipynb file gives code for introducing these corruption.
Following are the time taken to run the respective notebooks on a 64-bit machine with Intel® CoreTM i7-6500U CPU @ 2.50 GHz, 4 cores, 16 GB RAM and Ubuntu 16.04 OS.
kerreg_sin_x.ipynb 12.51 sec
kerreg_x_sinx.ipynb 13.12 sec
kerreg_x.ipynb 11.78 sec
kerreg_poly_x.ipynb 11.75 sec
LinearReg_with_Gaussian_noise.ipynb 4.21 sec
LinearReg_without_Gaussian_noise.ipynb 4.10 sec
Adversarial_Salt_Pepper_Corruption.ipynb 1.90 sec (per image)
Block_Corruption.ipynb 83 sec (per image)
This repository is released under the MIT license. If you would like to submit a bugfix or an enhancement to APIS, please open an issue on this GitHub repository. We welcome other suggestions and comments too (please mail the corresponding author at purushot@cse.iitk.ac.in)
This repository is licensed under the MIT license - please see the LICENSE file for details.
Bhaskar Mukhoty, Subhajit Dutta, and Purushottam Kar. Robust Non-parametric Regression via Incoherent Subspace Projections. Machine Learning (2021) (available at https://doi.org/10.1007/s10994-021-06045-z)