I am pretty new to machine learning. I understand that there are many machine learning algorithms to solve different types of problems. But suppose you are given a program with an unknown algorithm, and you can feed the program with many datasets and obtain the outputs, as well as error rates and other diagnostics. Is it possible that we can develop an algorithm that can learn from these datasets and outputs to find out or mimic the underlying algorithm? I apologize if any terms are used in a wrong way.
Yes, but so far we managed to infer only basic algorithms. Example: Neural Turing machines:
Neural Turing machines, developed by Google DeepMind, couple LSTM networks to external memory resources, which they can interact with by attentional processes. The combined system is analogous to a Turing machine but is differentiable end-to-end, allowing it to be efficiently trained by gradient descent. Preliminary results demonstrate that neural Turing machines can infer simple algorithms such as copying, sorting, and associative recall from input and output examples.