Sunday, January 14, 2024

In praise of artificial stupidity

When I was looking for a career change after my physics doctorate, one obvious direction was data science. There were bootcamps for people in my position, it was highly paid and highly valued, there were still not as many specialized fully-fledged training programs to compete with, so I looked into it. And to be honest, it just wasn't clicking with me. I wanted to like it, as I did have a scientific background, as well as in computer science and software development, but it was just not my thing. I realized after a while that I wasn't satisfied in finding a model that seems to provide patterns that showed that it knew something - I wanted to know and understand things myself. So I instead went into game development, and particularly, computer graphics.

Years later, it seems like computers understanding things for us has just become more and more popular. Professional computer graphics conferences are full of machine learning algorithms and neural networks for many purposes, with hardware technologies to go with them - one talk at SIGGRAPH 2021 distinguished itself as providing a non-neural graphics algorithm. Moreover, computers are now capable of not only processing things for us, but of generating a lot of creative work, leading to a lot of concern and downright disruption of the lives and livelihoods of the people who do this for a living. More and more it seems like all these techniques and technologies under the rubric of artificial intelligence are on the upswing. Maybe I made a bad bet.

But I, personally, prefer artificial stupidity. Take Newton's second law: F = ma. It says that in the contexts that it explains, nature can be modeled as something fundamentally very stupid: it just takes forces and converts them to accelerations. Even if we model something complicated, like a large bridge, or a system made of up thousands of particles, and are not able to perform all the calculations ourselves, when we tell a computer to perform those calculations for us, we're just telling it to do something stupid faster than us. We still understand what it's doing.

Of course, there are aspects of what a computer does that are not as obvious as they used to be. We are using an abstraction that has become less and less representative of the actual behavior of the hardware. When we tell a computer to calculate things, it might perform these calculations in an order different from that which we gave it, under the constraint that the results are as if it had done them in the right order, but in practice, much more quickly than it could have had it just abided by our instructions. But even these ways of working are understandable. Maybe this will change in the future.

Generally, we are now faced with a lot of "algorithms" that people do not understand, but just accept as the way decisions are made. That's the opposite of what algorithms were always for me, when I was studying computer science - even if clever, they ultimately did understandable things, and if they were doing things in ways that did not make sense, that was a reason to investigate, not to shrug and accept what was given.

Computers are tools for our use. But to be tools, they have to be understood. It needs to be clear when they aren't working - and when they get to set both the results and the standards, we can't do that.

No comments:

Post a Comment