An apparatus and a method are provided for learning a program with a large number of parameters. In one embodiment, a method not only distorts the input values, but also distorts some of the parameters in the program model. Such an approach not only forces the learned program to acquire parameter values to predict missing or desired data, but also to correct errors in the input data and the program parameters themselves, thereby rendering the learned program more resilient to overfitting and falling into local optima.
Please help me write a proper abstract based on the patent claims. CLAIM: 1. In a computational environment, a method for learning a program that is characterized by a number of parameters, the computing environment allowing the program to receive an input vector, an expected output vector and values of the parameters, the method comprising of: choosing an input vector or parameter distortion schedule that decreases over time an input distortion percentage or a parameter distortion percentage during the optimization; and in accord with the input vector or parameter distortion schedule, perform: blanking out or randomizing the input distortion percentage of values in the input vector; blanking out or randomizing the parameter distortion percentage of the values of the parameters of the program; and applying a learning technique to the program, using the expected output vector, the distorted input vector and distorted parameters. 2. The method of claim 1, wherein the input vector or parameter distortion schedule comprising decaying the input distortion percentage or the parameter distortion percentage over time using a factor given by (c1*c2)/(c1+c3*t), where c1, c2 and c3 are selected constants and t represents a number of optimization steps or groups of training data already explored. 3. The method of claim 1, wherein the expected output vector is generated by a training algorithm. 4. The method of claim 1 wherein, in which the blanking out or randomizing steps, the input values or parameter values are randomized based on one or more predetermined random distributions. 5. The method of claim 1, wherein the learning technique applied comprises the step of minimizing a loss function computed over a sample of the input. 6. The method of claim 4, wherein the step of minimizing the loss function is carried out using gradient descent, or second order minimization methods such as newton or quasi-newton methods over the loss function. 7. The method of claim 1 wherein the program uses a control flow determined by a structure or value of the input vector or the state values in the program. 8. The method of claim 7, wherein the program comprises linear transformations among values in the input vector, values of the parameters, and state values of the program. 9. The method of claim 7, wherein the program uses one or more nonlinear functions among values in the input vector, values of parameters, and state values of the program. 10. The method of claim 7, wherein the nonlinear functions include a sigmoid function and a rectified linear function. 11. The method of claim 1, wherein the computational environment includes a plurality of computational resources each assigned to process a fraction of the input set. 12. An apparatus for learning a program that is characterized by a number of parameters, the apparatus receiving an input vector, an expected output vector, and values of the parameters, the apparatus comprising: an input randomizing module; a parameter randomizing module; a parameter updater; and an expected output module, wherein the apparatus carries out a method comprising: choosing an input vector or parameter distortion schedule that decreases over time by an input distortion percentage or a parameter distortion percentage during the optimization; and in accord with the input vector or parameter distortion schedule, perform: blanking out or randomizing the input distortion percentage of values in the input vector; blanking out or randomizing the parameter distortion percentage of the values of the parameters of the program; and applying a learning technique to the program, using the expected output vector, the distorted input vector and distorted parameters. 13. The apparatus of claim 12, wherein the input vector or parameter distortion schedule comprising decay the input distortion percentage or the parameter distortion percentage over time using a factor given by (c1*c2)/(c1+c3*t), where c1, c2 and c3 are selected constants and t represents a number of optimization steps or groups of training data already explored. 14. The apparatus of claim 12, wherein the expected output vector is generated by a training algorithm. 15. The apparatus of claim 12 wherein, in the blanking out or randomizing steps, the input values or parameter values are randomized based on one or more predetermined random distributions. 16. The apparatus of claim 12, wherein the learning technique applied comprises the step of minimizing a loss function computed over a sample of the input. 17. The apparatus of claim 16, wherein the step of minimizing the loss function is carried out using gradient descent over the loss function. 18. The apparatus of claim 12 wherein the program uses a control flow determined by a structure or value of the input vector or the state values in the program. 19. The apparatus of claim 18, wherein the program comprises linear transformations among values in the input vector, values of the parameters, and state values of the program. 20. The apparatus of claim 18, wherein the program uses one or more nonlinear functions among values in the input vector, values of parameters, and state values of the program. 21. The apparatus of claim 18, wherein the nonlinear functions include a sigmoid function and a rectified linear function. 22. The apparatus of claim 12, wherein the computational environment includes a plurality of computational resources each assigned to process a fraction of the input set. 23. The apparatus of claim 22, wherein the computational resources comprise graphics processors.