We introduce a learning algorithm for the weights in a very common class of discrimination functions usually called weighted average". Di erent submodules are produced by some feature extraction and are weighted according to their signi cance for the actual discrimination task. The learning algorithm can reduce the number of free variables by simple but e ective a priori criteria about signi cant features. We apply our algorithm to three di erent tasks all concerned with face recognition: a 40 dimensional and an 1800 dimensional problem in face discrimination, and a 42 dimensional problem in pose estimation. For the rst and second task, the same weights are applied to the discrimination of all classes; for the third problem, a metric for every class is learned. For all tasks signi cant improvements could be achieved. In the third task the performancewas increased from 80 to 90. The idea of our algorithm is so general that it can be applied to improve a large number of existing ...