Sparse filtering is a recently-developed unsupervised feature distribution lerning algorithm with interesting properties. Basic implementations are available in Matlab, and python relying on the numpy library. In this post we explain and analyze a re-implementation of the python code in order to work within the tensorflow framework.
Running SF with the tensorflow backend allows for greater flexibility and customizability in exchange for computational cost. While the original SF relies on an efficient quasi-Newton optimization algorithm that requires explicit knowledge of the derivative, the new version exploits the feature of automatic differentiation of the tensorflow framework for optimization opening the way for the quick development of novel feature distribution learning algorithms.