In supervised training, we often try to find out a set of weights and biases for a pattern recognition neural network in order to classify all patterns in a training data set. However, it would be difficult if the neural network was not big enough for learning a large training data set. In this paper, we propose a training method and a design of pattern recognition neural network that is not big but still able to classify all the training patterns exactly. The neural network is designed with a reject output to separate the training data set into some parts for classifying more easily. The training method helps the neural network to find out not only one but many sets of weights and biases for classifying all the training patterns, controlling the recognizing rejection and reducing the error rate. On the other hand, with this design we can reduce the size of the neural network implemented on a FPGA chip in order to make fast smart sensors for the robots.