Hacker News new | ask | show | jobs
by szc 2359 days ago
Honesty, repeatability, numerical analysis. Canonicalization.

Honesty: how many times was the exact same data processed? Was the result cherry picked and the best one published? For the sake of integrity how is it possible to scientifically improve on this result? (example, your AI outputs some life altering decision?)

Repeatability: In science, if a result can be independently verified, it gives validity to the "conclusion" or result. Most AI results cannot be independently verified. Not indepentently verifiable really ought to give the "science" the same status as an 1800's "Dr. Bloobar's miracule AI cure".

Numerical Analysis: performing billions / trillions of computations on bit-restricted numerical values will introduce a lot of forward propagated errors (noise). What does that do? Commentary: Video cards don't care if a few bits of your 15 million pixel display are off by a few LSB bits, they do that 60 or 120 frames a second and you don't notice. It is an integral part of their design. The issue is, how does this impact AI models? This affects repeatability -> honesty.

If error of a quantized size is a necessarily required property to achieve "AI learning that converges", there is still an opportunity for canonicalization -- a way to map "different" converged models to explain why they are effectively the "same". This does not seem to be a "thing", why not?

In my opinion, in 2020, the AI emperor still has no clothes.

2 comments

For most of the engineering applications I work on, AI is useless.

When we talk about controlling machines, our control algorithms have mathematically proven strict error bounds, such that if we provide an input with a particular maximal error (e.g. from a sensor that has some error tolerance), we can calculate what's the maximum error possible in the response that our model would produce, and then use that to evaluate whether this is even an input that should be handled by the current algorithm or not.

These control algorithms all take some inputs, and use them to "predict" what will happen, and using that prediction, compute some response to correct it. These predictions need to happen much faster than real time, since you often need to perform an optimization step to compute an "optimal" response.

These predictions are usually computed using a reduced-order model, e.g., if you had to solve a PDE over 10^9 unknowns to compute the actual prediction, you can instead reduce that to a system with 10 unknowns, by doing some pre-computation a priori. Most tools to do these kinds of reductions developed in the last 60 years come with tight error bounds, that tell you, depending on your inputs, the training data, etc. what's the largest error than the prediction can have, so you can just plug these in into your control pipeline.

People have been plugin in neural-networks to control robots, cars, and pretty much anything you can imagine into these pipelines for 10 years, yet nobody knows what the upper bound on the errors that these neural-networks give for a particular input, training set, etc.

Until that changes, machine learning just makes your whole pipeline unreliable, and e.g. a car manufacturer must tell you that in "autonomous driving" mode you are liable for everything your car does, and not them, so you have to keep your hands on the driving wheels and pay attention at all times, which... kind of defeats the point of autonomous driving.

---

Prediction: we won't have any tight error bounds for real-world neural networks in the 2020-2030 time frame. These are all non-linear by design (that's why they are good), error bounds for simple non-linear interpolants are pretty much non-existent, people have tried for 20-30 years, and real-world NNs are anything but simple.

Control algorithms are a part of the problem. What about input data? There's nothing that comes close to NNs in answering a question, say, "Is there pedestrian ahead and what he/she will probably do?"

A control system doesn't need to be end-to-end neural, by the way.

> What about input data?

What about it? You get input data from data sources which, e.g., in a car it would be a sensor. The manufacturer of the sensor provides you with the guaranteed sensor accuracy for some inputs, which gives you the upper bound on the input error from that source.

That is, in a reliable control pipeline, the upper bounds on the errors of data sources are known a priori.

Sure, sensors can malfunction, but that's a different problem that's solved differently (e.g. via resiliency using multiple sensors).

> A control system doesn't need to be end-to-end neural, by the way.

Who's talking about end-to-end neural nets for control? If a single part of your control pipeline has unknown error bounds, your whole control system has unknown error bounds. That is, it suffices for your control pipeline to use a NN somewhere for it to become unreliable.

This doesn't mean that you can't use control systems with unknown error bounds somewhere in your product, but it does mean that you can't trust those control systems. This is why drivers still need to keep their hands on the steering wheel on a Tesla: the parts of the pipeline doing the autonomous driving use NNs for image recognition, and the errors on that are unknown.

This is also why all "self driving" cars have simpler data sources like ultrasonic sensors, radar, lidar, etc. which can be processed without NNs to avoid collisions reliably. You might still use NNs to improve the experience but those NNs are going to be overridden by reliable control pipelines when required.

> That is, in a reliable control pipeline, the upper bounds on the errors of data sources are known a priori.

Now we have natural neural networks in the control loop for some reason despite their unknown error bounds. To give another example: is there a sensor for vehicle placement relative to road edges with known upper error bound, which is less than width of the road? No, we have GPS, radar, lidar, camera data that we need to interpret somehow.

A car that reliably avoids collisions (Can it, though? It needs to predict road situation to do it reliably), but can occasionally veer off the road, doesn't strike me as particularly safe.

> to be overridden by reliable control pipelines when required.

Those reliable pipelines needs to be mostly reactive. And there's a limit on what they can do. You can't avoid a collision when a car emerges from around a corner with 0.1 seconds to react. You need complex processing of those "simple" data sources to detect zones that can't be observed right now and to assess a probability of the said situation.

All in all, we already have unreliable human part in the control loop of a vehicle. A control system that is provably robust in all real world situations will be the ultimate achievement and not a prerequirement for wide use of self-driving cars.

> Now we have natural neural networks in the control loop for some reason despite their unknown error bounds.

Not in any automatic control loops. All control loops that do this have a human as the final piece of the pipeline, and that human is legally responsible for the outcome of the control loop. That defeats the point of automatic control.

> To give another example: is there a sensor for vehicle placement relative to road edges with known upper error bound, which is less than width of the road?

No, which is why these control pieplines have a human in control. For the experimental pipelines that do not have a human in the end of the control loop, they do have other control pipelines to avoid collisions, and the only that their control algorithms guarantee is a lack of collisions, not the ability for the car to stay on a lane. That is, the car might leave the lane under some conditions, but if it does, it will detect other objects and avoid crashing into them (although those objects might crash into it).

> All in all, we already have unreliable human part in the control loop of a vehicle. A control system that is provably robust in all real world situations will be the ultimate achievement and not a prerequirement for wide use of self-driving cars.

Right now, control loops without proven error bounds are not allowed by certification bodies on any control-loop in charge of preserving human lives in the aerospace, automotive, medical, and industrial robotics industries.

Allowing control-loops without known error bounds to be in charge of human lives would lower the current standards of these industries. Could be done (the government would need to create a new kind of regulation for this), but at this point it is unclear how that would look like.

Well actually, they are allowed in the automotive world, re: Tesla.

They won't necessarily lower the standard for some applications if the alternative is just regular people at the wheel.

I would argue most machine learning papers that use public datasets have code available and are often also reproduced independently (sometimes just because of somebody's need to port between PyTorch/TensorFlow). Reproducibility is still a big problem in reinforcement learning, however.

People are definitely thinking carefully about issues of noise and quantization error. Low-precision or quantized neural networks are increasingly popular at both train and test time. And people deliberately introduce noise into neural networks for various reasons (dropout, robustness certificates) and then have to think about the effect on performance. Typically things are quite reproducible in these situations btw, for a given noise distribution.

Re: canonicalization, the theoretical work on "neural tangent kernels" might be relevant.

>I would argue most machine learning papers that use public datasets have code available and are often also reproduced independently

lol have you ever tried? i have several github issues on published models because i couldn't recreate that have responses like "i don't remember the parameters i used and we've moved on".

i’ve only run into stuff like that trying to get RL agents to train. Maybe GANs and other “hard to train” models are bad too idk. But generally things do actually seem to be reproducible.
>Maybe GANs and other “hard to train” models

yes GANs are definitely one of the places i've run into this but also with almost bog-standard resnets i've had issues.