Software Development - Making Lilypod Intelligent – Part 1 (The Original Idea)

With our design, Lilypod now features three different water monitoring sensors: spectrometer, pH sensor, and conductivity sensor. These three sensors provide a wide array of data about the quality of the water which ultimately correspond to the quality of the yield (crops and fish). As such, these parameters would be beneficial for hydroponics farmers to closely monitor. While constant monitoring would provide farmers with a good level of utility, adding an aspect of machine intelligence would allow Lilypod modules to not only keep track of crucial data, but also predict the quality of the upcoming yield given a history of the water’s condition as well as provide farmers with suggestions on how to best optimize water conditions.
 
In order to build this feature, a machine learning model had to be designed. However, a significant problem faced was the inexistence of data relating spectroscopy data, pH data, and conductivity data to resulting crop quality. Without the data, the model could not be trained nor validated. To combat this issue, we have decided to go with an online learning approach; this means that the module will gain intelligence the more its being used. This is akin to how Nest’s smart thermostats are capable of learning people’s temperature preferences and automatically adjusting the temperature to their liking. Lilypod has no method of directly determining the quality of the yield, and thus requires farmer input of a quality score which would serve as a target label (y-value) to the water condition data (x-value).

We built a three-branch model with a network of LSTM nodes. Each branch corresponds to one of the three types of data that Lilypod collects. After the concatenation of the three branches, the network outputs a logit between 0 and 1 as a prediction of quality, where 0 means low quality and 1 means high quality. The reasoning behind the LSTMs is that our team hypothesised that there is a time-series relationship between the water condition parameters and the yield quality. One training step (composed of N epochs) will run whenever the user inputs a new label. An inference step will occur whenever the user requests for a prediction.

Comments

Popular posts from this blog

Mechanical Design - Watertight Locking Mechanism

Final Post (Poster, Video)

Software Development - Making Lilypod Intelligent – Part 3 (The Implementation)