1. A method for branch prediction in a processing system comprising a primary branch predictor and an auxiliary perceptron branch predictor, the method comprising: searching the primary branch predictor and the auxiliary perceptron branch predictor to make a branch prediction, wherein the auxiliary perceptron branch predictor is an artificial neural network that predicts branch direction by learning correlations between values in a history vector and branch outcomes; computing a plurality of modified weights based on a plurality of perceptron weights and the values in the history vector, wherein the history vector tracks a sequence of branch direction predictions; summing the modified weights to produce a perceptron magnitude; comparing the perceptron magnitude of a perceptron branch predictor from the auxiliary perceptron branch predictor to a magnitude usage limit, wherein the magnitude usage limit is dynamically adjusted during a learning limit process that learns at what value the auxiliary perceptron branch predictor is more often correct and the primary branch predictor is more often incorrect; selecting an auxiliary predictor result from the auxiliary perceptron branch predictor as the branch prediction based on the perceptron magnitude exceeding the magnitude usage limit; and selecting a primary predictor result from the primary branch predictor as the branch prediction based on the perceptron magnitude not exceeding the magnitude usage limit.