# Parallel-Structure Deep Learning for Prediction of Remaining Time of Process Instances
## 4 Experimentation and Results  
Our proposed method is implemented using the Python programming language. There is also a web development framework that makes it easy for programmers to create a web application very quickly using Python, namely Django. We use this to create a web application that simulates the chart's appearance according to the event log at a certain point in time. To render the chart itself in the browser, we use Dygraph, which is a javascript library, to render various graphs quickly and very lightly. We use Keras [33], Python library, with TensorFlow on the backend to implement our deep-learning model. We chose Keras because it makes it easy for us to do fast experimentation and prototyping while preserving its flexibility, and it is also straightforward to set up to run seamlessly on a dedicated Graphics Processing Unit (GPU). In the process of training our deep-learning model, we implemented the Early Stopping technique [34] to control overfitting conditions during the training process. With the help of the validation test, we can stop the training before converging when the validation test loss does not decrease after several epochs, which parameter is called \"patience.\" For our proposed model, we set it at Patience 50, while for the baseline method, which is based on the LSTM model, we set it at Patience 100. This  
\begin{table}
\begin{tabular}{c c c c} \hline \hline
**Layer (Type)** & **Input Shape** & **Output Shape** & **Connected to** \\ \hline input\_image (InputLayer) & (150, 150, 3) & (150, 150, 3) & \\ conv2d\_1 (Conv2D) & (150, 150, 3) & (150, 150, 32) & input\_image \\ max\_pooling2d\_1 (MaxPooling2D) & (150, 150, 32) & (75, 75, 32) & conv2d\_1 \\ conv2d\_2 (Conv2D) & (75, 75, 32) & (75, 75, 64) & max\_pooling2d\_1 \\ max\_pooling2d\_2 (MaxPooling2D) & (75, 75, 64) & (37, 37, 64) & conv2d\_2 \\ conv2d\_3 (Conv2D) & (37, 37, 64) & (37, 37, 96) & max\_pooling2d\_2 \\ max\_pooling2d\_3 & (37, 37, 96) & (18, 18, 96) & conv2d\_3 \\ conv2d\_4 (Conv2D) & (18, 18, 96) & (18, 18, 96) & max\_pooling2d\_3 \\ max\_pooling2d\_4 & (18, 18, 96) & (9, 9, 96) & conv2d\_4 \\ flatten\_1 (Flatten) & (9, 9, 96) & (7776) & max\_pooling2d\_4 \\ \hline \hline \end{tabular}
\end{table}
Table 4: Input and output shapes and connectivity of CNN component.  
\begin{table}
\begin{tabular}{c c c c} \hline \hline
**Layer (Type)** & **Input Shape** & **Output Shape** & **Connected to** \\ \hline concatenate\_2 (Concatenate) & (50) & (776) & dense\_NN\_4 \\ dense\_NN\_5 (Dense) & (7826) & (512) & concatenate\_2 \\ dense\_NN\_6 (Dense) & (512) & (100) & dense\_NN\_5 \\ dense\_NN\_7 (Dense) & (100) & (10) & dense\_NN\_6 \\ dense\_NN\_8 (Dense) & (10) & (1) & dense\_NN\_7 \\ \hline \hline \end{tabular}
\end{table}
Table 5: Summary of the concatenation of output of MLP with DAEE and CNN for fully connected NN to the output layer.  
setting is also based on the trial-and-error experiments we conducted. The LSTM model was set higher because it is slower than our proposed model due to the update weights processed during training. We also adopted Adam [35] as the optimization algorithm. Adam is an adaptive learning rate method that computes individual adaptive learning rates for different parameters. Adam can also be called an optimizer, and as such, it can be said to combine the advantages of two popular predecessor algorithms, namely Root Mean Square Propagation (RMSProp) and Adaptive Gradient Algorithm (AdaGrad).