
==============================================================================================
				AOL Toolbox
==============================================================================================



This is a collection of Matlab m-files implementing the FAOL, SAOL, IAOL and SVAOL algorithms 
for analysis operator learning using a hard thresholding based approach. 
Details can be found in the preprint:

'Online and Stable Learning of Analysis Operators' M. Sandbichler, K. Schnass 
https://arxiv.org/pdf/1704.00227.pdf


In particular it can be used to reproduce the figures/experiments in the paper.


We are happy about any feedback!  


Michael & Karin

(michael.sandbichler@hotmail.com, karin.schnass@uibk.ac.at)

============================================================================================
============================================================================================


What's in it:


1. CG.m			 - A file implementing the conjugate gradients 
				algorithm to solve a system of linear equations.
2. FAOL.m		 - the forward analysis operator learning algorithm (FAOL). 
				Details are given inside. Dependency: replaceDuplicates.m
3. IAOL.m		 - the implicit analysis operator learning algorithm (IAOL). 
				Details are given inside. Dependency: replaceDuplicates.m
4. MakeCosparseSignals.m - takes a prescribed target operator and cosparsity level 
				and generates cosparse signals. Details are given inside.
5. orderRows.m		 - takes two matrices and orders the rows according to their overlap 
				(used for plotting). Dependency: swapRows.m
6. pic2patches.m	 - takes an image and generates all possible 8x8 patches. 
				Details are given inside.
7. replaceDuplicates.m   - replaces rows with large overlap of a given matrix as described 
				in the paper. Details are given inside.
8. SAOL.m		 - the sequential analysis operator learning algorithm (SAOL), 
				which implements the FAOL algorithm in an online fashion. 
				Details are given inside. Dependency: replaceDuplicates.m
9. showAnOp.m		 - used for plotting an analysis operator learned for 
				patches of a 2d image. Details are given inside.
10. SSVIICG.m		 - implements the smallest singular value inverse iteration using 
				a CG method for matrix inversion. Details are given inside. 
				Dependency: CG.m
11. SVAOL.m 		 - the singular value analysis operator learning algorithm (SVAOL). 
				Details are given inside. 
				Dependencies: SSVIICG.m, CG.m, replaceDuplicates.m
12. swapRows.m		 - swaps two rows of a matrix.
13. targetFixedData.m    - computes the target function as described in the paper for a given 
				batch of data, analysis operator and cosparsity level.
14. TESTreal.m 		 - testfile for real data (from the images/ folder included). 
				Dependencies: all other files
15. TESTsynthetic.m 	 - testfile for synthetic data. Dependencies: all other files.

=============================================================================================

