## 2 Materials and Methods
### Set-Up of Experiments
#### 2.4.3 Training Process  
In the subsequent training stage, prioritization was given to training samples, balancing the validation and testing samples equally to optimize model learning efficiency. The training process was bifurcated according to the ML-utilized model. Scikit-learn-compatible models underwent training parallel to metric collection, achieved via an auxiliary thread initiated concurrently to capture computational and performance metrics at pre-defined intervals. Post-training, evaluation metrics were computed, and the metric collection thread was terminated without interrupting training processes. This strategy ensured continuous monitoring without affecting model training durations or computational efficiency. For models developed in PyTorch v2.6.0, training loops incorporated metric collection directly. Thus, both computational and model performance metrics were continuously captured and evaluated within each training on 25 epochs. Although this embedded approach streamlined monitoring, it introduced minor computational overhead, slightly affecting overall training duration. Nonetheless, it allowed for more precise tracking of model dynamics throughout training epochs. In Figure 3, a sequential workflow focusing on image datasets is illustrated, featuring a loop-based approach with training, validation, and subsequent resource-usage evaluation. Final storage of computed metrics was executed upon completion, while each phase ensured model-performance measurements were collected, preserving an organised flow from data loading to recorded metrics. Figure 4 then displays a concurrent pipeline for data ingestion, followed by device-based processes. Real-time metrics capturing was performed at frequent intervals, and final metrics storage was executed after the threads synchronised. Parallel execution was featured to accommodate GPU versus CPU usage during separate training processes. Figure 1: A multi-stage process is depicted, beginning with a repository of approximately sixty-thousand entries. Thresholds are applied to refine the source into five classes, resulting in about ten thousand instances. The minority category is determined, permitting restriction of each group to the minority sample count. A pre-trained ResNet-50 model then yields 2048 extracted features, forming a numeric dataset for Scikit-based learners. Multiple training approaches were explored within this investigation to address distinct scenarios in which performance might coincide with varied initialization techniques. A transfer learning methodology was adopted in certain stages, featuring ImageNet-1K parameters that were maintained in Frozen form to preserve previously learned representations. This freeze strategy was applied to layers excluding fully connected segments, thus preserving convolutional filters while granting a measure of adaptation through trainable top layers. It was then postulated that an Uncertain impact could arise from partial unfreezing, so a separate experiment was implemented to unfreeze all layers, enabling more thorough fine-tuning. In addition, a second scheme was formulated From Scratch through Random Init, indicating that no prior knowledge was included at the start. That route permitted an entirely Principled search for feature embeddings, albeit with Transient optimization complexities. A Vectorial perspective on gradient flow was considered beneficial in that scenario, especially since the incentive was to observe raw feature extraction steps unfold. Model selection in these pathways was necessarily guided by data scale, because certain parameters called for a large volume of examples, whereas others performed efficiently even with smaller batches. Another aspect involved the possibility that an entirely distinct pipeline configuration might be Versatile across tasks, which appeared to be expected when multi-step transformations were tested. Customized processes were arranged to facilitate precise testing of each learner.