AI is all the rage these days, mainly due to the popularity achieved by generative AI tools and LLMs (Larga Language Models) such as ChatGPT and Bard. The basis of many of these tools is deep learning techniques.
To learn deep learning at its best, you need to carry out many projects. Of course, if you have prior knowledge, you may have done handwritten text recognition or classification projects in general, but by doing interesting deep learning projects, you will not only hone your skills, you will also have fun!
In this article, we will look at several deep learning project ideas to test your skills and, if you are a beginner, it will be a great place to start. But first, let’s start with the basics.
What is Deep Learning?
Deep Learning teaches computers to think and learn like us. Our brains recognise shapes, understand colours and reconstruct meaning by putting them together. Deep learning techniques work in a similar way, however, using neural networks, mathematical equations and great computing power.
Suppose you want to teach it to identify the cats in the photos. By providing the model with many photos of cats, it will recognise whiskers, tails and ears. The more photos provided, the better the recognition will be. But not only cats, anything can be taught! This concept is the basis of ChatGTP, for example. The creators of OpenAI used all the knowledge available on the web to train a model that would be able both to generate fluid text in any language, but also to answer questions put to it.
Why does it matter?
Because it can perform a wide range of tasks in real life, from predicting the weather to analysing product reviews to classifying news, photos and other objects. In this article we will suggest some ideas for trying out deep learning techniques in real contexts based on real data. By practising on these projects you can improve your knowledge, but also open doors for a new job!
Ideas for deep learning projects
The web is full of ideas of deep learning projects and even some proposed solutions. You can consult sites such as Github and Kaggle to get an idea. Of course, only your imagination and skills will be your limit in developing applications that exploit these techniques.
To guide you in your choice of projects from which to start, we will provide some ideas in this article, including links to the datasets you can use to create your own model to be integrated into the project you are going to realise.
Project 1: Weather Forecast
Dataset: London weather data
It is heavy to want to build a weather forecasting application. Many exist, but developing an automated system that generates forecasts without having to introduce complex mathematical models could make all the difference!
Using, for example, the London weather dataset, you will be able to use deep learning to predict weather conditions and potentially help the agriculture and tourism sectors. To realise this project, you first need to explore the dataset. You can do this using pandas and, if you are not yet familiar with pandas, you can hone your skills by answering Python Pandas Interview questions.
Now that you know your data, manipulate and transform it so that you can build a neural network. You can build a recurrent neural network (RNN) on this historical data to predict future conditions. But do not forget to validate the results of the model on a test set to ensure its performance.
Project 2: Predicting opinion from clothing reviews
Dataset: Clothing reviews
Suppose you want to build an application that provides fashion advice. You are not an expert, so you will have to rely on comments from people who try on clothes. Reading clothing reviews to get an idea could be very costly. Sometimes there are thousands of them and they are very conflicting. Fortunately, we have a dataset to predict the opinion expressed in reviews on this subject.
This is a text classification problem that can be solved using recurrent neural networks (RNNs) or transformer-based models such as BERT. These models are effective for text classification and are able to capture the sequential nature of text.
First, as always, textual data must be transformed, as they are usually in raw form. One has to make them ready for the construction of machine learning models. Then one can build the model according to one’s taste and, finally, it is time to evaluate it on a separate test set.
You can try different options, such as hyperparameters, to improve the performance of the model, but you have to make sure you have enough computing power, otherwise the process could take days.
This way, tens of thousands of reviews can be analysed in a very limited time.
Project 3: Fake and real news
Dataset: Fake and real news
Sometimes it is really difficult to tell whether a piece of news is true or false even if the source is authoritative. This is why it is necessary to build systems that classify news as fake or real. Manually, this is really difficult as it requires a lot of research and comparison work.
If we use deep learning, and in particular the news dataset linked above, we can build an RNN to accomplish this task by increasing the speed and accuracy if possible. The dataset is a collection of articles that have been labelled as true or false. With this information, our model could then learn to identify true and false news and, to be on the safe side, we could test its accuracy. Always remember to separate your dataset into training and testing, to make sure that your model can generalise well to unseen data.
Project 4: Classification of yoga postures
Dataset: Yoga postures
Suppose we want to develop an app that helps yoga practitioners understand whether the posture they are taking is correct or not. To do this, we must first classify all yoga postures from images. The dataset provided includes a group of images of five main poses, namely downward dog pose, goddess pose, tree pose, plank pose and warrior pose.
Of course, you may know which pose it is, but you need to transfer your knowledge to the model to automate the classification process. To do this, CNN is a good solution, because this task includes an image classification task.
To begin this project, we could perform a new pre-processing using different methods. For example, if we want to increase the diversity of the training data to increase efficiency, we have to increase the data. Once the model has been appropriately trained, we could appropriately classify new images and validate them according to the user’s intention.
Project 5: Automatic classification of fruit
Dataset: Date fruits
Imagine you are a salesman and you have to classify different types of fruit. Some fruit specialities, however, you cannot distinguish perfectly. An app that appropriately classifies fruit based on a picture would be ideal.
You can start with the date fruit dataset in which you will find pictures of seven different fruit classes: ‘Barhee, Deglet Nour, Sukkary, Rotab Mozafati, Ruthana, Safawi and Sagai, including their characteristics such as shape and colours.
Using this information and Convolutional Neural Networks, it is possible to classify other fruits by simply photographing them and feeding this information to our algorithm.
The developed app will be able to provide a useful service not only to the seller, but also to end customers and the entire agricultural industry.
Project 6: Face mask detection
Dataset: Face mask detection
During the Covid19 epidemic, the use of face masks was introduced. Today, it is no longer compulsory to wear them except in certain circumstances. Nevertheless, should it be required, constant monitoring must be carried out to ensure that everyone wears one. Through the use of a camera on the premises, it could be monitored automatically that no one removes the mask.
To do this, however, it is necessary to develop a deep learning model that can detect whether or not a person is wearing a mask. This is a binary image classification problem that can be solved using convolutional neural networks.
Using the linked data, you will develop a face mask detection system using PyTorch and the Faster R-CNN model. You will pre-process the data, create a dataset and a DataLoader and modify a pre-trained Faster R-CNN model for the task. After training and evaluating the model, you will visualise its predictions.
Finally, the trained model will be saved for future use, perhaps by feeding it into the camera algorithm and setting up the system, which automatically checks whether patients are wearing masks or not.
Project 7: Celebrity Face Detection
Dataset: CelebFaces Attributes (CelebA)
Suppose you are a journalist and your job is to keep track of celebrities. So you are supposed to name them just by looking at them, right? Your visual memory, however, is not great and remembering the faces of new celebrities is really hard.
To accomplish this task, you can use the CelebFaces Attributes (CelebA) dataset, which contains over 200,000 celebrity images. The project involves training a deep learning model, probably a convolutional neural network (CNN), to identify various facial attributes.
To improve the performance of the model, strategies such as data augmentation and hyperparameter tuning could be considered. One could also implement early stopping during training to avoid overfitting or use transfer learning by exploiting pre-trained models such as VGG16 or ResNet.
Of course, after all these operations, one can use the model to predict the names of celebrities by simply uploading their photos and asking the model to classify them.
Project 8: Chatbot for mental health FAQs
Dataset: Mental health FAQs
Suppose you want to develop a virtual assistant for a psychiatrist. Obviously you will need a large amount of data from the field. Since the questions are usually the same, or at least those asked by patients, you could use the Mental Health FAQ dataset, a collection of frequently asked questions about mental health. At this point it would only be necessary to train a deep learning model, such as a sequence-sequence model (a type of recurrent neural network), to generate answers to mental health questions.
To improve the performance of the model, one could consider strategies such as using attention mechanisms to better capture context or experimenting with different types of RNNs such as LSTM or GRU. Finally, this would help the doctor to serve his patients for an unlimited time, but obviously with limited knowledge.