I got frustrated by a paper yesterday which contained function definitions, summations-of-summations, products of sequences, convolutions, set theory, switching back-and-forth between unary-functions/vectors and binary-functions/matrices, converting back-and-forth between {0, 1}, {-1, 1} and {true, false}, weighting elements of a set by 0/1 instead of taking a sub-set, linear programming, etc.
What was their result? To speed up pair-wise comparisons of structured data, only do N% of the comparisons and it will only take N% of the time. To decide which comparisons to discard, see what works well on a small sample of inputs.
[1]: Wiki with code, exercises and explanation
[2]: Video lecture one with a recap on back-propagation
[3]: Video lecture two on Sparse Auto Encoders
[4]: Handouts
[1]: http://ufldl.stanford.edu/wiki/index.php/UFLDL_Tutorial
[2]: http://www.stanford.edu/class/cs294a/video1.html
http://deeplearning.net/tutorial/
And this book (work in progress):