The adaptive learning system 400 may also use one or more functions to find an optimal solution (e.g., a solution with the highest probability or weighting). The optimal solution represents the situation where no solution has a cost less than the cost of the optimal solution. In an example, the cost function includes a mean-squared error function that minimizes the average squared error between an output ?(x) and a target value y over the example pairs (x, y). In some embodiments, a backpropagation algorithm that uses gradient descent to minimize the cost function may be used to train the adaptive learning system 400. Using a backpropagation algorithm, the output values are compared with a correct answer to compute the value of some predefined error-function. By various techniques, the error is then fed back through the network. Using this information, the algorithm may adjust the weights of each connection in order to reduce the value of the error function by some small amount. In some embodiments, the adaptive learning system 400 may be an autoencoder adaptive learning system, in which both inputs and outputs are provided to the adaptive learning system during training and the autoencoder learns to reconstruct its inputs.