My solution to UFLDL (http://ufldl.stanford.edu/wiki/index.php/UFLDL_Tutorial)