1. A method for recognizing and tracking human motion comprising steps of: receiving, by an input device, a plurality of learned motion segments representing different learned motions within a motion class, wherein each learned motion segment comprises a plurality of state vectors and each state vector comprises a time stamp, and wherein one of the learned motion segments comprises temporally contiguous state vectors clustered together in a low-dimensional space based on the time stamps; receiving, by the input device, a representation of human motion having at least one motion from the motion class, the at least one motion comprising a sequence of pose states represented in a high dimensional space; processing the received representation according to computer-executable instructions stored in a memory that cause a processor to execute steps of: projecting the sequences of pose states from the high dimensional space to the low dimensional space according to a discriminative model that when applied to the sequence of pose states increases the inter-class separability between pose states of different motion classes and decreases the intra-class separability between pose states of a same motion-class; determining an integer P nearest neighbors of a first projected pose state in the low dimensional space, the P nearest neighbors from P different learned motion segments; determining P pose predictions for the P different learned motion segments; and determining the pose prediction that best matches a current frame of the representation of human motion; and storing the determined pose prediction to a memory.