Jehoshaphat I. Abu


100 Days Of ML Code — Day 056

100 Days Of ML Code — Day 056

Jehoshaphat I. Abu's photo
Jehoshaphat I. Abu
·Sep 3, 2018·

2 min read

Recap From Day 055

Day 055, we looked at working with time; how dynamic time warping works. We learned that dynamic time warping can be thought of as solving an optimization problem. Here, our objective function is the distance between our two sequences once we’ve warped one to match the other the best we can, and our task is to find the warping that minimizes this distance.

Today, we will continue from where we left off in day 055

Working with time

How Dynamic Time Warping Works continued

We’ve seen two basic approaches to modeling the way data changes over time. The first approach was to concatenate many time points into a single feature vector and then pass this feature vector to a conventional classification or regression algorithm. The second approach was dynamic time warping.

Dynamic time warping doesn’t require us to do explicit segmentation. whereas using a classifier means we need to make a choice about when a gesture begins and ends in order to pass the classifier of feature vector representing the gesture from beginning to end.

Dynamic time warping is robust to changes in gesture speed. Our gesture can be faster or slower, or can even vary in speed over the course of over a single, but if their overall shape and feature space is the same, dynamic time warping will consider them to be similar. And because dynamic time warping can give us a continuous estimate of the closest of our current gesture at this movement to all of our recorded examples gestures, we can use it to do gesture spotting.

If we’re within a certain distance threshold to our closest gesture, we can assume that that gesture has just occurred. Otherwise, if we’re far from all gesture examples, we can assume that no gesture has just occurred. Unfortunately, dynamic time warping is generally more computationally intensive than the classification and regression algorithms we’ve seen previously, especially when we run it continuously in real-time. So wanting things to run very quickly might not be a good reason to choose it over another algorithm.

That’s all for day 056. I hope you found this informative. Thank you for taking time out of your schedule and allowing me to be your guide on this journey. And until next time, be legendary.



Share this