In this post, we focus on detecting multiple values where the previous 82 values of a curve are used to detect the next 25 values.
NOTE: Originally we described this test as predicting the next 25 values, which is not correct for to actually predict future values, those values should be unknown and not exposed to the model during training. In our test here the 25 values following the input values are used in the optimizer step which trains one cycle (forward/backward) and uses the 25 values as the targets during that step to learn the dynamics of the curve. In this sample, the model detects the 25 values following the inputs but does not predict 25 unknown, never seen before, future values.
For each of our demonstrations we use the same simple Liquid Closed-form continuous-time Model as shown below.
Detecting Multiple Values on a Sine Curve
Our first example focuses on detecting multiple values of a simple Sine curve.
As demonstrated in the video above, the CfC’s multiple detections track the Sine curve very quickly.
During the first steps the multiple detections are a jumbled mess, but quickly lock onto the curve as shown below.
And once locked on, all detected values stay locked on for the duration.
Admittedly, detecting the Sine curve is straightforward as the curve has a very periodic shape. Next, explore how detecting multiple values of the CfC work on a much more difficult curve.
Detecting Multiple Values on a Random Curve
Now this example may sound silly, but we want to see how well the CfC locks onto a cumulative set of random numbers by creating a curve with the following function:
α and β are each random numbers within the range [0.0, 1.0] and the overall curve is bound to the range [-1.0, 1.0]. Our intent with this test is to see how fast the CfC can lock onto and track the curve if at all.
As shown above, the CfC does a fairly good job of following and at least staying near the randomly generated curve! Similar to predicting the Sine curve, the first detections are a jumbled mess.
But after a short time, the multiple detections do start to organize and servo toward the random curve as a group.
When the dynamics change dramatically, the servoing increases as the CfC attempts to find the best curve fit.
The way the CfC tracks a random curve really shows the power of these models! To read more about how this works, see our blog post Closed-form Continuous-time Liquid Neural Net Models – A Programmer’s Perspective.
Happy Deep Learning with MyCaffe and Liquid CfC Neural Networks!
 Closed-form Continuous-time Neural Models, by Ramin Hasani, Mathias Lechner, Alexander Amini, Lucas Liebenwein, Aaron Ray, Max Tschaikowski, Gerald Teschl, Daniela Rus, 2021, arXiv:2106.13898
 Closed-form continuous-time neural networks, by Ramin Hasani, Mathias Lechner, Alexander Amini, Lucas Liebenwein, Aaron Ray, Max Tschaikowski, Gerald Teschl, Daniela Rus, 2022, nature machine intelligence
 GitHub: Closed-form Continuous-time Models, by Ramin Hasani, 2021, GitHub