1. A method for training an apparatus to recognize a pattern, the method comprising the steps of: providing the apparatus with a host processor executing steps of a machine learning process; providing the apparatus with an accelerator including at least two processors; inputting training data into the host processor; reducing the precision of the training data with the host processor transferring the training data with reduced precision to the accelerator; determining coefficient changes in the machine learning process with the host processor using the training data with reduced precision; transferring indices pertaining to one or more training vectors to the accelerator determining kernel dot-products with the at least two processors of the accelerator using the training data with reduced precision; and transferring the dot-products back to the host processor.