By Ashutosh Trivedi, Co-Founder at Spext
Society - Group of people living together, collaborating, competing and conflicting. Look around yourself, you might be interacting with so many people - other intelligent lives. When two intelligent life come in contact with each other, there could be either cooperation or conflicts or competition or maybe nothing. They both may just ignore each other. Each one has their own self interest, preferences and competencies.
In my previous series of building intelligent machines we looked at a single machines or software and understood how we could increase its decision making which as a result increased their interaction with the environment.
In this new series we’ll focus on collective interaction of two or more machines. This interaction of machines can be among each other or with the environment. We’ll also understand the effects of their actions on each other. Let’s call these machines - Agents. These agents don’t necessarily have to be intelligent - which means their interaction with the environment can be very limited. But, when you put many of such agents together in an environment where they can interact, some very very interesting things happen and we are going to go in details of it.
We’ll start with some very simple agents whose interaction is very limited, of-course intelligent agents will have much much more interesting and complicated behaviors. But we shouldn’t hurry and start with simple ones.
Before we start on this topic of AI, Let’s first understand why it is so important to understand collective behavior of agents. As always, we’ll take inspiration from biology and understand what humans and other organisms do as a society.
Humans are social animals, we love to live around other people. So many things in our lives are dependent on other human beings. We work collectively. We call this collective of humans - Society. This is not just cultural or psychological aspect of humanity only.
Nature is also organized in the form of a society of independent life units (biological cells), each of which is capable of autonomous decision-making.
These independent life units act according to self interest. When these life units become complex the self interest acquires functions such as beliefs, desires and intentions. Humans are complex organisms and have developed complex self interest. Unlike this horse, who has a very simple and rational self interest - Getting Food and reproduction.
The complexity of self interest increases even more with introduction of social aspects. There is also a component of our personality, which we have acquired from society, which shapes the way we make choices. It surpasses the urge of rational decision making and develops something called morals or ethics in humans. Freud describes this as super-ego. For examples we follow traffic lights even if no one is around.
Another important thing to note - Our collective behaviors also changes according to time. We call it culture. Cultures are nothing but collective behavior of humans in past. Present collective behavior is always making a culture for the future.
In future we are going to include machines into our society. How will we bring the societal understanding in these agents? Who will make sure their collective behavior is following same order which is beneficial for everyone, humans and machines both?
Let’s understand how we can describe a machine as an agent and what is autonomy.
An agent can be anything - a physical entity or a software which can take inputs from environment and then take action. For e.g. a switch or controller which observe something in the environment and then take action. A heat sensor can be an agent. But there is no society of such agents.
We are interested in agents with society. If there can be 2 or more agents and they interact with environment and even with each other through actions, they become interesting for study. They can be communicative or even non communicative.
There actions can be very simple hardwired rules. You will see that even with very very simple dumb agents, collectively very complicated behaviors can emerge. Multiple autonomous cars on road are very interesting and practical scenario of society of agents.
So, we are interested in agents, but only when there are plenty or more than one in an environment.
Imagine all the vehicles on the roads are autonomous. What would you do to make them follow a lane discipline or give right of way to an Ambulance? I am sure we can teach that too, to a machine or make a rule for such things but making rules defeats our own purpose of creating intelligent machines.
What is the relation of intelligence with autonomy?
Rational intelligence is about “ decision making”whereas autonomy is about “choice” to take that decision.
These are some autonomic properties :
- Self configuration
- Self healing
- Self tuning and self stabilization
Without ‘autonomy” does increasing decision making power of machines with machine learning, deep learning etc. really going to take us where we want to reach in AI?
Leaving decision making and intelligence for a bit, let’s focus on understanding this idea of agents and their collective systems. Our baby steps are going to be with some very dumb agents. We’ll deal with complicated things in later posts.
To understand other aspects of it, I have a better idea. I want to introduce to a game - The game of life…
In 1940s John von Neumann wanted to create a hypothetical machine, which has the ability to recreate itself, similar to our biological cells. The machine was hypothetical and Neumann discovered a very complicated mathematical model with very complicated rules. In 1970 British mathematician John Horton Conway developed interest in this problem and simplified Neumann’s ideas and presented it in Game of life.
This is a zero-player game :)
Sorry to bring down the excitement..
You might be thinking, what on earth.. A zero-player…
But trust me it’s exciting. You won’t regret knowing it. Read on…
Game of Life
You can interact with the Game of Life by deciding it’s initial state. That’s it! it needs no further input. Then it will advance or evolve and you can just observe it. It evolves in interesting patterns. As any other games it also has rules. So, let me tell you more about it.
The environment of the Game of Life is a grid of infinite square cells which looks like this-
Each cell can be in two possible states, alive or dead (populated and unpopulated, respectively). Here the cell which are yellow means it it populated otherwise unpopulated.
Every cell can interacts with its eight neighbours, which are the cells that are horizontally, vertically, or diagonally adjacent.
This game advances in steps or generation. This generation can be at your choice of interval. Let’s set that to 1 second. At each second state of the cells changes according to rules. Following transitions occur for each and every cell in the grid:
Under Population - Any live cell with fewer than two live neighbors dies, as if by underpopulation.
Overpopulation - Any live cell with more than three live neighbors dies.
Sustainability - Any live cell with two or three live neighbors lives on to the next generation.
Revive - Any dead cell with exactly three live neighbors becomes a live cell, as if by reproduction.
Simple ? let me simplify for you.
Each live cell has to check -
- 0 or 1 live neighbor - die!
- 2 or 3 live neighbor - live for next generation
- 4 or more neighbor - die!
Each dead cell has to check -
- 3 live neighbors - come to life ( become alive )
You can choose your initial state which means you can choose a pattern of cells you want to start with and then watch them evolve over time. You can play it here. But come back fast. There can be amazing patterns which can come out of these rules. The most famous one is Gosper Glider Gun.
There are some interesting common patterns which people have discover.
Still Life : These patterns do not change. They are solid part of a complex system you can design.
Oscillators : They repeat their pattern over a period of time. They are act like seed of unsuitability.
Gliders and Spaceships : These patterns can move in space retaining their structure and can go on infinitely.
Here agent is just a cell and acting according to the blueprint or declarative rule. Each agent is independent and yet together as a system we can see interesting patterns. Rules of game of life are also societal where each agent can only live or die with the existence of other agents.
So, what's the use of all of this?
These cell like agents are called - Cellular Automata. Cellular automata got popularized by Martin Gardner’s article about it in 1970s in Scientific American and since then it has developed into an alternative computational system. You can really compute things using it, which means writing algorithms to solve problems. It is used in cryptography and random number generation, which are considered hard problems. You should also check a very famous Rule 110 of cellular automata.
For computer scientists reading it - cellular automata is Turing complete. In other words, if other mechanical computations can solve a problem then cellular automata can also solve it given enough time. For serious programmers you should definitely check this chapter in Nature of Code.
To just play, you can go to this link and have fun with these patterns.
Alright! Game of life is a great example of emergence property of a system. We’ll have a great discussion on emergence in our next two posts. Where we’ll uncover more interesting informations about the system of agents - Multi Agent Systems. Such systems are used in understanding behaviors of multiple actors in an economy, game and strategy planning, studying policy decisions and most importantly simulating natural processes to uncover natural process behaviors.
Bio: Ashutosh Trivedi is a serial entrepreneur and has built startups with deep Artificial Intelligent technology. He is currently Co-Founder and CTO of Spext, a Silicon Valley based startup which is bringing power of AI to media by making it more smart, intelligent and interactive.
Original. Reposted with permission.
- Leveraging Agent-based Models (ABM) and Digital Twins to Prevent Injuries
- Interpreting Machine Learning Models: An Overview
- Learning mathematics of Machine Learning: bridging the gap