Saturday, October 2, 2021

Rock-tober 02, 2021


Here's a well-known logic exercise. How would you describe a man with no hair on his head? The obvious adjective is bald. Easy enough.

How then would you describe a man with a single hair on his head? Does this still meet the criteria for being bald? Most would say yes. What if he had two hairs on his head? Or even three? At what point does the addition of a single hair revoke the man's membership in the Cue Ball Club?

People can generally scan a man's coiffure or lack thereof and instantly classify him as bald, balding, or even having the start of a receding hairline. Humans can take in these subtle nuances and not be thrown by them. We recognize a sliding scale and aren't constrained to bald / not bald.

Computers, on the other hand, having printed circuit boards and CPUs instead of grey matter, do not have this innate ability. In the digital world, everything is either on or off, yes or no, up or down. A programmer's job is to bridge this logic divide and encode instructions that satisfy the binary nature of a computer but still allow human operators to do useful work.

My introduction to programming was in college and the experience was literally the same as learning a foreign language. While I did well in Spanish, FORTRAN was a very different animal.

Professor: Boolean operators are used to parse the contents of both matrices to find common values.

Me: ¿Queue?

Instructions encoded in a specific computer language must conform to a very rigid style sheet, or syntax, in order for it to be successfully understood, or compiled, by the computer. You may have thought your college English professor was tough, but program compilers show absolutely no mercy.

One of the early jobs my high school classmate, Henry, had was with a firm whose sole business was the retirement of nuclear reactors. His team was tasked with recompiling the entirety of the company's custom code in order to be Y2K compliant. After a week or so of failing to get a specific subroutine to compile, Henry took it to one of the staff gurus hoping for some insight. After scanning Henry's syntax for a moment, he exclaimed, "Oh, yeah. You're missing a comma in this line."

Even if you've rigorously followed all the inflexible rules of syntax and compiled your program without errors, you're still not guaranteed a win. While your syntax may be perfect, your machine logic may be flawed. A computer will dutifully execute a successfully compiled program based on its logic, not yours.

A story I picked up years ago involved a programmer coding a flight simulator for an attack helicopter operating in the Australian outback. His task was to recreate how kangaroos would naturally scatter as the helicopter approached. Rather than start from scratch, he reused an existing subroutine written for the reaction of enemy soldiers on the ground. Basically, he did a cut and paste throughout the program, replacing all instances of "bad guy" with "cute kangaroo".

At first, his logic held. Running the simulation, the former "bad guys" now sporting their "cute kangaroo" avatars expectedly scattered in all directions as the helicopter closed on their position. However, while the programmer changed their label and look, he didn't change their hard-coded nature. After scattering, the kangaroos found cover and started firing on the helicopter.

A thought process known as "fuzzy logic" has been around for decades. It seeks to close the binary logic gap and allow an infinite set of values between 0 and 1. Being able to successfully implement this into a computer's operating system is critical to the present and future success of AI. It's yet to be determined if AI will give rise to a dystopian future a la Terminator, but it's already benefitted us tremendously in fields of science, medicine, economics, and even music.

With its subtleties of whole and half steps, meter, tonal dissonance and release, music is truly a complex human construct. Yet some smart cookies out there have already figured out how to distill these intricacies down to an AI program capable of generating original compositions.

This is a piece by AIVA, an artificial intelligence cranking out some interesting riffs. I'm curious how it would handle the question of baldness posed at the start of this missive.


"Go My Way" - AIVA