This module is a custom implementation of the Large Margin
Nearest Neighbor classification scheme of Weinberger, Saul, et al. (2009).
It contains an implementation of the k-nearest neighbor and LMNN classifier
as well as (most importantly) gradient calculation schemes on the LMNN
cost function given a sequential data set and a user-choice of alignment
algorithm. This enables users to learn parameters of the alignment
distance in question using a gradient descent on the LMNN cost function.
More information on this approach can be found in the Masters Thesis
"Adaptive Affine Sequence Alignment Using Algebraic Dynamic Programming"