The Language of Skynet

A new Terminator movie comes out tomorrow, presenting an opportunity to discuss a controversial AI topic. Especially now with the whole drones / LAWS tug-of-war.

Skynet -- a war-fighting superintelligence -- is a "sexy" computer science project if there ever was one. I want to look at what it is from a technical perspective, what the real-life roots of such a system may be, how to feed it data, and the logical issues involved.

skynet-terminal
Image credit - Jake Sargeant's Vimeo

What is Skynet?

From the Terminator Wikia page:

Skynet is the world's first Automated Defense Network ... It is the controlling force behind all of the battle units. It pools data from battle units, develops tactics and coordinates attacks.

It's the antagonist of the franchise, viewing humanity as a threat and hence fighting against it. Let's ignore that for now.

A working definition: automated defense program that pools data from battle units, develops tactics and coordinates attacks.

How about a nice game of chess?

In the short-lived Terminator TV show, a very preliminary version of Skynet was a computer called 'The Turk.'

It's alluded that, although the machine just plays chess, it's more of a general game player:

Andy describes the Turk 2 in a way that could also apply to Skynet and the Terminator AI: having a hunger for learning but not always learning the right lessons. Terminator Wikia
Image credit - Terminator Wikia
Image credit - Terminator Wikia

General game playing is an exercise in AI programming. Instead of coding something that just plays chess or specializes in one game, you're coding something that can play any game.

So how does that work? There's a whole MOOC on it, but basically:

  • Two parties are connected by a server. Could be a GGP with a human, or two GGPs.
  • Server will monitor moves for validity, inform parties of state changes, and provide initial data.
  • Initial data contains the rules, in Game Description Language, plus the starting state.
  • Rules include conditions of success -- how to know there's a winner.
  • Game commences. For each move, the GGP applies some kind of algorithmic logic like Monte Carlo.

If you're into technical material, check out Hilmar Finnsson's Generalized Monte-Carlo Tree Search Extensions for General Game Playing (pdf link).

The WOPR from 1983's WarGames was a general game player repurposed for military applications.

Image credit - Ross Kingsland
Image credit - Ross Kingsland

The fuel of general game playing

Data. No matter how fancy you get with algorithms, GGP relies on data.

It needs just enough to get started. Rules and initial state.

IBM has a paper on "general description language" (pdf link). Versatile modeling language for conferring complex designs.

Game Description Language is the most common data format for GGP systems. However, there was a commercial program called Zillions of Games that had its own language. And yet another system called Metagame with another language.

As far as I'm concerned, these 3 languages for describing games are a subset of general description language. They confer complex design... of games.

Adaptable AI systems need to be fed information in this sort of way. Standardized format capable of describing what's pertinent to them.

For game playing, that's any game in the universe. Even ones that haven't been invented yet.

What does every game have? Going to the most fundamental traits:

  • Roles / players
  • Initial state
  • Possible moves
  • State updates
  • Terminal conditions
  • Goal state

Add syntax and you can describe any game to a machine.

Image credit - Zillions of Games
Image credit - Zillions of Games

General Warfare Description Language

Skynet is more concerned with war than games. To program it, you would need some kind of General Warfare Description Language.

Military technology is evolving rapidly. Tomorrow's nukes could be antimatter weapons, tomorrow's firearms could be directed energy.

This language has to rely on absolute fundamentals so as not to become obsolete. Examples:

  • Entities - outside of the system's direct control, like human soldiers and manned vehicles.
    • Friendly
    • Hostile
    • Civilian
    • Uncertain
  • Units - directly controllable by the system, like instances of LAWS. (pdf link to CSS analysis)
  • Methods - components of units with the capacity to affect entities, like firearms.

By no means is this comprehensive. If one were to build Skynet, it would have to be.

Issues with a GGP-based Skynet

The "pools data from battle units" part isn't too complex.

Fledge out General Warfare Description Language or something like it.

Start streaming data into it. Presumably most, if not all, surveillance is digitized in a mass processable way.

"Develops tactics and coordinates attacks" is where things get dicey. That's where the Lethal Autonomous Weapons Systems arguments are currently at, and where campaigns like Stop Killer Robots are coming from.

In the Terminator battle, things are fairly polarized. Humans versus machines. Each wants to wipe out the other.

Machines: scan with pyroelectric infrared sensors. Human? Shoot.

Humans: is that a machine or one pretending to be a human? Shoot.

Real life isn't like that. It's harder to teach a machine what to do.

Image credit - heavyarmor.wordpress.com
Image credit - heavyarmor.wordpress.com