The old saying of “Practice maketh a man perfect” holds good in almost all practical tasks. In the area of machine learning, this stays true to its meaning. For a beginner in ML, developing simple yet skill building projects provides the much-needed hands-on practice in gaining proficiency and mastery over various networks and algorithms.
We bring to you a few simple projects that can help you get started in building your very own ML application:
1. Image Classification
How about starting with the basics before you build complex image classification networks? An absolute beginner’s guide to Machine Learning and Image Classification with Neural Networks by Mozilla Firefox developer David Humphrey is a good way to get started. It provides a through bootcamp for those with limited or no knowledge in ML and AI by teaching them to build a classification network that distinguishes between the images of dolphins and seahorses. From setting up a network to its deployment, this open project provides a step-by-step rundown of the process.
2. Classification Of Sentences
An interesting application of NLP is classification of sentences into categories such as negative or positive, also known as sentiment analysis. The complexities of sentence structure can make process of categorisation very difficult. But the open project titled Convolutional Neural Network for Text Classification by Denny Britz, aims to overcome these complexities using CNN and build an efficient text-based classifier. So why not start building your very own text classifier?
3. Facial Recognition
A face recognition and detection app that can generate memes in real-time after detecting your face is an interesting application to create. Deal With It Meme is an openly available project that helps build such a network where glasses fly in to the screen and then on to the face of the user. It helps build an architecture that goes through the cycle of face detection, prediction of orientation, detection of eyes, scaling of the glasses to place the glasses on the eyes and finally the creation of a .gif animation. This application is a blend of both facial recognition and detection, very similar to the selfie filters found on Snapchat and Instagram.
4. Image Style Transfer
One of the coolest form of image processing is neural style, where the style of one picture is transferred to another. Developing your own app on the lines of Photo Lab or PicsArt can be a stepping stone in the building of ML applications for a beginner. Neural Style TF is an open project that facilitates in the making of an application based on the process of separating the content of one image, and combining it with another picture’s style using CNN.
5. Object Detection
An application for detecting objects and correctly identifying them is a good challenge. Object detection with deep learning and OpenCV by Adrian Rosebrock helps beginners build such an app. The combination of MobileNets and Single Shot Detectors to for quick real-time detection of objects, along with the use of DNN module of OpenCV to integrate detection network that is pre-trained is explored here. The provisions for downloading the necessary codes and resource guide have been made available on the page by the author.
6. Music Generation
If an application that generated jazz music was your first tryst with machine learning would it not be a great way to start off? Deepjazz is a project that uses the deep learning libraries of Theano and Keras to generate jazz music. It is built on a long short term memory (LSTM) network consisting of two layers which learns from provided Musical Instrument Digital Interface (MIDI) files. Need an inspiration to get started? Ji-Sung Kim from Princeton University’s department of computer science built this project in 36 hours as a part of a hackathon!
7. Speech To Text Synthesis
Synthesis of speech to text is an interesting application of machine learning that has seen widespread use. From being a basic feature in smartphones to being an integral part of virtual assistants, speech to text is an important deep learning tool that has become part of day-to-day life. DeepSpeech, helps one build their own speech generation engine. The project sees Baidu’s DeepSpeech architecture through TensorFlow implementation. Pre-trained models are available along with the provision to custom dataset.
8. Gaming Bots
Teaching bots to play the first player shooter game (FSP) such as Doom, is a way in which deep reinforcement learning is being taken to a whole new level. A unique architecture combining various current techniques, such as a Deep Q-Network for navigation and a Deep Recurrent Q-Network, for tracking opponent movements and predicting where to shoot, was created to train the bots. Ambitious beginners who want to tackle this challenging design can find the project ViZDoom on Github.
Another compelling recently has been Flappy Bird. The objective of the game is very simple — to keep the bird flying while avoiding obstacles in its path. A bot built on deep reinforcement learning could perhaps do a better job than humans. The open project, Using Deep Q-Network to Learn How To Play Flappy Bird, found in the Github repository can help you build a bot using Deep Q-Network and beat the game.
9. Text Correction
Systems to check spellings that are context-sensitive are widely used and can correct errors in SMS messages, and emails, among others. However, these auto-correction systems are not very successful when it comes to correcting grammatical errors. Deep Text Corrector is a project that aims at constructing tools that are capable of correcting such errors automatically through the training of sequence-to-sequence models. This can help one build a grammar correcting tool that can be trained using grammatically correct samples, and later small error ridden ones to enable production of input-output pairs.