## 3 Methodology
### Feed-Forward Artificial Neural Network
\begin{table}
\begin{tabular}{l l l} \hline \hline
**Hyperparameter** & **Chosen Value** & **Range Tested** \\ \hline Number of Hidden Layers & 5 & 2–6 \\ \hline Neurons per Hidden Layer & 512 & 32–1024 (in steps of 32) \\ \hline Learning Rate & \(1\times 10^{-5}\) & \(1\times 10^{-2}\), \(1\times 10^{-3}\), \(1\times 10^{-4}\), \(1\times 10^{-5}\), \\  & & \(1\times 10^{-6}\) \\ \hline Batch Normalization & Enabled & Enabled/Disabled \\ \hline Activation Function (Hidden Layers) & ReLU & ReLU, Tanh \\ \hline Optimizer & Adamax & Adam, Adamax \\ \hline Training–Test Split Ratio & 90:10 & 70:30, 80:20, 90:10 \\ \hline \hline \end{tabular}
\end{table} 
Table 8: Hyperparameter selection criteria and ranges tested. neural network from becoming saturated, and helps to train the model faster. It is utilized to overcome the vanishing gradient problem as well as for faster computations. Since this work performed the classification of PCGs as normal or abnormal, the final layer contains only one neuron with a sigmoid activation function. For overall model learning adaptation, the Adamax optimizer was utilized; it extends the functionality of the Gradient Descent Optimization algorithm, inherently accelerating the optimization process. Adamax is a variant of the popular Adam optimization algorithm and is often preferred for training deep neural networks. It combines the advantages of the AdaGrad and RMSprop algorithms, both of which maintain per-parameter learning rates and update parameters based on adaptive learning rate methods. Unlike those algorithms, however, Adamax uses the infinity norm rather than the Euclidean norm to calculate parameter updates. This allows it to better handle sparse gradients, making it more suitable for training deep neural networks with a large number of parameters and layers. Additionally, Adamax uses a combination of momentum and decay rates to improve convergence while maintaining stability. This makes it well suited for heart sound classification. Finally, the computing loss during the model training process was calibrated through binary cross entropy. These data were not yet ready to be fed directly to the neural network, so the dataset was further processed to remove the outlier records. This study used the Interquartile Range (IQR) method to detect and remove outliers from the dataset. For each feature, the first quartile (Q1) and third quartile (Q3) were calculated, with the IQR defined as Q3 - Q1. Data points outside the range of Q1 - 1.5 \(\times\) IQR to Q3 + 1.5 \(\times\) IQR were considered outliers and removed. This method, which is robust to non-normal data distributions, helped ensure that only statistically relevant data remained for model training, thereby improving classification accuracy. These exercises help prevent models from being over/underfit. After outlier removal, the dataset was reduced from 65,940 to 37,243 rows, which is still a decent volume of data that can be used to train a neural network. Going forward, these data were split into test and training sets with a ratio of 10:90 for the training of the neural network. This was carried out separately based on the classification category (normal/abnormal). This activity helped maintain the effectiveness of the model training and the model's testing on unseen data.