Timeseries forecasting using LSTM
For this project I developed a cloud environment in AWS that enables a smooth development and maintenance cycle of machine learning applications. Within this environment I created a machine learning model that makes a forecast of the future battery degradation, also known as the Remaining Useful Life, of the batteries on yachts. This is done using the Long Short-Term Memory algorithm. This project was done in collaboration with Marinminds.
Marinminds is a yacht monitoring company based in Workum in the Netherlands, which means that Marinminds relieves the worries of yacht owners by continuously monitoring the yachts. If the engine temperature is too high, Marinminds will receive a notification and they can then take further action. The yachts are monitored using a computer on the boat. The computer developed by Marinminds is continuously collecting data. How deep is the water, what is the speed of the engines, how much gasoline does the boat have left. These are just a number of values about which data is collected. This concerns systems such as engines, batteries, navigation and entertainment.
The project focuses on the batteries. Batteries are crucial systems, they power systems such as navigation, lighting, and all entertainment systems. Since a battery is expensive to maintain, Marinminds wants to know when a battery needs to be replaced. The problem is that it is difficult to see at an early stage when a battery needs to be replaced. This leads to situations where a yacht owner is suddenly left with a bad or even broken battery, which can mean that the yacht can no longer be used until a new battery is installed.
To solve this problem the following solution has been drawn up; develop a cloud environment in which machine learning solutions can be researched and created, plus a machine learning application that can predict the status of a battery. The aim of this is to provide Marinminds with the additional tools to create future innovative projects in a dedicated environment. In addition, the model provides a first version of a solution in this system, which can strengthen the current monitoring quality.
To arrive at this solution, research was conducted into what kind of algorithm can best predict the status of batteries on the yachts, within the context of the company and the assignment. The following research question has been formulated for this purpose: which algorithm can most effectively determine when a battery is at the end of its life? Through a literature review, the question was answered as follows: a Diluted Convolutional Neural Network (DCNN) is an algorithm that is one of the most suitable solutions given the available data and the desired outcome.
Ultimately, all desired products have been developed and they meet the established acceptance criteria. There is a cloud environment that facilitates artificial intelligence projects and easily makes new projects possible through modules. A machine learning model has been developed that can predict the degradation of batteries on seven ships. Finally, a web page has been created that displays battery degradation predictions, so that Marinminds can see at a glance what the degradation of the batteries of all predicted ships is.
In the screenshot above you can see the forecast made by the LSTM model. Due to privacy sensitive data, only 2 ship can be shown with anonamized data. This gives a clear picture of 2 ships with a degrading battery. Ship ‘Beta has an estimated 1898 days before it is recommended that the batteries are replaced. The Capacity should preverably stay above 80%. Values below 80% make it so the battery is quickly discharged, thus making a trip with the yacht short before needing to dock again, and charge up the batteries.
In the picture below we can see another view of a forecast being made by the model.
Lastly, below is a detailed description of the model that I made.
We start with 2 convolution layers that have a LSTM module. They try to understand the temporal patterns (the pattern of the features across time). The features are; the battery voltage, the battery current, the battery temperature, and the battery cycles. After these 2 layers we flatten everything, meaning we reduce the dimentionality of the data to 1. Finally, we have 3 fully connected layers (dense) to shape the data into the right output we want.
I can’t show much more on my website due to privacy concerns. However, I can show more in person. So are you interested in more details about this project, don’t hesitate to contact me!
Tags: AI, machine learning, (deep) neural networks, Long Short-Term Memory, Convolutional Neural Network, time-series forecasting, AWS, AWS Lambda, AWS Sagemaker, AWS S3, cloud computing, big data, architecture design, Python, JavaScript, TypeScript, Docker, Node.js, ReactJS, API, MongoDB, InfluxDB, Test Driven Development, agile, scrum