To begin with I would like to quote Louis Armstrong with the immortal line "What a wonderful world".
Many of the principles used within our modern computing systems are derived from the vast world around us - from our learning systems to how data is processed. Artificial Intelligence has been a term which has been thrown around for around 60 years, but what does that actually mean to us?
Intelligence is defined as the ability to use logic, to learn, to solve problems, to be creative, to plan, to remember, and to communicate. I have left two widely accepted definitions of intelligence out of the mix, emotional awareness and self-awareness. Self-aware intelligent systems fall into an area of AI that I will come to shortly, but true emotion is an area that will possibly never be introduced into computing systems. Emotional responses are chemical alterations to our state, triggering physical changes. However, if you consider this as a response to something rather than chemical changes, then systems can replicate emotional responses to situations. So where does this lead us when considering computer systems?
The answer is Autonomous Computing - an AI derivative of Biological Computing Systems in which biological principles are used to create a "living" system. Autonomous computer systems are detailed as "self-systems" (remember my reference to self-awareness?) Well this is one of the "self" components of an AC system. AC systems are self-configuring, self-healing, self-optimising, and self-protecting. Sound familiar? This is a description of the human autonomic nervous system, hence the link to biological computing.
How does this lead to Swarm Intelligence?
Simple, biological systems across the globe use some form of intelligence when determining which actions they should undertake, the logic component of intelligence. They pull the correct responses from their memory, planning what to do next with the current information, learning from the mistakes they make when deciding upon an outcome. Now take this model and use it alongside the logic for a computer system - it stores data in a database (memory), it uses logic to decide on outcomes, it plans ahead using historical data (cases), and responds the changes in its situation (emotion). Now for the Collective Intelligence component, or "Swarm Intelligence" as some refer to it.
"We are Borg."
Collective intelligence is one of the most prevalent systems that we come across on a daily basis, you may not be aware of it, but it is everywhere.
Where do we begin?
Collective intelligence is generalised as shared intelligence that becomes apparent when working as a group to a common outcome. The largest type is the Recommender System or as the mass majority of online store users calls it: "that thing that tells us what to do/buy". Every time we purchase an item online, two actions occur.
Firstly, it is tracked by meta data which is then used to provide similar categorical suggestions for us specifically and secondly, the collective grouping of purchases occurs. Afterwards we are asked to rate every item, from the service we get, to the quality of the film that we have watched. This is then fed into a recommender system that combines the weighting of meta data (e.g. Netflix film tags for example, sci-fi) and the rating given. The outcome of the algorithm is a weighted list of options that suit our previous habits, so we may get a list of sci-fi movies all based on aliens, that have a minimum rating of 4 (because we won’t watch anything lower than this). This is not only used within our favourite online stores (remember Facebook?) It presents lists of pages you might like based on previous likes, suggested friends based upon similar groupings like university attended, or games/apps based on what you use most within that platform.
"What do we need to do, and how do we do it?"
Back to our biological counterparts for this one. If you look around us, you will see many examples of swarm intelligence and for now we will start small. Bee colonies or Ant colonies are the prime example of a hierarchical swarm in which there are specific roles within the colony, all contributing to their collective goal. The Queen at the top, making all of the decisions based upon information provided by the Scouts, which in turn is acted out by the Workers, and protected from threats by the Soldiers. Each role has its own specific purpose - we have the Queen (Self-Configuring – Decision Making), the Scouts (Self-Optimising – information provision), the Workers (Self-Healing – provide food, and repairing the colony), and the Soldiers (Self-Protecting).
Computing systems can use the same hierarchical process, having a logic mechanism to act out the decision making process, a response system which optimises based upon information provided by the workers, healing itself when components break down by sending out workers, and protecting itself by sending out the soldiers to lock down components. The system begins with a basic set of rules, and is allowed to learn about threats, what outcomes work best in a given situation, and how to proceed when an unknown event occurs.
Skynet "becomes self-aware at 2:14AM, Eastern time, August 29th [1997]".
The line from Terminator 2, which created suspicion around the AC systems that painted a poor representation of what these systems actually entail. Within the development community there is a saying “a system is only as intelligent as the person who built it”. This simply refers to the knowledge that can be applied to the development of an AC system; primarily our own understanding of our own biological systems.
So, where is the link betweeen Collective and Swarm Intelligence?
Swarms, or general AC systems collaborate when working towards a common goal, sharing information between each level according to responsibility, using the information to complete their specific sub-goal. Collective intelligence is the generalised terminology which governs this type of system, in which a system can learn from the increased information throughput. Learning systems are the core of any AI system, where learning cases are derived from the activity of the general population (IF this_happens THEN do_this). Collective intelligence builds up the learning capability of the system, in which Recommender or Case Based Reasoning Systems provide the logical decision making component with information from which to determine outcomes from. The decisions made drive the swarm roles rule base, increasing their awareness of their specific roles.
Remember my earlier description (self-awareness is the core for any AC system, in which they learn, use logic, retrieve from memory, and communicate to the user or other components).
So, what benefit can these sort of systems provide to us?

AC systems can provide a robust solution, although in recent years Autonomic Computing itself has taken a hit, becoming more directed to its sub-divisions, or AI. Intelligent systems, such as swarms, use a specific tool for a specific job. Components within systems are developed with a core directive in mind, all moving towards a common goal, but never cross between their given tasks. Users will never be aware of what the system is actually doing in the background, so why try to make a single system entity that does everything? Why not componentise the entire system? Why not ensure that the system does not get its resources drained by a single component being over-worked?
Swarm intelligent systems provide a solution, wherein the common goal is achieved by creating an environment in which task completion is by each individual rather than everything trying to race to win.
Now to close out this part, throughout this I have discussed insects as a prime example. And of course computing systems, but not one of the largest swarms, humans.
Think about it using this example, a development team comprising of clients, project managers, designers, and developers. We all have a common goal, deliver the project, but all have given roles, the Queen (Client), the PMs (Scouts), the Lead Developers (Soldiers), and the designer/developer (Workers).
Makes sense, right?
Okay, how about the benefit to the client?
The general scenario is to build a learning system which can present the user with the capability to get customised content based on their interactions, with this being managed by the micro actions being undertaken by the system components in the background. The system can continue to evolve as data availability increases, and be able to provide correct suggestions to a user. The system can live in the background, ensuring that it is able to alter its own state depending on the types of request that some through, protect itself in the eventuality of an attack or issue arising, and heal or close off a component when an issue arises.
A system which can do what needs to be done without constant developer, or engineer intervention.
Biological systems can provide us with great inspiration. Right now they are influencing everything in technology from architecture and city planning, to the latest technological innovations in health.
If you wander around the cities and countryside, you will find inspiration everywhere.
No comments:
Post a Comment