## 2 Materials and Methods
Adam: an optimizer for gradient-based optimization of neural network models. The Adam optimizer updates the weights of the model during training using the following set of formulas (8) to (13): \[m_{0}=0,v_{0}=0(\textit{initialize 1 st and 2 nd moment estimates})\] (8) \[m_{t}=\beta_{1}\;*\;m_{t-1}+(1-\beta_{1})\;*\;\
abla J(\theta_{t-1})(\textit{ update biased 1 st moment estimate})\] (9) \[v_{t}=\beta_{2}\;*\;v_{t-1}+(1-\beta_{2})\;*\;(\
abla J(\theta_{t-1}))^{2}( \textit{update biased 2 nd moment estimate})\] (10)
\[m^{t}=\frac{mt}{(1-\beta^{t1})}(compute\;bias-corrected\;1 st\;moment\; estimate) \tag{11}\]  
\[v^{t}=\frac{vt}{(1-\beta^{t2})}(compute\;bias-corrected\;2 nd\;moment\; estimate) \tag{12}\]  
\[\theta_{t}=\theta_{t-1}-\frac{\alpha\;*\;m^{t}}{\left(\sqrt{v^{t}+\varepsilon} \right)}(apply\;update) \tag{13}\]  
Here, \(\
abla J(\theta_{t-1})\) represents the gradient of the loss function with respect to the weights at the previous iteration, \(\alpha\) is the learning rate, \(\beta_{1}\) and \(\beta_{2}\) are the exponential decay rates for the first and second moments, and \(\varepsilon\) is a small constant to avoid division by zero. The Dropout technique is used for regularization in neural networks, in which a fraction of randomly selected neurons are temporarily ignored during training to prevent overfitting. During training, the dropout technique randomly sets a fraction of the input units to 0 at each update--this helps prevent overfitting. The formula for dropout regularization is as follows: output = input * mask, where input is the input to the dropout layer and mask is a binary mask with the same shape as the input. The mask randomly sets a fraction of its elements to 0. Meanwhile, the regulating module offers methods for adding a penalty term to the loss function during training, such as L1 regularization and L2 regularization, to further prevent overfitting. L1 regularization adds a penalty term to the loss function based on the L1 norm of the weights. The L1 regularization term is given by  
\[L_{1}\_reg=\lambda\;*||w||_{1} \tag{14}\]  
where \(\lambda\) is the regularization strength and \(||w||_{1}\) represents the L1 norm of the weight vector w.  
L2 regularization adds a penalty term to the loss function based on the L2 norm (Euclidean norm) of the weights. The L2 regularization term is given by  
\[L_{2}\_reg=\lambda\;*\;||w||_{1}^{2} \tag{15}\]  
where \(\lambda\) is the regularization strength and \(||w||_{2}\) represents the L2 norm of the weight vector w.  
* Model Evaluation: Evaluate the model's performance using the testing set. Common metrics for evaluating the performance of a neural network include accuracy, precision, recall, and F1-score. * Weight regularization is a technique utilized to prevent overfitting in neural networks. It involves incorporating a penalty term into the loss function, which incentivizes the model to have smaller weights. As a result, this technique reduces the model's complexity and helps prevent overfitting. * Deployment: After training and evaluating the model, it can be deployed for use in predicting obesity in individuals based on their features. The algorithm is presented with a flowchart as Scheme 1, which shows the step-by-step process involved in constructing the neural network for prediction of obesity. The implemented neural network model will be compared with the random forest model in terms of accuracy and predictions to evaluate their respective performance, considering that random forest is a popular algorithm suitable for small data. The random forest model is basically a large number of decision trees, which could be a couple of hundred, that would function in aggregate to improve the effectiveness of a prediction model. The scikit-learn library creates a random forest classifier and fits it to the training data.