The interactive Machine Learning sandbox/playground for beginners, professionals, and tinkerers
I have been working in the Machine Learning (ML) space for quite some time now and have observed many beginners try and fail horribly when having a go at it. There is complex math involved and at times, it gets too tedious to study everything and apply it in the right way.
There are many courses online that teach interested candidates the basic concepts and ideas related to ML. However, learning and applying are too different things.
What I have come to understand, is that beginners need a space to try new things, fail, succeed, and break things to get it right. There is a multitude of ML-related tools out there online. The only problem is that you need to have a bit of knowledge on how to use what.
Competitive Research (of sorts)
I have tried my hand with off-the-shelf models from H2O.ai and DataRobot. Though these two are great examples of production-ready ML tools, experience is highly recommended.
The problem with these two services is that, the “blackbox situation” still exists despite automating the ML pipeline. There are only a handful of models one can make use of. There is no complete freedom in tweaking parameters. Most users remain clueless as what is going on with the model. The user experience ends up with a “What you see is what you get” sticker on it.
MLBlocks is an interactive playground/sandbox that lets you build Neural Networks from scratch without having to write code. The idea is simple:
- Drag and drop blocks (layers) on top of each other to synapse them together.
- Tune your hyper-parameters to perfect your network with realtime feedback on the values you choose.
- Tweak high level parameters for every layer from the activation function to the number of neurones. Users have complete freedom while editing blocks/layers individually.
- Export the model in the form of Keras code. As you drag, drop and stack layers, Keras code is simultaneously being written in the editor, realtime!
Now, building Neural Networks became as easy as building a Lego house!
For the time being, the basic features used to build networks will remain. Here are a few ideas that I plan to implement soon:
- Export to other languages and frameworks like C++, R, pure TensorFlow, Tflearn (and Torch/Theano if there is time).
- More layer blocks.
- Prebuilt models and architectures that can be loaded in.
- Importing test datasets like MNIST, Fashion-MNIST, Boston Housing Price, CIFAR10, CIFAR100, and Reuters-21578 to validate final model.
- Adding a command line interface to run the model and/or related programs.
- User Accounts to save models and enable model versioning.
The code for the project is available in the github repo . The repo consists of a basic HTML, CSS, and JS file that carries out the basic functionality of the app. Stay tuned for new releases with exciting updates!
If there are any new ideas that are not in the list, feel free to drop a comment below!
In a nutshell
Building MLBlocks was a very challenging process. Nonetheless, it was exciting and thrilling to see it come to fruition. With time, I look forward to seeing more and more people dwell into Machine Learning and its applications.
The current beta release might be buggy. If you have any issues with it, email me or drop a comment below! Do try out the app. It would mean a lot to me. Do not hesitate to contact me for MLBlocks-related matters or general queries. I’ll answer them as soon as possible!
Till then, see you in the next one!
Original article by Rishabh Anand
Source: Deep Learning on Medium