-
Notifications
You must be signed in to change notification settings - Fork 51
Description
Issue Description
The Support Vector Regressor (SVR) model in the eye tracker API currently tests 75 different hyperparameter combinations during gaze estimation:
- 5 C values:
[0.1, 1, 10, 100, 1000] - 5 gamma values:
[0.0001, 0.001, 0.01, 0.1, 1] - 3 kernel types:
["linear", "rbf", "poly"]
This results in extremely slow processing times (over 4+ minutes for 80 samples !! 12 GB RAM + SSD), resulting in huge latency.
Root Cause Analysis
During investigation, I discovered that the system was testing every possible combination of hyperparameters (5×5×3 = 75), which is computationally expensive for gaze estimation. The excessive parameter combinations were primarily affecting the Support Vector Regressor model.
Performance Impact
- Poor user experience due to long delays
- Makes real-time eye tracking impractical
- Affects overall application responsiveness
Trying different hyperparamet configs
I tested parameter reductions to find the optimal balance between speed and accuracy:
- First reduced kernels from 3 to 1 → Significant speed improvement but we may lose accuracy
- Tested intermediate configuration with all kernels but reduced C and gamma → Good balance (yet 1+ min for 500 samples)
- Validated performance with different sample sizes to ensure scalability
Desired Solution
Optimize the hyperparameter ranges to achieve processing times under 5 seconds while maintaining acceptable accuracy for gaze prediction.