vendredi 21 juin 2019

Testing stratagy for non deterministic behavior

I want to test a non-deterministic computer vision algorithm.

I have two versions of the software: the old one - assumed to be working correctly and the new one - with substantial changes to everything except the main algorithms. The algorithms are non-deterministic and given video file will tag some frames. Since it's not deterministic the frames it tags will have some minor changes between runs. For example, if in one run it tagged frame number N next time it could tag frame number N+1 or N-1 instead, or just tag a completely new frame.

The ML algorithms are not changing between runs (not learning) and in both versions of the software are completely identical.

I want to show that the algorithm performance was not impacted by the changes.

I did 30 runs on the same video aggregated the output and in both cases plotted the counts of frame ids (number of the frame relative to the start of the video) of both algorithms as a categorical side by side, bar plot. It looks close enough.

The question is how I can make the conclusion more mathematical? For now, I'm leaning toward statistical hypothesis testing.

Are there any alternatives or suggestions? Is there a general strategy in testing non-deterministic code? If hypothesis testing is the way to go, what would be the proper way to do it?

(I'm currently using jupyter notebook with python to plot the data and hypothesis testing but free to choose any other tool if a better option is suggested)

Aucun commentaire:

Enregistrer un commentaire