Remix.run Logo
ComplexSystems 3 days ago

This article is saying that it can be numerically unstable in certain situations, not that it's theoretically incorrect.

adgjlsfhk1 3 days ago | parent | next [-]

This is less about numerical instability and more that iterative algorithms with error control their error, but when you run AD on them you are ADing the approximation and a derivative of an approximation can be arbitrarily different from an approximation of a derivative.

ogogmad 3 days ago | parent [-]

That makes more sense. The title is flat out wrong IMO.

adgjlsfhk1 3 days ago | parent [-]

I think it is correct. lots of people view AD as a black box that you can throw algorithms to and get derivatives out, and this shows that that isn't true

wakawaka28 3 days ago | parent [-]

If you wrote code that failed to compile, you wouldn't impulsively call your compiler incorrect. This title sounds like it puts the blame in the wrong place. You can get error accumulation from even a basic calculation in a loop. We could try to solve these problems but it's not the algorithm's fault you don't know what you're doing.

ChrisRackauckas 17 hours ago | parent [-]

This has nothing to do with floating point error accumulation or numerical stability in the floating point sense. You can do this with arbitrary sized floating point values and you will still get the same non-convergence result.

omnicognate 3 days ago | parent | prev | next [-]

Yeah, perhaps the actual title would be better: "The Numerical Analysis of Differentiable Simulation". (Rather than the subtitle, which is itself a poor rewording of the actual subtitle in the video.)

goosedragons 3 days ago | parent | prev [-]

It can be both. A mistake in AD primitives can lead to theoretically incorrect derivatives. With the system I use I have run into a few scenarios where edge cases aren't totally covered leading to the wrong result.

I have also run into numerical instability too.

froobius 3 days ago | parent [-]

> A mistake in AD primitives can lead to theoretically incorrect derivatives

Ok but that's true of any program. A mistake in the implementation of the program can lead to mistakes in the result of the program...

goosedragons 3 days ago | parent | next [-]

That's true! But it's also true that any program dealing with floats can run into numerical instability if care isn't taken to avoid it, no?

It's also not necessarily immediately obvious that the derivatives ARE wrong if the implementation is wrong.

srean 3 days ago | parent | next [-]

> It's also not necessarily immediately obvious that the derivatives ARE wrong if the implementation is wrong.

It's neither full proof or fool proof but an absolute must is a check that the loss function is reducing. It quickly detects a common error that the sign came out wrong in my gradient call. Part of good practice one learns in grad school.

froobius 3 days ago | parent | prev [-]

You can pretty concretely and easily check that the AD primatives are correct by comparing them to numerical differentiation.

godelski 3 days ago | parent | prev [-]

I haven't watched the video but the text says they're getting like 60+% error on simple linear ODEs which is pretty problematic.

You're right, but the scale of the problem seems to be the issue