Creating the Neural network 
 
The Neural network was created using Keras TensorFlow in a Python environment running on a Windows PC. The network had six inputs representing pH, Temperature, conductivity, Redox potential, Dissolved Oxygen, and agitator motor energy. There is only one output of the Neural network which represents the yield of product expressed in percent of a theoretical maximum. 
 
The network contains several hidden layers to better capture the combination of both linear and non-linear contributions of the different process parameters. 
 
The overall size of the neural network was minimized so that it would focus more on learning underlying relationships, and be less apt to model the noise in the training set. 
 
Training the Neural network 
 
The training data, created with the VB.net program, was used to train the Keras TensorFlow Neural network. Twenty five percent of the training data was used for validation, thereby testing the Neural Net with data not part of the training data on each training cycle. 
 
The following graph shows how well the neural network learned from the training data on each training cycle or epoch. 














The graph shows that the neural network was able to learn the underlying relationships within the training data from the simulation. The mean absolute error (mae) between the calculated yield and the simulation yield, for both the training and the validation data sets is seen to decrease with each training epoch. 

A validation test of the resulting model was conducted on a data set of 200 simulated production batches which were not part of the training data. The mean absolute error (mae) between predicted yield against simulated yield in the test was 0.32 units of yield percent. The maximum error in predicted yield was 1.06. These mae and maximum error numbers represent 1.2% and 4.2% of the span of yield figures in the original training data.

copyright 2019 Powell Simulation LLC