According to an embodiment, an arithmetic operation apparatus for a neural network includes an input layer calculator, a correction unit calculator, a hidden layer calculator, and an output layer calculator. The input layer calculator is configured to convert an input pattern into features as outputs of an input layer. The correction unit calculator is configured to perform calculation on N unit groups corresponding respectively to N classes of the input pattern and including correction units that each multiply a value based on inputs by a weight determined for the corresponding class. The hidden layer calculator is configured to perform calculation in a hidden layer based on the outputs of the input layer, another hidden layer, or the correction unit calculator. The output layer calculator is configured to perform calculation in an output layer based on the calculation for the hidden layer or the outputs of the correction unit calculator.
Please help me write a proper abstract based on the patent claims. CLAIM: 1. An arithmetic operation apparatus that performs arithmetic operation on a neural network including at least an input layer, a hidden layer, and an output layer, the apparatus comprising: a receiver configured to receive an input pattern; an input layer calculator configured to convert the input pattern into features and output the features as outputs of the input layer; a correction unit calculator configured to perform calculation on N unit groups corresponding respectively to N classes of the input pattern and including correction units, each of the correction units receiving a part or all of the outputs of the input layer or the hidden layer, multiplying a value based on inputs by a weight determined for the corresponding class, and outputting the resulting product, N being an integer equal to or larger than one; a hidden layer calculator configured to receive the outputs of the input layer, another hidden layer, or the correction unit calculator, and output results of calculation performed in the hidden layer; and an output layer calculator configured to receive the calculation results in the hidden layer or the outputs of the correction unit calculator, and output a result of calculation performed in the output layer. 2. The apparatus according to claim 1, further comprising an updater configured to update the weights for the respective classes by learning based on the output of the output layer and a label corresponding to the input pattern. 3. The apparatus according to claim 1, further comprising an integrator configured to integrate the correction unit into one or more units in the hidden layer or the output layer, the hidden layer receiving the outputs of the correction unit calculator. 4. The apparatus according to claim 1, wherein the correction unit multiplies a value by the weight, the value being obtained by performing linear transformation on a part or all of the outputs of the input layer or the outputs of the hidden layer, and outputs the resulting product. 5. The apparatus according to claim 1, wherein the input pattern is a voice. 6. The apparatus according to claim 5, wherein the class of the voice is a speaker class. 7. The apparatus according to claim 5, wherein the class of the voice is an environment class. 8. An arithmetic operation method for performing arithmetic operation on a neural network including at least an input layer, a hidden layer, and an output layer, the method comprising: receiving an input pattern; converting the input pattern into features; outputting the features as outputs of the input layer; performing calculation on N unit groups corresponding respectively to N classes of the input pattern and including correction units, each of the correction units receiving a part or all of the outputs of the input layer or the hidden layer, multiplying a value based on inputs by a weight determined for the corresponding class, and outputting the resulting product, N being an integer equal to or larger than one; receiving the outputs of the input layer, another hidden layer, or the resulting product at the performing of calculation; outputting results of calculation performed in the hidden layer; receiving the calculation results in the hidden layer or the resulting product at the performing of calculation; and outputting a result of calculation performed in the output layer. 9. A computer program product comprising a computer-readable medium containing a program executed by a computer that performs arithmetic operation on a neural network including at least an input layer, a hidden layer, and an output layer, the program causing the computer to execute: receiving an input pattern; converting the input pattern into features; outputting the features as outputs of the input layer; performing calculation on N unit groups corresponding respectively to N classes of the input pattern and including correction units, each of the correction units receiving a part or all of the outputs of the input layer or the hidden layer, multiplying a value based on inputs by a weight determined for the corresponding class, and outputting the resulting product, N being an integer equal to or larger than one; receiving the outputs of the input layer, another hidden layer, or the resulting product at the performing of calculation; outputting results of calculation performed in the hidden layer; receiving the calculation results in the hidden layer or the resulting product at the performing of calculation; and outputting a result of calculation performed in the output layer.