1. A computer implemented method for face or speech recognition comprising: receiving an image or a voice data set including original face or speech feature samples with corresponding class labels of different categories of a face or a speech; splitting the image or voice data set into an image or voice direction optimization set and an image or voice training set; using the image or voice direction optimization set to calculate an optimum transformation vector that maximizes inter-class separability and minimizes intra-class variance of the original face or speech feature samples with respect to corresponding class labels; using the optimum transformation vector to transform the original face or speech feature samples of the image or voice data set to new face or speech feature samples with enhanced discriminative characteristics by increasing a relative variance of the image or voice data along a direction of the direction optimization set; training a classifier using the new face or speech feature samples; extracting face or speech features from the trained classifier to recognize the face or the speech, wherein the method is performed by one or more processors, and wherein the optimum transformation vector maximizes inter-class separability and minimizes intra-class variance of the feature samples with respect to corresponding class labels, and wherein the optimum transformation vector is calculated by: learning a class discriminative projection vector using a Fisher Linear Discriminant Analysis (FLDA) criterion; projecting the original face or speech feature samples such that the feature directions along the projection vector are maximized while other directions are minimized while maintain the dimensionality to obtain new discriminative features; and learning a Support Vector Machine (SVM) based classifier on said new discriminative features.