= [v_1,\ \ v_2,\ \ abs(v_1 - v_2),\ \ v_1 \odot v_2]$$ Here, $\hat{y}$ is the estimated containment rate, $U_{out1} \in R^{4Hx2H}$, $b_{out1} \in R^{2H}$ and $U_{out2} \in R^{2Hx1}$, $b_{out2} \in R^{1}$ are the learned weights and bias, and $\odot$ is the dot-product function.

In order to estimate the containment rates more accurately, we use the $Expand$ function which creates a row concatenated vector of size $4H$ using vectors $Qvec1$ and $Qvec2$.

We use the $ReLU$[^1] activation function for hidden layers in all the neural networks, as they show strong empirical performance advantages and are fast to evaluate.

In the final step, we apply the $Sigmoid$[^2] activation function in the second layer to output a float value in the range \[0,1\], as the containment rate values are within this interval. Therefore, we do not apply any featurization on the containment rates (the output of the model) and the model is trained with the actual containment rate values without any featurization steps.

### Loss Function

Since we are interested in minimizing the ratio between the predicted and the actual containment rates, we use the q-error metric in our evaluation. We train our model to minimize the mean q-error [@qerror], which is 