Tremor characteristics differ from person to person (eg. tremor's frequency). In addition every patient reacts in a different way to the electrical muscle stimulation (eg. reaction time of the muscle). So there is a need for a device that is patient-adaptive. This is the reason why we use an ML model that adjusts the parameters of the device to the specific patient.
At the first stage, the algorithm takes decisions of whether to deliver a stimulation based on the default parameters. After a small training period, in which the user wears the device and we evaluate each stimulation given, our ML model is able to predict if a stimulation should be given or not. This way, at the second stage, the default parameters change to the optimal ones for the specific patient, achieving a high level of personalization.
To explain further, when we detect an involuntary activation of a muscle (for example flexor), we have to decide for how long we will stimulate the opposite muscle (in that case the extensor). Since we have found tremor's frequency we know that the flexor is going to be activated due to tremor for half of the period time. Now we have to decide for what percentage of this half-period time we will stimulate the opposite muscle (extensor). The optimal percentage parameter varies from patient to patient and depends on many features (eg the angular velocity that the hand has at this specific time of the period, the specific time of the period, the muscle's reaction time in response to electrical stimulation of the patient etc.). Our ML Classification model, using Neural Networks, has two classes, "Give Stimulation" and "Do Not Give Stimulation" and defines the ideal "percentage" (time of period that we are in the class "give stimulation" ) based on the features.