The subpart of Artificial Intelligence that is attracting a lot the interest from the industrial world in recent years is the one dealing with neural networks. Thanks to new and efficient learning methods neural network found plenty of applications.
Perhaps, the basic “curve fitting” task that this class of models efficiently and accurately are able to produce with respect to other mathematical strategies surprised most of the AI community itself for the large quantity of applications that can be applied. Again the human creativity is marvelous! (As a side of this blog post I suggest a reading to “The Book of Why: The New Science of Cause and Effect” by Judea Pearl and Dana Mackenzie 🙂
But, we know very well that when something become large, very large, its complexity could increase as well. This is happening also for neural networks. Expanding the quantity of use cases and applications of this class of methods corresponded to more complex engineering tasks in designing them. Actually, it is greatly a sort of artisan practice for a data scientist that operates in this domain of methods to design from scratch a neural network model. If this job was done with networks in limited size of its topology this is relatively simple but when the problem to be solved needs a specific performance or the kind of training data changes or shifts during the time or s proof of concept stage only a small porting of data scientists have the skills and the experience needed to create a complex network from scratch.
So how to improve or help data scientists?
The idea to utilize AI to help build AI itself is a straightforward in this case. There is an increasing interest in the research community in defining methods that aim to help to generate models.
The field of automating machine learning (or AutoML or also from another angle Augmenting ML) is around for years there are open source efforts and tools (https://www.automl.org/ (http://www.ml4aad.org/automl/) as well as scientific and technical workshops (see https://sites.google.com/site/automl2018icml/ or https://sites.google.com/view/automl-workshop as well as research production (https://www.ml4aad.org/automl/literature-on-neural-architecture-search/) and scientific competitions (http://automl.chalearn.org/)
Now some solutions are starting to maturing also at industrial level and appearing at this context.
In the IBM house this is the case of IBM Neural Network synthesis engine (NeuNetS) that aims to synthesize new neural networks from scratch, using an iterative, two-stage process that is part of the new IBM AI Open Scale platform (https://www.ibm.com/blogs/watson/2018/10/ibm-ai-openscale-operate-and-automate-ai-with-trust/)
NeuNetS automatically configures itself to help to build and customize neural networks.
NeuNetS works in two phases. During a first phase the system helps to scaffold the network: define the number of lays, how to connect each other, define possible bypasses, feedback and define specific components like covolution layer or LSTM and so on.
In the following phase the system help do go dee in each layer and optimize individual neurons and connections, for instance define the kind of covolution filter should be applied, specific neuron or edge optimized.
For those interested to deep and learn about those approaches a description of IBM AI Open Scale that includes NeuNetS is here https://www.ibm.com/cloud/ai-openscale