Applying the perceptron to data that is not linearly separable