Lowering the Entrance Barrier of Deep Learning with High-Quality Source Code Generation

Back in the days, …

… when we were using Theano to build machine learning models, we often faced implementation issues which were tedious and time-consuming to resolve. While having a clear idea of the implementation goal, symbolic programming and cryptic error messages of an incorrectly constructed computation graph significantly slowed down our progress. Tons of documentation, and as a last resort Theano’s source code itself, likely contained all the knowledge needed to get things to work, but this development mode is just ridiculously inefficient.

Ooops, something went wrong while running some Theano code. Happy debugging …
A simple dummy model implemented with Theano (left) and TensorFlow (right).

Entering the field of Deep Learning is not easy

The recent hype around and rise of Artificial Intelligence (AI) has drawn a lot of attention on Deep Learningthe primary technology behind most notable advances in AI. Not only AI experts, with strong backgrounds in machine learning or related fields, but also many newcomers and AI enthusiasts are part of the current AI revolution. Even though there have been tremendous advancements in the machine learning software ecosystem, they will experience similar struggles as we did on their journeys towards applying Deep Learning. Some of them will prevail, but others, especially the novices will be intimidated by the high entrance barriers and eventually fail.

Same dummy model as above, but this time implemented with TensorFlow’s Keras API tf.keras.

Lowering the entrance barrier with a graphical higher-level abstraction

While abstraction is generally the right way to lower entrance barriers in AI development, the kind of abstraction should be reassessed to match the needs of both experts and novices alike. We argue that the design of Deep-Learning-based models is a graphical process and should be treated as such using a graphical user interface (GUI).

Graph representation of the dummy model implemented with Theano, TensorFlow, and Keras above.

What about flexibility?

Unfortunately, a higher level of abstraction tends to trade off flexibility that might be required for developing real-world AI systems. From our professional experience, solutions to meaningful real-world problems using Deep Learning (and machine learning in general) are still purpose-built. It is a fact that there are no universal guidelines or proven master algorithms yet that can solve and generalize to arbitrary problems. Theoretical solutions like ONE have recently been proposed, but to the best of our knowledge neither an implementation nor any empirical evidence exist. Instead, developers rely on best practices, extensive experience, and lots of trial and error.

Why a code generator?

First of all,

--

--

Get the Medium app

A button that says 'Download on the App Store', and if clicked it will lead you to the iOS App store
A button that says 'Get it on, Google Play', and if clicked it will lead you to the Google Play store
creaidAI

creaidAI

Bridging the gap between ease of use and flexibility in artificial intelligence development — https://creaidAI.com