Introduction to Adaptive Systems

Transcription

Introduction to Adaptive Systems
Introduction to Adaptive Systems
Marco A. Wiering
2
Contents
1 Introduction
1.1 Adaptive Systems . . . . . . . . . . . . . . . . . . . . .
1.2 Intelligent Agents . . . . . . . . . . . . . . . . . . . . .
1.3 Model for Adaptive Systems . . . . . . . . . . . . . . .
1.3.1 Reward function . . . . . . . . . . . . . . . . .
1.3.2 The internal state . . . . . . . . . . . . . . . .
1.4 Total System Perspective . . . . . . . . . . . . . . . .
1.4.1 An example: a room heater with a thermostat
1.5 Environments . . . . . . . . . . . . . . . . . . . . . . .
1.6 Multi-agent Systems . . . . . . . . . . . . . . . . . . .
1.6.1 Model of a multi-agent system . . . . . . . . .
1.7 Complex Adaptive Systems . . . . . . . . . . . . . . .
1.7.1 Predator-Prey systems . . . . . . . . . . . . . .
1.7.2 State dynamics . . . . . . . . . . . . . . . . . .
1.8 Outline of this Syllabus . . . . . . . . . . . . . . . . .
2 Artificial Life
2.1 Genetic Algorithms and Artificial Life . . . . . . .
2.1.1 Interaction between evolution and learning
2.2 Cellular Automata . . . . . . . . . . . . . . . . . .
2.2.1 Formal description of CA . . . . . . . . . .
2.2.2 Example CA . . . . . . . . . . . . . . . . .
2.2.3 Dynamics of the CA . . . . . . . . . . . . .
2.2.4 Processes in CA . . . . . . . . . . . . . . .
2.2.5 Examples of cyclic processes . . . . . . . . .
2.2.6 Elimination of basis patterns . . . . . . . .
2.2.7 Research in CA . . . . . . . . . . . . . . . .
2.3 Ecological Models . . . . . . . . . . . . . . . . . . .
2.3.1 Strategic Bugs . . . . . . . . . . . . . . . .
2.4 Artificial Market Models . . . . . . . . . . . . . . .
2.4.1 Are real markets predictable? . . . . . . . .
2.4.2 Models of financial theories . . . . . . . . .
2.5 Artificial Art and Fractals . . . . . . . . . . . . . .
2.6 Conclusion . . . . . . . . . . . . . . . . . . . . . .
3
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
7
7
9
10
11
12
13
13
16
18
18
19
19
20
22
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
25
26
27
28
28
29
29
29
30
31
32
35
36
37
37
38
38
40
4
CONTENTS
3 Evolutionary Computation
3.1 Solving Optimisation Problems . . . . . . . . . . . . .
3.1.1 Formal description of an optimisation problem
3.1.2 Finding a solution . . . . . . . . . . . . . . . .
3.2 Genetic Algorithms . . . . . . . . . . . . . . . . . . . .
3.2.1 Steps for making a genetic algorithm . . . . . .
3.2.2 Constructing a representation . . . . . . . . . .
3.2.3 Initialisation . . . . . . . . . . . . . . . . . . .
3.2.4 Evaluating an individual . . . . . . . . . . . . .
3.2.5 Mutation operators . . . . . . . . . . . . . . . .
3.2.6 Recombination operators . . . . . . . . . . . .
3.2.7 Selection strategies . . . . . . . . . . . . . . . .
3.2.8 Replacement strategy . . . . . . . . . . . . . .
3.2.9 Recombination versus mutation . . . . . . . . .
3.3 Genetic Programming . . . . . . . . . . . . . . . . . .
3.3.1 Mutation in GP . . . . . . . . . . . . . . . . .
3.3.2 Recombination in GP . . . . . . . . . . . . . .
3.3.3 Probabilistic incremental program evolution . .
3.4 Memetic Algorithms . . . . . . . . . . . . . . . . . . .
3.5 Discussion . . . . . . . . . . . . . . . . . . . . . . . . .
4 Physical and Biological Adaptive Systems
4.1 From Physics to Biology . . . . . . . . . . . . . . .
4.2 Non-linear Dynamical Systems and Chaos Theory
4.2.1 The logistic map . . . . . . . . . . . . . . .
4.3 Self-organising Biological Systems . . . . . . . . . .
4.3.1 Models of infection diseases . . . . . . . . .
4.4 Swarm Intelligence . . . . . . . . . . . . . . . . . .
4.4.1 Sorting behavior of ant colonies . . . . . . .
4.4.2 Ant colony optimisation . . . . . . . . . . .
4.4.3 Foraging ants . . . . . . . . . . . . . . . . .
4.4.4 Properties of ant algorithms . . . . . . . . .
4.5 Discussion . . . . . . . . . . . . . . . . . . . . . . .
5 Co-Evolution
5.1 From Natural Selection to Co-evolution . . . . .
5.2 Replicator Dynamics . . . . . . . . . . . . . . . .
5.3 Daisyworld and Gaia . . . . . . . . . . . . . . . .
5.3.1 Cellular automaton model for Daisyworld
5.3.2 Gaia hypothesis . . . . . . . . . . . . . . .
5.4 Recycling Networks . . . . . . . . . . . . . . . . .
5.5 Co-evolution for Optimisation . . . . . . . . . . .
5.6 Conclusion . . . . . . . . . . . . . . . . . . . . .
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
41
42
42
43
44
45
46
47
48
49
50
53
55
55
56
57
57
57
59
60
.
.
.
.
.
.
.
.
.
.
.
61
62
64
66
69
70
71
72
72
74
75
77
.
.
.
.
.
.
.
.
79
80
81
82
83
84
86
88
90
CONTENTS
6 Unsupervised Learning and Self Organising Networks
6.1 Unsupervised Learning . . . . . . . . . . . . . . . . . . .
6.1.1 K-means clustering . . . . . . . . . . . . . . . . .
6.2 Competitive Learning . . . . . . . . . . . . . . . . . . .
6.2.1 Normalised competitive learning . . . . . . . . .
6.2.2 Unnormalised competitive learning . . . . . . . .
6.2.3 Vector quantisation . . . . . . . . . . . . . . . .
6.3 Learning Vector Quantisation (LVQ) . . . . . . . . . . .
6.4 Kohonen Networks . . . . . . . . . . . . . . . . . . . . .
6.4.1 Kohonen network learning algorithm . . . . . . .
6.4.2 Supervised learning in Kohonen networks . . . .
6.5 Discussion . . . . . . . . . . . . . . . . . . . . . . . . . .
5
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
91
92
92
93
94
96
98
101
103
103
105
105
6
CONTENTS
Chapter 1
Introduction
Everywhere around us we can observe change, in fact without change life would be extremely
boring. Life implies change, since if there would not be any change anymore in the universe,
everything would be dead. Physicists think it is likely that after very many years (think about
10500 years), the universe would stop changing and enter a state of thermal equilibrium in
which it is extremely cold (near the absolute minimum temperature) and in which all particles
(electrons, neutrinos and protons) are isolated and stable (in this stable state even dark holes
will have evaporated). This means that the particles will not interact anymore and change
will stop. This view relies on the theory that the universe is expanding — and this expansion
is accelerating which is implied by a positive cosmological constant (the energy density of
vacuum). The theory that the universe would contract again after some while (which may
imply a harmonic universe) is not taken very serious anymore nowadays. So, after a long time,
the universe will reach a stable state without change. Fortunately since this takes so long, we
should not worry at the moment. Furthermore, there are some thoughts that intelligent life
may change all of this.
A realistic model of any changing system (e.g. the weather or the stock market) consists
of a description of the state at the current time step and some function or model which
determines in a deterministic way (only 1 successor state is possible) or in a stochastic way
(there are multiple possible successor states which may occur with some probability) the next
state given the current state. We will call the state of the system at time-step t: S(t). It
is clear that if we examine the state of the system over time, that there is a sequence of
states: S(t), S(t + 1), . . . , S(t + n), . . .. Such a sequence of states is often referred to as the
state-trajectory of the system. Note that we often consider time to be discrete, that is that all
time-steps are positive natural numbers: t ∈ {0, 1, 2, . . . , ∞}. We only use discrete time due to
computational reasons and simplicity, since representing continuous numbers on a computer
using bit-representations is not really feasible (although very precise approximations are of
course possible). Mathematically, we could also consider time as being continuous, although
the mathematics would involve some different notation.
1.1
Adaptive Systems
Although the “objective” state of the universe would consist of a single representation of all
elements, and therefore a single state, in reality we can observe different objects which can
be modelled as separate elements. Therefore instead of a single state at time t: S(t), we
7
8
CHAPTER 1. INTRODUCTION
may consider the world to consist of l objects and write Si (t) where 1 ≤ i ≤ l, to denote
the state of object i at time t. In this way there are trajectories for all different objects. If
all these objects would evolve completely separately, the universe would basically consist of
many sub-universes, and we can look at the trajectory of every single object alone. However,
in most real systems, the objects will interact. Interaction means that the state of some
object influences the trajectory of another object, e.g. think about Newton’s laws in which
gravity causes attraction from one object to another one.
At this point we are ready to understand what an adaptive system is.
An adaptive system is a system in which there is interaction between the system
and its environment so that both make transitions to changing states.
Of course it may happen that after a long period of time, the adaptive system enters a
stable state and does not change anymore. In that case we still speak of an adaptive system,
but if the adaptive system never made transitions to different states, it would not be an
adaptive system. So the first requirement is that an adaptive system is dynamic (changing),
at least for a while. Sometimes an adaptive system is part of another system. Think for
example about some robot which walks in a room, but does not displace any objects in that
room. We have to think about this situation as a room which has a robot inside of it. Since
the robot is changing its position, the room is also changing. So in this case the robot is the
adaptive system and the room is the changing environment.
Another requirement for an adaptive system is that the adaptive system will change itself
or its environment using its trajectory of states in order to attain a goal that may be to
simulate some process — to understand what will happen under some conditions, (e.g. we
can simulate what happens if we put ten sharks in a pool and do not feed them), or the goal
to optimize something (e.g. a robot which keeps the floors clean).
Finally there can be learning adaptive systems that have the ability to measure their
own performance and are able to change their own internal knowledge parameters in order
to improve their performance. In this case we say that the adaptive system is optimizing its
behavior for solving a particular task. If we call the state of the internal knowledge parameters:
SI (t) then learning means to change the state of the internal knowledge parameters after each
iteration (time-step) so learning will cause a trajectory: SI (t), SI (t + 1), . . . , SI (T ) where the
final state SI (T ) may be a stable state and has (near)-optimal performance on the task. When
you are not acquainted with machine learning, a learning computer system may seem strange.
However, machine learning receives a lot of interest in the artificial intelligence community
nowadays, and learning computer programs certainly exist. A very simple example of learning
is a computer program which can decide between option 1 and option 2. Each time it selects
option 1 the environment (possibly a human teacher) tells the system that it was a success, and
each time the program selects option 2 it is told that it is a failure. It will not be surprising
that with a simple learning program the system will quickly always select option 1 and
optimizes its performance. More advanced learning systems such as for speech recognition,
face recognition, or handwritten text recognition are also widely spread.
Other terms which are very related to adaptive systems are: cybernetics, self-organising
systems, and complex adaptive systems. The term cybernetics as it is used nowadays stems
from Norbert Wiener and is motivated in his book: Cybernetics: or, Control and Communication in the Animal and the Machine (1948). Before Norbert Wiener worked on gunfire
control. Freudenthal wrote about this:
1.2. INTELLIGENT AGENTS
9
While studying anti-aircraft fire control, Wiener may have conceived the idea of
considering the operator as part of the steering mechanism and of applying to
him such notions as feedback and stability, which had been devised for mechanical
systems and electrical circuits. ... As time passed, such flashes of insight were
more consciously put to use in a sort of biological research ... [Cybernetics] has
contributed to popularising a way of thinking in communication theory terms, such
as feedback, information, control, input, output, stability, homeostasis, prediction,
and filtering. On the other hand, it also has contributed to spreading mistaken
ideas of what mathematics really means.
There are many adaptive systems to be found, some examples are:
• Robots which navigate through an environment with some particular goal (e.g. showing
visitors of a museum a sequence of different objects or helping people in elderly homes
to walk around in the corridors)
• Learning systems which receive data and output knowledge, e.g. classifying the gender
of humans using photos of their faces, or recognising speech from recorded and annotated
speech fragments
• Automatic driving cars or unmanned aerial vehicles (UAVs)
• Evolutionary systems in which the distribution of the gene-pool adapts itself to the
environment
• Economical systems in which well performing companies expand and bad performing
ones go out of business
• Biological systems such as earthquakes or forest fires
1.2
Intelligent Agents
A fairly new concept in artificial intelligence is an Agent. The definition of an agent is a
computer system that is situated in some environment, and that is capable of autonomous
action in this environment in order to meet its design objectives. An agent possesses particular
characteristics such as:
• Autonomy: The agent makes its own choices based on its (virtual) inputs of the environment; even if a user tells the agent to drive of a cliff, the agent can refuse
• Reactivity: Agents are able to perceive their environment, and respond in a timely
fashion to changes that occur in it in order to satisfy their design objectives
• Pro-activeness: Agents are able to exhibit goal-directed behavior by taking the initiative
in order to satisfy their design objectives
• Social Ability: Intelligent agents are capable of interacting with other agents (and
possibly humans)
10
CHAPTER 1. INTRODUCTION
Examples of agents are robots, mail-clients, and thermostats. The advantages of using
the agent metaphor becomes clear when we have to control a system (e.g. a robot). First
of all it becomes easier to speak about the sensory inputs which an agent receives from its
environment though its (virtual) sensors. Using the inputs and possibly its current internal
state, the agent selects an action. The action leads to a change in the environment. The agent
usually has goals which it should accomplish. There can be goals of achievement (reaching a
particular goal state) or maintenance goals (keeping a desired state of the system). The goals
can often be easily modelled as a reward function which sends the agent utility values for
reaching particular states. The reward function could also give a reward (or penalty which is
a negative reward) for individual actions. E.g. if the task for a robot-agent is to go to office
R12 as soon as possible, the reward function could emit -1 for every step (a penalty) and a
big reward of +100 if the agent reaches the desired office.
An intelligent agent can perceive its environment, reason, predict, and act (using its
actuators). A rational agent acts to maximize its performance measure so that it will
reach its goal with the least amount of effort. An autonomous agent acts according to its
own experiences. So it does not execute a fixed algorithm which always performs the same
operations (such as a sorting algorithm), but uses its perceptions to direct its behavior. The
agent is modelled in a program which is executed on an architecture (computer, hardware).
The program, architecture, and environment determine the behavior of the agent.
1.3
Model for Adaptive Systems
We now want to make a formal model of an adaptive system which interacts with an environment. The objective state of the world is the state of the world at some time-step. Often
the adaptive system does not perceive this complete state, but receives (partial) inputs from
the environment. Next to current inputs from the environment, the system can have beliefs
about the world from its past interaction with the environment. Furthermore, the agent can
perform a number of actions, and chooses one of them at every time-step. The control method
which uses beliefs and inputs to select an action is often referred to as the policy. There is
also a transition function which changes the state of the world according to the previous
state and the action that the agent executed. Then there is a reward function which provides
rewards to the agent after executing actions in the environment. Finally the system requires
a function to update the internal (belief) state. So when we put these together, we get a
model M = < t, S, I, B, A, π, T, R, U > with:
• A time-element t = {1, 2, 3, . . .}
• A state of the environment at time t: S(t)
• An input of the environment received at time t: I(t)
• An internal state (belief) of the agent at time t: B(t)
• A number of possible actions A with A(t): the action executed by the agent at time t.
• A policy which maps the input and belief to an action of the agent: π(I(t), B(t)) → A(t)
• A transition-rule which maps the state of the environment and the action of the agent
to a new state of the environment: T (S(t), A(t)) → S(t + 1)
1.3. MODEL FOR ADAPTIVE SYSTEMS
11
• A reward-function which gives rewards to the system, for this there are two possibilities,
depending on whether the reward function is located in the environment so that we get:
R(S(t), A(t)) → R(t) or when the reward function is located in the agent and the agent
cannot know S(t) we have to use: R(I(t), B(t), A(t)) → R(t).
• An update function for the internal (belief) state of the agent U (I(t), B(t), A(t)) →
B(t + 1).
We can note a number of causal relations in the model which are depicted in Figure 1.1.
Causality in time
t
t
S
I
I
B
A
Causal Graph
I
S
B
I
B
A
R
t
t+1
S
A
S
I
B
A
B
R
A
Figure 1.1: The relations between the different elements of an adaptive system.
If we study the figure, we can see that there is one big feedback loop, going from Belief
to Action to State to Input to Belief. So Belief influences belief on a later time-step. Note
that not all adaptive systems use an internal state (belief), we will go into this in more detail
later.
1.3.1
Reward function
An agent usually has one or more goals which it wants to achieve or maintain. To formalise the notion of goal, one could use qualitative goals which can be true or false, such as
Goal(go home). Such qualitative goals are usually used in logical agents that try to make a
plan using operators which bring the current state to a goal state (the plan can be computed
forwards from the current state to the goal or alternatively backwards from the goal state to
the current state). Another possibility is to use a more quantitative notion of a goal using
a reward signal which is emitted after each time-step. The advantage of the latter is that it
becomes easier to distinguish between multiple plans which bring about a trajectory which
attains a specific goal. E.g. if an agent uses 100 steps or 20 steps to find the kitchen, then
clearly using 20 steps should be preferred. However, when qualitative goals are used, they
both become true after some time. Even if the planner tries to come up with the shortest
plan, efforts to execute the plan are not easily incorporated. Using a reward function we can
emit after each step a reward of -1 (so a cost of 1) and for reaching the goal, the agent may
12
CHAPTER 1. INTRODUCTION
be rewarded with a high bonus. In this way shorter paths are preferred. Furthermore, when
different actions require different effort, we can use different costs for different actions (e.g.
when climbing a mountain it costs usually a lot of effort to take steep paths). In decision
theory usually utilities or reward signals are used. The goal for the agent then becomes to
maximize its obtained rewards in its future. So its policy should maximize:
∞
X
γ t R(t)
(1.1)
t=0
Where 0 ≤ γ ≤ 1 is the discount factor which determines how future rewards are traded off
against immediate rewards. E.g. if we find it is important to get a lot of reward during the
current day and are not interested in the examination tomorrow, we will set the discount
factor to a very low number, maybe resulting in drinking a lot of beer in a bar and failing the
examination tomorrow. However, if we are interested in life-long happiness, we should use a
high discount factor (close to 1).
1.3.2
The internal state
Often no internal state (IS) is used, but without internal state we can only construct a
reactive agent. A reactive agent uses a policy which maps the current input to an action.
It does not use any memory of previous inputs or actions. For a game like chess, a reactive
agent is perfect, because it does not really matter how a particular board-position came
about, the best move only depends on the current state of the board which is fully accessible
(completely observable) for the agent. However, in case you are looking for a restaurant and
someone tells you “go straight until the second traffic light and then turn left.” Then you
have to use memory, because if you would see a traffic light you cannot know whether to turn
left or not without knowing (remembering) that you have seen another traffic light before.
In more complex agents, internal state is very important. Note that we define the internal
state as a recollection of past inputs and performed actions and not the knowledge learned
by the agent about how to perform (this knowledge is in the adaptive policy). If an agent
has to count to ten, it can map the next number using the previous one and does not need
to remember what was before. In such cases there is therefore only a previous state which
is the input for the policy. If the agent has to remember the capital of the United States,
and uses it a long time afterwards, then it uses some kind of internal memory, but in some
cases it would use long-term memory that is stored in the policy by learning the response
to the question “what is the capital of the US?” Therefore we can speak of long-term and
short-term memory, and the long-term memory resides usually in the policy (or knowledge
representation) whereas short-term information which needs to be remembered only for a
while is stored in short-term memory or the internal state. When we speak about belief (e.g.
facts which are believed by the agent with some probability), however, it can also be stored in
long-term memory, and therefore it would be better to make a distinction between short-term
internal state and long-term belief. For acting one would still use knowledge stored in the
policy, although this would usually be procedural knowledge (for learned skills) in contrast
to declarative knowledge (knowledge and beliefs about the world). For now we just use the
distinction between internal state (to remember facts) which is the short-term changing belief
or a policy for acting.
Humans possess a very complex internal state. If you close your eyes and ears, and stop
focusing on your senses, then you do not receive any inputs from the environment. But
1.4. TOTAL SYSTEM PERSPECTIVE
13
still, thoughts arise. These thoughts come from the internal state, most often the thoughts
are about things which happened not so long ago (like a minute ago, today or yesterday).
Of course you can also act and direct your thoughts, in this way your brain becomes the
environment and there is an interaction between you and your brain. Therefore when you
think about how it would be to walk on the beach, you use your imagination and some policy
for choosing what to do next. In that case, the internal state is only there to remind you of
the start of the walk on the beach and whether you saw the sun shining or not. In many
forms of meditation, one should close her eyes and concentrate on breathing. In this way,
there is no information at all in the brain, basically one starts to think about nothing at
all. In that case, there is no input and a diminishing internal state until it becomes empty
too, and this may cause a very relaxing experience. Note that meditation is not the same as
sleeping, some people say that sleeping is inside the inactive consciousness and meditation
is in the subconscious where people are still experiencing things, but can concentrate on
some thoughts (such as nothingness) much better. Finally, the opposite of a yogi is someone
who has schizophrenia. In schizofrenia, one believes very much in the current internal state,
and the actions focus on the information present in the internal state. So new inputs which
disprove strange ideas residing in the internal state are almost not taken into account, and it
is very difficult to convince such people that they are living in a reality set up by themselves
without any logic or correspondence to the real world.
1.4
Total System Perspective
An adaptive system (e.g. an agent) interacts with an environment. In principle there may be
multiple agents acting in the environment, and it is important to understand the interaction
between the agents and their environment. Therefore we usually have to look at the total
system which consists of the smaller parts. Looking at the complete system gives different
possible views on what the agents are and what they should do. For example, examine forest
fire control, the entities which play a role are the trees, fire-men, bulldozers, air-planes, fire,
smoke columns, the weather etc. If we examine these entities, we can easily see that only
the bulldozers, fire-men, and air-planes can be controlled, and therefore we can make them
an agent with their own behavior, goals, etc. Sometimes it is not so easy to abstract from
reality; we do not want to model all details, but we want a realistic interaction between the
agent and the environment.
Example 1. Examine a restaurant, which entities play a role and which could be modelled
as an agent? If we examine possible scenarios we can exploit our creativity on this topic. For
example the entities may be the kitchen, tables, chairs, cook, waiter, lights, etc. Now we might
consider to make them all agents, e.g. lights which dim if some romantic couple is sitting
below them, tables and chairs which can move by themselves so that a new configuration
of tables can be made automatically when a large group of people enters the restaurant etc.
Would such as futuristic restaurant not be nice to visit?
1.4.1
An example: a room heater with a thermostat
Consider a thermostat for a room heater which regulates the temperature of a room. The
heater uses the thermostat to measure the temperature of the room. This is the input of
the system. The heater has actions: heat, or do-nothing. The temperature of the room
will decrease (until some lower limit value) if the heater does not heat the room, and the
14
CHAPTER 1. INTRODUCTION
temperature of the room will increase if the heater is on. Figure 1.2 shows the interaction
between the heater and the temperature of the room.
Room
Heater
Input
Temperature
Action
Figure 1.2: The interaction between a heater and the temperature in a room.
Making a model for the heater
The state of the environment which should first be modelled is the temperature of the room
at a specific time. Since this is the environmental state, we denote it as S(t). The input of the
heater is in this case also the temperature of the room (although it might contain noise due
to imprecise measurements), we denote this input as I(t). The internal state of the heater is
denoted as B(t) and it can take on values whether the heater is on (heating) or whether it is
off (doing nothing). The possible actions of the heater are: heat or do nothing.
Policy of the heater. Now we have to design the policy of the heater which is the most
important element, since this is our control objective. Of course we can design the policy
in many possible ways, but if there is a reward function, the control policy should be the
one which optimizes the cumulative reward over time. The construction of the policy can be
done by manual design, although it could also be learned. We will not go into details at this
moment how learning this policy should be done, instead we manually design a policy since
it is easy enough to come up with a good solution (so learning is not required). An example
policy of the heater uses the following if-then rules:
1. If I(t) ≤ 21 then heat
2. If I(t) > 21 and I(t) ≤ 23 and B(t) == heat then heat
3. If I(t) > 21 and I(t) ≤ 23 and B(t) == do nothing then do-nothing
4. If I(t) > 23 then do-nothing
If we examine the rules, we can see they are exclusive, at each time-step only one rule can
be applied (sometimes the application of a rule is called a firing rule). If rules would overlap,
the system would become more complex, since some mechanism should then be constructed
which chooses the final decision. Research in fuzzy logic uses membership functions for rules,
e.g. if the temperature is warm then do-nothing. The membership function then determines
whether it is warm, e.g. is 24 degrees warm, and 27 degrees? This membership function should
1.4. TOTAL SYSTEM PERSPECTIVE
15
be designed (although it may also be learned) and the rules all fire using their activation which
is given by the application of the membership functions to the input. After this all actions
are integrated using the activations as votes. We will not go into detail into fuzzy logic here,
but just mention that it can be used when it is difficult to set absolute thresholds for rules
(such as 23 degrees in the above example).
Another issue which is important is that the used policy creates a negative feedback
loop. This means that if the temperature goes up, the heater will stop to increase the
temperature, so that the temperature will go down again. In this way the system remains
stable between the temperature bounds. If we would create a policy which would heat the
room more when the temperature becomes higher, we would create a positive feedback
loop, leading to a temperature which becomes very hot until possibly the heater will break
down. It is therefore important to note that negative feedback loops are important for stable
systems, although positive feedback loops can also be useful, e.g. if one want to have a desired
speed very fast, the system can increase the speeds with larger and larger jumps until finally
a negative feedback loop would take over.
Another way to construct the policy is to use decision trees. A decision tree makes a
choice by starting at the root node of the tree and following branches with choice labels until
we finally arrive at a leave node which makes a decision. A decision tree which is equivalent
to the set of above rules is shown in Figure 1.3.
ROOT
I(t) > 21 and
I(t) <= 23
I(t) <= 21
HEAT
I(t) > 23
DO NOTHING
B(T) = HEAT
HEAT
B(T) = DO NOTHING
DO NOTHING
Figure 1.3: The policy of the heater designed as a decision tree.
The update and transition function. To make the model of the system complete,
we also have to specify how we update the belief and environmental transition function. In
our simple model, these are easily obtained (although the environmental transition function
might depend on a lot of different factors such as the temperature outside, whether a door or
window is open etc.). The belief update function is modelled as follows:
• U (∗, ∗, heat) → heat
• U (∗, ∗, do nothing) → do nothing
Where ∗ denotes the don’t care symbol which can take on any value for the function (or
rule) to be applied. So the update function for the internal state or belief just remembers
the previous action. We make the following simple transition function of the environment
(in reality this transition function does not have to be known, but we construct it here to
16
CHAPTER 1. INTRODUCTION
make our model complete). If the heater is on then the temperature will increase (let’s say
that it is a simple linear increasing function, which is of course not true in reality due to the
effect that there is an upper limit of the temperature, and that more heat will be lost due to
interaction with the outside when the temperature difference is larger. In reality the heat-loss
is a linear function of the temperature difference, but in our model we do not include the
outside temperature, since then isolation will also be important and we get too many details
to model). We also make a simple transition function when the heater is off. So using our
simple assumptions we make the following environmental transition function:
• T (S(t), heat) → S(t) + 0.1
• T (S(t), do nothing) → S(t) − 0.05
The reward function is only needed for self-adapting systems. However, we can also use it
as a measurement function on the performance of a policy. Let’s say that we want the room’s
temperature to remain close to 22 degrees, then the reward function may look like:
R(I, ∗, ∗) = −(I − 22)2
Dynamics of the interaction
When we let the heater interact with the temperature of the room, we will note that there
will be constant change or dynamics of a number of variables. The following variables will
show dynamics:
• The state of the environment S(t)
• The input of the heater (in this case equal to the state of the environment): I(t)
• The action of the heater: A(t)
• The received reward: R(t)
• The internal state of the heater (in this case equal to the previous action of the heater):
B(t)
If we let the temperature of the room start at 15 degrees, we can examine the dynamics
of the room’s temperature (the state of the environment). This is shown in Figure 1.4.
1.5
Environments
The interaction with the environment depends a lot on the environment itself. We can make
a very simple system which shows very complex behavior when the environment is complex.
One good example of this is Simon’s ant. Herbert Simon is a well-known researcher in artificial
intelligence and he thought about a simple ant which follows the coast line along the beach.
Since the waves make different complex patterns on the beach, the ant which follows the coast
line will also show complex behavior, although the design of this ant may be very simple.
On the other hand, the environment can also make the design of a system much more
complicated. There are some characteristics of environments which are important to study,
before we can understand how complex the construction of a well performing system will be.
The following characteristics of environments are most important:
1.5. ENVIRONMENTS
17
25
20
Temperature
15
10
5
0
10
30
50
70
90
110
130 Time
Figure 1.4: The dynamics of the room’s temperature while interacting with the heater with
the given policy. Note that there is a repetition in the dynamics.
• Completely / Partially observable. The question here is about the perception of
the agent of the environment. Can it perceive the complete state of the environment
through its (virtual) sensors? Then the environment is completely observable, this is
for example the case in many board-games (but not in Stratego).
• Deterministic / Non-deterministic. If the next state of an environment given the
previous state and action of an agent is always unique, then it is a deterministic environment. If the successor state can be one of many possible states, usually a probability
distribution is used and then the environment is non-deterministic (also called stochastic).
• Episodic / Non-episodic. If the task requires always a single interaction with the
environment, then the interaction with the environment is episodic. In case a complete
sequence of actions should be planned and executed, the interaction with the environment is non-episodic.
• Static / Dynamic. If the environment does not change when we do not regard the
action of the agent, then the environment is static. In case the environment changes on
its own independently of the action of the agent, we say the environment is dynamic.
In case the reward function changes, we say the environment is semi-dynamic.
• Discrete / Continuous. If the state of the environment only uses discrete variables
such as in chess, the environment is discrete. If continuous variables are necessary to
accurately describe the state of the environment, the environment is continuous (as is
the case with robotics where the position and orientation are continuous).
If we consider these dimensions to characterise the environment, it will not be surprising
that the environments that are most complex to perfectly control are partially observable,
non-deterministic, non-episodic, dynamic, and continuous. We may always be able to try to
simulate these environments, although a good model is also complicated (as for example for
weather prediction).
We can make a list of environments and show the characteristics of these environments.
Figure 1.5 shows such a mapping of tasks (and environments) to characteristics.
18
CHAPTER 1. INTRODUCTION
Completely
observable
Deterministic
Episodic
Static
Discrete
Environment
Chess with clock
Chess without clock
Poker
Backgammon
Taxi driving
Medical diagnosis
Object recognition
Interactive english teacher
Yes
Yes
No
Yes
No
No
Yes
No
Yes
Yes
No
No
No
No
Yes
No
No
No
No
No
No
No
Yes
No
Semi
Yes
Yes
Yes
No
No
Semi
No
Yes
Yes
Yes
Yes
No
No
No
Yes
Figure 1.5: A mapping from environments and tasks to characteristics.
1.6
Multi-agent Systems
In particular tasks, there are multiple agents which may be working together to solve a
problem, or they may be competing to get the best out of the situation for themselves. In
the case of multiple agents interacting with each other and the environment, we speak of a
Multi-agent System (MAS). In principle the whole MAS could be modelled as one superagent which selects actions for all individual agents. However, thinking about a MAS as a
decentralised architecture has some advantages:
• Robustness. If the super-agent would stop working, nothing can be done anymore,
whereas if a single agent of a big group of agents stops to work, the system can still
continue to solve most tasks.
• Speed. In case of multiple agents, each agent could easily run on its own computer
(distributed computing), making the whole system much faster than using a single
computer.
• Simplicity to extend or modify the system. It is much easier to add a new agent running
its own policy than to change one big program of the super-agent.
• Information hiding. If some companies have secret information, they do not want other
agents to access that information. Therefore this information should only be known to
a single agent. If everything runs on a super-agent the privacy rules are much harder
to guarantee.
1.6.1
Model of a multi-agent system
If we are dealing with a MAS, we can still model the individual agents with the same formal
methods as with single agents, so with inputs, actions, internal state, policy, reward function,
and belief update function. In many cases, however, there will also be communication between
the agents. In that case the agents possess communication signals (usually some language)
and they map inputs and internal states to communication signals which they can send to
1.7. COMPLEX ADAPTIVE SYSTEMS
19
individual agents or broadcast to all of them. Communication is important if the agents have
to cooperate. Coordination of agents is important to optimize a MAS, since otherwise they
might all start to do the same job and go to the same places etc. It is clearly more efficient if the
agents can discuss among themselves what role they will play in solving a task. Furthermore
there may also be management agents which give roles and tasks to individual agents etc.
A current challenging research field is to study self-adaptive structures or architectures of
multi-agent organisations.
1.7
Complex Adaptive Systems
Some systems consisting of multiple interacting entities are called complex adaptive systems.
The difference between complex adaptive systems and MASs is that in complex adaptive
systems, the individual entities do not have a goal, they are just part of the overall system.
Basically, these entities are smaller than a complete agent (think about the difference between
your body-cells and you as a complete organism). Therefore complex adaptive systems also
do not have to be able to control some process or solve some task, they are more important for
simulating processes. We do not consider such complex adaptive systems as being rational,
although they may still adapt themselves and can be very complex. In complex adaptive
systems, simple rules can create complex behavior if multiple simple entities interact. We
then often say that the overall system behavior emerges from the interaction between the
entities. Examples of processes which we can model with complex adaptive systems are:
• Traffic consisting of many vehicles or other users of infrastructures
• Forest fires consisting of trees, grass, etc. which propagate the fire
• Infection diseases consisting of viruses and virus-carriers
• Magnetism consisting of elementary particles which can be positively or negatively
charged
• Ecological systems which consist of many organisms which can eat each other and
reproduce
• Economical markets which consist of many stocks and investors
In some cases of the above processes, we might also use a MAS to model them and try to
optimize the process. This is especially clear in traffic or economical markets.
1.7.1
Predator-Prey systems
A simple example of a system consisting of multiple entities is a predator-prey system. The
predator looks for food (prey) to eat and produces offspring. The prey also looks for food,
reproduces itself, and tries to circumvent being eaten by predators. The interesting phenomenon is that the population of prey and predators depend on each other. If there are
many predators, the population of prey will decrease since many of them will be eaten. But
if there are few prey, the population of predators will decrease since there will not be enough
food for all of them. If there are then few predators left, the population of prey will increase
again, leading to repetitive dynamics.
20
CHAPTER 1. INTRODUCTION
Lotka-Volterra Equations. Lotka and Volterra captured the predator-prey system
with a couple of equations. We will call the size of the prey-population x and the size of
the predator-population y. Now the environmental state S(t) = (x(t), y(t)). The state will
change according to the following two rules:
• x(t + 1) = x(t) + Ax(t) − Bx(t)y(t)
• y(t + 1) = y(t) − Cy(t) + Dx(t)y(t)
When we choose starting population sizes: S(0) = (x(0), y(0)) and we take some parameter
values for A, B, C, D we get a dynamical system which behaves for example as seen in Figure
1.6.
Figure 1.6: The predator-prey dynamics using Lotka-Volterra equations. Note that the predator population y will grow if there is a lot of prey and the prey population will decrease if
there are many predators.
1.7.2
State dynamics
We have seen that the state of the environment shows a particular kind of dynamics. We can
distinguish between three kinds of dynamics: dynamics to a Stable point, dynamics leading
to a periodic cycle, and chaotic dynamics. When the state enters a stable point, it will
always stay there, this means that the dynamics basically ends and S(t+1) = S(t) for all t ≥ n
where n is some time-step where the process enters the stable point. We can compute what
the stable point of the dynamics of the Lotka Volterra equations will be depending on the
parameters A, B, C, D. Whether the process will enter the stable point may also depend on
the initial state. The following should hold for a stable point for the Lotka-Volterra process:
(x(t + 1), y(t + 1)) = (x(t), y(t))
Then we can find a stable point S(∗) = (x(∗), y(∗)) as follows:
x(∗) = x(∗) + Ax(∗) − Bx(∗)y(∗)
0 = A − By(∗)
A
y(∗) =
B
y(∗) = y(∗) − Cy(∗) + Dx(∗)y(∗)
(1.2)
(1.3)
(1.4)
(1.5)
1.7. COMPLEX ADAPTIVE SYSTEMS
21
0 = −C + Dx(∗)
(1.6)
C
(1.7)
x(∗) =
D
Periodic Cycle. For a periodic cycle, after some initial transient process, the statesequence should always repeat itself after some period of fixed length. We have already seen
two processes which lead to a periodic cycle, the heater and the Lotka-Volterra equations.
Formally for a periodic cycle the following should hold:
S(t) = S(t + n)
S(t + 1) = S(t + n + 1)
.
.
.
S(t + n − 1) = S(t + 2n − 1)
Here we say that the length of the periodic cycle is n. Note that a stable point is equivalent
to a periodic cycle of length 1. Sometimes a process slowly converges to a cyclic behavior.
We then say that the final attractor is a limit cycle.
Chaotic dynamics. In case the process does not lead to a stable point or to a periodic
cycle (also called a stable limit cycle), the process might be called chaotic although there
are some additional conditions for a true definition of chaos explained below. In chaotic
dynamics it is very hard to predict what will happen after a long time, although according to
the above definition alone it may be simple in some cases, e.g. the equation S(t+1) = S(t)+1
would according to the above definition also lead to chaotic dynamics. This is of course very
strange, since we always think about chaotic processes as being unpredictable. Therefore we
have to include the condition that the process is non-linear and sensitive to initial conditions.
This means that when we start with two initial states S1 (0) and S2 (0) which may be very
close to each other, that the difference between the trajectories will increase (exponentially)
after iterating the process over time. In the case of the equation S(t + 1) = S(t) + 1 the
difference between two starting states will not grow but remain the same and the system is
clearly linear. But there are processes which are non-linear for which the difference between
the state trajectories grows which are still predictable such as S(t + 1) = S(t) × S(t) where
S(0) ≥ 1. Therefore even this requirement may not be strict enough, and to eliminate such
trivial cases we have to add the condition that the state trajectory does not go to infinity, but
remains bounded in some subspace. This bounded subspace is called a chaotic attractor, and
although the state trajectory will remain in the attractor, it is unpredictable where it will be
if we do not know the precise initial state and model of the chaotic system. All we can do is
to compute a probability function over this subspace to guess in which area the process will
be at some time-step.
The requirement that the difference between two initial states will grow makes the prediction problem much harder, since if our measured initial state has some small error ǫ then
after some time, the error will have grown drastically so that our prediction of the state will
not be valid or useful anymore. Since measuring a state and the change of the state for a
complex non-linear system at the same time is impossible (for change we need to look at the
difference between two states), we can never have a precise measurement of the current state
(where the state includes position and velocity or change). Therefore, when the process is
chaotic, it cannot be predicted over time.
Another interesting thought is that chaos is not really possible on a computer, since there
are a fixed number of states on the computer. Therefore, since a chaotic system always uses a
22
CHAPTER 1. INTRODUCTION
deterministic transition function, we will always come back some time to the same state and
then go to the next state etc. leading to some periodic cycle of very large period. It is also
true that it is often hard to distinguish between chaotic dynamics and a periodic cycle, since
the period may be so large that the process appears to be chaotic, but in reality has a very
large period which did not appear in the generated state trajectory. Finally we should note
that there is a big difference between non-determinism (randomness) or a chaotic process.
A chaotic system is deterministic, but may appear random to an observer. On the other
hand in non-determinism the process will never follow exactly the same state trajectory,
so one might think such processes are chaotic. However, in a chaotic system we could in
principle predict future states if the current state is exactly known. The impossibility to
predict future states comes from the impossibility to know exactly the current state. On
the other hand, in a non-deterministic system, even if we would know the exact initial state,
prediction of a trajectory would be impossible since there would be many possible future
trajectories. If we examine random-number generators, they are in reality pseudo-random
number generators which provide us with seemingly random numbers, but basically it draws
the random numbers from a huge periodic cycle of fixed length. Real randomness probably
exists in nature, although it is extremely difficult to find out whether it is not deterministic
chaos which makes nature to appear random.
1.8
Outline of this Syllabus
This syllabus describes a wide variety of adaptive systems, ranging from artificial life models
such as cellular automata to machine learning methods such as artificial neural networks.
Since the topic of adaptive systems is so broad, there may not always be an evident connection
between the different topics. For example in machine learning, knowledge may be learned
from examples. The interaction with the environment may not be very clear in such cases,
since the knowledge representation is changing according to the learning dynamics generated
by the interaction between the learning algorithm and the examples. Therefore the concept of
environment should be considered also very broad ranging from the system itself or examples
to a real world environment. In this syllabus the following topics will be covered:
• Cellular Automata which are useful as models for complex adaptive systems and studying artificial life.
• Biological adaptive systems in which systems inspired on swarm (e.g. ants) intelligence
are used to solve complex problems
• Evolutionary computation in which a model of evolutionary processes is used to solve
complex optimisation problems
• Robotics, where physical robots interact with an environment to solve some specific
task
• Machine learning, in which different algorithms such as decision trees, Bayesian learning,
neural networks, and self-organising maps are studied in their way of learning knowledge
from examples. This knowledge may then be used to solve classification tasks such as
mapping mushroom-features to the concept whether they are edible or poisonous.
1.8. OUTLINE OF THIS SYLLABUS
23
• Reinforcement learning, which is a part of machine learning, but where the focus is more
on an agent which can learn to behave by interacting with some specific environment.
24
CHAPTER 1. INTRODUCTION
Chapter 2
Artificial Life
Artificial life researchers study computation models of life-like and emergent processes in
which complex dynamics or patterns arise from the interaction between many simple entities.
Artificial Life is a broad interdisciplinary field where research runs from biology, chemistry,
physics to computer science and engineering. The first artificial life workshop was held in
Santa Fe in 1987 and after this the interest in this field grew tremendously. One of the most
ambitious goals of artificial life is to study the principles of life itself. To study the properties
of life there are basically two roads; to study carbon life forms and their development (mainly
done in biochemistry) and to examine life forms and their properties using a computer. What
both fields have in common is that life emerges from building blocks which cannot be called
alive on their own. So the interaction between the elements makes the whole system appear
to be alive. Since the interactions are usually not well understood, the study to artificial life is
usually holistic in nature, which means that we look at the whole system without being able to
make clear separations in smaller modules. Still today many scientists think that life evolved
from chemicals in the primordial soup (containing a large number of carbon compounds),
although some scientists believe that life may have come from space on a comet. Some assert
that all life in the universe must be based on the chemistry of carbon compounds, which is
also referred to as “carbon chauvinism”.
Thus, artificial life constructs models and simulates them to study living entities or other
complex systems in computer systems. Some research questions which it tries to answer are:
• Biology: How do living organisms interact in biological processes such as finding/eating
food, survival strategies, reproduction?
• Biochemistry: How can living entities emerge from the interaction of non-living chemical
substrates?
• Sociology: How do agents interact in artificial societies if they have common or competing goals?
• Economy: How do rational entities behave and interact in economical environments
such as in stock-markets, e-commerce, auctions, etc.?
• Physics: How do physical particles interact in a particular space?
• Artificial Art: How can we use artificial life to construct computer art?
25
26
CHAPTER 2. ARTIFICIAL LIFE
One important goal of artificial life is to understand the source and functionality of life.
One particular way of doing that is to make computer programs which simulate organisms
using some encoding (might be similar to DNA encoding, but the encoding can range to
computer programs resembling Turing machines). The development of artificial creatures
which can be called alive also requires us to have a good definition of alive. For this we cite:
http://www.wordiq.com/definition/Life
In biology a conventional definition of an entity that is considered alive has to
exhibit all the following phenomena at least once during its existence:
• Growth
• Metabolism; consuming, transforming and storing energy/mass growing by
absorbing and reorganizing mass; excreting waste
• Motion, either moving itself, or having internal motion
• Reproduction; the ability to create entities which are similar to itself
• Response to stimuli; the ability to measure properties of its surrounding
environment, and act upon certain conditions
A problem with this definition is that one can easily find counterexamples and
examples that require further elaboration, e.g. according to the above definition
fire would be alive, male mules are not alive as they are sterile and cannot reproduce, viruses are not alive as they do not grow. One could restrict the definition
to say that living organisms found in biology should consist of at least one cell
and require both energy and matter to continue living, but these restrictions do
not help us to understand artificial life. Finally one could change the definition
of reproduction to say that organisms such as mules and ants are still alive by
applying the definition to the level of entire species or of individual genes.
As we can see; there are still many possible definitions and just as with the concept
intelligence, we may not easily get one unique definition of “alive”.
2.1
Genetic Algorithms and Artificial Life
One well-known algorithm in artificial intelligence that is based on evolutionary theory is the
genetic algorithm (GA). Darwin speculated (without knowing anything about the existence of
genes) that evolution works by recombination of material of parents which pass the selective
pressure of the environment. If there are many individuals only some can remain alive and
reproduce, this selection is very important for nature since it allows the best apt individuals
to reproduce (survival of the fittest). Once parents are selected they are allowed to create
offspring and this offspring is slightly mutated so that the offspring will not contain exactly
the same genetic material as the parents. Genetic algorithms can be used for combinatorial
optimization problems, function optimization, robot control, and the study of artificial life
societies. We will not go into detail into genetic algorithms here, since they will be described
thoroughly in a separate chapter. Shortly, genetic algorithms are able to mimic the concept
of reproduction. Say some artificial organism is stored in some representation, such as a
bitstring (a string of 0’s and 1’s). Then we can take two parents, cutoff their string in two
parts and glue these parts together to create a new offspring, which could possibly be better
2.1. GENETIC ALGORITHMS AND ARTIFICIAL LIFE
27
in the task than its parents. Since parents which are allowed to reproduce are selected on
their fitness in the environment, they are likely to possess good blocks of genetic material
which may then be propagated to the child (offspring). In combination with artificial life,
genetic algorithms allow us to study a wide variety of topics, including:
• Robots which interact with an environment to solve some task
• Competitive evolutionary models such as arm-races studied by Karl Sims. In the armraces experiment different morphologies and behaviors were evolved in 3D structures
where two organisms had to compete against each other by harming the opponent. The
winning individual passed the test and was able to reproduce leading to a wide variety
of improving morphologies and behaviors.
• Models of social systems such as the study of emerging societies of individuals which
work together
• Economical models such as the development of buying and selling strategies
• Population genetics models where one examines which groups of genes remain in the
population
• The study of the interaction between learning and evolution
2.1.1
Interaction between evolution and learning
In evolutionary theory, sociology, and psychology one often considers the difference between
nature and nurture. Nature is what a newborn organism possesses at its birth. E.g. Chomsky
claims that a lot of knowledge for learning a language is already born in the brain of a
child when it is born. Nurture is the knowledge, skills, and behaviors which an organism
develops through its adaption and learning process while interacting with an environment.
The nature/nurture dilemma is often to say whether something was born inside an organism
or whether it developed due to the interaction with the environment. Examples of this are
whether criminals are born like a criminal or whether they become one due to their education
and life. Another example is whether homo-sexuality or intelligence is inborn and stored in
the genes or not. Often it is better to say that nature gives a bias towards some behavior
or the other, and nurture causes some behaviors to be expressed. E.g. if someone has genes
which may be similar to other people having schizophrenia, it is not necessary that such a
person would develop the disease, this depends a lot on circumstances but if such a person
would suffer from a lot of stress, the genes may be expressed with a much bigger probability.
In artificial life simulations a number of machine learning algorithms can be used which
can learn from the interaction with the world. Examples of this are reinforcement learning
and neural networks. Although these topics will be discussed in separate chapters, they could
also be used together with genetic algorithms in an environment consisting of many entities
that interact and evolve. Now if we want to study the interaction between evolution and
learning we see that evolution is very slow and takes place over generations of individuals,
whereas learning is very fast and takes place within an individual (agent). The combination
of these 2 leads to two possible effects:
• Baldwin effect. Here an individual learns during its interaction with the environment.
This learning may increase the fitness of the individual so that individuals which are
28
CHAPTER 2. ARTIFICIAL LIFE
good in learning may receive higher fitness values (are better able to act in the environment) than slow learning individuals. Therefore individuals which are good in learning
may reproduce with a higher probability leading to offspring which are potentially also
very good in learning. Thus, although the skill of learning is propagated to offspring,
learned knowledge is not immediately propagated to the offspring.
• Lamarckian learning. Here an individual learns during its life and when it gets
offspring it also propagates its learned knowledge to its children which then do not have
to learn this knowledge anymore.
Lamarckian learning is biologically not very realistic, but in computer programs it would
be easily feasible. E.g. suppose that a group of robots all go to learn to use a language,
then if they meet they can create offspring which immediately possess multiple languages. In
this way the evolutionary process could become much more efficient. Although Lamarckian
learning has not been realistic from a biological point of view until today, research in genetic
engineering has currently invented methods to change the DNA of an organism which can
then be transmitted to its offspring.
2.2
Cellular Automata
Cellular automata are often used by researchers working in artificial life. The inventor of
cellular automata (CA) is John von Neumann who also devised the modern computer and
played an important role in (economical) game theory. Cellular automata are decentralised
spatial systems with a large number of simple, identical components which are locally connected. The interesting thing of cellular automata is that they are very suited for visualizing
processes, and that although they consist of simple components and some simple rules, they
can show very complex behaviors. CA are used in a number of fields for biological, social,
and physical processes such as:
• Fluid dynamics
• Galaxy formation
• Earthquakes
• Biological pattern formation
• Forest fires
• Traffic models
• Emergent cooperative and collective behavior
2.2.1
Formal description of CA
A cellular automaton consists of two components:
• The cellular space. The cellular space consists of a lattice of N identical cells. Usually
P
all cells have the same local connectivity to other cells. Let
be the set of possible
P
states for a single cell. Then k = | | is the number of possible states per cell. A cell
with index i on time-step t is in state sti . The state sti together with the states of the
cells with which i is connected is called the neigborhood nti of cell i.
2.2. CELLULAR AUTOMATA
29
• The transition rule. The transition rule r(nti ) gives an update for cell i to its next
state sit+1 as a function of its neigborhood. Usually all cells are synchronously (at the
same time) updated. The rule is often implemented as a lookup-table.
2.2.2
Example CA
The following gives an example of a CA consisting of a 1-dimensional lattice of 11 states with
periodic boundary conditions. The periodic boundary conditions mean that the most left
state has the most right state as its left neighbour and vice versa. Since the neigborhood
of a cell consists of itself, the state of the cell to the left and to the right, the size of the
neigborhood is 3. Therefore, since the number of possible states of a single cell is only 2 (1
or 0), the transition rule consists of 23 = 8 components; for each neigborhood there is one
possible successor state for each cell. Note that in this example there are 211 = 2048 possible
complete state configurations for the CA.
Rule Table R:
Neighborhood: 000 001 010 011 100 101 110 111
Output bit
0
1
1
1
0
1
1
0
Lattice:
Periodic boundary conditions
t=0
1
0
1
0
0
1
1
0
0
1
0
t=1
1
1
1
0
1
1
1
0
1
1
1
Figure 2.1: A cellular automaton using a 1-dimensional lattice, a neigborhood size of 3, and
2 possible states (0 or 1) per cell. The figure shows the CA configuration at time t = 1
computed using the transition rule on the CA configuration at time t = 0.
2.2.3
Dynamics of the CA
The CA given in the previous subsection only uses 1 dimension, a neigborhood size of only 3,
and 2 possible states per cell. Therefore, it is one of the simplest CA. But even this CA can
show complex behavior if we iterate it over time and show the dynamics in the space-time
dimensions, see Figure 2.2.
It will not be a surprise that cellular automata with more complex transition rules and a
larger number of possible states can even shown much more complex behavior. In principle
there are other possible iterative networks or automata networks, cellular automata are just
one kind of automata of this family.
2.2.4
Processes in CA
In Chapter one we have already seen that when we have bounded spaces, we can divide a
process resulting in a pattern into three different classes; stable, periodic, and chaotic. Since
the cellular configuration state space of a CA is bounded, we can divide patterns created by
30
CHAPTER 2. ARTIFICIAL LIFE
Figure 2.2: The sequence of cellular patterns of the CA given in Figure 2.1 generated by
iterating it over 100 time steps.
a CA into these three groups. Note however that the set of possible complete states of a CA
is not only bounded, but also finite. The three possible resulting patterns of a CA are:
• A stable state (or point), after entering the stable state, the process remains in the same
state and change stops.
• A cyclic pattern. The CA traverses through a repeating pattern of some periodic length.
If there are multiple sub-patterns each with their own periodic length, the complete
pattern will be periodic but with a larger length (e.g. if two sub-patterns which do
not interact in the CA have periodic lengths of 2 and 3, the complete pattern will have
periodic length 6).
• Chaotic behavior. The CA always goes to new, unseen patterns. Since the CA is
deterministic, chaotic behavior would be possible. However, since the number of possible
states on a computer is finite (although it is often huge), there will after finite time
always be a state which has been seen before after which the process repeats the same
cycle of configurations. Therefore real chaotic behavior in a CA is not possible, only a
periodic cycle of very large length will be possible in a finite CA.
It is important to understand that an initial configuration may lead to a sequence of
patterns which are all different, after which it may enter a stable state or a periodic cycle.
The time until the CA enters a stable state or periodic cycle is called the transient period.
Some researchers also like to include structured behavior with the above mentioned three
types of behavior. In structured behavior, the behavior seems very structured, but there is
no repetitive sequence (at least not for a long time).
The dynamics of CA can be influenced by the transition rules. Some transition rules can
lead to very simple behavior, whereas others lead to very complex behavior. Some people
find it a sport to make a transition rule which has the longest possible periodic length.
2.2.5
Examples of cyclic processes
A stable state is easy to make, e.g. it can consist of only 1’s. Then if we make transition
rules which always output a 1, we get the resulting stable state from any possible initial
2.2. CELLULAR AUTOMATA
31
configuration after one time step. Periodic cycles can be made in many possible ways. Here
we show a simple example. Suppose we have a 2-dimensional lattice. The transition rule is: if
2 neighbours (out of 4) are active, then the cell is activated (becomes 1 or black). Otherwise
the cell is not activated (becomes 0 or white). Figure 2.3 shows a lattice without boundary
conditions (basically we show a small part of the lattice which is everywhere else empty so
that we still have identical connectivity for all states), resulting in a periodic cycle of length
2.
Figure 2.3: A cellular automaton configuration with a repeating pattern (the periodic length
is 2).
Problem. Given a 2-dimensional lattice with transition rule: if one neighbour is active
and the cell was inactive, then the cell becomes active. Else if the cell was active at the
previous time-step keep the cell active in the next time-step. Otherwise the cell remains
inactive. Now evolve the CA in Figure 2.4.
t=0
t=1
t=2
t=3
Figure 2.4: The lattice of the CA for the problem. Try to evolve the CA over time with the
above given transition rule.
2.2.6
Elimination of basis patterns
When one evolves a CA, there are often some regularities involved, and other parts which
are completely unpredictable. Therefore some researchers have tried to use methods for
eliminating the basis of the evolutionary transitions in a CA. This basis can consist of walls,
singularities, etc. and can then be eliminated from the process.
The importance of eliminating the basis patterns is to get more inside in possible chaotic
or turbulent processes. For example take the process from Figure 2.5. If we remove the
regularities from this process, we get the process shown in Figure 2.6. We can see that most
of the seemingly complex process is removed, but some embedded particles move about
32
CHAPTER 2. ARTIFICIAL LIFE
in a seemingly random way. It turns out that when these embedded particles hit each other,
that they will be destroyed.
Figure 2.5: A CA process iterated over time.
Figure 2.6: The process of Figure 2.5 with the regular basis patterns removed.
2.2.7
Research in CA
One important insight is that cellular automata are universal machines. That means that
they can compute any computable function and are therefore just as powerful as Turing
Machines. This also means that any algorithm which can be implemented on the usual
sequential computer can in principle also be implemented in a CA.
Conway’s game of life
The game of life was invented by the mathematician John Conway in 1970. He chose the rules
carefully after trying many other possibilities, some of which caused the cells to die too fast
and others which caused too many cells to be born. The game of life balances these tendencies,
making it hard to tell whether a pattern will die out completely, form a stable population, or
grow forever. Conways’ game of life uses a 2-dimensional lattice with 8 neighbours for each
cell. The transition rule(s) are:
2.2. CELLULAR AUTOMATA
33
• If a cell is not active (dead, black, or 1) and it has exactly 3 living neighbours, then the
cell will become active (rule of birth)
• If a cell is active and it has 2 or 3 neighbours which are active, then the cell stays active
(rule of survival)
• In all other cases the cell becomes not active (rule of death due to overcrowding or
loneliness).
One of the interesting things about the game of life is that it has universal computing
power, even with the three rules given above. This universal computing power relies on
particular patterns known as gliders. Such gliders are living entities which cross the 2-D
lattice and which can pass information so that it becomes possible to make logical AND, and
NOT gates. For an example of the behavior of a glider look at Figure 2.7.
t=0
t=1
t=3
t=4
t=2
Figure 2.7: A glider moving one step diagonal after each 4 time-steps.
Another important object in the game of life is the use of a Glider gun. Glider guns can
fire gliders and remain stable, which makes it possible to propagate information at some rate.
By using multiple glider guns which shoot gliders, we can make interactions between different
patterns which are propagated in the cellular space. An example of this is to have two gliders
which collapse after which they will be destroyed. This would be useful to make a NOT gate.
Making a CA using the game of life rules to compute arbitrary functions is very complicated,
because it requires a very careful development of the initial configuration consisting of glider
guns and other patterns, but in principle it would be possible.
Another interesting pattern in the game of life which shows very complex behavior is
known as the R-pentomino which looks as shown in Figure 2.8. It is remarkable that such a
simple pattern can create complex behavior including gliders and many other patterns.
Development of cellular automata
One goal of artificial life is to make artificial systems which can be called alive. For this
reproduction seems necessary, and therefore research investigated whether this was possible
34
CHAPTER 2. ARTIFICIAL LIFE
Figure 2.8: The pattern called R-pentomino which creates very complex behavior.
in cellular automata. In 1966, John Von Neumann constructed a cellular automaton which
was able to reproduce itself, demonstrating one of the necessary abilities of living systems.
Some other researchers examined whether cellular automata could be used for recognizing
languages. In 1972, Smith constructed a CA which could recognize context-sensitive languages
such as palindromes (palindromes are strings which are the same if you read them from left
to right or from right to left). After that, Mitchell et. al (1994) used genetic algorithms to
evolve the transition rules of CA. They tried this using the majority problem as a testbed.
In the majority problem a bitstring is given of some size and each bit of the string can be on
or off. Now the system should tell whether the majority of bits was on or off. The system
could indicate this by making all bits on (off) if the majority was on (off) after a number of
iterations. Although this problem can of course be simply solved by counting all bits, such
a counter would require some form of register or additional memory which was not inside
the cellular automaton. Thus, the question was whether the genetic algorithm could evolve
transition rules which can solve the problem. The result was that the genetic algorithms
found different solutions which are however not optimal for solving all initial problems (with
any order of 1’s and 0’s). Some of the solutions used embedded particles. The reason that no
optimal solution was evolved was due to the limited local connectivity which does not allow
all bits to communicate to each other.
Other cellular automata
Cellular automata can also be simply and efficiently used for simulating particular processes
such as:
• Modelling Traffic. Here a cell is active if there is a car and it is inactive if there is
no car. The rules are simple to make too; if the predessor cell is empty, move to that
cell, otherwise stop. The CA can be made more complicated by adding in each cell
occupied by a car some internal state which models the destination address of the car.
Also different speeds can be taken into account.
• Modelling Epidemics. Here a cell can be a sick, healthy, or immune person.
• Modelling Forest Fires. A cell can be a tree on fire, water, a tree without being on fire,
grass, sand, etc. It is also possible to include external parameters such as wind-strength
and wind-direction, humidity etc. to influence the behavior of the model.
2.3. ECOLOGICAL MODELS
35
Power laws
There is a lot of research using CA for examining chaotic processes as for example studied in
sandpile models. In cellular automata sandpile models a granular material in a gravitational
field is used (the model can be two or three dimensional). There are two kinds of cells;
immovable ground cells and movable sand grains. Grains fall from a source at the top of
the window and proceed down to the ground. Grains pile up and redistribute themselves
according to the cellular automata rules (e.g. if two cells on top of each other possess grain,
and a neighboring cell does not, then the top grain element will make a transition to the empty
neighboring cell). One interesting thing of CA implementations of such physical models is
that there will sometimes be long shifts of grain during the redistribution. Such a shift is
often called an avalanche. Now the interesting thing is that large avalanches will be much
less probable than smaller ones, and that the probability distribution law respects a power
law (or Zipf’s rule or Pareto distribution). E.g. if we take English words according to their
number of occurrences and we rank all the words according to their usage (so rank 1 means
the word is used most often), then Zipf’s law states that the size y of occurrence of an event
(in this example the occurrence of a word) is inversely proportional to its rank r according
to:
y = ar −b
Where a is some constant and the exponential factor b is close to 1. Such a power law has been
demonstrated in many research fields, such as in social studies where the number of users of
web-pages are counted to examine Website popularity. There are few web-pages with a large
number of users, and many web-pages with few users, and the distribution follows Zipf’s law.
Pareto looked at income and found that there are few millionaires whereas there are many
people with a modest income. Also for earthquakes, there are few very heavy earthquakes
and many smaller ones, etc. To show whether some data provides evidence for a power law, it
can be hard to work with very large values appearing in the data. In that case we can make
a log-log plot by taking the logarithm on both sides (note that they should be positive) so
that we get:
log y = log ar −b
log y = log a + log r −b
log y = log a − b log r
(2.1)
Thus in a log-lot plot of the data, the resulting function relating two variables should be a
line (with negative slope b).
2.3
Ecological Models
In biology and ecology, simulation models often make use of cellular automata due to their
insightfulness and easy implementation while still providing interesting and complex behaviors. Ecological models can be used to study social phenomena, immunology and epidemics,
population dynamics of different species etc. An artificial ecosystem consists of a number of
individuals (agents) which:
• Occupy a position in the environment
• Interact with the environment and with other agents
36
CHAPTER 2. ARTIFICIAL LIFE
• Possess some internal state such as amount of energy or money
By examining the evolutionary process in an ecosystem it is possible to research the creation
and continuity of processes such as:
• Cooperation: E.g., trading behavior between individuals
• Competition: E.g., fighting behavior between individuals
• Imitation: E.g., an agent learns what he should do by looking at and imitating other
agents
• Parasitic behavior: An individual profits from another individual whereas the other
individual is harmed by this. Parasitic behavior can be found in many places in nature,
a good example of this are viruses.
• Communities: If a large group of individuals are put together they might form communities for the benefit of all. An example of this is fish-schools which can better protect
the fish from predators (especially the fish which swim in the middle). Another advantage of communities is that individuals can cooperate and specialise on their own
task.
2.3.1
Strategic Bugs
Bedau and Packard developed the artificial life model called Strategic bugs (1992). This
model of an ecosystem uses individuals which try to find food and reproduce. The model
consists of:
• An environment modelled as a 2-dimensional lattice.
• A cell in the environment can be occupied by food or by a bug or is empty
• Food will grow automatically in the environment; food is added in a cell with some
probability if there was no food or bug there
• Bugs survive by finding food
• Bugs use energy to move and die if they do not have any energy anymore
• Bugs can clone themselves or reproduce with another bug if they have sufficient energy.
The behavior of a bug evolves from the interaction of the policy of the bug and the
environment. The bug’s policy uses a lookup table to map environmental inputs to actions.
An example rule is: if there are more than 5 food units in the east, then make a step to the
east.
Bedau and Packard tried to come up with a measure for the evolutionary dynamics. If
such an ecosystem is simulated and new individuals will be generated all the time, then
the question is “What is really new and which individual traits are evolved in the system?”
For this they examined the evolutionary activity which looks at the genetic changes in the
chromosome strings. The experiments showed that there were waves of evolutionary activity,
new genetic material was often found after some time and then stayed in the population for
some period. Thus it was seen that new genetic material and therefore behavior was found
and exploited during the evolutionary process.
2.4. ARTIFICIAL MARKET MODELS
2.4
37
Artificial Market Models
Financial markets such as stock markets are difficult to predict. Some might think it is
completely random behavior, but the investors involved do not seem to make random, but on
the contrary, rational decisions. Thus it seems more to be a chaotic process emerging from
the large number of investors and unforeseen circumstances.
One important question is to examine under what conditions predictions about the dynamics of financial markets will be possible. To study this question we first have to look
at the efficient market hypothesis (EMH). In an information efficient market all price
fluctuations are unpredictable if all necessary investment information is taken into account
by the investors. The information is taken into account if the expectancies, intentions, and
(secret) information of the market participants is incorporated in the prices. From this follows that when a market is more efficient, that the price fluctuations which are generated by
the market are more random (and therefore unpredictable). Basically this is caused by the
fact that if there would be only a small information advantage by some investors, that the
actions of these investors will immediately correct the prices, so that further gain will become
impossible.
2.4.1
Are real markets predictable?
Some people tend to make a lot of gain from stock markets. One important case is that of
an analyst which has such an importance that (s)he is considered a guru for predicting which
stocks will rise and fall. If the guru tells everyone that stock X will increase a lot, then there
will be many people buying that stock. The effect is that of a self-fulfilling prophecy; the
stock price will increase since the prophet announced it and many people believe it and will
buy that stock. Only the buyers which were the last in buying that stock will loose money,
the investors which are quickest will gain money and sell them immediately after the price
has increased sufficiently. There are other cases and reasons to believe that stock markets can
be predictable. One reason is that investors trade-off expected risk and expected gain. This
means that a risk-aversive (in contrary to a risk-seeking) investor will sell stocks with a high
risk but also with an expected gain. The distribution between risk-aversive and risk-seeking
individuals will then cause different price fluctuations, which are therefore not completely
random. In fact a number of studies have indicated that price fluctuations are not completely
random.
When we examine the efficient market hypotheses, then it requires rational and completely
informed investors. However these assumptions are not realistic. Investors are not completely
rational and sometimes hard to predict. Furthermore, information is often difficult to interpret, technologies and companies change, and there are costs associated with transactions
and information gathering.
One seemingly efficient method for trading stocks is to examine the relative competitive
advantage between different markets. When one compares some market to other markets,
one can see that one market (such as a market in obligations) was more promising during the
previous period, so that it will be likely that more investors will step to that relatively more
advantageous market which leads to more profit on that market. Comparing markets (e.g.
between countries, or kind of markets — e.g. obligations versus stocks) can therefore be a
good option.
38
CHAPTER 2. ARTIFICIAL LIFE
2.4.2
Models of financial theories
Already for a long time there have been people trying to come up with financial theories,
since if it would work one could get a lot of money out of it. It should be said, however, that
if you would ever find a theory which works, that you should not tell it to other people. The
reason is that your advantage will be lost in using this theory if everyone knows it. People
could even trade in such a way that you will loose money with your once so well working
theory. Therefore we can only show general approaches that have been invented to come up
with models to predict the price fluctuations:
• Psychological models. Here the model tries to analyse the risk-taking behavior of investors and examines how human-attitudes to the market influences the stock prices.
• Learning models. Here data about the stock prices of the past is used to train a model
to predict its development in the future.
• Agent models. Here investors are modelled as agents which use particular strategies.
By letting the modelled agents interact the complex dynamic of stock markets can be
simulated.
• Evolutionary algorithms for developing strategies. Here the evolution of strategies of
investors is mimicked. Competitive strategies could be used to create other strategies.
Finally a strategy which was observed to gain most money in the past could be used to
trade in the future.
2.5
Artificial Art and Fractals
Iterating a simple function can create very complex, artistic, patterns. This was shown by
Bernoit Mandelbrot who discovered the Mandelbrot set, which is a fractal. A fractal is a
pattern which is self-similar to different scales, so if we look at a zoomed out picture of some
details of the fractal we can recognize features which were also shown in the bigger pattern.
It should be said that a fractal can be very complex and not all small scale components look
similar to the whole pattern. So how can we get the Mandelbrot set? First of all consider the
function:
xk+1 = x2k
If we look at the starting values for xk for which the iteration converges to a single point, we
can see that these are the values −1 < x0 < 1, and the final point will be x∞ = 0. If x0 < −1
or x0 > 1 then the value after many iterations goes to infinity. If x0 is -1 or 1 then the point
will stay in 1, but this point is unstable, since small perturbations (changes of xk ) will let the
value go to 0 or ∞. In principle the values for which the iteration stays bounded is called the
Julia set, although more interesting Julia sets are associated to Mandelbrot sets as we will
see later. So for the function f (x) = x2 , the Julia set would be the region between -1 and 1.
In the space of real numbers, not so many interesting things can happen. But now let’s
consider the use of complex numbers. Complex numbers consist√of a real and an imaginary
part, so we write them as: x = ai + b, where i is defined as i = −1. We can add, subtract,
multiply and divide complex numbers just as we can with real numbers. For example if we
take x = 3i, then x2 = −9. Complex numbers are used in many sciences such as in quantum
mechanics and electric engineering, but we will not go into details about them here.
2.5. ARTIFICIAL ART AND FRACTALS
39
Now consider the functions of the type:
xk+1 = x2k + C
The question is: if we start with x0 = 0, for which complex numbers C will the iteration of
this function not become infinite? This set of complex numbers for which the iterations will
stay bounded is called the Mandelbrot set, and it is displayed in Figure 2.9. We can see its
complex shape in the complex plane (the real part is depicted on the x-axis and the imaginary
part of the points belonging to the set are shown on the y-axis). The points in black belong
to the Mandelbrot set, and the others do not. This is an example of a fractal, a self-similar
structure. The word fractal was also invented by Mandelbrot.
Figure 2.9: The Mandelbrot fractal
Now look what happens if we zoom-in in the picture. The zoomed in figure of the lower
part of Figure 2.9 is shown in Figure 2.10. Note that this pattern is very similar to the original
Mandelbrot set, and we already see that there are much more self-similar structures to be
found in the picture.
Figure 2.10: A zoomed in pattern of the Mandelbrot fractal
Now, consider again the iterated function
xk+1 = x2k + C
40
CHAPTER 2. ARTIFICIAL LIFE
But, now we have chosen a value for C which is an element of the Mandelbrot set. Then
another question we can ask is; which initial values x0 in the complex plane cause the iteration
to remain bounded? This set which belongs to a particular value of C is called the Julia set
for C. An example pattern from the Julia set is shown in Figure 2.11.
Figure 2.11: An example pattern from the Julia set
Computer artists like to use fractals, since although the equations are simple, as long as
they are non-linear (linear maps cannot produce interesting patterns like fractals) they can
produce a large variety of complex patterns, and zooming in in the pictures creates many
other patterns. This is just another example of using simple rules to create very complex
patterns.
2.6
Conclusion
Artificial life is useful for simulating many biological, physical, sociological, and economical
processes. One goal of artificial life is to understand the principles underlying living entities
and the emergence of life forms. Artificial life can be combined with genetic algorithms
for optimizing individual behaviors by adapting them to the (changing) environment. If
multiple individuals adapt themselves and also adapt the environment, the resulting dynamics
can be very complex and unpredictable. Even with simple entities such as used in cellular
automata, complex behavior can result from the interaction between simple components.
Cellular automata are very useful for modelling and visualizing spatial processes such as
forest fires and can be used to study the behavior of many different complex processes. One
interesting thing is that cellular automata are just as powerful as Turing machines which
means that any computable function can be implemented using a cellular automaton.
Another aspect in artificial life is the study of price-dynamics in financial markets. Although an efficient market would be completely unpredictable, in reality there are many
reasons to believe that price-fluctuations are not completely random. Making models for predicting price changes is a challenging research topic, although found theories may never be
published, since they would eliminate their usefulness if they are known by many investors.
Finally we have shown that using the complex plane, simple iterative functions can create
complex patterns, called fractals. Examples of these are the Mandelbrot and Julia sets.
Computer artists like to use fractals, because they look complex, but are easy to make.
Fractals also play a role in chaotic systems as we will see in a later chapter.
Chapter 3
Evolutionary Computation
Inspired by the success of nature in evolving such complex creatures as human beings, researchers in artificial intelligence have developed algorithms which are based on evolution
theory. The class of these algorithms are called evolutionary algorithms and consists among
others of genetic algorithms, evolutionary strategies, and genetic programming. Genetic algorithms (GAs) are the most famous ones and they were invented by John Holland. Evolutionary
algorithms are optimisation algorithms that are inspired on Darwin’s evolution theory, known
as natural selection or survival of the fittest and they were developed during the 1960’s and
1970’s. One of their strengths is that they can find very good solutions in very large search
spaces, where exhaustive search (trying out all possible solutions) would cost much too much
time. The principle of evolutionary algorithms is that solutions are evaluated after which the
best solutions are allowed to reproduce most offspring (children). If the parent individuals
form good solutions, they are likely to possess good building blocks of genetic material (the genetic material makes up the solution) that may be useful for creating new individuals. Genetic
algorithms usually take two parent individuals and they recombine their genetic material to
produce a child that inherits genetic material from both parents. If the child performs well on
the evaluation test (evaluating an individual and measuring how well an individual performs
is commonly done by the use of a fitness function), it will also be selected for reproduction
and in this way the genetic material can again be propagated to new generations. Since the
individuals themselves will usually die (they are often replaced by individuals of the next
generation), Richard Dawkins came with the selfish gene hypothesis. This hypothesis says
that basically the genes are alive and use the mortal individuals (e.g. us) as hosts so that
they are able to propagate themselves further. Some genes may be found in many individuals,
whereas other genes are only found in a small subset of individuals. In this way, the genes
seem to compete for hosts, and genes which occupy well performing individuals are likely to
be able to reproduce themselves. The other way around we can say that genes which occupy
well performing individuals give advantages for the individual and therefore it is good if they
are allowed to reproduce.
In this chapter we will look at evolutionary algorithms in general and focus on genetic
algorithms, although most issues involved also play a role for other evolutionary algorithms.
We first describe optimisation problems and then examine which steps should be pursued for
constructing an evolutionary algorithm, and what kind of representations are useful for the
algorithm for solving a particular problem. Finally we will examine some other evolutionary
algorithms.
41
42
3.1
CHAPTER 3. EVOLUTIONARY COMPUTATION
Solving Optimisation Problems
A lot of research in computer science and artificial intelligence has been devoted to solving
optimisation problems. There are many different optimisation problems; e.g. one of them is
shortest path-planning which requires the algorithm to compute the shortest path from a state
to a particular goal state. Well known applications for such algorithms are planners used by
cars (e.g. the Carin system) or for train-passengers. In principle shortest path problems are
simple problems, and can be solved efficiently by algorithms such as Dijkstra’s shortest path
algorithm or the A* algorithm. These algorithms can compute the shortest path in a very
short time for problems consisting of more than 100,000 cities (or nodes if we formalise the
problem as a graph using nodes and weighted edges representing the distances of connections
between nodes). On the other hand, there also exist combinatorial optimisation problems
which are very hard to solve. One example is the traveling salesman problem (TSP). This
problem requires that a salesman goes to N customers which live in different cities, so that
the total tour he has to make from his starting city to single visits to all customers and
back to his starting place should be minimal. This problem is known to be NP-complete
and therefore unless P = N P not solvable in polynomial time. For example if we use an
exhaustive search algorithm which computes and evaluates all possible tours, then it has to
examine about N ! tours, which increases exponentially with N . Thus for a problem with 50
cities, the exhaustive search algorithm would need to evaluate 50! solutions. Let’s say that
evaluating one solution costs 1 nanosecond (which is 10−9 second), then evaluating all possible
solutions would cost about 9.6× 1047 years, which is therefore much longer than the age of the
universe. Clearly exhaustive search approaches cannot be used for solving such combinatorial
optimisation problems and heuristic search algorithms have to be used which can find good
solutions in a short time, although they do not always come up with the optimal solution.
There is a number of different heuristic search algorithms such as Tabu search, simulated
annealing, multiple restart local hill-climbing, ant colony algorithms, and genetic algorithms.
Genetic algorithms differ from the others in the way that they keep a population of solutions
and use recombination operators to form new solutions.
3.1.1
Formal description of an optimisation problem
Optimisation problems consist of two components; the representation space and the evaluation
(or fitness) function. The representation space denotes all possible solutions. For example if
we want to solve the TSP, the representation space consists of all possible tours which are
encoded in some specific way. If we want to throw a spear at some target and can select
the force and the angle to the ground, the representation space might consist of 2 continuous
dimensions which take on all possible values for the force and angle. On the other hand,
one could restrict this space by allowing only angles between 0 and 360 degrees and positive
forces which are smaller than the maximum force one can use to throw the spear. Let’s call
the representation space S and a single solution s ∈ S.
The evaluation function (which in the context of evolutionary algorithms is usually called
a fitness function) compares different solutions to each other. Although solutions could be
compared on multiple criteria, let’s assume for now that there is a single fitness function f (.)
which maps a solution s to a specific fitness value f (s) ∈ ℜ. The goal is to find the solution
smax which has the maximal fitness:
f (smax ) ≥ f (s) ∀ s
3.1. SOLVING OPTIMISATION PROBLEMS
43
It may happen that there are multiple different solutions with the same maximal fitness value.
We may then require to find all of them, or only one (which is of course simpler).
So the goal is to search through the representation space for a solution which has the
maximal possible fitness value given the fitness function f (.). Since the representation space
may consist of a huge number of possible solutions or may be continuous, the optimal solution
may be very hard to find. Therefore, in practice algorithms are compared by their best found
solutions within the same amount of computational time. Among these algorithms there
could also be a human (expert) which tries to come up with a solution, but if the fitness
function gets more complicated and the representation space becomes bigger, the advantage
of computers in their ability to try out millions of solutions within a short period of time
outcompetes the ability of any human in finding a good solution.
3.1.2
Finding a solution
Heuristic search algorithms usually start with one or more random solutions which are then
evaluated. For example local hill-climbing starts with a random solution and then changes
this solution slightly in some way. Then, this new solution is evaluated and if it is a better one
than the previous one, it is kept and otherwise the previous one is kept. This simple process is
repeated until the solution is good enough or time is expired. The local hill-climbing algorithm
looks as follows:
• Generate initial solution s0 ; t = 0
• Repeat until stop criterium holds:
• snew = change(st )
• if f (snew ) ≥ f (st) then st+1 = snew
• else st+1 = st .
• t = t +1
Using this algorithm and a random initial solution s0 , a sequence of solutions s0 , s1 , . . . , sT
is generated, where each later solution has a larger or equal fitness value compared to all
preceding solutions. The most important function in this algorithm is the function change.
By changing a solution, we do not mean to generate a new random solution, since if we would
generate and evaluate random solutions all the time, there would not be any progressive
search towards a better solution. Instead random search would probably work just as good
as exhaustive search and is not a heuristic search algorithm. So it should be clear than the
function change should keep some part of the old solution in the new solution and change
some other part. As an example consider a representation space consisting of bitstrings of
some specific length N . It is clear that the representation space in this case is: S = {0, 1}N .
Now we could make a function change which changes a single bit (i.e. mutating it from 0 to
1 or from 1 to 0). In this case a solution would have N neighbours with this change operator.
Now one possible local hill-climbing algorithms would try all solutions in the neighbourhood
of the current solution and then select the best one as snew . Or, alternatively, it could select
a single random solution from the neighbourhood. In both cases, for many fitness functions,
the local hill-climbing algorithm could get stuck in a local optimum. A local optimum is a
solution which is not the global optimum (the best solution in the representation space), but
44
CHAPTER 3. EVOLUTIONARY COMPUTATION
one which cannot be improved using the specific change operator. Thus, a local optimum
is the best one in a specific subspace (or attractor in the fitness landscape). Since the local
hill-climbing algorithm would not generate a new solution if it has found a local optimum, the
algorithm gets stuck and will not find the global optimum. This could be avoided of course
by changing the change operator, however this is not trivial. Since if we allow the change
operator to change two bits, the neighbourhood would become bigger, but since still not all
solutions can be reached, we can again easily get trapped in a local optimum. Only if we allow
the change operator to change all bits, we may eventually always find the global optimum,
but as mentioned before changing all bits amounts up to exhaustive or random search. A
solution to the above problem is to change bits with a specific small probability. In this way,
usually small changes will be made, but it is always possible to escape from a local minimum
with some probability. Another possibility is used by algorithms such as simulated annealing
that always accepts improving solutions, but also can select a new solution with lower fitness
value than the current one, albeit with a probability smaller than 1. In specific, simulated
annealing accepts a new solution with probability:
min(1, e(f (snew )−f (st ))/T )
where T is the temperature which allows the algorithm to explore more (using a large T )
or to only accept improving solutions (using T = 0). Usually the temperature is cooled
down (annealed) starting with a high temperature and ending with a temperature of 0. If
annealing the temperature from infinity to 0 is done with very slow steps, the algorithm will
finally converge to the global optimum. However, in practice annealing should be done faster
and the algorithm usually converges to a local maxima just like local hill-climbing. A practical
method to deal with this is to use multiple restarts with different initial solutions and finally
selecting the best found solution during all runs.
3.2
Genetic Algorithms
In contrast to local hill-climbing and simulated annealing, genetic algorithms use a population
of individuals to search for solutions. The advantage of a population is that the search is done
in a distributed way and that individuals are enabled to exchange genetic material (in principle
the individuals are able to communicate). Making the search using a population also allows
for parallel computation, which is especially useful if executing the fitness function costs a
long time. However, it would also be possible to parallellize local hill-climbing or simulated
annealing, so that different initial solutions are brought to different final solutions after which
the best can be selected. Therefore the real advantage lies in the possibility of individuals
to exchange genetic material by using recombination operators and by the use of selective
pressure on the whole population so that the best individuals are most likely to reproduce and
continue the search for novel solutions. A genetic algorithm looks as follows in pseudo-code:
1. Initialize a population of N individuals
2. Repeat:
(a) Evaluate all individuals in the population using the fitness function
(b) Repeat N times:
• Select two individuals for reproduction according to their fitness values
3.2. GENETIC ALGORITHMS
45
• Recombine these two parent individuals to create one offspring
• Mutate the offspring
• Insert the offspring in a new population
(c) Replace the population by the new population
There is a state of every individual and since a population consists of N individuals, the
population also has a state. Therefore after each iteration of this algorithm (usually called a
generation), the population state makes a transition to a new state. Finally after a long time,
it may happen that the population contains the optimal solution. Since the optimal solution
may get lost, we always store the best solution found so far in some place (or alternatively the
Elitist strategy may be used that always copies the best found solution to the new population).
3.2.1
Steps for making a genetic algorithm
For solving real world problems with genetic algorithms, such as a time-tabling problem which
requires us to schedule for example busses to drivers so that all busses have one driver and
no driver has to drive when (s)he indicated that (s)he does not want to drive, the question
arises how to make a representation of the problem. This is often more art than science,
and research has indicated that particular representations allow better solutions to be found
much earlier. For other problems, making a representation does not need to be hard but the
chosen representation can influence how fast good solutions are found. Take for example the
colouring problem which is also a NP hard problem. In a colouring problem multiple cities
may be connected to each other and we want to assign different colors to cities if they are
connected. The goal is to find a feasible solution while minimizing the amount of used colors.
To solve this problem we may choose a representation which consists of N numbers where N
is the number of cities and the number indicates the assigned color to the city. On the other
hand, we could also design a representation in which we have a maximum of M colors and
N M binary states in which each element of the list of N M states indicates whether the city
has that color or not. One should note that the second representation is larger, although it
requires only binary states. Furthermore in the second representation it is much easier that
false solutions (solutions which do not respect the conditions of the problem) are generated,
since it allows for cities to have multiple or 0 colors. Therefore, the first representation should
be preferred.
Except for constructing a representation, we also need to find ways to initialize a population, to construct a mapping from genotype to phenotype (the genotype is the encoding in
the chromosome on which the genetic operators work, whereas the phenotype is tested using
the fitness function), and also to make a fitness function for evaluating an individual (some
fitness functions would favour the same optimal solution, but one of these can be more useful
for the genetic algorithm to find it).
There are also more specific steps; we need to design a mutation operator, a recombination
operator, we have to determine how parents are selected for reproduction, we need to decide
how individuals are used to construct a new population, and finally we have to decide when
the algorithm has to stop. We will explain these steps in more detail below.
46
3.2.2
CHAPTER 3. EVOLUTIONARY COMPUTATION
Constructing a representation
The first decision we have to make when we want to implement a genetic algorithm for solving
a specific problem is the representation we want to use. As mentioned above, there are often
many possible representations, and therefore we have to examine the problem to choose one.
Although the representation is often the first decision, we also have to take into account a
possible fitness function and which genetic operators (mutation and crossover) we would like
to use. For example, if we want to evolve a robot which drives as fast as possible without
hitting any obstacles, we could decide to use a function which maps sensory information of the
robot to actions (e.g. left motor speed and right motor speed). The obvious representation
used in this case would consist of continuous parameters making up the function. Therefore,
we may prefer to use particular representations which allow for continuous numbers, although
this is not strictly necessary since we may also construct the genotype to phenotype mapping
in some way that converts discrete symbols to continuous numbers.
Binary representations and finite discrete sets
The most often used representation in genetic algorithms uses binary values, encoding a chromosome using a bitstring of N bits. See Figure 3.1 for an example. Of course it would also
be possible to use a different set of discrete values, e.g. like the one used by biological DNA:
{C, G, A, T }. It depends on the problem whether a binary representation would be more
suitable than using different sets of values. It should be said that by concattenating two
neighboring binary values, one could also encode each value from a set containing 4 different
values. However, in this case a binary encoding would not be preferred, since the recombination operator would not respect the primitive element being a single symbol and could easily
destroy such symbols through crossover. Furthermore, a solution in which primitive symbols
would be mapped to a single gene would be more readable.
Chromosome
1
0
1
0
0
0
1
1
Gene
Figure 3.1: A chromosome which uses a binary representation and which is therefore encoded
as a bitstring.
If we have a binary representation for the genotype, we can still use it to construct different
representations for phenotypes. It should be said that search using the genetic operators takes
place in the genotype space, but the phenotype is an intermediary representation which is
easier to evaluate by the fitness function. Often, however, the mapping from genotype to
phenotype can be an identity mapping meaning that they are exactly the same.
For example, using the 8-bit phenotype given before, we can construct an integer number
by computing the natural value of the binary representation. E.g. in the example genotype of
3.2. GENETIC ALGORITHMS
47
Figure 3.1 we could convert the genotype to the integer: 27 +25 +21 +20 = 163. Alternatively,
if we want a phenotype which is a number between 2.5 and 20.5 we could compute x =
2.5 + 163
256 (20.5 − 2.5) = 13.9609.
Thus, using a mapping from phenotype to genotype gives us additional freedom. In the
first example, small changes of the genotype (e.g. mutating the first bit) would correspond
to big changes in the phenotype (changing from 163 to 35). We note, however, that in the
second example, not all solutions between 2.5. and 20.5 can be represented using the limited
precision of the 8-bit genotype.
Representing real numbers
If we want to construct a phenotype of real numbers, it is a more natural way to encode
these real numbers immediately in the genotype and to search in the space of real numbers.
We have already seen that this can lead to more precise solutions, since the binary encoding
would have a limited precision unless we use a very long bitstring. Another advantage is that
the encoding is much smaller, although this comes at the cost of creating a continuous search
space.
Thus, if our problem requires the combined optimisation of n real numbers we could use
a genotype X = (x1 , x2 , . . . , xn ) where xi ∈ ℜ. The representation space would therefore be
S = ℜn . For real numbered representations, we have to use a fitness function which maps
a solution to a real number, therefore the fitness function is a mapping f : ℜn → ℜ. This
encoding is often used for parameter optimisation, e.g. when we want to construct a washing
machine which has to determine how much water to consume, how much power to use for
turning the cabinet, etc. The fitness function could then trade-off costs versus the quality of
the washing machine.
Representing ordering problems
For particular problems there are natural constraints which the representation should obey.
An example is the traveling salesman problem which requires a solution that is a tour from
a starting city to a last city while visiting all cities in between exactly once. A natural
representation for such an ordering problem is to use a list of numbers where each number
represents a city. An example is the chromosome in Figure 3.2.
3
4
8
6
1
2
7
5
Figure 3.2: A chromosome which uses a list encoding of natural numbers to represent ordering
problems.
3.2.3
Initialisation
Before running the genetic algorithm, one should have an initial population. Often one does
not have any a-priori knowledge of the problem so that the initialisation is usually done using
a pseudo-random generator. As with all decisions in a GA, the initialisation also depends on
the representation, so that we have different possible initialisations:
48
CHAPTER 3. EVOLUTIONARY COMPUTATION
• Binary strings. Each single bit on each location in the string of each individual receives
50% probability to become a 0 and 50% probability to become a 1. Note that the whole
string will likely possess as many 0’s and 1’s, if we would have a-priori knowledge, we
might want to change the a-priori generation constant of 50%. For discrete sets with
more than 2 elements, one can choose uniform randomly between all possible symbols
to initialize each location in a genetic string.
• Real numbers. If the space of the real numbers is bounded by lower and higher limits,
it would be natural to generate a uniform number in between these boundaries. If we
have an unbounded space (e.g. the space of real numbers) then we cannot generate
uniform randomly chosen numbers, but have to use for example a Gaussian function
with a mean value and a standard deviation for initialisation. If one would not have
any a-priori information about the location of fit individuals, initialisation in this case
would be difficult, and one should try some short runs with different initialisations to
locate good regions in the fitness landscape.
• Ordered lists. In this case, we should take care that we have a legal initial population
(each city has to be represented in each individual exactly one time). This can be easily
done by generating numbers randomly and eliminating those numbers that have been
used before during the initialisation of an individual coding a tour.
Sometimes, one possesses a-priori knowledge of possible good solutions. This may be
through heuristic knowledge or from previous runs of the genetic algorithm or another optimisation algorithm. Although this has the advantage that the starting population may have
higher average fitness, there are also some disadvantages to this approach:
• It is more likely that genetic diversity in the initial population is decreased, which can
make the population converge much faster to a population of equal individuals.
• Due to the initial bias which is introduced in this way, it is more difficult for the
algorithm to search through the whole state space, possibly making it almost impossible
to find a global optimum which is distant from the individuals in the initial population.
3.2.4
Evaluating an individual
Since most operations in a genetic algorithm can be executed in a very short time, the
time needed for evaluating an individual is often a bottleneck. The evaluation can be done
by a subroutine, a (black-box) simulator, or an external process (e.g. robots). In some
cases evaluating an individual can be quite fast, e.g. in the traveling salesman problem the
evaluation would cost at most a number of computations which is linear in the number of
cities (i.e. one can simply sum all the distances between cities which are directly connected
in the tour). In other cases, especially for real world problems, evaluating an individual can
consume a lot of time. For example if one wants to use genetic algorithms to learn to control
a robot for solving some task, even the optimal controller might already take several minutes
to solve the task. Clearly in such a case, populations can not be very large and the number of
generations should also be limited. One method to reduce evaluation time for such problems
is to store the evaluations of all individuals in memory, so that a possible solution which has
already been evaluated before, does not need to be re-evaluated.
3.2. GENETIC ALGORITHMS
49
If evaluating time is so large, that too few solutions can be evaluated in order for the
algorithm to come up with good solutions starting with a random initial population, one
could try to approximate the evaluation function by a model which is much faster albeit not
as accurate as the real evaluation function. After evolving populations using this approximate
fitness function, the best individuals may be further evolved using the real fitness function. A
possibility for computing an approximate fitness function is to evaluate a number of solutions
and to use a function approximator (such as a neural network) to learn to approximate the
fitness landscape. Since the approximate fitness function often does not approximate the real
one accurately, one should not run too many generations to find optimal solutions for this
approximate fitness function, but only use it to come up with a population which can perform
reasonably in the real problem. In case of robotics, some researchers try to come up with
very good simulators which makes the evolution much faster than executing the robots in the
real world. If the simulator accurately models the problem in the real world, good solutions
which have been evolved using the simulator often also perform very well in the real world.
Another function provided by the fitness function is to deal with constraints on the solution
space. For particular problems there may be hard or soft constraints which a solution has to
obey. Possibilities to deal with such constraints are:
• Use a penalty term which punishes illegal solutions. A problem of this solution is that
in some cases where there are many constraints a large proportion of a population may
consist of illegal solutions, and even if these are immediately eliminated, they make the
search much less efficient.
• Use specific evolutionary operators which make sure that all individuals form legal
solutions. This is often preferred, but can be harder to implement, especially if not all
constraints in the problem are known.
3.2.5
Mutation operators
In genetic algorithms there are two operators which determine the search for solutions in the
genotype space. The first one is mutation. Mutation is used to perturbate (slightly change)
an individual so that a new individual is created, but which still resembles the previous one
(in genetic algorithms mutation is often performed after recombination so that the previous
one is already a new individual). Mutation is an important operator, since it allows us
to explore the representation space. Without it, it would become possible that the whole
population contains the same allele (value on some locus or location in the genetic string),
so that different values for this locus would never be examined. Mutation is also useful to
create more diversity and to escape from a converged population which otherwise would not
explore different solutions anymore. It is possible to use different mutation operators for the
same representation, but it is important that:
• At least one mutation operator should make it possible to search through the whole
space of solutions
• The size of the mutation operator should be controllable
• Mutation should create valid (legal) individuals
50
CHAPTER 3. EVOLUTIONARY COMPUTATION
Mutation for binary representations
Mutation on a bitstring usually is performed by changing a bit to its opposite (0 → 1 or
1 → 0). This is usually done on each locus of a genetic string with some probability Pm .
Thus the mean number of mutations is N Pm where N is the length of the bitstring. By
increasing Pm the algorithm becomes more explorative, but may also lose more important
genetic material that was evolved before. A good heuristic to set Pm is to set it as N1 which
creates a mean number of mutations of 1. Figure 3.3 shows schematically how mutation is
done on a bitstring.
1
1
1
1
1
1
1
1
Before mutation
1
1
1
0
1
1
1
1
After mutation
Mutated Gene
Figure 3.3: A chromosome represented as a bitstring is changed by mutation.
In case of multi-valued discrete representations with a finite number of elements, mutation is usually done by first examining each locus and using the probability Pm to choose
whether mutation should occur, and if a mutation should occur, each possible symbol has
equal probability to replace the previous symbol on that location in the chromosome.
Mutation for real numbers
If a representation of real numbers is used, we also need a different mutation operator. We
can use the same way as before to select a locus which will be mutated with probability
Pm . But now the value of the locus is a real number. We can perturb this number using a
particular form of added randomness. Usually Gaussian distributed zero-mean noise is used
with a particular standard deviation, so that we get for the chosen value of the gene xi in a
chromosome:
xi = xi + N (0, σ)
Mutation for ordered representations
For mutating ordered representations we should try to make sure that the resulting individual
respects the constraints of the problem. That means that for a traveling salesman problem
all cities are used exactly one time in the chromosome. We can do this by using a swap of
two values on two different loci. Thus we generate two locations and swap their values as
demonstrated in Figure 3.4.
3.2.6
Recombination operators
The advantage of using recombination operators is that it becomes possible to combine useful
genetic material from multiple parents. Therefore, if one parent has particular good building
3.2. GENETIC ALGORITHMS
51
7
3
1
8
2
4
6 5
7
3 6
8
2
4
1 5
Figure 3.4: A chromosome represented as an ordered list is mutated by swapping the values
of two locations.
blocks, and another parent has different good building blocks, the offspring by recombining
these parents may immediately possess all good building blocks from both parents. Of course
this is only the case if recombination succeeds very well, an offspring may also contain those
parts of the parents which are not useful. However, good individuals will be kept in the
population and the worse ones will die, so that it is often still useful to use recombination.
A recombination operator usually maps two parent individuals to one or two children. We
can use one or more recombination operators, but it is important that:
• The child must inherit particular genetic material from both parents. If it only inherits
genetic material from one of the parents, it is basically a mutation operator
• The recombination operator must be designed together with the representation of an
individual and the fitness function so that recombination is not often a catastrophe
(generating bad individuals)
• The recombination operator should generate legal individuals, if possible
Recombination for binary strings
For binary strings there exist a number of different crossover operators. One of them is 1-point
crossover in which there is a single cutting point that is randomly generated after which both
individuals are cut at that point in two parts. Then these parts are combined, resulting in
two possible children of which finally one or both will be kept in the new population (usually
after mutating them as well). Figure 3.5 shows how 1-point crossover is done on bitstrings.
Instead of using a single cutting point, one could also use two cutting points and take both
sides of one parent together with the middle part of the other parent to form new solutions.
This crossover operator is known as 2-point crossover. Another possibility is to use uniform
crossover, here it is decided by a random choice for each location separately whether the value
of the first individual or of the second individual is used in the offspring. We can see the
different effects of a generated crossover operator using crossover masks. Figure 3.6 shows a
crossover mask which is used to create two children from two parents.
Note that these recombination operators are useful for all finite discrete sets and thus
wider applicable than only for binary strings.
52
CHAPTER 3. EVOLUTIONARY COMPUTATION
Cut
Cut
1
1
1
1
1
1
1
0
0
0
0
0
0
0
Parents
1
1
1
0
0
0
0
0
0
0
1
1
1
1
Children
Figure 3.5: The recombination operator known as 1-point crossover. Here the part left to the
cutting point of the first parent is combined with the part right to the cutting point of the
second parent (and vice versa).
1 1
0
0
1 0
0
Mask
(Uniform)
1
1
1
1
0
1
1
0
0
1
0
0
0
0
Parents
1
1
1
0
0
0
0
0
0
1
1 0
1
1
Children
Figure 3.6: The effect of a recombination operator can be shown by a crossover mask. Here
the crossover mask is uniformly generated, after which this mask is used to decide which
values on which location to use from both parents in the offspring.
Recombination for real numbered representations
If we have representations which consist of real numbers, one might also want to use the
recombination operators that are given above for binary strings. However, another option is
to average the numbers on the same location, so that we get:
(xc1 =
xa1 + xb1
xa + xbn
, . . . , xcn = n
)
2
2
The two different recombination operators for real numbers can also be used together by
randomly selecting one of them each time.
Recombination for ordered representations
Designing recombination operators for ordered representations is usually more difficult, since
we have to ensure that we get children that respect the constraints of the problem. E.g. if
we would use 1-point crossover for the TSP, we will almost for sure get children which have
3.2. GENETIC ALGORITHMS
53
some cities twice and some other cities no time in their representation, which would amount
to many illegal solutions. Penalising such solutions would also not be effective, since almost
all individuals would become illegal. There has been a lot of research for making recombination operators for ordered representations, but we only mention one possible recombination
operator here.
Since the constraint on a recombination operator is that it has to inherit information from
both parents, we start by selecting a part of the first parent and copy that to the child. After
this, we want to use information from the second parent about the order of values which is
not yet copied to the child. This we do by looking at the second parent, examining the order
in the second parent of the cities which are not yet inside the child, and attaching these cities
in this order to the child. Figure 3.7 shows an illustration of this recombination operator for
ordered lists.
Parent 1
7
3
1
Parent 2
8
2
4
6
5
4
3
2
8
6
7
1
5
7,3,4,6,5
7
5
1
8
2
1
8
2
Order:
4,3,6,7,5
4
3
6
Child 1
Figure 3.7: A possible recombination operator for ordered representations such as for the
TSP. The operator copies a part of the first parent to the child and attaches the remaining
cities to the child while respecting their order in the second parent.
3.2.7
Selection strategies
Another important topic in the design of GAs is to select which parents are allowed to create
children. If one would always randomly choose parents for creating children, there would not
be any selective pressure for obtaining better individuals. Thus, good individuals must have
a larger probability for generating offspring than worse individuals. The selection strategy
determines how individuals of a population are chosen for generating offspring. Often the
selection strategy allows bad individuals to generate offspring as well, albeit with a much
smaller probability, although some selection strategies only create offspring with the best
individuals. The reason for using less than average fit individuals for creating offspring is
that they can still contain good genetic material and that the good individuals may resemble
each other very much. Therefore, using bad individuals may create more diverse populations.
In the following we will describe a number of different selection strategies.
54
CHAPTER 3. EVOLUTIONARY COMPUTATION
Fitness proportional selection
In fitness proportional selection, parents which are allowed to reproduce themselves are assigned a probability for reproduction that is based on their fitness. Suppose all fitness values
are positive, then fitness proportional selection computes the probability pi that individual i
is used for creating offspring as:
fi
pi = P
j fj
where fi indicates the fitness of the ith individual. If some fitness values are negative, one
should first subtract the fitness of the worst individual to create only new fitness values which
are positive. There are some disadvantages to this selection strategy:
• There is a danger of premature convergence, since good individuals with a much larger
fitness value than other individuals can quickly take over the whole population
• There is little selection pressure if the fitness values all lie close to each other
• If we add some constant to all fitness values, the resulting probabilities will become
different, so that similar fitness functions lead to completely different results
A possible way to deal with some of these disadvantages is to scale all fitness values, for
example between values of 0 and 1. For this scaling one might use different functions such
as the square root etc. Although this might seem a solution, the scaling method should be
designed ad-hoc for a particular problem and therefore requires a lot of experimental testing.
Tournament selection
Tournament selection does not have the problems mentioned above, and is therefore used
much more often, also because it is very easy to implement. In tournament selection k
individuals are selected randomly from the population without replacing (so each individual
can only be selected one time), and then the best individual of this group of k individuals is
used for creating offspring. Here, k is known as the tournament size, and is usually set to 2
or 3 (although the best value also depends on the size of the population). Very high values of
k cause a too high selection pressure and therefore can easily lead to premature convergence.
Figure 3.8 shows how this selection strategy works.
Population
Winner
Participants (k = 3)
f=6
f=2
f=1
f=3
f=8
f=9
f=9
f=4
f=5
f=9
f=5
f=5
f=3
2
1
f=3
3
Figure 3.8: In tournament selection k individuals are selected and the best one is used for
creating offspring.
3.2. GENETIC ALGORITHMS
55
Rank-based selection
In rank-based selection all individuals receive a rank where higher ranks are assigned to
better individuals. Then this rank is used to select a parent. So if we have a population of
N individuals, the best individual gets a rank of N , and the worst one a rank of 1. Then we
compute probabilities of each individual to become a parent as:
ri
pi = P
j rj
where ri is the rank of the ith individual.
Truncated selection
In truncated selection the best M < N individuals are selected and used for generating
offspring with equal probability. The problem of truncated selection is that it does not make
distinctions between the best and the M th best individual. Some researchers have used
truncated selection where the best 25% of the individuals in the population are used for
creating offspring, but this is a very high selection pressure and can therefore easily lead to
premature convergence.
3.2.8
Replacement strategy
The selective pressure is also influenced by the way individuals of the current population
are eliminated to make place for new individuals. In a generational genetic algorithm, one
usually kills the old population and replaces it by a completely new population, whereas in
a steady-state genetic algorithm at each time one new individual is created which replaces
one individual of the old population (usually the worst one). Generational GAs are most
often used, but sometimes part of the old population is kept in the new population. E.g. one
well-known approach is to always keep the best individual and copy it to the next population,
this approach is called Elitism (or elitist strategy). We recall that even if the elitist strategy
is not used, we always keep the best found solution so far in memory.
3.2.9
Recombination versus mutation
The two search operators used in genetic algorithms have different usage. The recombination
operator causes new individuals to depend on the whole population (genetic material of
individuals is mixed). Its utility relies on the schemata-theorem which tells us that if the
crossover operator does not destroy good building blocks too often, they can be quickly
mixed and stay in the population, since an individual consisting of two good building blocks
(schemata) is likely to have a higher fitness value and therefore more likely to propagate
its genetic material. In principle, the crossover operator exploits previously found genetic
material and leads to faster convergence. In case the whole population has converged to the
same individual, the crossover operator will not have any effect anymore. Thus, with less
diverse populations, the effect of crossover diminishes.
On the other hand the mutation operator possesses different properties. It allows a population to escape from a single local minimum. Furthermore it allows values of locations which
have been lost to be reinserted again. Thus we should regard it as an exploration operator.
56
CHAPTER 3. EVOLUTIONARY COMPUTATION
Genetic algorithms and evolutionary strategies
Independently on the development of genetic algorithms, Rechenberg invented evolutionary
strategies (ES). There is a number of different evolutionary strategies, but in principle ES
resemble GA a lot. Like GAs they rely on reproducing parents for creating new solutions. The
differences between GA and ES are that ES usually work on real numbered representations
and that they also evolve their own mutation parameter σ. Furthermore, most ES do not use
crossover, and some ES only use a single individual whereas GAs always use a population.
The choice whether to use crossover or not depends on:
• Is the fitness function separable in additive components (e.g. if we want to maximize
the number of 1’s in bitstring, then the fitness function is the addition of the fitness of
each separate location). In case of separable fitness functions, the use of recombination
can lead to much faster search times for optimal solutions.
• Are there building blocks? If there are no real building blocks, then crossover does not
make sense.
• Is there a semantically meaningful recombination operator? If recombination is meaningful it should be used.
3.3
Genetic Programming
Although genetic algorithms can be used for learning (robot) controllers or functions mapping
inputs to outputs, the use of binary representations or real numbers without a structure does
not provide immediate means for doing so. Therefore in the late 1980’s Genetic Programming
(GP) was invented and made famous by the work and books of John Koza. The main element
of genetic programming is the use of functional (or program) trees which are used to map
inputs to outputs. E.g., for robot control the inputs may consist of sensory inputs and the
outputs may be motor commands. By evolving functional program trees, those programs
which work best for the task at hand will remain in the population and reproduce.
A program tree may consist of a large number of functions such as cos, sin, ×, +, /, exp,
and random constants. These functions usually require a fixed number of inputs. Therefore
a program tree must obey some constraints which make it legal. To make a program tree
legal, functions which require n arguments (called n-ary functions), should have n branches
to child-nodes where each child-node is filled in by another function or variable. The leaf
nodes of the tree are input-variables or random constants. Figure 3.9 shows an example of a
program tree.
Genetic programming has been used for a number of different problems among which;
supervised learning (machine learning) to map inputs to outputs, learning to control robots,
and pattern recognition to distinguish between different objects from pixel-data.
Genetic programming is quite flexible in its use of functions and primitive building blocks.
Loops, memory registers, special random numbers, and more have been used to solve particular tasks. Like in genetic algorithms, one has to devise mutation and crossover operators for
program trees. The other elements of a genetic programming algorithm can be equal to the
ones used by genetic algorithms.
3.3. GENETIC PROGRAMMING
57
Program Tree
COS
Cos((X1 + X2) * 2)
*
+
X1
Function
2
X2
Figure 3.9: A program tree and its corresponding function.
3.3.1
Mutation in GP
The mutation operator can adjust a node in the tree. If the new function in the node will have
the same number of arguments, it is easy, but otherwise some solutions have to be found. In
the case of point-mutations one only allows mutating a terminal to a different terminal and
a function to a different function of the same arity. Other researchers have used mutation of
subtrees, in which a complete subtree is replaced by a randomly created new subtree. Figure
3.10 shows an example of a point mutation in GP.
Before Mutation
COS
COS
*
+
+
X1
After Mutation
+
2
X2
X1
2
X2
Figure 3.10: Point mutation in genetic programming. A function in a node is replaced by a
different function with the same number of arguments.
3.3.2
Recombination in GP
The recombination operator also works on program trees. First particular subtrees are cut
from the main program trees for both parent individuals and then these subtrees are exchanged. Figure 3.11 shows an example of the recombination operator in GP.
3.3.3
Probabilistic incremental program evolution
Instead of using a population of individuals, one could also use generative prototypes which
generate individuals according to some probability distribution. Baluja invented population
based incremental learning (PBIL) which encodes a chromosome for generating bitstrings. For
58
CHAPTER 3. EVOLUTIONARY COMPUTATION
Parents
COS
SIN
CUT
CUT
+
*
+
X1
*
2
X2
2
COS
X1
X2
SIN
COS
Children
*
*
+
COS
2
X1
2
+
X2
X2
X1
Figure 3.11: Recombination in genetic programming. A subtree of one parent is exchanged
with a subtree of another parent.
this the chromosome consists of probabilities for generating 1 on a specific location (and 1
minus that probability for generating a 0). Using this prototype chromosome, individuals can
be generated and evaluated. After that the prototype chromosome can be adjusted towards
the best individual so that it will generate solutions around the best individuals with higher
probability.
This idea was pursued by Rafal Salustowicz for transforming populations of program trees
in a representation using a probabilistic program tree (PPT). The idea is known as probabilistic incremental program evolution (PIPE) and it uses probabilities to generate functions
in a particular node. The probabilistic program tree which is used for generating program
trees consists of a single large tree consisting of probabilities of functions in each node, as
shown in Figure 3.12.
The PPT is used to generate an individual as follows:
• Start at the root node and select a function according to the probabilities
• Go to the subtrees of the PPT to generate the necessary arguments for the previously
generated functions
• Repeat this until the program is finished (all leaf nodes consist of terminals such as
variables or constants)
For learning in PIPE, it is requested that the PPT is changed so that the individuals
which are generated from it obtain higher fitness values. For this PIPE repeats the following
steps:
• Generate N individuals with the prototype tree
• Evaluate these N individuals
• Select the best individual and increase the probabilities of the functions and terminals
used by this best individual
3.4. MEMETIC ALGORITHMS
59
Probabilistic Prototype Tree
SIN
COS
*
+
/
X1
X2
SIN
COS
*
+
/
X1
X2
0.23
0.11
0.19
0.06
0.06
0.19
0.06
0.51
0.20
0.09
0.04
0.06
0.09
0.01
SIN
COS
*
+
/
X1
X2
0.01
0.22
0.19
0.24
0.09
0.07
0.18
Figure 3.12: The probabilistic prototype tree used in PIPE for generating individuals.
• Mutate the probabilities of the PPT a little bit
PIPE has been compared to GP and it was experimentally found that PIPE can find good
solutions faster than GP for particular problems.
3.4
Memetic Algorithms
There is an increasing amount of research which combines GA with local hill-climbing techniques. Such algorithms are known as memetic algorithms. Memetic algorithms are inspired
by memes [Dawkins, 1976], pieces of mental ideas, like stories, ideas, and gossip, which reproduce (propagate) themselves through a population of meme carriers. Corresponding to the
selfish gene idea [Dawkins, 1976] in this mechanism each meme uses the host (the individual)
to propagate itself further through the population, and in this way competes with different
memes for the limited resources (there is always limited memory and time for knowing and
telling all ideas and stories).
The difference between genes and memes is that the first are inspired by biological evolution and the second by cultural evolution. Cultural evolution is different because Lamarckian
learning is possible in this model. That means that each transmitted meme can be changed
according to receiving more information from the environment. This makes it possible to
locally optimize each different meme before it is transmitted to other individuals. Although
optimisation of transmitted memes before they are propagated further seems an efficient way
for knowledge propagation or population-based optimisation, the question is how we can
optimize a meme or individual. For this we can combine genetic algorithms with different
optimisation methods. The optimisation technique which is most often used is a simple local hill-climber, but some researchers have also proposed different techniques such as Tabu
Search. Because a local hill-climber is used, each individual is not truly optimized, but only
brought to its local maximum. If it would be possible to fully optimize the individual, we
would not need a genetic algorithm at all.
60
CHAPTER 3. EVOLUTIONARY COMPUTATION
The good thing of memetic algorithms compared to genetic algorithms is that genetic
algorithms usually have problems in fine-tuning a good solution to make it an optimal one.
E.g. suppose that a bitstring contains perfect genetic material except for a single bit. In
this case there are much more possible mutations which harm the individual than mutations
which bring it to the true global optimum. Memetic algorithms do not have this problem
and they also have the advantage that all individuals in the population are in local maxima.
However, this also involves a cost, since the local hill-climber can require many evaluations
to bring an individual to a local maximum in its region.
Memetic algorithms have already been compared to GAs on a number of combinatorial optimisation problems such as the traveling salesman problem (TSP) [Radcliffe and Surry, 1994]
and experimental results indicated that the memetic algorithms found much better solutions than standard genetic algorithms. Memetic algorithms have also been compared to the
Ant Colony System [Dorigo et al., 1996], [Dorigo and Gambardella, 1997] and to Tabu Search
[Glover and Laguna, 1997] and results indicated that memetic algorithms outperformed both
of them on the Quadratic Assignment Problem [Merz and Freisleben, 1999].
3.5
Discussion
Evolutionary algorithms have the advantage that they can be used for solving a large number
of different problems. For example if one wants to make a function which generates particular
patterns and no other learning method exists, one could always use an evolutionary algorithm.
Furthermore, evolutionary algorithms are good in searching through very large spaces and
can be easily parallellized.
A problem with evolutionary algorithms is that sometimes the population converges prematurely to a suboptimal local minimum. Therefore a lot of research effort has come up with
methods for keeping diversity during the evolution. Another problem is that many individuals are evaluated and then never used anymore, which seems a waste of computer power.
Furthermore, the learning progress can be quite slow for some problems and if many individuals have the same fitness value there is not much selective pressure. E.g. if there is only a
good/bad final evaluation, it is very hard to come up with solutions which are evaluated good
if in the beginning all individuals are bad. Therefore, the fitness function should be designed
in a way to provide maximal informative information.
A lot of current research focuses on “linkage learning”. We have seen that recombination
is a useful operator which can allow for quickly combining good genetic material (building
blocks). However, uniform crossover is very disruptive, since it is a random crossover operator
it does not keep building blocks as a whole together. On the other hand 1-point crossover
may keep building blocks together if the building blocks are encoded on bits which lie nearby
on a genetic string (i.e. next to each other). It may happen, however, that a building block is
not encoded in a genetic string as material next to each other, but distributed over the whole
string. In order to use effective crossover for such problems one must identify the building
blocks which is known as linkage learning. Since building blocks can be quite large, finding
the complete block can be very difficult, but effective progress in this direction has been made.
Chapter 4
Physical and Biological Adaptive
Systems
Before the 16’th century, the Western thinkers believed in a deductive approach to acknowledge truth. For example, Aristotle always thought that heavy objects would fall faster to the
ground than lighter objects. It was not until Galileo Galilei (1564-1642) tested this (according to some he did his experiments by dropping objects from the tower of Pisa), that this
hypothesis turned out to be false (if we disregard air-resistance). After this Galilei played
an important role to use mathematics for making predictive models and he also showed that
planets were going around the sun instead of around the earth (this hypothesis he had to
retract from the church). This was the start of a natural science where experiments were
used to make (predictive) models. Christiaan Huygens also played an important role by his
discovery of much better clocks to make measuring time much more precise, his discovery of
better lenses and telescopes, and the discovery that light could be described by waves instead
of particles. The new science continued with Kepler (1571 - 1630) who approximated the orbits of planets and came up with ellipsoids to predict them instead of the commonly thought
hypothesis that the orbits should be approximated using circles.
Isaac Newton (1642-1727) discovered the gravitation laws and laws of mechanics which
were the final breakthrough for a new natural science. Newton’s gravitation laws tells that two
objects (e.g. planets) attract each other based on the multiplication of their masses divided
by the square of the distance between them, and it is very accurate for big objects which do
not move at very high speed (for very small moving particles quantum mechanics introduced
different laws, and for very high speed relativity theory was later invented). Newton’s laws
of mechanics were also used to predict that planet orbits were ellipsoids and that planets will
circle around the sun whose movement is hardly influenced by the planets.
After this fruitful period of scientific revolutions, researchers started to think that the
universe worked like a clock and that everything could be predicted. This even led to the
idea of a Genius by Laplace which would be an almighty entity which could predict the future
and the past based on the current state and the mechanical laws. Although this idea of a
universal clock brought many fruitful machines such as computers and television, already in
the start of the 19’th century Poincaré had discovered that not everything could be predicted.
Poincaré was studying three body problems, like three planets moving around each other, and
discovered that there were not enough known equations to come up with a single analytical
solution for predicting their movements. This eventually led to chaos theory, where a model
61
62
CHAPTER 4. PHYSICAL AND BIOLOGICAL ADAPTIVE SYSTEMS
can be deterministic, but still shows unpredictable behavior if we cannot exactly measure the
initial state.
Although the word chaos often refers to a state without order, researchers have found
remarkable structures in chaotic systems. Even in chaotic systems there seems to be a kind
of self-organisation. In this chapter we will look at the path from physics to biology, take a
look at chaotic systems, and then we will examine self-organising biological systems such as
ants and the use of these systems for solving optimisation problems.
4.1
From Physics to Biology
In Newtonian mechanics, the systems are reversible, which means that we can turn around the
arrow of time and compute the past instead of the future. There are specific laws of physical
systems such as the conservation of energy which states that the sum of potential and kinetic
energy of an objects must remain constant. An example is a ball which we throw in the air.
In the beginning the kinetic energy (due to its speed) is maximal, and it will become 0 at
the highest point where the potential energy (due to gravitation) is maximal. Then it will
fall again while conserving its energy until finally it bounces against the ground and will lose
energy due to this (in reality the height of the ball will be damped due to friction which
causes a loss of energy. Without loss of energy the ball would continue bouncing forever).
If we have energy preserving systems, the system will continue with its movement. A
good example is a pendulum. Suppose a pendulum is mounted at some point, and there is
no friction at this point or friction due to air resistance. Then we give the clock a push to
the right and it will remain moving to the left and to the right. If we give the pendulum a
harder push, it will go around and continue going around. Let’s look at the phase diagram
in Figure 4.1 that shows possible trajectories in the plane with the angle on the x-axis, and
the (normalised) angular speed on the y-axis.
Figure 4.1: The phase diagram of the pendulum
4.1. FROM PHYSICS TO BIOLOGY
63
In the middle of the figure a stable equilibrium is shown, the pendulum is not moving
at all. Trajectories a and b show periodic cycles (orbits) where the pendulum is moving to
the left, right, left, etc. Orbit c leads to an unstable equilibrium in which the pendulum
goes to the highest point and there it stops to move. This point is unstable, because a slight
perturbation will cause it to move again. Finally, in orbit d the pendulum is going over its
head.
The pendulum is an example of a reversible system in which energy is conserved. Ideally,
such mechanical systems always conserve their energy. However, there are also many systems
which are irreversible, which are thermodynamic objects. After the industrial revolution,
many scientists were interested in making the optimal (perpetuum mobile) machine; one
which would continue to work forever. But soon they discovered that every machine would
lose useful energy due to production of heat. An example of a thermodynamic object is a
system which consists of a box with 2 halves. In one half there are N gas-molecules and in the
other half there are none. The initial state is very ordered since all the gas-molecules are at
the left half. Now we take away the border between the halves and we will observe that after
some time both halves will contain roughly the same amount of molecules. This is an example
of an irreversible system since if the system would be in a state with the same amount of
molecules in both halves it would probably never go to the state with all molecules in one
half again. To describe such processes, Boltzmann invented the word entropy. Entropy
corresponds to the amount of disorder which is caused by the production of useless energy
such as heat which cannot be turned back to make energy without a heat potential. Entropy
has also been widely used in thermodynamics to explain why heat will always flow from a hot
space to a colder space.
Consider the case of the N gas molecules again. Boltzmann used a statistical explanation
why the molecules would mix and a state of disorder would arise. Consider now N molecules
and the number of permutations that can describe a possible state. For example all N
molecules in one half of the box would only have one possible state, one molecule in one half
and the rest in the other half would have N possible states. Now if we divide the N molecules
in N1 and N2 molecules in both halves, the number of permutations would be:
P =
N!
N1 !N2 !
Now its logical that the system will go to an equilibrium with most possible states, that is
where N1 = N2 . For this Boltzmann defined entropy of a system as:
S = k log P
Where k is called the Boltzmann constant.
So although all microscopic states are equally possible, due to the effect that there are
much more microscopic states around the macroscopic situation of having the same number of
molecules in both halves, this situation will arise after some time. Of course small deviations
from the macroscopic equilibrium can happen, but the system’s state will oscillate around this
equilibrium. We can see that entropy is maximised and that disorder will be the result. Since
entropy production is always positive in a closed system and there is a state with maximal
entropy, the system will always converge to such an equilibrium. Since the initial state gets
lost in this case, the process is not reversible (many states lead to the same final state). Note
the difference with the energy-preserving pendulum which is reversible. It is important to
64
CHAPTER 4. PHYSICAL AND BIOLOGICAL ADAPTIVE SYSTEMS
note that there are many irreversible processes in machines caused by loss of heat, friction
etc. so that is is not possible to make a machine which continues forever without receiving
additional energy. These processes cause an increase of the entropy of the system.
But how is this with open systems such as living systems? Here the change of entropy
of the system is governed by an internal change of entropy dSi /dt which is irreversible and
always positive, and an exchange of entropy between the system and its environment dSu /dt
which can be positive or negative. We note that the exchange of entropy of a closed system
is not possible (since there is no environment to interact with) so that the entropy can only
increase or remain constant (at the maximal value). In this case, the entropy determines the
direction of time; for all closed systems their future lies in the direction of increased entropy.
This lead to the two laws of the thermodynamics by Clausius in 1865:
• The energy of the world is constant
• The entropy of the world goes to a maximal value
Thus in the thermodynamic equilibrium the entropy and disorder will be at its maximum.
However, living systems can exchange entropy with their environment. This allows them to
keep their entropy low. E.g. by consuming food and energy, a living system is able to keep
its order without having to increase its entropy. This is the essential difference between open
and closed systems. An open system can receive useful energy from the environment and
thereby it can reduce its disorder and create more order.
4.2
Non-linear Dynamical Systems and Chaos Theory
As mentioned before, Poincaré had already discovered that there are no analytical solutions
to be found for the n-body problem with n larger than 2. For 2 planets, there is an analytical
solution which determines the position and velocity of both interacting planets given the
initial conditions. These planets will move around their point of joint mass as shown in
Figure 4.2.
Point of common mass
Planet 1
Planet 2
Figure 4.2: The orbits of two interacting planets
For the n-body problem with n ≥ 3, Poincaré had demonstrated that there were not
enough differential equations to be able to compute a solution to the problem. The problem
was therefore not integratable to a closed-form analytical solution. Poincaré has also demonstrated that small perturbations could cause large differences of trajectories in this case. This
was the first time chaotic dynamics had been mentioned.
After this, for a long time few researchers were studying chaotic systems. One major
breakthrough in their understanding came when computers were used which could visualise
4.2. NON-LINEAR DYNAMICAL SYSTEMS AND CHAOS THEORY
65
such processes. The first famous demonstration of chaos using computer simulations was
described by the meteorologist Edward Lorenz who was studying weather prediction. In 1961
he saw an event in his computer simulations. By accident he discovered sensitivity to initial
conditions, since he wanted to repeat his simulations, but found completely different results.
After some time he discovered that the values he used in his second simulation were rounded
to three decimals, whereas the computer used values with 6 decimals during the entire run.
These minimal differences quickly caused large deviations as is seen in Figure 4.3.
Figure 4.3: The simulations done by Lorenz showed sensitivity to initial conditions. Although
the initial values were almost similar, the difference between the trajectories became very
large.
In chaos theory it is often said that little causes create big consequences. After simplifying
his model to three variables, he first noted something like random behavior, but after plotting
the values in a coordinate space, he obtained his famous Lorenz attractor depicted in Figure
4.4. We can see an ordered structure, so again we should not confuse chaotic dynamics with
non-determinism.
Figure 4.4: The Lorenz attractor
The dynamical system of Lorenz is quite complicated to analyse, and therefore we will
use an example from biology to demonstrate chaotic dynamics in an easier way.
66
4.2.1
CHAPTER 4. PHYSICAL AND BIOLOGICAL ADAPTIVE SYSTEMS
The logistic map
Around 1800, T.R. Malthus assumed that the growth of a population would be linear with
the number of individuals x(t). The mathematical expression is the differential equation:
dx
= kx
dt
which has as closed-form solution an exponential growing population:
x(t) = x(0)exp(kt)
In 1844 P.F. Verhulst noted that for a growing population there must arise competition so that
the population would stop growing at some time. He noted that the population would grow
linearly with the number of individuals and the difference between the number of available
sources and the sources needed to sustain the population. This model is known as the following
Verhulst equation:
dx
= Ax(N − x)
dt
with AN the maximal number of available sources and Ax the amount needed for x persons.
The logistic map equation can be derived from this in which we use discrete time and change
variables. The logistic map equation looks as follows:
x(t + 1) = rx(t)(1 − x(t))
Where x has a value between 0 and 1. For values of r below 1, the population will die out
(x(∞) = 0). If r is between 1 and 3, there is one single final state x(∞). Now if we keep
increasing r, there will arise period-2 cycles and higher periodic cycles. Each value for r that
causes the period to increase (in the beginning it doubles) is called a bifurcation point. Figure
4.5 shows a period-2 cycle of this map with a value of r a little bit larger than 3.
Figure 4.5: A period-2 cycle of the logistic map.
Figure 4.6 shows a larger periodic cycle. Although the periodic attractor is difficult to
see, it is important to note that trajectories from different starting points x0 approach this
limit cycle.
Now, look what happens if we plot the value of r to the values which x can take after a
long transient period (so we eliminate the initial values x(t) by waiting for 1000 steps). This
4.2. NON-LINEAR DYNAMICAL SYSTEMS AND CHAOS THEORY
67
Figure 4.6: A larger periodic cycle of the logistic map.
plot is shown in Figure 4.7. The figure shows a very complicated bifurcation diagram. In the
beginning there is a single steady state (for r ≤ 1 all trajectories go to x(∞) = 0). When
r > 1 and r < 3 there is a single stable state for x, although the final value x(∞) depends on
r. Now if we increase r to a value higher than 3, there is a periodic cycle of length 2, which
is shown in the bifurcation diagram by the two branches which determine the multitude of
values of x which are part of periodic cycles. Increasing r further leads to periodic cycles of
length 4, 8, 16, etc. Until finally the period becomes infinite and the system shows chaotic
behavior.
Figure 4.7: A plot of the value of the control parameter r to the values which x will take after
some transient period.
In Figure 4.8, we see a more detailed figure of this bifurcation diagram for values of r
between 3.4 and 4. It shows that although there are values of r displaying chaotic behavior,
for some values of r there are again periodic cycles, which is shown by the bands with only
few branches. If we further zoom in in the area of Figure 4.8, we get the figure displayed in
Figure 4.9. This figure shows clearly that there are periodic cycles alternating with chaotic
dynamics.
A remarkable property of the chaotic dynamics generated by the logistic map is when
we further zoom in in the area of Figure 4.9 and get the Figure 4.10. This figure clearly
shows that there is a self-similar pattern on a smaller scale. Again we see bifurcation points
68
CHAPTER 4. PHYSICAL AND BIOLOGICAL ADAPTIVE SYSTEMS
Figure 4.8: A plot of the value of the control parameter r to the values which x will take after
some transient period.
Figure 4.9: A plot of the value of the control parameter r between 3.73 and 3.753 to the
values which x will take after some transient period.
and periodic lengths which double, until again it arrives at chaotic dynamics which visit an
infinite number of points.
So what can we learn from this? First of all even simple equations can display chaotic
behavior. For a map (or difference equation) chaotic dynamics can be obtained with a single
variable (the population x). When using differential equations it turns out that there need
to be three differential equations which form a non-linear system in order for the system
to display chaotic behavior. Furthermore, when chaotic dynamics arise, even a very small
difference between two initial states can cause a very different trajectory. This means that
if we cannot exactly measure the initial state our hope to predict the future dynamics of
the system is lost. Of course, here we have shown simple mathematical equations leading to
chaotic behavior, the question therefore is whether chaos also arises in real natural systems.
The answer to this is yes; research has turned out that the heartbeat follows an irregular
non-periodic patterns, and using a EEG it was shown that the brain also possesses chaotic
dynamics. Furthermore, in biological systems the population of particular kinds of flies also
shows chaotic behavior. And of course to come back to Lorenz, the weather is unpredictable
since it is very sensitive to initial conditions. This sensitivity in chaos theory is often related
to the possibility that a butterfly in Japan can cause a tornado in Europe.
4.3. SELF-ORGANISING BIOLOGICAL SYSTEMS
69
Figure 4.10: A plot of the value of the control parameter r between 3.741 and 3.745 to the
values which x will take after some transient period.
Instead of only disorder, we can also see ordered patterns in chaotic systems. One example
is the self-similar structure if we look at the pattern of a bifurcation diagram at different scales.
Furthermore, if we look at the Lorenz attractor, we can see that not all states are possible;
the state trajectories are all on a particular manifold (subspace of the whole space). On the
contrary, when we would use a stochastic (non-deterministic) system, the trajectories would
fill up the whole phase diagram. In reality chaos therefore also displays order, which is also
the statement of Ilya Prigogine; “order out of chaos”.
4.3
Self-organising Biological Systems
Adaptive systems can be used fruitfully to model biological systems. We have already seen
that the model can consist of mathematical equations, but they can also have a spatial
configuration using individualistic models such as cellular automata. The advantage of using
individualistic models moving in a particular space is that there is an additional degree of
freedom for the physical space and therefore additional emergent patterns. By simulating
an individualistic model, it also becomes much easier to visualise processes such as the fire
propagation in forest fires. The disadvantage of spatial models compared to mathematical
equations is that it is much slower to simulate. Some examples of biological models which
can be modelled are:
• Infection diseases
• Forest fires
• Floods
• Volcano eruptions
• Co-evolving species
The first four processes mentioned above show a common aspect; they propagate themselves
over paths which depend on the environment. To stop the propagation, such paths should be
“closed”. This is essential for controlling these natural disasters, but will not be the issue in
this chapter.
70
CHAPTER 4. PHYSICAL AND BIOLOGICAL ADAPTIVE SYSTEMS
4.3.1
Models of infection diseases
We will look at two different models for simulating infection diseases. In infection diseases,
we can distinguish between three kinds of individuals in the population:
• Healthy individuals (H)
• Infected, sick individuals (S)
• Immune individuals which have had the disease (I)
If a healthy person comes in the neighbourhood of an infected individual, the healthy
person will also become infected in our model (although usually this will only happen with
some probability). If an infected person has been sick long enough, it becomes an immune
individual which is not sick anymore.
Mathematical model of infection diseases
We can make a model using difference equations. We start with a state of the population:
S(0) = (H(0), I(0), S(0)), and use the following equations to determine the evolution of the
system:
S(t + 1) = S(t) + S(t)H(t) − bS(t)
I(t + 1) = I(t) + bS(t)
H(t + 1) = H(t) − aS(t)H(t)
Here we have two control parameters a and b. Note that the values H, I, S should not become
negative! If we examine the model, we can see that the number of immune individuals is
always increasing or stays equal. Therefore a stable attractor point is a situation with all
people immune to the disease. However, if the control parameter b is set to a very large value,
the population of sick people might decrease too fast and might become 0 before all healthy
people became sick. Therefore other possible stable states include a number of healthy and
immune people. Also when there are no sick or immune people at all at start, the stable point
would consist only of healthy people.
Cellular automaton model of infection diseases
We can also use a cellular automaton (CA) in which we have to make rules to update the
state of the CA. Suppose we take the 2-dimensional CA with individuals as shown in Figure
4.11. Cells can be empty or be occupied by a sick, immune, or healthy person.
The CA also needs transition rules to change the state of the system, we can make the
following rules:
• If H has a S in a cell next to it, the H becomes a S.
• S has each time step a chance to become a I
• For navigation, all individuals make a random step at each time-step
4.4. SWARM INTELLIGENCE
71
H
S
S S
H
H
H
S H
I
I
S
H
I
S
S
I
S
Figure 4.11: The CA for infection diseases. H = healthy person, I = immune person, S =
sick person
Step 2 above uses a probability to change a state of a cell and navigation also used randomness,
therefore this is an example of a stochastic cellular automaton. Finally, we can also make
another navigation strategy so that healthy persons stay away from sick individuals. This
could lead to different evolving patterns where healthy persons are in one corner, far away
from the sick individuals.
4.4
Swarm Intelligence
It is well known that a large group of simple organisms such as ants or bees can show intelligent
behavior. The question is how this collective intelligent behavior emerges from simple individuals. In this section we will see examples of this phenomenon and how this self-organising
collective behavior can be used for making optimisation algorithms.
First we will look at some smart collective behaviors:
• Foraging behavior: individuals search for food and bring it to their nest
• Protection of the nest: individuals have received an altruistic and non-producing task
which helps the group to survive
• Building of a nest: E.g. how do termites construct their nest or how are honeycombs
made by bees.
• Stacking food and spreading it
It is clear that there is no super controller which sends the individuals messages how to do
their task. In some ways the behaviors emerge from simple individual behaviors. E.g. if we
look at the process of creating honeycombs, then we can see that the structure emerges from
local interactions between the bees. Every bee creates a single cell in the wax by hollowing
out part of the space of the wax. Whenever a bee makes a cell it takes away parts of the
borders of the cell. When it feels that there is another bee working in the cell close next to it,
it stops taking wax out of the direction of that bee. In this way a hexagonal pattern emerges
with very similar cells (because bees have similar sizes), see Figure 4.12.
72
CHAPTER 4. PHYSICAL AND BIOLOGICAL ADAPTIVE SYSTEMS
Figure 4.12: A honeycomb
It is also known that ants can solve particular problems, such as finding the shortest path
to a food pile, clustering or sorting food, and clustering dead ant bodies. Although a single
ant is not intelligent, the whole colony shows intelligent group behavior (super-intelligence).
4.4.1
Sorting behavior of ant colonies
When many ants die at the same time, the living group makes cemeteries of the dead ants by
stacking them all on the same place. How can this be done if single ants are not intelligent
enough to know where to put the dead ant they may be carrying? To explain this, we can
make a simple model with three rules:
• An ant walks in arbitrary directions
• Whenever an ant does not carry anything and finds a dead ant, it takes it and will carry
it to some different place
• Whenever an ant carries a dead ant and sees a pile of dead ants, it will drop the ant
near that pile
These three simple rules can explain the group-behavior of sorting ants. A similar model can
be made to let ants make piles of sugar and chocolate. Since each ant is very simple, it would
take a long time until some organisation would emerge using a single ant. However, when
many ants are used, the self-organisation of matter in the space can occur at very short time
periods. This is also a reason why some researchers investigate collective swarm robotics to
make many simple small robots collaborate together to perform different tasks, instead of a
single large robot which has to do everything alone.
4.4.2
Ant colony optimisation
A new kind of multi-agent adaptive system for combinatorial optimisation has been invented
by Marco Dorigo in the 90’s. In this algorithm, a colony of ants works together to find
solutions to difficult path-planning problems such as the traveling salesman problem. The
algorithm is inspired by how ant colonies work in reality. The foraging ants leave a chemical
4.4. SWARM INTELLIGENCE
73
substance known as pheromone on the ground when they go from their nest to a food source
and vice versa. Other foraging ants follow the paths with most pheromone according to a
probability distribution. While following these paths they strengthen them by leaving additional pheromone. This collective foraging behavior enables an ant colony to find the shortest
path between the nest and a food source. Optimisation algorithms which are inspired by the
collective foraging behavior of ants are called ant colony systems or simply ant algorithms.
We will first examine combinatorial optimisation problems which determines the class of
problems which are hard to solve and for which ant colony systems can be applied.
Combinatorial optimisation
Particular problems cost exponential amount of time to solve. To get an idea of an exponential
problem, consider a solution that consists of n states and the time to solve it is 2n or n!. An
example is to find a bitstring of only 1’s when the fitness is 0 for all solutions except for
the state with all 1’s which gets higher fitness (known as a needle in a haystack problem).
Exponential time problems grow much faster than polynomial time problems:
np
→0
n→∞ en
lim
Where p is the degree of some polynomial function and e is the natural exponent. A number of
well known mathematical problems are called combinatorial optimisation problems, a subset
of these are NP-complete problems which cannot be solved in polynomial time unless P =
NP. The question P = NP is known as one of the open and most important questions in
computer science and optimisation. The interesting thing is that if one of these NP-complete
problems can be solved by some algorithm in polynomial time, all these problems can be
solved in polynomial time. So far no polynomial time algorithm has been found to solve one
of these problems, however.
Since computer power cannot increase faster than exponential time (Moore’s law states
that computer power doubles every two years), some big combinatorial optimisation problems
can never be solved optimally. Some examples of combinatorial optimisation problems are:
• The traveling salesman problem: find the shortest tour through n cities
• Quadratic assignment problem: minimize the flow (total distance which has to be travelled) if a number of employees has to visit each other daily in a building according
to some frequency. So the total cost is the product of the distance matrix and the
frequency matrix. The problem requires to assign locations to all people to minimize
the total cost. This often involves putting people who meet each other frequently in
nearby locations.
• 3-satisfiability: Find truth-values for n propositions to make the following kind of formula true:
{x1 ∨ ¬x2 ∨ x4 } ∧ . . . ∧ {x1 ∨ ¬x5 ∨ x7 }
• Job-shop scheduling: Minimize the total time to do a number of jobs on a number of
machines where each job has to visit a sequence of machines in a specific order and each
machine can only handle one job at a time.
74
CHAPTER 4. PHYSICAL AND BIOLOGICAL ADAPTIVE SYSTEMS
We will elaborate a bit on the traveling salesman problem here, since ant algorithms were
first used to solve this kind of problem. In the traveling salesman problem (TSP) there is a
seller which wants to visit n cities and come back to his starting city. All cities i and j are
connected with a road of distance l(i, j). These lengths are represented in a distance matrix.
The agent must compute a tour to minimize the length of the total tour. An example of a
tour with 8 cities with distance 31 is shown in Figure 4.13.
4
3
5
4
5
4
4
2
Figure 4.13: A tour in a traveling salesman problem
How can we generate a tour for the traveling salesman problem? The constraints are that
all cities have to be visited exactly once and that the tour ends at the starting city. Now
we keep a set of all cities which have not been visited: J = {i | i is not visited}. In the
beginning J consists of all cities. After visiting a city, we remove that city from the set J.
The algorithm for making a tour now consists of the following steps:
1. Choose an initial city s0 and remove it from J
2. For t = 1 to n:
(a) Choose city st out of J and remove st from J
3. Compute the total length of the tour:
P −1
L= N
t=0 l(st , st+1 ) + l(sN , s0 )
Of course the most important thing is to make the rule for choosing the next city given the
current one and the set J. Different algorithms for computing tours can be compared to the
final value L returned by the algorithm (note that for very large problems, it is extremely
hard to find an optimal solution, so that an algorithm should just find a good one).
4.4.3
Foraging ants
One algorithm for making an adaptive rule for selecting the next city given the current one
and the set J is inspired on the collective foraging behavior of ants. We will first examine
why ants can find shortest paths from the nest to a food source. Let’s have a look at Figure
4.14. It shows two paths from the left to the right and ants approaching the point where they
4.4. SWARM INTELLIGENCE
75
Figure 4.14: In the beginning the ant colony does not have any information about which path
to take
need to choose one of them. In the beginning their choice will be completely random, so 50%
will take the upper path and the other 50% the lower path.
Now in Figure 4.15 it becomes clear that ants which took the lower path will arrive at
the destination earlier than those which took the upper path. Therefore, as we can see in
Figure 4.16, the lower path will accumulate more pheromone and will be preferred by most
ants, leading to more and more strengthening of this path (see Figure 4.17).
Figure 4.15: Ants which take the lower path will arrive sooner at the destination
Figure 4.16: This causes more ants to follow the lower part
4.4.4
Properties of ant algorithms
There are multiple different ant algorithms, but they all share the following properties:
• They consist of a colony of artificial ants
76
CHAPTER 4. PHYSICAL AND BIOLOGICAL ADAPTIVE SYSTEMS
Figure 4.17: The amount of pheromone keeps on strengthening more along the lower path
than along the upper path, therefore finally almost all ants will follow the lower path.
• Ants make discrete steps
• Ants put pheromone on chosen paths
• Ants use the pheromone to decide which steps to make
Ant algorithms have been used for a wide variety of combinatorial optimisation problems
such as the traveling salesman problem, the quadratic assignment problem, and network
routing. The idea to let individuals interact, because one of them changes the environment is
called stigmercy. The first ant algorithm, the ant system, was initially tested on the TSP.
It works as follows:
• All N ants make a tour for which they use pheromone between cities to select the next
city
• All not followed edges lose a bit of pheromone due to evaporation
• All followed edges receive additional pheromone where edges belonging to shorter tours
receive more pheromone.
The ant-system was thereafter changed in some ways and this led to the ant colony system.
We will now give a formal description of the ant-colony system used for the traveling salesman
problem (although the ant-colony system is often called a meta-heuristic that includes many
possible algorithms and can be used for different problems).
The ant colony system consists of K ants. The amount of pheronome between 2 cities i
and j is denoted as m(i, j). For choosing the next city an additional heuristic is used which
1
.
is the inverse of the length between two cities: v(i, j) = l(i,j)
Now every ant: k = 1 . . . k makes a tour:
• Choose a random starting city for ant k : i = random(0, N ) and take the city out of
the set Jk of unvisited cities for ant k
• Choose next cities given the previous one according to:
j=
(
arg max{[m(i, h)] · [v(i, h)]β } if q ≤ q0
h∈Jk
S
else
(4.1)
Here β is a control parameter, 0 ≤ q ≤ 1 is a random number, and the control parameter
0 ≤ q0 ≤ 1 determines the relative importance of exploration versus exploitation. If
4.5. DISCUSSION
77
exploration is used, we generate S which is a city chosen according to the probability
distribution given by the following equation:
pij =

 P

[m(i,j)]·[v(i,j)]β
[m(i,h)]·[v(i,h)]β
h∈J
k
0
if j ∈ Jk
(4.2)
else
Now all ants have made a tour and we can update the pheromone trails as follows. First
we compute which generated tour was the best one during the last generation, let’s call this
tour Sgb for global-best solution. This tour has length: Lgb . Now the update rule looks as
follows:
m(i, j) = (1 − α) · m(i, j) + α · ∆m(i, j)
where ∆m(i, j) =
(
(Lgb )−1 if edge (i,j) ∈ Sgb
0
else
Here, α is a control parameter similar to the learning-rate. Note that the added pheromone
depends on the length of the best tour, and that pheronome on other edges evaporate.
This is one possible ant colony system, it is also possible to let the pheromone be adapted
to the best tour ever found, instead of the best tour of the last cycle. Other possibilities of
choosing paths are also possible, but the method given above usually works a bit better. Note
also that there are many parameters to set: α, β, q0 and the initial values for the pheromone.
4.5
Discussion
Biological systems differ from mechanical systems or thermodynamic systems since they are
able to take energy from the environment in order to decrease their internal entropy (state of
disorder). We have seen that there are dynamic systems which look very simple, but which
can lead to chaotic dynamics. An example is the logistic map and its operation depends on
the control parameter r. If we increase r we can see that instead of a single stable state, there
will arise bifurcations to periodic cycles of higher order, finally leading to chaotic dynamics.
Chaotic dynamics leads to unpredictable systems, since if we do not know the exact initial
condition of the system, the evolution of the system will create large discrepancies between
the predicted and the real observed behavior. Although chaotic systems are unpredictable,
they also show some kind of order which is seen from the emergence of manifolds on which
all points lie (such as in the Lorenz attractor) or the self-similar structure when one looks at
chaotic dynamics from different scales.
In biology, there are often simple organisms which can fulfil complex tasks. We have seen
that this intelligent collective behavior can emerge from simple individual rules. An example
of this is when ants build ant-cemeteries. Furthermore, this ability of swarm intelligence has
also inspired researchers to develop algorithms for solving complex problems. A well-known
example of this is the ant colony system which has been fruitfully used to solve combinatorial
optimisation problems such as the traveling salesman problem.
78
CHAPTER 4. PHYSICAL AND BIOLOGICAL ADAPTIVE SYSTEMS
Chapter 5
Co-Evolution
Let us first consider the history of the earth. Using the internet-site: “http:///www.solstation.com/life.htm”
the following summary can be extracted:
Our solar system was born about 4.6 billion years ago. In this time protoplanets
agglomerated from a circum-Solar disk of dust and gas. Not long after that the
protoplanetary Earth was struck by a Mars-sized body to form the Earth and
Moon. Geologists have determined that the Earth is about 4.56 billion years old.
Initially, the Earth’s surface was mostly molten rock that cooled down due to the
radiation of heat into space, whereas the atmosphere consisted mostly of water
(H2 O), carbon dioxide (CO2 ), nitrogen (N2 ), and hydrogen (N2 ) with only a little bit of oxygen (O2 ). Eventually a rocky crust was formed and some areas were
covered with water rich with organic compounds. From these organic compounds,
self-replicating, carbon-based microbial life developed during the first billion years
of Earth’s existence. The microbes spread widely in wet habitats and life diversified and adapted to new biotic niches, some on land, but life stayed single-celled.
After some time microbes were formed which produced oxygen and these became
widespread. Chemical reactions caused the production of ozone (O3 ) which protected carbon-based life forms from the Sun’s ultraviolet radiation. Although
the large concentration of CO2 caused the Earth to warm-up, the produced O2
caused a chilling effect and as a result the Earth’s surface was frozen for large
parts, although some prokaryotic microbial life survived in warm ocean seafloors,
near volcanos and other warm regions. Due to a large volcanic activity, the Earth
warmed up again, but leading to a different niche which led to heavy evolutionary
pressure. About 2.5 billion years ago some microbes developed a nucleus using
cellular membranes to contain their DNA (eukaryotes), perhaps through endosymbiosis in which different microbes merged to new life-forms. The first multi-cellular
life-forms (e.g. plants) evolved after 2.6 billion years of Earth’s existence. This
multi-cellularity allowed the plants to grow larger than their microbial ancestors.
Between 3.85 and 4.02 billion years after the birth of the solar system, there may
have been a cycle between ice climates and acid hothouses, leading to strong selective pressure. After a massive extinction, intense evolutionary pressure may
have resulted in a burst of multi-cellular evolution and diversity leading to the
first multi-cellular animals. After this Dinosaurs were created and may have become extinct 65 millions years ago by the assistance of a large cometary impact.
79
80
CHAPTER 5. CO-EVOLUTION
The extinction of the Dinosaurs created ecological conditions which eventually led
to the creation of modern Human (Homo sapiens sapiens) which originated only
100,000 years ago.
What we can observe from the history of the Earth is that life adapts itself to the biological niche. If environmental circumstances are good for some organisms they can multiply,
but there have been many species which became extinct due to environmental conditions or
cometary impacts. The way that evolution works is therefore really governed by environmental selection; there is no optimisation but only adaptation to the environment.
5.1
From Natural Selection to Co-evolution
No biologist doubts that natural evolution has occurred and created the diversity of organisms
alive today. For the evolutionary theory there are enough indicative facts such as the existence
of DNA, organisms which have been shown to mutate themselves to cope with changing
environments, and observed links between different organisms in the phylogenetic tree.
The current debate is more on the question how evolution has come about and which
mechanisms play a role in evolutionary processes on a planetary scale. In Darwin’s evolutionary theory survival of the fittest plays an eminent role to explain the evolution of organisms.
We can explain the birth of this competitive mechanism by looking at a planet which is initially populated by some organisms of a specific type with plenty (though finite) amount of
nutricients for them to survive. As long as the initial circumstances are good, the population will grow. However, this growth will always lead to a situation in which there are so
many organisms that the resources (space, food) will become limited. If the resources are
scarce, not all individuals will be able to get enough food and multiply themselves. In such
a situation there will arise a competition for the resources and those organisms which are
best able to get food will survive and create offspring. The question is which organisms will
survive and reproduce. For this we have to examine their genetic material. The existence of
particular genes in an individual will give it an advantage and this allows such genes to be
reproduced. Therefore there will be more and more offspring which will consist of these genes
in their genetic material. Since the resources will usually not grow very much, the population
will not grow anymore and only the genetic material inside individual organisms will change.
Finally, it may happen that all organisms of the same population will resemble each other
very much, especially if the environmental conditions are the same over the whole planet.
However, if there are different biological niches, individuals may have adapted themselves to
their local niche, so that individuals of the same population will remain somewhat different.
Since mutation keeps on occurring during reproduction, it may happen that many mutations
after many generations create a new organism which does not look alike the original one. In
this way, multiple organisms can evolve and keep on adapting to their local niche.
Since evolution through natural selection is just a mechanism we can implement it in a
computer program. A known example of artificial evolution is the use of genetic algorithms.
In genetic algorithms, a fitness function is used to evaluate individuals. Such a fitness function
is designed a-priori by the programmer and determines how many children an individual can
obtain in a given population. Although these genetic algorithms are very good for solving
optimisation problems, they do not exactly look alike natural evolution. The problem is that
the fitness function is defined a-priori, whereas in natural evolution there is nobody who
determines the fitness function.
5.2. REPLICATOR DYNAMICS
81
In reality the (implicit) fitness of an individual depends on its environment in which
other species interact with it. Such a fitness function is therefore non-stationary and changes
according to the adaptions of different populations in the environment. Here we speak of
co-evolution. Co-evolutionary processes can be quite complex, since everything depends
on each other. Therefore we have to look at the whole system or environment to study the
population dynamics.
5.2
Replicator Dynamics
We have already seen two different models for studying the dynamics of interacting species:
• With differential equations (mathematical rules which specify how the variables change).
An example of this are the Lotka-Volterra equations.
• With cellular automata
We can also generalise the Lotka-Volterra equations to multiple organisms, this is done
using the model of Replicator dynamics. We will first study a model in which the fitness
of an organism (phenotype) is fixed and independent of its environment. The replicator
equation describes the behavior of a population of organisms which is divided in n phenotypes
E1 , . . . , En . The relative frequencies of these phenotypes are denoted as x1 , . . . , xn , and so
P
we obtain a relative frequency vector ~x = (x1 , x2 , . . . , xn ), where i xi = 1. The fitness of a
phenotype Ei is fixed and is denoted as fi (~x).
Now we can first compute the average fitness of a population using:
fˆ(~x) =
n
X
xi fi (~x)
i=1
The change of the frequency of phenotype Ei is related to the difference in fitness of Ei
and the average of the population:
∂xi
= fi (~x) − fˆ(~x)
xi
Now we get the replicator equation with adaption speed α (α can be seen as a timeoperator dt after which we recompute the relative frequencies):
∆xi = αxi (fi (~x) − fˆ(~x))
If the fitness values of the existing phenotypes are different, the replicator equation will
also change their relative frequencies. If the environment does not change from outside and
the fitness values of phenotypes remain constant, then the phenotype with the largest fitness
will overtake the whole population. This assumption is of course unrealistic: the environment
and fitness values will change due to the changing frequencies.
Now we will look at a model for co-evolutionary replicator dynamics. Here we make the
fitness of a phenotype dependent on other existing phenotypes and the relative frequencies.
We do this by computing the fitness value at some time-step as follows:
fi (~x) =
n
X
j=1
aij xj
82
CHAPTER 5. CO-EVOLUTION
Here the values aij make up the fitness value of phenotype Ei in the presence of Ej . We can
immediately see that phenotypes can let the fitness of other phenotypes increase or decrease.
It can therefore happen that both aij and aji are positive and quite large. The result will
be that these species co-operate and obtain a higher fitness due to this co-operation. Since
we always compute relative frequencies with replicator dynamics, we do not always see this
co-operation in the values xi . However, in reality we may assume that both populations will
grow, although one may grow faster than the other.
On the other hand when aij and aji are negative and quite large, these species are competitive, and the one with the largest frequency will dominate and can make the other one
extinct (dependent on the rest of the environment of course).
Instead of two cooperating or competitive organisms, there can also be whole groups of
cooperating organisms which may compete with other groups. In this sense we can clearly
see the dependence of an organism of its environment.
5.3
Daisyworld and Gaia
In 1983, James Lovelock presented his Daisyworld model which he presented to explore the
relationship between organisms and their environment. Daisyworld is a computer model of an
imaginary planet consisting of white and black daisies. Daisies can change their environment,
reproduce, grow, and die. There is a global variable: the temperature of the planet which
may slowly increase due to the radiation of an imaginary sun.
Now the temperature of the planet has an influence on the growth, reproduction, and
death of daisies. White daisies have a favourite temperature in which they grow and reproduce
fastest and this temperature is higher than the favourite temperature of black daisies. This has
as a consequence that if the temperature of the planet would increase, that the population
of white daisies would become bigger than the population of black daisies. If the planet’s
temperature would not stop increasing, however, the temperature would become too hot for
any living organism to survive leading to a planet without life-forms.
Due to the albedo effect of white daisies, however, the solar radiation is reflected which
causes the temperature of the planet to decrease when there are enough white daisies. Therefore when the planet is warmed up and there are many white daisies the planet will cool
down. If the white daisies would continue to decrease the planet’s temperature, the planet
would become too cold and all life forms would also become extinct.
However, black daisies absorb the heat of the sun and therefore they increase the temperature of the planet. Therefore, if the planet becomes colder, the number of black daisies
would become larger than the number of white daisies (since the black daisies’ favourite temperature for growth is lower), and the planet would become warmer again. This again leads
to a temperature which is closer to the favourite temperature of the white daisies so that the
population of white daisies would grow again and thereby cool down the planet.
Thus, we can see that in Daisyworld the daisies influence the environment, and the environment has an influence of the population growth of the daisies. The daisies are also
related, since if there would only be black daisies, the temperature could only increase so
that life becomes impossible. By increasing and decreasing the temperature of the planet, the
different daisy populations are linked to each other, leading to cooperative co-evolutionary
dynamics. Furthermore, since the daisies make the temperature suitable for both to survive,
they regulate the temperature, like a thermostat of a heater would regulate the temperature
5.3. DAISYWORLD AND GAIA
83
of a room. Therefore we can see that there is a self-regulating feedback loop.
5.3.1
Cellular automaton model for Daisyworld
We can use a cellular automaton as a spatial model for Daisyworld. Each cell can be a black
or white daisy or a black or white daisy-seed. Furthermore, each cell has its local temperature.
Each cycle we can increase the temperature of all cells with for example one degree (of course
we can also decrease the temperature). If the temperature of each cell continues to increase,
the temperature would become 100 degrees and all life-forms would die.
The rules of the CA look as follows:
• Black daisies have most probability to survive at a temperature of 40 degrees, and
white daisies at 60 degrees. Each 20 degrees away from their favourite temperature, the
survival probability decreases with 50%.
• Black daisies increase the temperature of 49 cells around their cell with 3 degrees. White
daisies cool down the 49 cells around them with 3 degrees.
• White daisies reproduce 6 seeds in random location of their 25-cell neighbourhood with
most probability (40%) at 60 degrees, and black daisies do the same at 40 degrees.
• Daisy seeds have a probability of 10% to die each cycle. White (black) seeds become
white (black) daisies with most probability at 60 (40) degrees.
We can see the Cellular Automaton model of Daisyworld in Figure 5.1.
Figure 5.1: A cellular automaton model of Daisyworld. At the right the average temperature
of the planet is shown and the temperature in all cells.
Now there are two evolutionary processes in this model: natural selection and selfregulation. Natural selection in Daisyworld takes place becomes there is competition between
the different daisy types, since there are limited sources (cells or space to grow). Now let’s examine what happens if we use mutation in the model. Mutation is an arbitrary small change
84
CHAPTER 5. CO-EVOLUTION
of a genotype of an organism. Such a small change results in a small change of the color
which means a difference in the absorbing or reflection of solar energy and therefore different
cooling or heating behaviors. In general a mutation can be good for an individual organism,
although most mutations are damaging or neutral. However, even if a mutation only gives an
advantage one in a million times, once it occurred the new organism may quickly propagate
through the environment.
The most interesting aspect of Daisyworld is the self-regulation which appears to be at
a higher level than natural selection. This self-regulation is good for all individuals, because
it keeps the temperature of a planet at a level which makes life possible. Because this self
regulation is good for all individuals, we might think that is is on its own caused by natural
selection. However, in Daisyworld self-regulation is not participating in a competitive or
reproductive mechanism and therefore is not created by some form of higher level evolutionary
process. We can better say that natural selection prefers daisy properties and patterns which
lead to self-regulating dynamics.
5.3.2
Gaia hypothesis
In the beginning of the sixties, James Lovelock was working at NASA that wanted to research
whether there was life on Mars. Lovelock wondered what kind of tests would be possible to
demonstrate the existence of life. Of course it would be possible to check the surface of Mars
and to look whether some organisms live there, but it might always be possible that at the
place where the spaceship would have landed no life forms existed, whereas life forms might
exist at other parts of the planet.
Lovelock thought about examining processes that reduce the entropy of the planet. This
can best be explained by looking at a beach. When we sea a sand-castle on the beach, we
can see a very ordered object which must be constructed by life forms. On the other hand, if
there would not be any life forms on the beach, the surface of the sand on the beach would
be completely smooth and not contain any order. But how can this be measured, since not
all organisms make sand castles. Lovelock thought about the atmospheric conditions of the
planet. If we consider our planet, the Earth, then we can see that the constituents of the
atmosphere are very much out of equilibrium. For example, there is much too much oxygen
(O2 ) and much too little carbon dioxide (CO2 ). If we look at Venus, there is 98% carbon
dioxide and only a tiny bit oxygen in the atmosphere. On Mars, there is 95% carbon dioxide
and 0.13% oxygen. If we compare this to the Earth where there is 0.03% carbon dioxide
and 21% oxygen we can see a huge difference. Lovelock explained this difference due to the
existence of self-regulatory mechanisms of the biosphere on Earth which he called Gaia. If
there would not be any life on Earth, the gases would react with each other and this would
lead to an equilibrium similar to that of Mars or Venus. However, since life forms regulate the
complete atmosphere it can continuously stay far out of equilibrium and make life possible.
Lovelock predicted that because the planet Mars has an atmosphere which is in a chemical
equilibrium, there cannot be any life on Mars, On the other hand, because the atmosphere on
Earth is far out of equilibrium there is a complex organising self-regulating force called Gaia
which makes life possible. Without this self regulation the amount of carbon dioxide may
become much too large and heat up the planet, making life impossible. If one looks at the
mechanisms of Gaia, one can see a complex web consisting of bacteria, alges and green plants
which play a major role in transforming chemical substances so that life can flourish. In this
way Gaia has some kind of metabolism, keeping its temperature constant like a human does.
5.3. DAISYWORLD AND GAIA
85
For example if a human being is very cold, he begins to shake, this causes movements of the
body and muscles which makes the body temperature higher. On the other hand if a human
being is warm, he will transpirate and thereby lose body heat. These mechanisms therefore
keep the temperature of a human more or less constant, and without it (e.g. without feeling
cold when it is very cold) people would have died a long time ago.
The name Gaia refers to the Greek goddess Gaea, see Figure 5.2. Since the whole web
of organisms creates a self-regulating mechanism, one may speculate that this entire superorganism is alive as well. This led to three forms of the Gaia-hypothesis:
• Co-evolutionary Gaia is a weak form of the Gaia hypothesis. It says that life determines the environment through a feedback loop between organisms and the environment
which shape the evolution of both.
• Geophysiological Gaia is a strong form of the Gaia hypothesis. It says that the
Earth itself is a living organism and that life itself optimizes the physical and chemical
environment.
• Homeostatic Gaia is between these extremes. It says that the interaction between
organisms and the environment are dominated by mostly negative feedback loops and
some positive feedback loops that stabilize the global environment.
Figure 5.2: The Greek Goddess Gaea, or mother Earth.
There are many examples to demonstrate the homeostatic process of Gaia. Some of these
are:
• The amount of oxygen. Lovelock demonstrated that Gaia worked to keep the amount
of oxygen high in the atmosphere, but not too high so that a fire would spread too fast
and destroy too much.
• Temperature. The average ground temperature per year around the equator has been
between 10 and 20 degrees for more than a billion years. The temperature on Mars
fluctuates much more and is not suitable for life-forms (-53 degrees is much too cold).
• Carbon-dioxide. The stability of the temperature on the Earth is partially regulated
by the amount of carbon dioxide in the atmosphere. The decrease of heat absorption
of the Earth in some periods is caused by a smaller amount of carbon dioxide which is
regulated by life-forms.
86
CHAPTER 5. CO-EVOLUTION
In Figure 5.3 we can see that the temperature of the world has increased during the last
century. This may be caused by the large amount of burned fossil fuels during this period,
although differences in temperatures are also often caused by the change of the Earth’s orbit
around the sun. The Gaia hypothesis states that mankind can not destroy life on Earth by
e.g. burning all fossil fuels, or using gases which deplete the ozone layer, since the metabolism
of the Earth will be much too strong and always some organisms will survive. Even if we
would throw all nuclear weapons, we would not destroy all life forms and life will continue
albeit without human beings.
Figure 5.3: The northern hemisphere shows an increasing temperature during the last 100
years.
5.4
Recycling Networks
If there are multiple co-evolving organisms in an environment, they can also interact with
the available sources such as chemical compounds. It is possible that these organisms recycle
each other’s waste so that all compounds remain available for the environment. Of course
some of these processes will cost energy which is usually obtained by the sun through e.g.
photo-synthesis. Some other processes will create free energy for an organism which it can
use to move or to reproduce.
An example of such a process is when we put plants and mammals together in an environment and make a simplified model:
• Plants transform CO2 into C and O2 molecules
• Mammals transform C and O2 into CO2 molecules
• External chemical reactions transform C and O2 into CO2
• Mammals can eat plants and thereby increase their mass with C molecules which they
store.
5.4. RECYCLING NETWORKS
87
We can implement this model in a cellular automaton consisting of plants, mammals,
and molecules. In Figure 5.4 we show the simple model in which we use a layered cellular
automaton, one layer of the CA consisting of the positions of molecules and the other layer
consisting of plants and mammals. These two layers will interact on a cell by cell basis (for
simplicity mammals have the same size as molecules which is of course very unrealistic).
P
M
CO
O
P
P
O
M
CO
O
P
CO
CO
M
M
CO
M
P
P
M
P
M
O
O
P
P
P
Figure 5.4: A layered cellular automaton for modelling a recycling network.
To make the CA model complete, we also need to model the amount of carbon (C) inside
plants and mammals. Therefore, Figure 5.4 does not show us the complete picture, there are
internal states of plants and mammals which model the amount of C molecules.
Furthermore, we need to make transition rules to let plants and mammals reproduce and
die. Mammals should also have the possibility to navigate on the grid and look for food.
We do not model these issues here, although an implementation of these rules would be
straightforward. Here we are more interested to examine the feedback loops in the model
which will create a recycling network.
If we examine this simple ecology consisting of plants, mammals, and chemical molecules,
we can see that the molecules will be recycled under good conditions. If they would not be
recycled then the mammals would die since there would not be any O2 molecules anymore
for them. We can see the following dynamics in this model:
• Without plants, all C and O2 molecules will be transformed to CO2 molecules. This
will lead to a stable chemical equilibrium where no reactions can take place anymore,
resulting in the death of all mammals.
• If there are many plants, the number of O2 molecules would grow, leading to less CO2
molecules for the plants, possibly also leading to the death of some plants. This will
cause the transformation of CO2 to C and O2 molecules done by the plants to become
much slower, and will give the external reactions and mammals the ability to create
more CO2 molecules, leading to a homeostatic equilibrium. If there would not be any
mammals it can be easily seen that there cannot be too many plants, because the speed
of the external reactions can be very slow. Therefore, the existence of mammals may
be profitable for plants (although the mammals also eat the plants).
• If there are many plants and mammals, they will quickly recycle the molecules. This
leads to a situation that even with few molecules, many plants and mammals can survive.
88
CHAPTER 5. CO-EVOLUTION
It should be noted that these amounts of plants and mammals depend heavily on each
other, but natural processes are likely to create a good situation.
• If there are too many mammals, many plants will be eaten. If this causes few plants
to survive, there will not be enough food for all mammals causing many mammals to
die. Therefore the growth and decline of the mammal population will not make it easily
possible that all plants will be eaten, so that mammals cause their own extinction (this
is similar to predator-prey dynamics).
Recycling networks are very important for Gaia and co-evolutionary systems. For example
in Gaia many molecules are recycled causing almost optimal conditions for life. One example
is the amount of salt in the seas. When this becomes too large, almost all sea life-forms
will dry out and die. However, every year a lot of salt is moved from the land to the seas
which might easily lead to very large concentrations of salt in the sea. It has been shown by
Lovelock that the sea functions as a kind of salt pump keeping the concentration of salt at
levels which are advantageous for life forms.
Also in rain-forests the plants and trees cause a very efficient recycling of water molecules.
In this way, even with a small amount of H2 O molecules many plants and trees can survive.
Furthermore this recycling and co-evolutionary dynamics also causes a profitable temperature
for the plants and trees which makes it possible to have rain-forests in hot countries that create
their own local redistribution of water.
5.5
Co-evolution for Optimisation
Co-evolutionary processes are not only important for studying population dynamics in ecologies, but can also be used for making optimisation algorithms. We already studied genetic
algorithms which can be used for searching for optimal (or near-optimal) solutions for many
different problems for which exhaustive search would never work.
There is currently more and more research to use co-evolution to improve the ability of
genetic algorithms in finding solutions. The idea relies on evolving a population of individuals
to solve some problem which can be described by a large set of tests for which an individual
should succeed. If the tests are not clearly specified, they can also be evolved by evolutionary
algorithms. An example is to learn to play backgammon. If you want to be sure your
individual, which encodes for a backgammon playing program, is very good in backgammon,
you want to test it against other programs. When the other programs are not available,
you can evolve these programs. The individual which plays best against these test-programs
(some call them parasites since they are used to kill individuals by determining their fitness),
may reproduce in the learner population. The tests which are good for evaluating learners
can also reproduce to create other tests. This is then a co-evolutionary process and makes
sense since there is no clear fitness function to specify what a good backgammon player is.
We will now examine a specific problem which requires a solution to be able to solve a
specific task such as sorting a series of numbers. In principle there are many instantiations
of the sorting problem, since we can vary the numbers, or the amount of numbers, or their
initial order, etc. So suppose we take N instantiations of the sorting problem and keep these
fixed (like we would do with normal evolutionary computation). Now we can use as a fitness
function the amount of instantiations of the sorting task which are solved by an individual.
The problem of this is that it can cost a lot of time to evaluate all individuals on all N
5.5. CO-EVOLUTION FOR OPTIMISATION
89
tasks if N is large. And if we take the number of instantiations too low, maybe we evolve
an individual which can sort these instantiations of the sorting problem, but performs poorly
on other sorting problems. Furthermore, it is possible that the best individuals always are
able to sort the same 0.7N problems and never the others. In this case there is not a good
gradient (search direction) for further evolution.
Co-evolution for optimisation. A solution to these problems is to use co-evolution
with learners (the individuals which need to solve the task) and problem-instantiations (the
parasites or the tests). There are K tests which can be much smaller than the N tests we
needed for a complete evaluation in normal evolution, since these K tests also evolve. There
are also L learners which are tested on the tests (can be all tests, but might also be a part of
all tests). The fitness of a learner is higher if it scores better on the tests it is evaluated on.
This creates improving learners, but how can we evolve the test-individuals?
An initial idea would be to make the fitness of a test higher when less learners can solve it
(we will later examine the problems of this method for assigning such fitness values to tests).
In this way, the learners and tests will co-evolve. The parasites make the tests harder and
harder and the individuals have to solve these increasingly difficult tests.
A problem of the above fitness definition of tests is that it becomes possible that only
tests remain which cannot be solved by any learner. This leads to all learners having the
same fitness and would stop further evolution. Therefore it is much better to let the fitness
of a test depend on the way it can differentiate between different learners. In this way when
a test is solved by all learners or is not solved by any learner, the test is basically useless at
the current stage of evolution and will get a low fitness so that it is not allowed to stay in
the population or to reproduce. If two tests make exactly the same distinctions between all
learners, it is possible to reduce the fitness of one of them since they would essentially encode
the same distinction.
Pareto-front in co-evolutionary GA. If we have a number of learners with their result
on all tests, we want to examine which learners are allowed to reproduce themselves. For this
we will examine the Pareto-front of individuals which means the set of individuals which are
not dominated by any other individual. When a learner passes a number of tests and another
learner passes the same number of tests, but also an additional one, it is not hard to see that
the second learner performs strictly better than the first one. In this case we say that the
first learner is dominated by the second one. We can make this more formal by the following
definition, where fi (j) is the fitness of learner i on test j.
We define:
dominates(k, i) = ∀jfi (j) ≤ fk (j) ∧ ∃lfi (l) < fk (l)
So dominates(k,i) says that learner i is dominated by learner k. Now we define the Paretofront as all learners which are not dominated by any other learner. Now we only let the learners
in the Pareto-front reproduce and eliminate all other learners which are dominated by some
other learner.
This Pareto-front optimisation is also a used and good method for multi-objective optimisation in which there are more criteria to evaluate an individual.
90
5.6
CHAPTER 5. CO-EVOLUTION
Conclusion
In this chapter we studied co-evolutionary processes which are important in natural evolution.
We have seen that instead of Darwin’s survival of the fittest, there can be groups of cooperating
organisms which struggle for the same spatial resources, but which may help each other to
survive at the same time. We also looked at the methods that life-forms use to alter their
environment. There are many mechanisms which keep the environment profitable for life to
sustain itself. Lovelock studied this complex web of many coupled processes for the first time
and called this entire mechanism of a homeostatic Earth; Gaia. There are many examples
of Gaian processes, and in this chapter we only examined a few, but important ones. Gaian
homeostasis also relies on recycling networks in which chemical compounds are transformed
through a sequence of different organisms so that resources never become depleted. This is
very important, since if some compound would get lost, the whole recycling network might
starve since their required resources are not available. Finally we have examined how coevolution can be used in evolutionary computation to make the search for optimal solutions
different and for some problems more successful than the search process of normal evolutionary
algorithms. Here learners and tests evolve together to allow learners to become better in
solving the tests, and the tests to create harder and harder problems while still being able to
differentiate between learners.
It is important that we look at the co-evolutionary mechanisms when we use the Earth’s
resources and kill organisms. Particular organisms may play very important roles to keep
the homeostatic equilibrium of the Earth or of a local environmental niche. Since we cannot
study a single organism alone, apart from its environment, we again need a holistic approach
in which all elements are studied in a total perspective.
Chapter 6
Unsupervised Learning and Self
Organising Networks
Unsupervised learning is one of the three forms of machine learning; supervised, unsupervised,
and reinforcement learning. The special aspect of unsupervised learning is that there are only
input (sensory) signals and no desired outputs or evaluations of actions to specify an optimal
behavior. In unsupervised learning it is more important to deal with input signals and to
form a meaningful representation of these. E.g. if we look at different objects, we can cluster
objects which look similar together. This clustering does not take into account what the
label of an object is, and therefore trees and plants may be grouped together in unsupervised
learning, whereas in supervised learning we may want to map inputs to the label plant or tree.
It is also possible that particular plants form their own cluster (or group) such as cactuses,
this grouping is only based on their input representation (e.g. their visual input), and not
based on any a-priori specified target concept which we want to learn. We may therefore
start to think that unsupervised learning is less important than supervised learning, but this
is not true since they have different objectives. Unsupervised learning has an important task
in preprocessing the sometimes high-dimensional input and can therefore be used to make the
supervised learning task simpler. Furthermore, supervised learning always requires labelled
data, but labelled data is much harder obtained than unlabelled data. Therefore unsupervised
learning can be applied continuously without the need for a teacher. This is a big advantage,
since it makes continual life-long learning possible.
The second topic in this chapter is self-organising networks or often called self-organising
maps (SOMs). These SOMs are neural networks and can be applied for unsupervised learning
purposes and can be easily extended for supervised and reinforcement learning problems. In
principle a SOM consists of a number of neurons that have a position in the input space. Every
time a new input arrives, the SOM computes distances between the input and all neurons,
and thereby activates those neurons which are closest to the input. This idea of looking at
similarities is a very general idea for generalization, since we usually consider objects that
look alike (have a small distance according to some distance measure) to be of the same group
of objects. To train the SOM, activated neurons are brought closer to the generated inputs,
in order to minimize the distance between generated inputs and activated neurons. In this
way a representation of the complete set of inputs is formed in which the distance between
generated inputs and activated neurons is slowly minimized. By using SOMs in this way, we
can construct a lower dimensional representation of a continuous, possibly high-dimensional
91
92 CHAPTER 6. UNSUPERVISED LEARNING AND SELF ORGANISING NETWORKS
input space. E.g. if we consider faces with different orientations as input, the input-space is
high-dimensional, but activated neurons in the SOM essentially represent the orientation of
the face which is of much smaller dimensionality.
6.1
Unsupervised Learning
In unsupervised learning the program receives at each time-step an input pattern xp which is
not associated to a target concept. Therefore all learned information must be obtained from
the input patterns alone. Possible uses of unsupervised learning are:
• Clustering: The input patterns are grouped into clusters where input patterns inside a
cluster are similar and input patterns between clusters are dissimilar according to some
distance measure.
• Vector quantisation: A continuous input-space is discretized.
• Dimensionality reduction: The input-space is projected to a feature space of lower
dimensionality while still containing most information about the input patterns.
• Feature extraction: particular characteristic features are obtained from input patterns.
6.1.1
K-means clustering
One well-known clustering method is called K-means clustering. K-means clustering uses K
prototypes which will form K clusters of all input patterns. In principle K-means clustering
is a batch learning method, which means that all the data should be collected before and the
algorithm is executed one time on all this data. Running the algorithm on this data creates a
specific set of clusters. If another input pattern is collected, the algorithm has to be executed
again on all data examples which therefore can cost more time than online clustering methods.
K-means clustering is usually executed on input patterns consisting of continuous attributes, although it can be extended on patterns partly consisting of nominal or ordinal
attributes.
The K-means algorithm uses K prototype vectors: w1 , . . . , wK where each prototype
vector is an element of ℜN where N is the number of attributes describing an input pattern.
Each prototype vector wi represents a cluster C i which is a set of input patterns which are
element of that cluster. So the algorithm partitions the data in the K clusters. We assume
that there are n input patterns (examples) denoted as: x1 , . . . , xn .
The algorithm works as follows:
• Initialize the weight-vectors w1 , . . . , wK .
• Repeat the following steps until the clusters do not change anymore
1. Assign all examples x1 , . . . , xn to one of the clusters. This is done as follows:
An example xi is an element of cluster C j if the prototype vector wj is closer to
the input pattern xi than all other prototype vectors:
d(wj , xi ) ≤ d(wl , xi )
For all l 6= j
6.2. COMPETITIVE LEARNING
93
The distance d(x, y) between two vectors is computed using the Euclidean distance
measure:
s
d(x, y) =
X
i
(xi − yi )2
In case the distances to multiple prototype vectors are exactly equal, the example
can be assigned to a random one of these.
2. Set the prototype vector to the center of all input patterns in the corresponding
cluster. So for each cluster C j we compute:
wij =
P
k
k∈C j xi
|C j |
Where |C| denotes the number of elements in the set C.
An example of K-means clustering. Suppose we have four examples consisting of
two continuous attributes. The examples are: (1,2); (1,4); (2,3); (3,5).
Now we want to cluster these examples using K = 2 clusters. We first initialize these
clusters, suppose that w1 = (1, 1) and w2 = (3, 3). Now we can see that if we assign the
examples to the closest prototypes, we get the following assignment:
(1, 2) → 1
(1, 4) → 2
(2, 3) → 2
(3, 5) → 2
Now we compute the new prototype vectors and obtain: w1 = (1, 2) and w2 = (2, 4). We
have to repeat the process to see whether the cluster stay equal after the prototype vectors
have changed. If we repeat the assignment process to clusters, we can see that the examples
stay in the same clusters, and therefore we can stop (continuing would not change anything).
6.2
Competitive Learning
K-means clustering works on a given collection of data and when the data changes, the algorithm has to be executed again on all examples. There also exist a number of online clustering
approaches which are based on artificial neural network models. Competitive learning is one
of these methods and partitions the data into specific clusters by iterating an update rule a
single time each time a new input pattern arrives. Therefore these online competitive learning
algorithms are more suitable for changing environments, since they can change the clusters
online according to the changing distributions of input patterns. Again only input patterns
xp are given to the system. The system consists of a particular neural network as a representation of the clustering. The network propagates the input to the top where an output is
given which tells us in which cluster an input pattern falls. Like in the K-means algorithm,
the number of clusters should be given to the system and usually stays fixed during learning.
In a simple competitive learning network all inputs are connected to all outputs representing the clusters, see Figure 6.1. The inputs describe a specific input pattern and when
given these inputs, the competitive learning network can easily compute in which cluster the
input falls.
94 CHAPTER 6. UNSUPERVISED LEARNING AND SELF ORGANISING NETWORKS
output o
woi
input i
Figure 6.1: In a competitive network all input units are connected to output units through a
set of weights.
6.2.1
Normalised competitive learning
There are two versions of the competitive learning algorithm, the normalised and unnormalised versions. We first examine the normalised version which normalises all weight vectors
and input vectors to a length of 1. Normalising a vector v means that its norm ||v||| will be
one. The norm of a vector is computed as:
||v|| =
q
2
(v12 + v22 + . . . + vN
v
uN
uX
= t vi2
i=1
Basically the norm of a vector is its Euclidean distance to the origin of the coordinate system.
This origin is a vector with only 0’s. Normalising a vector is then done by dividing a vector
by its norm:
x
xnorm =
kxk
So if all vectors are normalised, all weight vectors (each output unit has one weight vector
which determines how it will be activated by an input pattern) will have length 1, which
means that they all fall on a circle when there are 2 dimensions (N = 2). Therefore, the
weights can only move on the circle.
So, how do we adapt the weight vectors? Just as in the K-means algorithm, we initialize the weight vectors for the chosen number of clusters (represented by as many output
units). Then, the normalised competitive learning algorithm performs the following steps
after receiving an input pattern:
• Each output unit o computes its activation y o by the dot- or inner-product:
yo =
X
wio xi = wo x
i
• Then the output neuron k with the highest activation will be selected as the winning
neuron:
∀o 6= k :
yo ≤ yk
6.2. COMPETITIVE LEARNING
95
• Finally, the weights of the winning neuron k will be updated by the following learning
rule:
wk (t) + γ(x(t) − wk (t))
wk (t + 1) =
kwk (t) + γ(x(t) − wk (t))k
The divisor in the fraction makes sure that the weight vector remains normalised.
The mechanism of normalised competitive learning causes the winning weight-vector to
turn towards the input pattern. This causes weight-vectors to point to regions where there
are many inputs, see Figure 6.2.
w1
w3
w2
Figure 6.2: In a normalised competitive network, the weight-vectors will start to point to
clusters with many inputs.
When we would not use normalised weight vectors, there would be a problem with this
algorithm which is illustrated in Figure 6.3. Here it is seen that if weight-vectors are different
in size, larger vectors would win against smaller weight vectors, since their dot-product with
input vectors is larger, although their (Euclidean) distance to an example is larger.
w1
w1
x
w2
x
w2
Winner = 1
Winner = 1
Figure 6.3: (A) With normalised weight vectors the algorithm works appropriate. (B) When
weight vectors would not be normalised, we would get undesirable effects, since larger weight
vectors would start to win against small weight vectors.
96 CHAPTER 6. UNSUPERVISED LEARNING AND SELF ORGANISING NETWORKS
6.2.2
Unnormalised competitive learning
Instead of using the dot-product between two vectors to determine the winner for which we
need normalised vectors, we can also use the Euclidean distance to determine the winning
neuron. Then we do not need normalised weight vectors anymore, but we will deal with
unnormalised ones. So in this case all weight-vectors are again randomly initialised and we
determine the winner with the Euclidean distance:
Winner
k : kwk − xk ≤ kwo − xk ∀o.
So here we take the norm of the difference between two vectors, which is the same as taking the
Euclidean distance d(wk , x). The neuron with the smallest distance will win the competition.
If all weight-vectors are normalised, this will give us the same results as computing the winner
with the dot-product, but if the vectors are not normalised different results will be obtained.
After determining the winning neuron for an input vector, we move that neuron closer to
the input vector using the following learning rule:
wk (t + 1) = wk (t) + γ(x(t) − wk (t))
(6.1)
where 0 ≤ γ ≤ 1 is a learning rate which determines how much the neuron will move to
the pattern (if γ = 1 the point will jump to the input vector, and therefore when continuing
learning there will be a lot of jumping around. When the learning rate decreases while more
updates have been done, a real “average” of the represented input patterns can be learned).
Example unnormalised competitive learning. Suppose we start with K = 2 neurons
with initialized weight-vectors: w1 = (1, 1) and w2 = (3, 2). Now we receive the following
four examples:
x1 = (1, 2)
x2 = (2, 5)
x3 = (3, 4)
x4 = (2, 3)
When we set the learning rate γ to 0.5, the following updates will be made:
On x1 = (1, 2) → d(w1 , x1 ) = 1, d(w2 , x1 ) = 2. Therefore: Winner w1 = (1, 1). Application
of the update rule gives:
w1 = (1, 1) + 0.5((1, 2) − (1, 1))
√ = (1, 1.5). 2 2
√
2
1
2
x = (2, 5) → d(w , x ) = 13.25, d(w , x ) = 10. Therefore: Winner w2 = (3, 2).
Application of the update rule gives:
w2 = (3, 2) + 0.5((2, 5) − (3, √
2)) = (2.5, 3.5).
√
x3 = (3, 4) → d(w1 , x3 ) = 10.25, d(w2 , x3 ) = 0.5. Therefore: Winner w2 = (2.5, 3.5)
Application of the update rule gives:
w2 = (2.5, 3.5) + 0.5((3, 4) − (2.5, 3.5)) = (2.75, 3.75).
Now try it yourself on the fourth example.
Initialisation
A problem of the recursive (online) clustering methods which also holds for the K-means
clustering algorithm is a possible wrong initialisation of the weight vectors of the neurons.
Therefore it can happen that some neuron never becomes a winner and therefore never learns.
In that case we are basically dealing with a dead (or silent) neuron and have one cluster less
in our algorithm. To deal with this problem, there are two methods:
6.2. COMPETITIVE LEARNING
97
• Initialise a neuron on some input pattern
• Use “leaky learning”. For this we let all neurons adapt on all examples, although we
use a very small learning rate for this adaption so that this will only make a difference
in the long run. The leaky learning rule adapts all neurons (except for the winning
neuron) to the current example with a very small learning rate γ ′ << γ:
wl (t + 1) = wl (t) + γ ′ (x(t) − wl (t)), ∀l 6= k
Minimising the cost function
The goal of a clustering method is to obtain a clustering in which the similarities between
inputs of the same cluster are much larger than similarities between inputs of different clusters.
The similarity between two inputs can be computed using the inverse of the (Euclidean)
distance between the two inputs. Therefore if we minimize the distances between a neuron
and all the examples in the cluster, we will maximize the similarities between the inputs in a
cluster.
A common measure to compute the quality of a final obtained set of clusters on a number
of input patterns is to use the following quadratic cost function E:
E=
1 XX k
1X k
kw − xp k2 =
(wi − xpi )2
2 p
2 p i
In which k is the winning neuron on input pattern xp .
Now we can prove that competitive learning searches for the minimum of this cost function
by following the negative gradient of this cost function.
Proof that the cost function is minimized. The cost-function for pattern xp :
Ep =
1X k
(wi − xpi )2
2 i
in which k is the winning neuron is minimized by Equation 6.1.
We first examine how the weight-vectors should be adjusted to minimize the cost-function
p
E on pattern xp :
∂E p
∆p wio = −γ
∂wio
Now we have as the partial derivative of E p to the weight-vectors:
∂E p
= wio − xpi , If unit o wins
o
∂wi
=
0,
else
(6.2)
From this follows (for winner o):
∆p wio = γ(xpi − wio )
Thus we demonstrated that the cost-function is minimized by repetitive weight-vector updates. Some notes on this are:
98 CHAPTER 6. UNSUPERVISED LEARNING AND SELF ORGANISING NETWORKS
• If we continue the updating process with a fixed learning rate, the weight-vectors will
always make some update step, and therefore we do not obtain a stable clustering.
To obtain a stable clustering we should decrease the learning-rate γ after each update
P
according to the conditions of stochastic approximation: (1) ∞
t=1 γt = ∞ and (2)
P∞ 2
t=1 γt < ∞. The first condition makes sure that the weight-vectors are able to move
an arbitrarily long distance to their final cluster-point, and the second condition makes
sure that the variance of updates goes to zero which means that finally a stable state will
be obtained. A possible way of setting the learning rate which respect these conditions
is: γt = 1t .
• It is important to note that the cost-function is likely to contain local minima. Therefore
the algorithm does not always obtain the global minimum of the cost-function. Although
the algorithm will converge (given the conditions on the learning-rate), convergence to
a global minimum is not guaranteed. Better results can therefore be obtained if we
execute the algorithm multiple times starting with different initial weight-vectors.
• Choosing the number of cluster-points (or neurons) is an art and not a science. Of
course the minimum of the cost-function can be obtained if we use as many clusterpoint as input-patterns and set all the cluster-points on a different input-pattern. This
would result in a cost of 0. However, using as many cluster-points as input-patterns
does not make any sense since we want to obtain an abstraction of the input data. It is
also logical that increasing K leads to a smaller minimal cost, so how should we then
choose K? Often we need to trade off the complexity of the clustering (the number of
used cluster-points) and the obtained error-function. Thus, we like to minimize a new
cost-function:
Ef = E + λK
where the user-defined parameter λ trades off complexity versus clustering cost. Ef can
then be minimized by running the algorithm with different K.
6.2.3
Vector quantisation
Another important use of competitive learning is vector quantisation. In vector quantisation
we divide the whole input space into a number of non-overlapping subspaces. The difference
with clustering is that we are not so much interested in the clusters of similar input-patterns,
but more in the quantisation of the whole input space. Vector quantisation uses the same
(unnormalised) competitive learning algorithm as described before, but we will finally examine
the subspaces and not the clusters. It should be noted that the distribution of input-patterns
is respected by competitive learning; more inputs in a region lead to more cluster-points. An
example of an obtained vector quantisation is shown in Figure 6.4.
Vector quantisation combined with supervised learning
Vector quantisation can also be used in a preprocessing phase for supervised learning purposes.
In this case, each neuron corresponds to some output value which is the average of the output
values for all input-patterns for which this neuron wins the competition. The output-values
for multiple outputs belonging to some neuron that represents a subspace of the input space is
usually stored in the weights from this neuron to the output neurons. Thus we can denote the
value for output o which is computed when neuron h is activated as woh . If there is only one
6.2. COMPETITIVE LEARNING
99
Figure 6.4: A final set of clusters (the big black dots) corresponds with a quantisation of the
input space into subspaces.
output, we sometimes write y h to indicate that this value is the output of neuron h. Figure
6.5 shows a supervised vector quantisation network in which vector quantisation in the first
layer is combined with supervised learning in the second layer.
Vector
Quantisation
i
whi
Feed
Forward
h
woh
o
Y
Figure 6.5: A supervised vector quantisation network. First the input is mapped by a competitive network to a single activated internal neuron. Then this neuron is used for determining
the output of the architecture.
For learning this network we can first perform the (unsupervised) vector quantisation
steps with the unnormalised vector quantisation algorithm and then perform the supervised
learning steps, but is is also possible to perform these two updates at the same time. The
supervised learning step can simply be done with a simple version of the delta-rule. The
complete algorithm for supervised vector quantisation looks as follows:
• Present the network with input x and target value D = f (x)
• Apply the unsupervised quantisation step: determine the distance of x to the (input)
weight-vector of each neuron and determine the winner k, then update the (input)
weight-vector of neuron k with the unsupervised competitive learning rule (Eq. 6.1).
• Apply the supervised approximation step, for all outputs o do:
wok (t + 1) = wok (t) + α(Do − wok (t))
100CHAPTER 6. UNSUPERVISED LEARNING AND SELF ORGANISING NETWORKS
This is a simple version of the delta-rule where α is the learning-rate and k the winning
neuron.
This algorithm can work well for smooth functions, but may have problems with fluctuating functions. The reason is that inside a subspace in which a single neuron is activated, the
generated network output is always the same. This means that large fluctuations will cause
problems and can only be approximated well when enough neurons are used. For smooth
functions, however, the target values inside a subspace are quite similar so that the approximation can be quite good. Given a vector quantisation and input-patterns with their target
outputs, we can compute to which values wok the network converges. First we define a function
g(x, k) as:
g(x, k) = 1,
If k is the winner
= 0,
Else
Now it can be shown that the supervised vector quantisation learning rule converges to:
woh
=
R
ℜnRDo (x)g(x, h)p(x)dx
ℜn
g(x, h)p(x)dx
where Do (x) is the desired output value of output o on input-pattern x and p(x) is a probability
density function which models the probabilities of receiving different inputs. Thus, each
weight from neuron h to output o converges to the average target output value for output o
for all the cases that neuron h wins.
Example of supervised vector quantisation. The winning neuron moves according to
the same update rule as normalised competitive learning. Since there is only a single output
in the example below, we will write y k to denote the output value of neuron k. The value y k
for the winning neuron wk is adapted after each example by the following update rule:
y k = y k + α(D p − y k )
Suppose we start again with 2 cluster-points and set their output-values to 0 :
w1 = (1, 1), y 1 = 0 and w2 = (3, 2), y 2 = 0.
Now we receive the following learning examples:
(x1 → D 1 ) = (1, 2 → 3)
(x2 → D 2 ) = (2, 5 → 7)
(x3 → D 3 ) = (3, 4 → 7)
(x4 → D 4 ) = (2, 3 → 5)
Suppose we set the learning-rate γ to 0.5 and the learning rate for the supervised learning
step α = 0.5. Now if we update on the four learning examples, the following updates are
made:
x1 = (1, 2) → d(w1 , x1 ) = 1, d(w2 , x1 ) = 2. Thus: Winner w1 = (1, 1). Application of the
update rule gives:
w1 = (1, 1) + 0.5((1, 2) − (1, 1)) = (1, 1.5).
This is just the same as in the example of unnormalised competitive learning before.
The only difference in computations is that we also adjust the output values of the winning
neuron:
y 1 = 0 + 0.5(3 − 0) = 1.5
6.3. LEARNING VECTOR QUANTISATION (LVQ)
101
Since the weight-vectors wi are adjusted in the same way as in the example of competitive
learning, we only show the updates of the neurons’ output values:
x2 = (2, 5). Winner is neuron 2.
y 2 = 0 + 0.5(7 − 0) = 3.5.
x3 = (3, 4). Winner is neuron 2.
y 2 = 3.5 + 0.5(7 − 3.5) = 5.25.
Now try it yourself on the fourth example.
6.3
Learning Vector Quantisation (LVQ)
Learning vector quantisation is basically a supervised learning algorithm, since the neurons
have labels associated to them and therefore can classify inputs into a fixed number of categories. Using the training examples, which in this case consist of an input pattern and an
associated discrete label (or output), LVQ learns decision boundaries which partition the input space into subspaces with an associated label. The goal is that each input patterns falls
into a subspace with the same associated label.
The algorithm looks as follows:
• Initialize the weight-vectors of a number of neurons and label each neuron o with a
discrete class label y o
• Present a training example (xp , dp )
• Use the distance measure between the weight-vectors of the neurons and the input vector
xp to compute the winning neuron k1 and the second closest neuron k2 :
kxp − wk1 k < kxp − wk2 k < kxp − wi k ∀i 6= k1 , k2
• The labels y k1 and y k2 are compared to the desired label of the example dp from which
an update is computed
The update rule causes the winning neuron to move closer to the input example when its
label corresponds to the desired label for that example. In case the labels are not the same,
the algorithm looks at the second-best neuron and when its label is correct it is moved closer
and in this case the winning neuron is moved away from the input example. Formally, the
update rules look as follows:
• If y k1 = dp : Apply the weight update rule for k1 :
wk1 (t + 1) = wk1 (t) + γ(xp − wk1 (t))
• Else, if y k1 6= dp and y k2 = dp : Apply the weight update rule for k2 :
wk2 (t + 1) = wk2 (t) + γ(xp − wk2 (t))
and move the winning neuron away from the example:
wk1 (t + 1) = wk1 (t) − γ(xp − wk1 (t))
102CHAPTER 6. UNSUPERVISED LEARNING AND SELF ORGANISING NETWORKS
The algorithm does not perform any update if the labels of the winning and second-best
neurons do not agree with the label of the example. One could make an algorithm which
would move the closest neuron with the correct label to the example (and possibly move all
others away from it), but this is not done in LVQ. A possible problem of this would be strong
oscillation of the weight-vectors of the neurons due to noise.
LVQ example. In LVQ, we use K cluster-points (neurons) with a labelled output. We
compute the closest (winning) neuron wk1 and the second closest neuron wk2 for each training
example and apply the weight update rules.
Suppose we start with 2 cluster-points: w1 = (1, 1) with label y 1 = A, and w2 = (3, 2)
with label y 2 = B. We set the learning rate γ to 0.5.
Now we receive the following training examples:
(x1 → D 1 ) = (1, 2 → A)
(x2 → D 2 ) = (2, 5 → B)
(x3 → D 3 ) = (3, 4 → A)
(x4 → D 4 ) = (2, 3 → B)
Then we get the following update rules: For (1, 2 → A), the winner is neuron 1 and the second
best is neuron 2. The label of neuron 1 y 1 = D 1 . Therefore neuron 1 is moved closer to the
example:
w1 = (1, 1) + 0.5((1, 2) − (1, 1)) = (1, 1.5).
x2 = (2, 5). Winner is neuron 2. Second closest is neuron 1. The label of neuron 2 is the
same as the label D 2 , therefore neuron 2 is moved closer to the example:
w2 = (3, 2) + 0.5((2, 5) − (3, 2)) = (2.5, 3.5).
x3 = (3, 4). Winner is neuron 2. Second closest is neuron 1. The label of neuron 2 is not the
same as the label D 3 . The label of neuron 1 is the same as D 3 . Therefore we move neuron 1
closer to the example, and neuron 2 away from the example:
w1 = (1, 1.5) + 0.5((3, 4) − (1, 1.5)) = (2, 2.75).
w2 = (2.5, 3.5) − 0.5((3, 4) − (2.5, 3.5)) = (2.25, 3.25).
Now try it yourself on the fourth example. An example partitioning of a 2-dimensional
input space is shown in Figure 6.6. The structure of the decision boundaries of such a
partitioning is often called a Voronoi diagram.
D
A
C
B
A
Figure 6.6: An example of a partitioning created by LVQ.
6.4. KOHONEN NETWORKS
6.4
103
Kohonen Networks
Kohonen networks or Kohonen maps are self-organising maps (SOMs) in which the neurons
are ordered in a specific structure such as a 2-dimensional grid. This ordering or structure
determines which neurons are neighbours. Input patterns which are lying close together are
mapped to neurons in the structure S which are close together (the same neuron or neighbouring neurons). The learning algorithm causes the structure of the neurons to get a specific
shape which reflects the underlying (low dimensional) manifold of the input patterns received
by the algorithm. The structure of a Kohonen network is determined before the learning
process, and often a structure is used which has lower dimensionality than the dimensionality
of the input space. This is very useful to visualise the structure of inputs which fall on a subspace of the input space, see Figure 6.7. The structure used here is a 2-dimensional structure
consisting of 4 × 4 neurons.
Figure 6.7: In this example, the 2-dimensional 4 × 4 structure of the Kohonen network covers
a manifold of lower dimensionality than the input space.
6.4.1
Kohonen network learning algorithm
Again we compute the winning neuron for an incoming input pattern using some distance
measure such as the Euclidean distance. Instead of only updating the winning neuron, we
also update the neighbours of the winning neuron for which we use a neighbourhood function
g(o, k) between two neurons. Here we define g(k, k) = 1 and with a longer separation distance
in the structure we decrease the value of the neighbourhood function g(o, k). So the update
is done using:
wo (t + 1) = wo (t) + γg(o, k)(x(t) − wo (t)) ∀o ∈ S.
Where k is the winning neuron and we have to define a function g(o, k). For example we can
use a Gaussian function defined as:
g(o, k) = exp(−distanceS (o, k))
Where distanceS (o, k) computes the distance in the structure S between two neurons. This
distance is the minimal number of edges which have to be traversed in the structure to arrive
at neuron o from winning neuron k.
By this collective learning method input patterns which lie close together are mapped to
neurons which are close together in the structure. In this way the topology which can be
104CHAPTER 6. UNSUPERVISED LEARNING AND SELF ORGANISING NETWORKS
found in the input signals is represented in the learned Kohonen network. Figure 6.8 shows
an example of the learning process in which input patterns are drawn randomly from the
2-dimensional subspace.
Iteration 0
Iteration 600
Iteration 1900
Figure 6.8: The Kohonen network learns a representation which preserves the structure of
the input patterns.
If the intrinsic dimensionality of the structure S is smaller than the dimensionality of the
input space, the neurons of the network are “folded” in the input space. This can be seen in
Figure 6.9.
Figure 6.9: If the dimensionality of the structure is smaller than the manifold from which
input patterns are generated, the resulting Kohonen map is folded in the input space. Here
this folding is shown for a 1-dimensional structure in a 2-dimensional input-space.
Example Kohonen network. Suppose we use a Kohonen network with 3 neurons
connected in a line (thus 1-dimensional) structure. We use a neighbourhood relation as
follows: g(k, k) = 1 and g(h, k) = 0.5 if h and k are direct neighbours on the line, else
g(h, k) = 0.
Again we always compute the winning neuron on each input pattern, and then we update
all neurons as follows:
wi = wi + γg(i, k)(xp − wi )
We initialise: w1 = (1, 1), w2 = (3, 2), w3 = (2, 4). We set γ = 0.5. Now we obtain the
examples:
x1 = (1, 2)
x2 = (2, 5)
x3 = (3, 4)
x4 = (2, 3)
6.5. DISCUSSION
105
On x1 = (1, 2) neuron 1 wins the competition. This results in the update:
w1 = (1, 1) + 0.5 ∗ 1((1, 2) − (1, 1)) = (1, 1.5).
We also have to update the neighbours. g(2, 1) = 0.5 en g(3, 1) = 0. So we update neuron 2:
w2 = (3, 2) + 0.5 ∗ 0.5((1, 2) − (3, 2)) = (2.5, 2).
On x2 = (2, 5) neuron 3 wins. This results in the update:
w3 = (2, 4) + 0.5 ∗ 1((2, 5) − (2, 4)) = (2, 4.5).
We also have to update the neighbours. g(2, 3) = 0.5 en g(1, 3) = 0. So we update neuron 2:
w2 = (2.5, 2) + 0.5 ∗ 0.5((2, 5) − (2.5, 2)) = (2.375, 2.75).
On x3 = (3, 4) neuron 3 wins. This results in the update:
w3 = (2, 4.5) + 0.5 ∗ 1((3, 4) − (2, 4.5)) = (2.5, 4.25).
We also have to update the neighbours. Again g(2, 3) = 0.5 en g(1, 3) = 0. So we update
neuron 2:
w2 = (2.375, 2.75) + 0.5 ∗ 0.5((3, 4) − (2.375, 2.75)) = (2.53, 3.06).
Try it yourself on the last example.
6.4.2
Supervised learning in Kohonen networks
A Kohonen network can also be used for supervised learning. For this we use outputs woh for
each neuron h and each output o. In case there is only a single output we can denote the
output of a neuron h as y h . To determine the overall output on a training example, we use
the outputs of all activated neurons (neurons are activated if g(h, k) > 0. So we obtain the
output yo by the following formula which weighs the neuron outputs by their activations:
P
h
h∈S g(h, k)wo
yo = P
h∈S
g(h, k)
This is basically a weighted sum and causes smoother functions when larger neighbourhood
function values are used.
Now each neuron can learn output values in two different ways. The first possibility is to
let neurons learn the average output weighted by its activation using:
woh = woh + α(Do − woh ) P
g(h, k)
i∈S g(i, k)
Where Do is the target value for output o.
We can also let each neuron learn to reduce the overall error of the network. In this case
neurons collaborate more. The following learning rule does this:
woh = woh + α(Do − yo ) P
g(h, k)
i∈S g(i, k)
Furthermore for supervised learning in Kohonen networks, the unsupervised steps can be
changed so that neurons with small errors are moved faster to the input pattern than neurons
with larger errors.
6.5
Discussion
In this chapter we examined unsupervised learning methods which can be used for clustering
data, vector quantisation, dimensionality reduction, and feature extraction. The K-means
106CHAPTER 6. UNSUPERVISED LEARNING AND SELF ORGANISING NETWORKS
algorithm is a well-known method for clustering, but is a batch learning method meaning
that it has to be executed on all input patterns. In competitive learning, updates are made
online. The neurons compete for becoming activated based on their distance to the input
pattern. Unsupervised learning methods can also be extended with additional output weights
to make supervised learning possible. In this case we can simply use the delta rule for learning
outputs of each neuron. The shown algorithms are well able in dealing with continuous inputs,
for discrete inputs some adaptions may be necessary to improve the algorithms. All learning
algorithms respect the locality principle; inputs which lie close together in the input space
are grouped together. For supervised learning, the shown algorithms can be very suitable if
the function is smooth. By using additional neurons a good approximation of a fluctuating
target function can be learned, but finding the winning neuron becomes slow if many neurons
are used.
Bibliography
[Dawkins, 1976] Dawkins, R. (1976). The Selfish Gene. Oxford University Press.
[Dorigo and Gambardella, 1997] Dorigo, M. and Gambardella, L. M. (1997). Ant colony
system: A cooperative learning approach to the traveling salesman problem. Evolutionary
Computation, 1(1):53–66.
[Dorigo et al., 1996] Dorigo, M., Maniezzo, V., and Colorni, A. (1996). The ant system:
Optimization by a colony of cooperating agents. IEEE Transactions on Systems, Man, and
Cybernetics-Part B, 26(1):29–41.
[Glover and Laguna, 1997] Glover, F. and Laguna, M. (1997). Tabu Search. Kluwer Academic
Publishers.
[Merz and Freisleben, 1999] Merz, P. and Freisleben, B. (1999). A comparison of memetic
algorithms, tabu search, and ant colonies for the quadratic assignment problem. In et al.,
P. J. A., editor, Proceedings of the Congress on Evolutionary Computation, volume 3, pages
2063–2070.
[Radcliffe and Surry, 1994] Radcliffe, N. J. and Surry, P. D. (1994). Formal memetic algorithms. In Evolutionary Computing, AISB Workshop, pages 1–16.
107
Transparanten bij het vak Inleiding Adaptieve Systemen: Reinforcement Leren. M.
Wiering
Stap = overgang (transitie)
van de ene toestand
P
naar de volgende ( j P (i, a, j) = 1)
Toestanden kunnen terminaal zijn: ketens van
stappen die hier terecht komen worden niet verder voortgezet
Inhouds opgave
• Markov Decision Problems
Markov eigenschap
• Dynamisch Programmeren: herhaling
De huidige toestand en actie geven alle mogelijke informatie voor het voorspellen naar welke
volgende toestand een stap gemaakt zal worden:
• Reinforcement Leren: principes
• Temporal difference leren
P (st+1 |st , at ) = P (st+1 |st , at , . . . , s1 , a1 )
• Q-leren
Dus, voor het voorspellen van de toekomst doet
het er niet toe hoe je in de huidige toestand
gekomen bent.
• Model gebaseerd leren
Vergelijk processen in de natuurkunde: waar
zou het verleden gerepresenteerd moeten zijn?
Leerdoelen:
1. De theorie begrijpen en de RL algoritmen
kunnen opschrijven/gebruiken.
Voorbeeld MDP:
2. Begrijpen waarom exploratie/generalisatie
van belang is en manieren kunnen vertellen hoe we dat kunnen aanpakken.
0
3. Applicaties kunnen bedenken voor RL toepassingen.
+1
0
0
0
0
0
0
-1
0
Deterministic MDP
Number of states = 5
Number of actions = 2
Markov besluits problemen
Een Markov decision process (MDP) bestaat uit:
Passief leren — leert uitkomst van proces zonder besluiten te kunnen nemen welke uitkomst
van proces beinvloeden → predictie.
• S: Eindige verzameling toestanden
{S1 , S2 , . . . , Sn }.
• A: Eindige verzameling acties.
Voorbeeld: in het bovenstaande MDP worden
alle acties met 50% gekozen. Wat is de verwachte som der beloningen in de toekomst?
• P (i, a, j): kans om een stapje naar toestand j te maken als actie a wordt geselecteerd in toestand i.
Actief leren — leert policy welke acties selecteert zodat uitkomst van proces voor de agent
zo goed mogelijk is → controle.
• R(i, a, j) beloning voor het maken van een
transitie van toestand i naar toestand j
door het executeren van actie a
Voorbeeld: in bovenstaande MDP: wat is de optimale actie in elke toestand? Wat is dan de
verwachte som der beloningen in de toekomst?
• γ: discount parameter voor toekomstige
beloningen: (0 ≤ γ ≤ 1)
Actie selectie policy
Policy Π selecteert een actie als een functie van
de huidige toestand
at = Π(st )
1
Doel: Leer de policy Π∗ welke de toekomstige Q-functie voor het evalueren van toestand/actie
verwachte beloningen maximaliseert:
paren.
Π∗ = arg max E(
Π
∞
X
Als V , de toestand waarde-functie bekend is,
dan kunnen we in een toestand alle acties uitproberen, de nieuwe toestand bepalen (met behulp van het model) en die actie selecteren welke
leidt tot de grootst verwachte som van toekomstige beloningen.
γ t R(st , Π(st ), st+1 )|s0 = s)
t=0
Voorbeeld policy:
Als de Q-functie bekend is dan kunnen we in
elke toestand direct de actie selecteren met de
hoogste Q-waarde (hiervoor is dan ook geen model meer nodig).
G
Dynamisch programmeren (Bellman 1957)
De optimale Q-functie voldoet aan de Bellman
vergelijking:
X
Q∗ (i, a) =
P (i, a, j)(R(i, a, j) + γV ∗ (j))
Er zijn |A||S| policies, hoe weten we welke policy
het beste is?
j
Waarde-functie (utiliteiten functie): De waar- Hier is V ∗ (j) = maxa Q∗ (j, a)
de van een toestand schat de verwachte toekomDe optimale policy verkrijgen we dan door:
stige beloningen:
V (s) = E(
∞
X
Π∗ (i) = arg max Q∗ (i, a)
a
t
γ R(st , Π(st ), st+1 )|s0 = s)
t=0
Opmerkingen:
De Q-functie schat de waarde voor het selecteren
• V ∗ is uniek bepaald
van een actie in een gegeven toestand:
• Π∗ is niet altijd uniek bepaald (soms zijn
X
P (st , at , st+1 )(R(st , at , st+1 )+γV (st+1 ))er meerdere optimale policies)
Q(st , at ) =
st+1
Voorbeeld waarde functie (in deterministische
wereld):
5
6
6
7
5
6
4
Value Iteration
We kunnen de optimale policy en de Q-functie
berekenen door gebruik te maken van een dynamisch programmeer algoritme:
10
8
Value iteration:
9
1. Initialiseer de Q-waarde en V-waarden (b.v.
op 0)
8
6
7
2. Maak een “update” voor de Q-waarden:
X
Q(i, a) :=
P (i, a, j)(R(i, a, j) + γV (j))
j
De V-functie en de Q-functie
Voor terminale toestanden geldt:
P (i, a, i) = 1 en R(i, a, i) = 0 voor elke
actie.(Of P (i, a, j) = 0 voor alle j)
We maken gebruik van 2 waarde functies: de Vfunctie voor het evalueren van toestanden en de
2
3. Bereken dan de nieuwe waarde functie:
V (i) := max Q(i, a)
a
En los de onbekenden op.
(1)
• Policy evaluation:
Start met V (i) = 0 voor alle toestanden i
4. Pas de policy aan zodat in elke toestand de
actie met maximale huidige waarde wordt
geselecteerd.
en herhaal
X
V (i) :=
Π(i) := argmaxa Q(i, a)
P (i, j)(R(i, j) + γV (j))
j
een groot aantal keer voor alle niet-terminale
toestanden i
5. Ga naar (2) totdat V niet meer verandert
Evalueren van een policy
Opgave:
Als we de policy vastleggen, kunnen we berekenen wat de exacte waarde van een bepaalde toe- Gegeven de toestanden 1 t/m 4 waarvan 4 terstand is. Dit correspondeert met passief leren minaal is:
(waarbij de vastgelegde policy de overgangskansen bepaalt).
P = 0.5
R = -1
Omdat we nu een vaste policy Π hebben kunnen
we de acties uit de transitie en belonings functies
elimineren:
1
P = 0.5
R=1
P (i, j) = P (i, Π(i), j) en: R(i, j) = R(i, Π(i), j)
3
2
P = 0.5
R = -1
P=1
R=1
P = 0.5
R=2
4
Nu is V Π (i) voor elke toestand i vastgelegd:
• voor terminale toestanden i:
Bereken de waarden voor alle toestanden.
V Π (i) = 0
• voor niet-terminale toestanden i:
X
V Π (i) =
P (i, j)(R(i, j) + γV Π (j))
Dynamisch programmeren als planning tool
Planning: bereken acties om doel te verwezenlijken. Voorbeeld: A* planning. Problemen met
niet deterministische omgevingen.
j
Stelsel van n lineaire vergelijkingen met n onbekenden V (i)
=⇒ precies één oplossing voor de V-functie.
DP: gegeven een toestand: selecteer een actie en
volg vervolgens de (optimale) policy
Hoe bepaal je de n onbekenden V (i)?
DP voordeel: Tijdens het runnen kunnen acties
direct geselecteerd worden (dus zonder kostbare
plan operaties)
Twee methoden:
• Gauss-eliminatie ( = ‘vegen’)
V (1)
=
X
DP nadeel: de waarde functie moet nauwkeurig
zijn.
P (1, j)(R(1, j) + γV (j))
Problemen voor het gebruik van dynamisch programmeren:
j
V (2)
=
X
P (2, j)(R(2, j) + γV (j))
X
P (n, j)(R(n, j) + γV (j))
j
.. =
V (n) =
• Een a-priori model van het Markov decision process is nodig (de omgeving moet
bekend zijn)
j
3
• Als er veel variabelen zijn wordt de toe- Geen a-priori gegeven model (transitie kansen,
standsruimte zeer groot (bv. n binaire va- beloningen) is nodig.
riabelen → 2n toestanden. DP wordt comReinforcement leren leert een subjectieve “view”
putationeel dan heel duur.
op de wereld door de interactie met de wereld.
• Wat als de toestandsruimte continu is?
Een policy wordt getest hetgeen ervaringen oplevert waarvan geleerd kan worden om een nieuwe
policy te berekenen.
• Wat als acties/tijd continu zijn?
• Wat als omgeving niet-Markov?
Exploratie van de toestands ruimte is nodig.
De beste actie leren met RL
G
Stel je speelt de twee-armige bandiet: er zijn
twee acties (L en R), beide kosten een euro.
De linkerarm heeft kans 10% op uitbetalen van
6 euro.
Epoch = Sequentie
Ervaringen (stapjes)
De rechterarm heeft kans 1% op uitbetalen van
100 euro.
Subjectieve kijk van
de agent op de wereld
Helaas weet je de kansen en opbrengsten niet.
Door herhaaldelijk beide armen uit te proberen,
kun je de kans op winst en het winstbedrag leren
(gewoon door het gemiddelde te bepalen).
Principes van reinforcement leren (RL)
Om de Q-functie te leren, herhalen RL algoritmen voortdurend het volgende:
Als de kansen en de bedragen nauwkeurig bekend zijn is het simpel om optimaal te spelen.
1. Selecteer actie at gegeven de toestand st
2-armige bandiet en exploratie
2. Vergaar de beloning rt en observeer de opvolgende toestand st+1
Stel je speelt het spel en krijgt de volgende resultaten:
3. Maak een “update” van de Q-functie door
gebruik te maken van de laatse ervaring:
(st , at , rt , st+1 )
(1, L, -1)
(2, R, -1)
(3, L, +5)
De verwachtings waarden kunnen we opschrijven als een quadruple:
Epoch = keten opeenvolgende toestanden eindigend in terminale toestand (of na vast aantal
(Actie A, kans P , winstbedrag R, gem. waarde stapjes).
V)
+1
Voor bovenstaande ervaringen worden deze:
(L, 0.5, 5, 2.0) en (R, 0, ?, -1).
-1
+2
0
Als we nu verder spelen, moeten we dan direct
L kiezen, of toch R blijven uitproberen?
Dit wordt het exploratie/exploitatie dilemma ge- Uit de epochs willen we de waarde functie en de
optimale strategie leren
noemd
Vergelijk: kiezen we voor informatie voor meer
toekomstige beloning of voor directe beloning?
Vier RL methoden:
• Monte Carlo sampling (Naı̈ef updaten)
Reinforcement leren
4
Hier is α een klein positief getal, de learning
rate
• Temporal difference (TD) leren
• Q-leren
Idee: geef elke keer V (i) een duwtje in de ge• Model-gebaseerd dynamisch program- wenste richting
meren
Bij vaste α komt dit snel in de buurt van de echte
utiliteit, maar convergeert daarna niet verder
De eerste drie methodes gebruiken geen transitie
Als α steeds kleiner wordt naarmate toestand i
model en worden daarom ook vaak direct RL
vaker bezocht is, convergeert het wel
of model-free RL genoemd.
De vierde schat eerst een transitie model en berekent de waarde functie aan de hand van dynamisch programmeer achtige methoden. Daarom
wordt deze methode ook wel indirect RL of
model-based RL genoemd.
Voorbeeld:
Als P (i, j) = 13 en P (i, k) = 23 , en de overgang i → j komt 10 keer voor en de overgang
i → k komt 20 keer voor, dan:
10× : V (i) := V (i) + α(R(i, j) + γV (j) − V (i))
Monte Carlo Sampling
20× : V (i) := V (i) + α(R(i, k) + γV (k) − V (i))
≈ V (i) := V (i) + α(10R(i, j) + 10γV (j)+
• Bepaal voor elke toestand s in een epoch k
de
reward-to-go: ak = de som van alle beloningen in die epoch vanaf het eerste moment dat die toestand bezocht is tot de
epoch afgelopen is
20R(i, k) + 20γV (k) − 30V (i)),
⇔
30αV (i) = α(10R(i, j) + 10γV (j) + 20R(i, k) +
20γV (k))
• Schatting voor utiliteit van een toestand:
precies een stap in de gewenste richting =⇒
neem het gemiddelde van alle rewardsto-go van alle keren dat die toe1
2
V (i) := (R(i, j) + γV (j)) + (R(i, k) + γV (k))
stand in een epoch voorkomt
3
3
V (s) =
Pk
i=1 ai (s)| s bezocht in epoch i
aantal epochs dat s bezocht werd
Opgave:
+5
Bezwaar: deze methode convergeert zeer langzaam (update variantie is heel groot)
2
+5
3
-5
5
1
-5
Temporal difference leren:
-5
4
In plaats van direct de hele toestand keten te gebruiken voor een update, kunnen we ook alleen
de opvolgende toestand gebruiken.
Doe voor elke stap van i naar j in een epoch:
+5
6
7
Stel elke overgang 50% kans.
• als j terminaal: V (i) := V (i) + α(R(i, j) −
V (i))
Stel vervolgens dat de agent de volgende epochs
(sequenties van toestanden) meemaakt:
{1, 2, 3}
{1, 4, 7}
{1, 2, 5}
• als j niet terminaal:
V (i) := V (i) + α(R(i, j) + γV (j) − V (i))
5
{1, 2, 3}
Welke updates van de V-functie zal de agent maken met Monte Carlo sampling?
Welke met TD-leren?
Model-gebaseerd RL
Model-gebaseerd RL schat eerst de transitie en
de belonings functies:
Maak schatting van P (i, a, j):
P̂( i, a, j) :=
Q-leren
Q-learning (Watkins, 1989) verandert een enkele
Q-waarde gegeven de ervaring (st , at , rt , st+1 ):
# overgangen van i → j waarbij a gekozen
# keren actie a in toestand i gekozen
Doe hetzelfde voor de beloning:
Q(st , at ) := Q(st , at )+α(rt +γV (st+1 )−Q(st , at ))
Hierbij is V (s) = maxa Q(s, a).
R̂(i, a, j) :=
som beloningen op overgang van i → j na kiezen a
# transities van i naar j waarbij a gekozen werd
Herhaal de update
X
Q(i, a) :=
P̂ (i, a, j)(R̂(i, a, j) + γV (j))
Als Q-leren gebruikt wordt, convergeert de Qfunctie naar de optimale Q-functie als alle toestand/actie paren oneindig vaak bezocht worden
(en de leersnelheid afneemt).
j
een aantal keer voor alle niet-terminale toestanden
Q-leren is meest gebruikte RL methode.
Vaak is het onnodig om alle Q-waarden te updaten:
Voordeel van Q-leren: simpel te implementeren.
Nadeel van Q-leren: kan lang duren voordat beloning aan eind van keten terug gepropageerd is
naar een toestand.
Slechts een subset van de Q-waarden zal significant veranderen door de laatste ervaring. Snellere update-methoden houden hier rekening mee
(bv. Prioritized sweeping)
Voorbeeld Q-leren
We hebben de volgende toestandsgraaf met over- Experimentele vergelijking
gangen voor de acties Links (L) en rechts (R).
Er zijn 5 toestanden: A,B,C,D,E. E is een terminale toestand.
R=-1
P(L) = 0.9
P(R) = 0.1
A
R=-1
P(L) = 0.9
P(R) = 0.1
B
R=-1
P(L) = 1.0
P(R) = 1.0
R=-1
P(L) = 0.9
P(R) = 0.1
C
R=-1
P(L) = 0.1
P(R) = 0.9
G
D
R=-1
P(L) = 0.1
P(R) = 0.9
E
R=-1
P(L) = 0.1
P(R) = 0.9
S
50 × 50 maze
Reward goal = + 100 ; Reward blocked = -2 ;
Reward penalty = -10 ; otherwise -1;
10% noise in action execution
Max-random exploration (30% → 0% noise)
Stel de volgende overgangen worden gemaakt:
(A, L, B); (B, R, C); (C, R, D); (D,R,E)
(C,L,D); (D, L, C); (C,R,D); (D,R,E)
(B,L,A); (A,R,B); (B,L,C); (C,R,D); (D,L,E)
Vraag: Wat zijn de resulterende Q-waarden als
Q-leren gebruikt wordt (α = 0.5)?
Indirect vs. Direct RL
Voordelen direct RL:
6
100000
1e+06
Q-learning
Q(0.5)-learning
Model-based Q
Prioritized Sweeping
Q-learning
Q(0.5)-learning
Model-based Q
Prioritized Sweeping
80000
number of steps in trial
Cumulative reward per 10000 steps
100000
60000
40000
20000
10000
1000
0
100
-20000
-40000
10
0
250000
500000
750000
1e+06
0
2000
#steps
4000
6000
8000
trial number
• Minder geheugen ruimte nodig (transitie
functie kan groot zijn)
• Werkt ook met niet discrete representaties
(bv. neurale netwerken)
• Kan beter werken als Markov eigenschap
niet geldt
Nadelen direct RL:
• Veel informatie wordt weggegooid
• Agent heeft geen mogelijkheid tot introspectie: bv. welke actie heb ik nog weinig
uitgeprobeerd (voor exploratie)
• Leren kan veel langer duren
• Geleerde waarde functie meestal veel minder nauwkeurig
7
Transparanten bij het vak Inleiding Adaptieve Systemen: Optimal Control. M. Wiering
4. Begrijpen waarom exploratie/generalisatie
van belang is en manieren kunnen vertellen hoe we dat kunnen aanpakken.
Reinforcement leren
5. Applicaties kunnen bedenken voor RL toepassingen.
Supervised leren: leren uit gegevens die allemaal voorzien zijn van de gewenste uitkomst
Reinforcement leren :
Reinforcement leren: leren door het uitproberen van acties, waarbij na sommige acties een
beloning (reward) of straf (punishment) wordt
gegeven
Leer een agent te controlleren door acties uit te
proberen en de verkregen feedback (beloningen)
te gebruiken om gedrag te versterken (reinforce).
Voorbeelden:
De agent interacteert met een omgeving door
het gebruik van (virtuele) sensoren en actuatoren.
• Bepaal route van een robot
– Beloning: als gewenste positie bereikt De belonings functie bepaalt welk gedrag van de
is
agent het meest gewenst is.
– Straf: als de robot ergens tegen opbotst
• Speel schaak, dammen, backgammon, . . .
Omgeving
– Beloning: als het spel gewonnen is
Beloning
Input
– Straf: als het spel verloren is
Actie
Straf = beloning met negatieve waarde
Agent
Inhouds opgave
• Kortste pad algoritmen
Reinforcement leren (RL) en Evolutionai• Optimal Control, dynamisch programme- re Algoritmen (EA)
ren
Stel je wilt leren schaken, dan wil je dus een
evaluatie functie leren.
• Reinforcement Leren: principes
Je wilt de evaluatie van een stand weten; wat je
kunt doen is de stand 1000 keer uitspelen (waarbij verschillende zetten aan bod komen) en bekijken hoe vaak er gewonnen wordt.
• Temporal difference leren
• Q-leren
• Model gebaseerd leren
Door tegen jezelf te spelen, kun je op deze manier een steeds betere evaluatie functie leren (met
RL).
Leerdoelen:
Een andere mogelijkheid is om speler A tegen
speler B te laten spelen. De winnaar gaat door
en krijgt een tegenstander welke net iets afwijkt.
1. Markov decision problems begrijpen
2. Dynamisch programmeer algoritmen begrijpen en kunnen toepassen
Door herhaaldelijk competities uit te voeren, kunnen dergelijke evolutionaire algoritmen leren scha3. De RL principes begrijpen en de RL algo- ken.
ritmen kunnen opschrijven/gebruiken.
1
• De toestand
Enkele bekende applicaties
• De minimaal gevonden afstand tot de beginknoop
Samuel’s checkers programma leerde dammen
(op 64 velden) door tegen zichzelf te spelen en
werd het eerste spel-programma dat de programmeur versloeg (1959).
• De vaderknoop welke aangeeft wat de vorige toestand in het best gevonden pad is.
Tesauro maakte TD-gammon (1992), een RL
programma welke backgammon leerde spelen op
wereldklasse nivo. TD-gammon werd veel beter
dan Neuro-gammon, een programma welke supervised leren gebruikte.
We verdelen de toestanden over 2 verzamelingen:
Crites en Barto (1996) gebruikten RL om een
controller te leren voor meerdere liften in een
gesimuleerde omgeving.
• een verzameling waarvan we dat nog niet
weten.
• een verzameling waarvan we weten dat we
het kortste pad hebben bepaald
De datastructuur: (knoop, kosten, vader, geexp).
Verder:
• Robot besturing
Voorbeeld zoekprobleem
• Combinatorial optimization
• Network routing
B
2
C
4
E
7
• Verkeers controle
2
A
F
1
3
9
Kortste pad algoritmen
D
Reinforcement-leer algoritmen leren paden in een
zoekruimte met de hoogste som van beloningen
of de laagste padkosten.
(1) Initialisatie: Zet beginknoop op padkosten 0. Hiervan is optimale pad bekend (maar
knoop is niet geexpandeerd). Zet andere knoWe kennen wellicht al een aantal zoek-algoritmen pen op maximale waarde
Bekend = [(A, 0, [A], 0)]
welke het kortste pad kunnen berekenen
Onbekend = [(B, 1000, []), (C, 1000, []), (D, 1000, []),
(vb. Breadth-first zoeken).
Reinforcement leren kan dan ook goed gebruikt
worden voor het vinden van het kortste pad.
(E, 1000, []), (F, 1000, [])]
Voor het kortste-pad probleem in een netwerk,
bestaan er echter efficientere algoritmen.
(2) Expandeer bekende, niet-geexpandeerde
knoop (A):
De besproken zoek algoritmen zijn inefficient omBekend = [(A, 0, [A], 1)]
dat ze de zoekboom voor elke zoekknoop steeds
Onbekend = [(B, 7, [BA]), (C, 1000, []), (D, 3, [DA]),
opnieuw expanderen.
(E, 1000, []), (F, 1000, [])]
Dijkstra’s kortste pad algoritme (1959) is het
meest efficient, als de omgeving deterministisch
en bekend is.
(3) Onbekende knoop met kortste padkosten wordt bekend (D):
Bekend = [(A, 0, [A], 1), (D, 3, [DA], 0)]
Onbekend = [(B, 7, [BA]), (C, 1000, []), (E, 1000, []),
(F, 1000, [])]
Dijkstra’s kortste pad algoritme (DKPA)
(2) Expandeer bekende, niet-geexpandeerde
knoop (D):
Bekend = [(A, 0, [A], 1), (D, 3, [DA], 1)]
Onbekend = [(B, 7, [BA]), (C, 4, [CDA]), (E, 1000, []),
DKPA maakt gebruik van de structuur van het
probleem (een graaf i.p.v. een boom)
Het houdt voor elke zoekknoop de volgende informatie bij:
(F, 12, [F DA])]
2
(3) Onbekende knoop met kortste padkos- als de kosten en het effect (de opvolgende toeten wordt bekend (C):
stand) van operatoren bekend zijn.
Bekend = [(A, 0, [A], 1), (D, 3, [DA], 1), (C, 4, [CDA], 0)]
Onbekend = [(B, 7, [BA]), (E, 1000, []), (F, 12, [F DA])]
(2) Expandeer bekende, niet-geexpandeerdeDynamisch Programmeren
knoop (C):
We kunnen dynamisch programmeren gebruiken
Bekend = [(A, 0, [A], 1), (D, 3, [DA], 1), (C, 4, [CDA], 1)]
als:
Onbekend = [(B, 6, [BCDA]), (E, 8, [ECDA]),
(F, 12, [F DA])]
(3) Onbekende knoop met kortste padkosten wordt bekend (B):
Bekend = [(A, 0, [A], 1), (D, 3, [DA], 1), (C, 4, [CDA], 1),
(B, 6, [BCDA], 0)]
• De omgeving stochastisch is (er zijn meerdere mogelijke opvolgende toestanden als
een operator gebruikt wordt in een bepaalde toestand)
• Operatoren een negatieve kosten kunnen
hebben
Onbekend = [(E, 8, [ECDA]), (F, 12, [F DA])]
(2) Expandeer bekende, niet-geexpandeerde
• De effecten van operatoren bekend zijn.
knoop (B):
Bekend = [(A, 0, [A], 1), (D, 3, [DA], 1), (C, 4, [CDA], 1),
Als een omgeving stochastisch is, kan het gebeu(B, 6, [BCDA], 1)]
ren dat de padkosten van een toestand afhanOnbekend = [(E, 8, [ECDA]), (F, 12, [F DA])]
kelijk is van vadertoestanden. Dit zorgt voor
(3) Onbekende knoop met kortste padkoscyclische afhankelijkheden tussen toestanden.
ten wordt bekend (E):
Bekend = [(A, 0, [A], 1), (D, 3, [DA], 1), (C, 4, [CDA], 1),
(B, 6, [BCDA], 1), (E, 8, [ECDA], 0)]
A=L
P=1
K=1
Onbekend = [(F, 12, [F DA])]
(2) Expandeer bekende, niet-geexpandeerde
knoop (E):
Bekend = [(A, 0, [A], 1), (D, 3, [DA], 1), (C, 4, [CDA], 1),
A=R
P=0.5
K=2
(B, 6, [BCDA], 1), (E, 8, [ECDA], 1)]
Onbekend = [(F, 10, [F ECDA])]
(3) Onbekende knoop met kortste padkosten wordt bekend (F):
Bekend = [(A, 0, [A], 1), (D, 3, [DA], 1), (C, 4, [CDA], 1),
(B, 6, [BCDA], 1), (E, 8, [ECDA], 1), (F, 10, [F ECDA])]
A
B
A=R
P=0.5
K=4
C
A=R
P=1
K=2
Complexiteit Dijkstra’s kortste pad
De complexiteit van Dijkstra’s kortste pad is
O(n2 ) voor een naieve implementatie (n is het
aantal toestanden).
Rekenen met Dynamisch programmeren
Als een omgeving stochastisch is, moeten we de
gemiddelde padkosten berekenen. Tijdens het
De complexiteit kan verbeterd worden door het
genereren van een pad, laten we een random
gebruik van efficientere datastructuren om het
nummer generator bepalen wat de uitkomst van
minimum te vinden van de toestanden waarvan
een operator is.
er 1 bekend (en minimaal) is.
Zo zijn voor bovenstaand probleem de volgende
Dijkstra’s algoritme werkt alleen als alle operapaden mogelijk (als steeds actie = R gekozen
toren een positieve kosten hebben.
wordt):
Dijkstra’s algoritme werkt alleen voor determi[A, B, C]; [A, B, A, B, C]; [A, B, A, B, A, B, C] etc.
nistische omgevingen.
Elk van deze paden heeft een kans:
Dijkstra’s algoritme kan alleen gebruikt worden
3
P ([A, B, C]) = 0.5 ; P ([A, B, A, B, C]) = 0.25;
etc.
• Te itereren: begin met V[A,C] = 0 en V[B,C]
= 0. Bereken de waarden dan steeds opnieuw door gebruik te maken van de vergelijkingen.
Elk van deze paden heeft ook een totale kosten:
K([A, B, C]) = 6 ; K([A, B, A, B, C]) = 10 etc.
• Te elimineren: We kunnen afhankelijkheid
(1) invullen in (2) en verkrijgen:
De verwachte padkosten V van A naar C als
steeds actie R gekozen wordt is dan het gemiddelde:
V [B, C]
0.5V [B, C]
V [B, C] = 8
V ([A, C]) = P ([A, B, C])K([A, B, C]) +
P ([A, B, A, B, C])K([A, B, A, B, C]) + . . .
= 3 + 0.5(2 + V [B, C])
= 4
Hieruit volgt: V [A, C] = 10.
Hiervoor gingen we ervan uit dat de policy Π al
bekend was. Dan kan V Π berekend worden.
NB. Als in toestand B de actie L gekozen wordt,
dan zijn de padkosten V [A, C] oneindig groot!
We schrijven daarom ook vaak V Π [A, C], waarin de policy Π aangeeft welke actie er in elke Voorbeeld
toestand gekozen wordt.
Beschouw de volgende cyclische graaf. Stel dat
altijd actie = R wordt geselecteerd door de policy. Bereken nu de waarde functie.
Gebruik maken van afhankelijkheden
Als we naar het probleem kijken, zien we dat de
kosten van A naar C gelijk zijn aan de kosten
om van A naar B te gaan plus de kosten om van
B naar C te gaan.
A=L
P=1
K=1
Dit kunnen we opschrijven als:
A=R
P=0.5
K=2
V [A, C] = K[A, B]+V [B, C] = 2+V [B, C] (1)
D
Hetzelfde kunnen we doen voor toestand B (we
gaan er weer van uit dat actie R gekozen wordt:
V [B, C]
=
A=R
P=0.5
K=2
A
A=R
P= 1
K=3
B
A=R
P=0.5
K=4
A=R
P=0.5
K=4
0.5(K[B, A] + V [A, C]) + 0.5(K[B, C] + V [C, C])
= 0.5 ∗ 2 + 0.5V [A, C] + 0.5 ∗ 4 + 0.5 ∗ 0
= 3 + 0.5V [A, C]
Berekenen van actie waarden
Door gebruik te maken van de afhankelijkheden:
Normaal gesproken willen we de optimale policy
Π∗ berekenen.
(1) V [A, C] = 2 + V [B, C], en
(2) V [B, C] = 3 + 0.5V [A, C]
Hiervoor gebruiken we Quality (Q)-waarden voor
acties.
Kunnen we V [A, C] en V [B, C] berekenen.
Voorbeeld: Q([A, C], R) = 2 + V [B, C]
Voorbeeld: Q([B, C], L) = 1 + V [A, C]
Voorbeeld:
Q([B, C], R) = 0.5(2+V [A, C])+0.5(4+V [C, C])
Methoden om de V-functie te berekenen
Dit kunnen we doen door:
4
C
Gegeven de waarden Q([B, C], L) en Q([B, C], R) Als we eerder stoppen, verkrijgen we een subkunnen we beste actie selecteren (degene met optimale oplossing, welke beter wordt naarmate
laagste Q-waarde).
er langer geitereerd wordt.
Op deze manier kunnen we V uitdrukken in Q:
Voorbeeld: dynamisch programmeren
V ([B, C]) = min Q([B, C], a)
a
Beschouw een deterministische doolhof. De kosten van alle acties zijn 1. G is doeltoestand
(V (G) = 0).
Gegeven de Q-waarden kunnen we nu ook de
beste actie selecteren:
Als we value iteration toepassen krijgen we achtereenvolgens:
Π([B, C]) = arg min Q([B, C], a)
a
Het algemene geval
We willen de doeltoestand niet altijd expliciet
vermelden, er kunnen immers meerdere doeltoestanden zijn.
0
0
0
0
0
0
0
Daarom schrijven we simpelweg V (S) en Q(S, A)
voor de waarden (verwachte padkosten) vanuit
toestand S.
Verder gebruiken we P (S, A, T ) voor de kans op
een overgang van toestand S naar toestand T
als actie A geexecuteerd wordt.
K(S, A, T ) beschrijft de kosten om met actie A
van toestand S naar toestand T te gaan.
0
2
2
2
2
2
2
2
0
2
2
D
1
1
0
1
1
0
1
1
0
1
0
3
3
1
3
3
2
3
3
2
3
0
1
1
1
1
1
2
1
0
2
3
3
De complexiteit van dynamisch programmeren
voor een deterministische doolhof = O(N AL),
waarbij N het aantal toestanden, A het aantal
acties, en L het langste optimale pad is.
Nu kunnen we een dynamisch programmeer algoritme gebruiken voor het berekenen van alle
V- en Q-waarden en de optimale policy.
Dynamisch programmeren kunnen we niet gebruiken als de effecten en kosten van operatoren
onbekend zijn.
Value iteration:
• (1) Initialisatie V(S) = 0 ; Q(S,A) = 0
voor alle toestanden en acties.
Conclusie
• Dijkstra’s kortste pad algoritme kan gebruikt worden als de omgeving bekend is
en alle acties positieve kosten hebben en
alle acties deterministisch zijn.
• Herhaal stappen (2-4) voor alle (S,A) paren totdat de waardefunctie V niet of nauwelijks meer verandert.
• (2) Iteratie
P : bereken Q-waarden
Q(S, A) = T P (S, A, T )(K(S, A, T )+V (T ))
• Dynamisch programmeren kan gebruikt worden als de omgeving bekend is. Acties
kunnen negatieve kosten hebben en nietdeterministisch zijn.
• (4) Iteratie : bereken nieuwe policy
acties: Π(S) = arg minA Q(S, A)
• Dynamisch programmeren berusten op een
V-functie welke de waarde om in een toestand te zijn schat en op een Q-functie welke de waarde van een actie in een toestand
schat.
• (3) Iteratie : bereken V-waarden
V (S) = minA Q(S, A)
Dit levert de optimale policy op. Helaas kan het
itereren totdat de waarde-functie V niet meer
verandert oneindig lang duren.
5
• DP kan niet gebruikt worden als de omgeving onbekend is.
6
1. Bereken welke voorbeelden x1 , . . . , xn in
elk van de clusters vallen.
Transparanten bij het vak Inleiding Adaptieve Systemen: Unsupervised Leren/ Self
organizing networks. M. Wiering
Een voorbeeld xi valt in een cluster C j als
wj de prototype vector is met de kleinste
Euclidische afstand tot het voorbeeld:
Unsupervised Learning en Self Organizing
Networks
d(wj , xi ) ≤ d(wl , xi )
Leerdoelen:
Voor alle l 6= j
pP
2
Met d(x, y) =
i (xi − yi ) : de Euclidische afstand tussen x en y.
• Weten wat unsupervised learning is
• Weten hoe K-means clustering gaat
2. Zet de prototype vectoren op het centrum
van de input voorbeelden in de betreffende
cluster. Voor alle clusters C j doe:
• Competitive Learning begrijpen en kunnen uitleggen
• LVQ begrijpen en kunnen toepassen
wij
• Kohonen netwerken begrijpen en de leerformules kennen
=
P
k∈C j
|C j |
xki
• Kunnen uitrekenen wat gewichtenveranderingen in een competitief leersysteem zijn Voorbeeld
We hebben vier voorbeelden:
(1,2)
(1,4)
Unsupervised Leren
(2,3)
In Unsupervised leren krijgen we enkel patronen (3,5)
xp als input en geen doel output.
We initialiseren 2 prototype vectoren w1 = (1, 1)
De geleerde informatie moet dus volledig uit de en w2 = (3, 3)
inputpatronen gehaald worden
We zien dat de voorbeelden in de volgende clusUnsupervised leren kan gebruikt worden voor:
ters vallen:
(1,2) → 1
• Clustering: Groepeer de data in clusters. (1,4) → 2
(2,3) → 2
• Vector quantisation: Discretiseer een con- (3,5) → 2
tinue inputruimte
Nu berekenen we de nieuwe prototype vectoren
• Dimensionaliteits reductie: groepeer de da- en krijgen: w1 = (1, 2) en w2 = (2, 4).
ta in een subruimte van lagere dimensie
Hierna vallen alle voorbeelden weer in dezelfde
dan de dimensionaliteit van de data
clusters dus zijn we klaar.
• Feature extraction: Extraheer kenmerken
uit de data
Competitive learning
Competitief leren verdeelt de input ruimte over
clusters in de input data
K-means clustering
Er worden enkel input patronen xp aangeboden.
De output van het leernetwerk op een input patroon is de cluster waarin xp valt.
K-means clustering kan gebruikt worden op continue attributen.
Het algoritme begint met K prototype vectoren
w1 , . . . , wK welke elk een cluster (C 1 , . . . , C K )
representeren.
In een simpel competitief leernetwerk worden alle inputs i met alle outputs o verbonden.
Hoe wordt de actieve (winnende) cluster bepaald?
Herhaal tot clusters niet meer veranderen:
1
output o
w1
w3
wio
w2
input i
w1
w1
We veronderstellen allereerst dat gewichten en
inputs genormaliseerd worden tot lengte 1.
x
w2
x
w2
Adaptieve stappen voor het netwerk
Winnaar = 1
(1) Elke output unit o berekent zijn activatie yo
door het ”dot-product”:
X
yo =
wio xi = wo x
Selecteren van de winnaar met de Euclidische afstand
i
Als inputs en gewichten vectoren niet genormaliseerd zijn, kunnen we de Euclidische afstand
nemen om de winnaar te bepalen:
(2) Vervolgens wordt de output neuron k met
maximale activatie gekozen:
∀o 6= k :
Winnaar = 1
Winnaar
y o ≤ yk
k : kwk − xk ≤ kwo − xk
∀o.
Als de vectoren genormaliseerd zijn, geeft het
Activaties worden gereset zodat yk = 1 en yo6=k =
gebruik van de Euclidische afstand dezelfde win0.
naar terug als het gebruik van het dot-produkt.
(3) Tenslotte worden de gewichten van de winDe gewichten update-regel schuift de gewichten
nende neuron k veranderd door de volgende leervector van de winnende neuron naar het inputregel:
patroon:
wk (t) + γ(x(t) − wk (t))
wk (t + 1) =
kwk (t) + γ(x(t) − wk (t))k
wk (t + 1) = wk (t) + γ(x(t) − wk (t)) (1)
De deler zorgt ervoor dat de gewichten vector
genormaliseerd wordt.
Competitive Learning (niet genormaliseerd)
Er zijn K clusterpunten (neuronen) w i , 1 ≤ i ≤
K.
Werking van competitive learning
In principe worden de gewichten vectoren in de
input ruimte gedraaid naar het voorbeeld
Eerst berekenen we voor elke clusterpunt de Euclidische afstand naar een voorbeeld met:
sX
d(wi , xp ) =
(wji − xpj )2
Dus gaan gewichten vectoren wijzen naar gebieden waar veel inputs verschijnen
Het kan mis gaan als inputs en gewichten vectoren niet genormaliseerd zijn:
Het ongewenste effect is dat grote gewichten vectoren het winnen tegen kleine gewichten vectoren.
j
De winnende neuron k heeft de minimale d(w k , xp )
Vervolgende verschuiven we de winnende neuron
k naar voorbeeld xp :
wik = wik + γ(xpi − wik )
2
Voorbeeld: We hebben 2 (K = 2) neuronen met
geinitialiseerde waarden: w 1 = (1, 1) en w2 =
(3, 2).
Een gebruikelijke maat om de kwaliteit van een
clustering te berekenen is gegeven door de volgende kwadratische-fout kosten functie:
Nu krijgen we 4 leervoorbeelden:
x1 = (1, 2)
x2 = (2, 5)
x3 = (3, 4)
x4 = (2, 3)
E=
1X
kwk − xp k2
2 p
Hier is k weer de winnende neuron voor inputpatroon xp .
We zetten de leersnelheid γ = 0.5. Dan krijgen
we:
We kunnen aantonen dat competitive learning
het minimum van de kosten functie zoekt door
de negatieve afgeleidde te volgen.
x1 = (1, 2) → d(w 1 , x1 ) = 1, d(w2 , x1 ) = 2.
Dus: Winnaar w1 = (1, 1) Toepassen van de
update vergelijking geeft:
w1 = (1, 1) + 0.5((1, 2) − (1, 1)) = (1, 1.5).
Bewijs:
√
2
1
2
2
2
p
x
√ = (2, 5) → d(w , x 2) = 13.25, d(w , x ) = De foutfunctie voor patroon x :
10. Dus: Winnaar w = (3, 2) Toepassen van
1X
de update vergelijking geeft:
E=
(wik − xpi )2
2
2 i
w = (3, 2) + 0.5((2, 5) − (3, 2)) = (2.5, 3.5).
√
3
1
3
2
3
x
√ = (3, 4) → d(w , x )2 = 10.25, d(w , x ) = waar k een winnende neuron is, wordt gemini0.5. Dus: Winnaar w = (2.5, 3.5) Toepassen maliseert door de gewichten update-regel van
van de update vergelijking geeft:
vergelijking (1).
w2 = (2.5, 3.5)+0.5((3, 4)−(2.5, 3.5)) = (2.75, 3.75).
Bewijs: we berekenen het effect van een gewichProbeer het nu zelf voor het laatste voorbeeld. ten verandering op de foutfunctie:
∆p wio = −γ
Initialisatie
∂E p
∂wio
Een probleem van de recursieve clustering me- Nu hebben we als gedeeltelijke afgeleidde van
thodes is de initialisatie: Het kan gebeuren dat E p :
een neuron nooit winnaar wordt en dus niet leert.
∂E p
= wio − xpi , Als unit o wint
Twee oplossingen:
∂wio
=
0,
anders
(2)
• Initialiseer een neuron op een inputpatroon
Hieruit volgt (voor winnaar o):
• Gebruik ”leaky learning”. Hier leren alle
∆p wio = γ(xpo − wio )
neuronen op alle inputpatronen met een
zeer kleine leersnelheid γ 0 << γ:
Dus: de kosten functie wordt geminimaliseerd
door herhaalde gewichten updates.
wl (t + 1) = wl (t) + γ 0 (x(t) − wl (t)), ∀l 6= k
Vector quantisatie
Minimalisering van de kosten functie
Een ander belangrijk gebruik van competitief leren is vector quantisatie.
Clustering houdt in dat overeenkomsten tussen
inputs in dezelfde cluster veel groter zijn dan
inputs in andere clusters.
Een vector quantisatie verdeelt de input ruimte
in een aantal verschillende subruimtes.
De mate van overeenkomst wordt vaak uitgedrukt door de (inverse van de) Euclidische afstandsmaat te gebruiken
Het verschil met clustering is dat we nu niet zo
geinteresseerd zijn in clusters van gelijke data,
maar meer in het quantificeren van de hele input
ruimte.
3
De quantisatie welke geleerd wordt door competitive leren respecteert de verdeling van inputs:
meer inputs in een regio leidt tot meer clusters
uit:
Een voorbeeld vector quantisatie:
Dit is simpelweg de delta-regel met yo =
wko waar k de winnende neuron is.
wko (t + 1) = wko (t) + γ(d − wko (t))
Als we een functie g(x, k) definieren als:
g(x, k)
= 1,
= 0,
Als k de winnaar is
Anders
Dan kan aangetoond worden dat de bovenstaande leerprocedure convergeert naar:
R
n yo g(x, h)dx
Who = R<
<n g(x, h)dx
Combinatie met Supervised leren
Vector quantisatie kan gebruikt worden als preprocessing stadium voor een supervised lerend
systeem.
Dus: elke tabel-entry (gewicht van hidden unit
h naar output unit o) convergeert naar het gemiddelde van de doelwaarde voor alle keren dat
de neuron wint.
Een voorbeeld is het volgende netwerk dat vector quantisatie in de eerste laag combineert met
supervised leren in de 2e laag:
Supervised Vector Quantization
Vector
Quantisatie
i
wih
Feed
Forward
h
who
De winnende neuron verschuift volgens dezelfde update regel als bij vector quantisatie, maar
bovendien wordt er een output y k voor de winnende neuron wk na het leervoorbeeld bijgesteld
met:
o
Y
y k = y k + α(Dp − y k )
Stel nu weer 2 clusterpunten :
w1 = (1, 1), y1 = 0 en w2 = (3, 2), y2 = 0.
We kunnen eerst de vector quantisatie uitvoeren en dan de supervised leerstap maken, of we
kunnen beide lagen tegelijk aanpassen.
We
(x1
(x2
(x3
(x4
Leeralgoritme supervised vector quantisatie
krijgen de volgende leervoorbeelden:
→ D1 ) = (1, 2 → 3)
→ D2 ) = (2, 5 → 7)
→ D3 ) = (3, 4 → 7)
→ D4 ) = (2, 3 → 5)
Stel we zetten de leersnelheid γ = 0.5 en α =
0.5. Dan krijgen we:
• Presenteer het netwerk met input x en doel
x1 = (1, 2) → d(w 1 , x1 ) = 1, d(w2 , x1 ) = 2.
waarde d = f (x).
Dus: Winnaar w1 = (1, 1) Toepassen van de
• Voer de unsupervised quantisatie stap uit. update vergelijking geeft:
Bereken de afstand van x naar elke gewich- w1 = (1, 1) + 0.5((1, 2) − (1, 1)) = (1, 1.5).
ten vector en bepaal de winnaar k. Stel de Dit is precies als hiervoor.
gewichtenvector bij met de unsupervised
leerregel.
Het enige verschil is dat we nu ook de output
• Voer de supervised approximatie leerstap van de winnende neuron moeten bijstellen:
y 1 = 0 + 0.5(3 − 0) = 1.5
4
We laten nu enkel zien hoe de output waarden Dus: de neuron met het juiste label (als de winvan de neuronen veranderen, de gewichtenvec- naar of de 1-na beste dit zijn) wordt geschoven
naar het input patroon.
toren wi veranderen net als hiervoor.
x2 = (2, 5). Winnaar is neuron 2.
y 2 = 0 + 0.5(7 − 0) = 3.5.
D
A
x3 = (3, 4). Winnaar is neuron 2.
y 2 = 3.5 + 0.5(7 − 3.5) = 5.25.
C
Probeer nu zelf de update voor voorbeeld 4 te
berekenen.
B
A
Learning Vector Quantisatie (LVQ)
Is eigenlijk een supervised leeralgoritme voor discrete outputs
LVQ: voorbeeld
Deze netwerken proberen ”decision boundaries”te We hebben nu K clusterpunten (neuronen) met
leren aan de hand van gelabelde voorbeelden, een gelabelde output. We berekenen de dichtszodat elk voorbeeld in een regio valt met de juis- bijzijnde neuron wk1 en de op 1 na dichtsbijzijnte klasse-label.
de neuron wk2 .
Het algoritme ziet er als volgt uit:
Stel we beginnen met de volgende clusterpunten:
w1 = (1, 1) en label y 1 = A. w2 = (3, 2) en label
1. Associeer met elke output neuron o een
y 2 = B.
klasse label yo
We krijgen de volgende leervoorbeelden:
2. Presenteer een leervoorbeeld (xp , dp )
(x1 → D1 ) = (1, 2 → A)
2
2
3. Gebruik een afstandsmaat tussen gewich- (x → D ) = (2, 5 → B)
3
3
tenvectoren en inputvector xp om de win- (x → D ) = (3, 4 → A)
4
4
nende neuron k1 en de op een na beste (x → D ) = (2, 3 → B)
neuron k2 te vinden
Dan krijgen we: (1, 2 → A), winnaar is neuron
is neuron 2. De label van neukxp −wk1 k < kxp −wk2 k < kxp −wi k∀i 6= k1 , k12 een na beste
ron 1 = D1 . Dus: neuron 1 verschuift naar het
4. De labels yk1 en yk2 worden vergeleken voorbeeld:
1
met dp , waaruit een gewichtenverandering w = (1, 1) + 0.5((1, 2) − (1, 1)) = (1, 1.5).
x2 = (2, 5) Winnaar is neuron 2. 1 na beste is
neuron 1. De label van neuron 2 is gelijk aan
de label D2 , dus neuron 2 verschuift naar het
voorbeeld:
w2 = (3, 2) + 0.5((2, 5) − (3, 2)) = (2.5, 3.5).
wordt bepaald.
Update regels
x3 = (3, 4). Winnaar is neuron 2. 1 na beste
is neuron 1. De label van neuron 2 is niet gelijk aan de label D3 . De label van neuron 1 is
wel gelijk aan D 3 . Dus verschuiven we neuron
1 naar het voorbeeld en neuron 2 weg van het
voorbeeld:
w1 = (1, 1.5) + 0.5((3, 4) − (1, 1.5)) = (2, 2.75).
w2 = (2.5, 3.5)−0.5((3, 4)−(2.5, 3.5)) = (2.25, 3.25).
• Als yk1 = dp : Voer de gewichten update
regel voor k1 uit:
wk1 (t + 1) = wk1 (t) + γ(xp − wk1 (t))
• Anders, als yk1 6= dp en yk2 = dp : Voer de
gewichten update regel voor k2 uit:
wk2 (t + 1) = wk2 (t) + γ(xp − wk2 (t))
Bepaal nu zelf de updates voor voorbeeld 4.
en verwijder de winnende neuron van het
voorbeeld:
Vraag: tekenen decision boundaries
wk1 (t + 1) = wk1 (t) − γ(xp − wk1 (t))
5
De geleerde partitie van de input ruimte wordt
ook wel een Voronoi diagram genoemd.
wo (t+1) = wo (t)+γg(o, k)(x(t)−wo (t)) ∀o ∈ S.
Vraag: Gegeven de volgende plaatsing van output neuronen, teken (ongeveer) het bijpassende
Voronoi diagram
Hier is g(o, k) een afnemende functie van de afstand tussen units o en k zodat g(k, k) = 1.
Bijvoorbeeld:
g(o, k) = exp(−buuraf stand(o, k))2
k
o
Kohonen netwerk
In een Kohonen netwerk zijn de output units
geordend op een bepaalde manier, b.v. in een
2-dimensionale grid.
Voorbeeld leerproces
Inputs die dicht bij elkaar vallen moeten gemapped worden op output units (in S) welke dicht
bij elkaar liggen (dezelfde neuron of buren)
Hierdoor blijft de topologie inherent in de inputsignalen bewaard in het geleerde Kohonen
netwerk:
Door deze collectieve leermethode worden inDeze ordening bepaalt welke neuronen buren van puts die dichtbij elkaar vallen gemapped op output neuronen die dicht bij elkaar zitten.
elkaar zijn.
Vaak wordt een Kohonen netwerk van lagere dimensionaliteit gebruikt dan de inputvectoren.
Dit is vooral handig als de inputs in een subruimte van <n vallen:
Iteratie 0
Iteratie 600
Iteratie 1900
Als de instrinsieke dimensionaliteit in S kleiner
is dan N , worden de neuronen van het netwerk
“gevouwen” in de input ruimte:
Kohonen netwerk leeralgoritme
Voor een leervoorbeeld wordt weer de winnende
neuron k berekend met de bekende Euclidische
afstandsmaat.
Vervolgens worden de inputs van de winnende
neuron en zijn (niet enkel directe) buren bijgesteld door:
Kohonen netwerk: Voorbeeld
6
We hebben een Kohonen netwerk met 3 neuro- Elke neuron leert dan de gemiddelde output over
nen verbonden in een lijn. We maken gebruik alle gewogen input patronen:
van de burenrelaties door g(k, k) = 1 te nemen
g(h, k)
en g(h, k) = 0.5 te zetten als h en k directe buwho = who + γ(d − who ) P
ren zijn, anders is g(h, k) = 0.
i∈S g(i, k)
Nu berekenen we weer eerst de winnende neuron
k, en vervolgens updaten we alle neuronen als
volgt:
De unsupervised leerstap kan eventueel aangepast worden om de beste neuronen het snelst te
verschuiven naar het leervoorbeeld.
wi = wi + γg(i, k)(xp − wi )
Conclusie
Nu initialiseren we w 1 = (1, 1), w2 = (3, 2),
w3 = (2, 4). Weer zetten we γ = 0.5.
• Unsupervised leermethoden kunnen gebruikt
worden voor: Clustering, Vector quantisation, Dimensionaliteits reductie en Feature extraction.
We krijgen weer de voorbeelden:
x1 = (1, 2)
x2 = (2, 5)
x3 = (3, 4)
x4 = (2, 3)
• In competitief leren strijden de neuronen
om geactiveerd te worden.
Op x1 = (1, 2) wint neuron 1. Dit resulteert in
de update:
w1 = (1, 1) + 0.5 ∗ 1((1, 2) − (1, 1)) = (1, 1.5).
We moeten ook de buren updaten. g(2, 1) = 0.5
en g(3, 1) = 0. Dus updaten we neuron 2:
w2 = (3, 2) + 0.5 ∗ 0.5((1, 2) − (3, 2)) = (2.5, 2).
• De unsupervised leermethoden kunnen uitgebreid worden met een extra output laag
om ook supervised te kunnen leren. Hiervoor wordt de delta regel voor de nieuwe
laag gebruikt.
Op x2 = (2, 5) wint neuron 3. Dit resulteert in
•
de update:
w3 = (2, 4) + 0.5 ∗ 1((2, 5) − (2, 4)) = (2, 4.5).
We moeten ook de buren updaten. g(2, 3) = 0.5
•
en g(1, 3) = 0. Dus updaten we neuron 2:
2
w = (2.5, 2)+0.5∗0.5((2, 5)−(2.5, 2)) = (2.375, 2.75).
Op x3 = (3, 4) wint neuron 3. Dit resulteert in
de update:
w3 = (2, 4.5)+0.5∗1((3, 4)−(2, 4.5)) = (2.5, 4.25).
We moeten ook de buren updaten. g(2, 3) = 0.5
en g(1, 3) = 0. Dus updaten we neuron 2:
w2 = (2.375, 2.75)+0.5∗0.5((3, 4)−(2.375, 2.75)) =
(2.53, 3.06).
Probeer het nu zelf voor het laatste voorbeeld.
Kohonen netwerk: Supervised leren
Een Kohonen netwerk kan ook gebruikt worden
voor supervised leren. Hiervoor kunnen we elke output neuron h met een tabel-entry (who )
verschaffen
Voor het bepalen van de totale output y kunnen
we de outputs van buren mee laten tellen door:
P
h∈S g(h, k)who
y= P
h∈S g(h, k)
7
De getoonde leeralgoritmen kunnen het best
omgaan met continue inputs, voor discrete
inputs zijn extra aanpassingen nodig
De leeralgoritmen respecteren het lokaliteits principe: inputs die dicht bij elkaar
liggen worden samen gegroepeerd.
• Voor Supervised leren zijn de getoonde leeralgoritmen geschikt als de functie erg grillig (niet smooth) is. Door extra neuronen
toe te voegen kan een goede approximatie
van een functie geleerd worden.
Transparanten bij het vak Inleiding Adaptieve Systemen: Biologische Adaptieve Systemen. M. Wierin
Nauurwetenschap
Voor de 16e eeuw geloofden nog veel wetenschappers in een deductieve benadering om kennis te
vergaren
Zo dacht Aristoteles dat zware objecten sneller
vallen dan lichte objecten
Dit duurde tot Galileo Galilei (1564 - 1642) dit
testte waaruit bleek dat deze hypothese fout was
Het is b.v. niet mogelijk om een machine te
maken die altijd kan blijven doorgaan zonder
dat deze extra energie krijgt
Hierna volgden een aantal belangrijke wetenschappelijke doorbraken welke uitdraaiden op
een nieuwe natuurwetenschap
Als voorbeeld van een niet-omkeerbaar systeem
nemen we een vat met twee helften waarin aanvankelijk alle gasmoleculen in 1 helft zitten (een
geordende toestand)
• Galilei maakte voorspellende methoden
(aarde draait om de zon)
Als we de wand die de helften scheidt wegnemen, dan zal de wanorde van het systeem enkel
toenemen
• Huygens kon betere klokken, lensen, en telescopen maken zodat experimenten veel
precieser gedaan konden worden
Boltzmann bedacht de maat entropie om de wanorde van een systeem te beschrijven.
• Kepler benaderde banen van planeten met
ellipsen i.p.v. de gebruikelijke cirkels
Stel dat er N moleculen zijn waarvan in 1 helft
van het vak N1 en in het andere helft van het
vat N2 . Dan is het aantal permutaties van die
toestand:
N!
P =
N1 !N2 !
• Newton ontdekte de aantrekkingswet tussen 2 objecten waaruit ook volgde dat planeetbanen ellipsen waren
Omkeerbare Systemen
Entropie
De nieuwe wetenschap leidde tot de gedachte dat
het universum voorspelbaar was (Genius van Lap- Het is dus logisch dat het systeem naar een evenwicht gaat met de meeste mogelijke toestanden,
lace)
dus met N1 = N2 .
De mechanische wetten van Newton beschrijven
een omkeerbaar systeem. Dit houdt in dat als Boltzmann definieerde de entropie van het syswe de richting van de tijd veranderen, we het teem:
S = k log P
verleden en de toekomst omdraaien.
Omkeerbare systemen behouden hun energie en
daarom kunnen ze doorgaan met hun beweging.
Omdat de entropie voortdurend toeneemt en er
een toestand is met maximale entropie, zal het
systeem uiteindelijk in een evenwicht terecht komen, het systeem is dan dus niet omkeerbaar.
Een voorbeeld hiervan is een slingerklok als we
wrijving verwaarlozen.
Dit leidde tot de twee wetten van de thermodynamica (Classius 1865):
Niet Omkeerbare Systemen
Er zijn ook veel systemen waarbij bruikbare energie verloren gaat (thermodynamische systemen)
1
• De energie van de wereld is constant
• De entropie van de wereld gaat naar een
maximale waarde
Let op dat dit geldt voor gesloten systemen. Voor r < 1 gaat x altijd naar 0. Als we r verOpen systemen zoals levende wezens kunnen hun hogen krijgen we eerst 1 stabiel eindpunt welke
entropie verminderen door bruikbare energie van afhangt van de waarde van r.
de omgeving op te nemen
Als we r nog meer verhogen krijgen we een periodische cyclus van lengte 2
Chaos Theorie: de Lorenz attractor
In sommige systemen veroorzaken kleine verschillen in beginvoorwaarden grote verschillen in
de toekomst. Dit soort systemen volgen chaotisch gedrag
De meteoroloog Edward Lorenz vond per toeval
met behulp van zijn computer een chaotisch systeem toen hij een model maakte van het weer.
Hoewel hij bijna dezelfde parameters had gebruikt en het systeem deterministisch was, volgde het systeem na een tijdje een heel ander traject
Chaos in de Logisieke Map
Maar wat gebeurt er als we r blijven verhogen?
En als we dan inzoomen:
Logistieke Map
De Lorenz attractor is moeilijk om te analyseren, daarom gebruiken we de simpelere logistieke map beschreven door:
Biologische Adaptieve Systemen
x(t + 1) = rx(t)(1 − x(t))
Adaptieve systemen kunnen goed gebruikt worden om biologische processen mee te modelleren.
Hierin heeft x(t) een waarde tussen 0 en 1. Het
interessante is om te kijken wat er gebeurt als
we de controle parameter r veranderen.
Enkele voorbeelden hiervan zijn:
• Infectie ziektes
2
• Ziek geweeste, immune individuen (I)
Als een gezond individu in aanraking komt met
een geinfecteerd individu, dan wordt het gezonde individu ook geinfecteerd.
Als een geinfecteerd individu lang genoeg ziek is
geweest, wordt het een ziek geweeste, immuun
individu
• Bosbranden
Niet ruimtelijk model voor infectie ziektes
• Overstromingen
We kunnen een model maken m.b.v. update vergelijkingen.
• Vulkaan uitbarstingen
We beginnen met een populatie (Z(0), I(0), G(0)),
hierna gebruiken we:
• Co-Evoluerende soorten
De eerste 4 voorbeelden hebben een overeenkomstig aspect:
Z(t + 1) = Z(t) + aZ(t)G(t) − bZ(t)
Ze breiden zich uit (propageren zichzelf) over
paden welke afhangen van de omgeving.
G(t + 1) = G(t) − aZ(t)G(t)
I(t + 1) = I(t) + bZ(t)
Om de propagatie tegen te gaan moeten propagatieBeginnend met een initiele populatie en gekozen
paden “gesloten” worden.
parameters (a, b), kunnen we het gedrag simuleren.
Ruimtelijke Modellen vs. niet-ruimtelijke
modellen
Let op dat Z, I, G niet negatief mogen worden!
Het gebruik van ruimtelijke modellen maken
bepaalde processen makkelijker te visualiseren
(v.b. bosbranden).
We kunnen ook een cellulaire automaat (CA)
gebruiken:
Uiteindelijk kunnen alle individuen ziek geweeWe kunnen biologische processen modelleren met ste, immune individuen worden
ruimtelijke modellen zoals cellulaire automaten,
Vraag: begin met (Z(0) = 10, I(0) = 0, G(0)
maar we kunnen deze ook direct modelleren m.b.v
= 90), neem a = 0.01 en b = 0.1, itereer het
vergelijkingen.
model enkele keren.
Het gebruik van ruimtelijke modellen geeft een
extra vrijheidsgraad en daarmee meer mogelijke
Ruimtelijk model van infectie ziektes
emergerende patronen.
Het gebruik van ruimtelijke modellen is wel veel
langzamer om te simuleren.
G
Modelleren van infectie ziektes
Z
Z Z
G
G
G
We zullen nu 2 manieren bekijken om infectie
ziektes te simuleren.
Bij infectie ziektes bestaan er 3 soorten individuen (agenten of populaties):
I
I
• Gezonde individuen (G)
• Geinfecteerde, zieke individuen (Z)
3
Z
Z
Z G
I
G
Z
Z
I
Nu moeten we regels opstellen om de toestanden
in de CA te veranderen.
Toch kan het totale groepsgedrag welke emergeert uit de samenwerking tussen veel mieren in
een kolonie vrij intelligent lijken.
Hoe kunnen mieren begraafplaatsen met stapels
van lijken bouwen?
Regels voor het CA model
Als G een Z in een vakje naast zich heeft, wordt
deze individu zelf ook een Z.
We kunnen een simpel model van een mier maken:
Z heeft elke tijdstap een kans p om een I te
worden
• De mier beweegt in willekeurige richtingen
Voor de navigatie kunnen we een random-walk
van alle agenten gebruiken; ze maken willekeurige stapjes in alle richtingen.
• Als een mier niets draagt en een dode mier
ziet, pakt de mier het lijk op
• Als de mier een lijk draagt en een verzameling andere lijken tegenkomt, laat hij het
lijk daar achter.
We zouden ook kunnen modelleren dat gezonde
mensen wegblijven van geinfecteerden, dat veroorzaakt een heel andere dynamiek.
Vraag: Wat voor phenomenen zouden kunnen
optreden als gezonde individuen uit de buurt
blijven van geinfecteerden?
Deze 3 simpele regels veroorzaken de begraafplaatsen van mierenlijken welke men kan observeren.
Swarm Intelligence
Vraag: bedenk hoe mieren korrels suiker en chocolade van elkaar kunnen scheiden.
Grote groepen van simpele organismen zoals
bijen of mieren, kunnen samen intelligent gedrag Combinatorische optimalisatie
vertonen.
Bepaalde problemen kosten exponentieel veel tijd
Voorbeelden zijn:
om optimaal op te lossen.
• Foraging behavior (op zoek gaan naar voed- V.b. van exponentiele tijd problemen: Stel een
probleem bestaat uit n toestanden en de tijd die
sel)
het kost om het op te lossen is 2n of n!
• Bescherming van het nest
Exponentiele tijd problemen groeien veel sneller
• Bouwen van het nest (v.b. termieten, waar dan polynomiale tijd problemen:
zit de blueprint?)
np
lim n → 0
n→∞ e
• Voedsel verspreiding en opslag
Het is bekend dat mier-kolonieen bepaalde bekende problemen kunnen oplossen, zoals het vinden van het kortste pad naar een voedselplek,
sorteren (clusteren en stapelen) van voedsel of
mieren-lijken.
Een aantal bekende wiskundige problemen noemen we combinatorische optimalisatie problemen (een voorbeeld zijn NP-complete problemen, welke niet in polynomiale tijd opgelost kunnen worden, tenzij P=NP).
Hoewel een enkele mier of bij niet erg intelligent
is, vertoont het gedrag van de gehele kolonie wel
intelligent gedrag (super-intelligentie)
Aangezien de computer kracht niet sneller dan
exponentieel toe kan nemen, kunnen we bepaalde grote combinatorische optimalisatie problemen nooit optimaal oplossen.
Sorteer gedrag van mier-kolonieen
Voorbeelden van Combinatorische optimalisatie problemen
Een enkele mier heeft maar zeer beperkte intelligente vermogens.
Een aantal voorbeelden van combinatorische optimalisatie problemen zijn:
4
• Traveling salesman probleem: vind kortste
tour tussen n steden.
De constraints zijn dat alle steden precies 1 keer
aangedaan worden en dat de tour terugkomt op
zijn beginstad.
• Quadratic assignment probleem: Minimaliseer de flow (totaal afgelegde afstand) als
een aantal werknemers elkaar in een gebouw volgens een bepaalde frequentie opzoeken.
We kunnen een lijst bijhouden van steden die
nog niet bezocht zijn: J = {i| i is nog niet bezocht}
In het begin bevat J alle steden. Na het bezoeken van een stad wordt die stad uit J gehaald.
• 3-Satisfiability: vind waarheidswaarden van
proposities die volgende vorm waarmaken:
1. Kies initiele stad s1 en haal s1 weg uit J
2. For t = 2 To N:
{x1 ∨ ¬x2 ∨ x4 } ∧ . . . ∧ {x1 ∨ ¬x5 ∨ x7 }
3.
• Job-shop scheduling: Minimaliseer de totaal benodigde tijd om een aantal jobs te
laten volbrengen door een aantal machines
welke in sequentie elke job moeten doorlopen.
Kies stad st uit J en haal deze weg uit
J
4. Bereken
lengte van deze tour:
PN −1
L = t=1 l(st , st+1 ) + l(sN , s1 )
Het doel is om de tour met minimale totale lengte L te vinden
In het vak (logische) complexiteits theorie wordt
hier nader op ingegaan.
Ant Algoritmen
Traveling salesman probleem (TSP)
Een nieuw soort multi-agent adaptief systeem
voor combinatorische optimalisatie is bedacht
door Marco Dorigo in 1992.
Er is een verkoper die n steden aan wil doen en
in zijn beginstad wil terugkomen.
Een kolonie van mieren werkt samen om b.v.
voor het TSP een optimale tour te zoeken.
Alle steden i en j zijn verbonden met een weg
van lengte l(i, j). Deze lengtes staan in een afstand matrix.
Foraging ants leggen een chemische substantie
neer (genoemd pheromoon) wanneer ze van hun
nest naar een voedsel bron gaan en vice versa.
De agent moet nu een tour bedenken welke de
totale kosten voor het aandoen van alle steden
minimaliseert.
Andere foraging ants volgen de tracks met de
meeste gehalte aan pheromoon volgens een kansverdeling. Dit collectieve foraging behavior stelt
de mieren in staat om het kortste pad te vinden
van hun nest naar een voedsel bron.
4
3
5
4
Optimalisatie algoritmen welke geinspireerd zijn
door het collectieve foraging gedrag van mieren
worden Ant Algoritmen genoemd.
5
4
4
2
Voorbeeld: Foraging ants
Vraag: Hoeveel mogelijke touren zijn er met N
steden?
Vervolg Foraging ants
Genereren van een tour
Eigenschappen van Ant Algoritmen
Hoe kunnen we een tour genereren?
Er zijn een reeks verschillende Ant Algoritmen,
maar ze delen allemaal de volgende eigenschappen:
5
• Ze bestaan uit een kunstmatige kolonie
van coopererende mieren
2. Alle niet gevolgde edges (kanten) verliezen
een beetje pheromoon door evaporatie
• Mieren maken discrete stappen.
3. Alle gevolgde touren krijgen extra pheromoon waarbij de kortste tour meer pheromoon krijgt dan langere touren.
• Mieren leggen pheromoon neer op hun gekozen paden
• Mieren gebruiken de neergelegde pheremoon Vraag: bedenk hier een variant op en analyseer
tracks voor het kiezen waar ze naar toe de voor- en nadelen.
gaan
Ant Algoritmen worden gebruikt voor een groot Formele specificatie Ant Systeem
aantal Combinatorische optimalisatie algoritmen De kolonie bestaat uit K mieren.
zoals TSP, QAP, network routing
De mate van pheromoon tussen 2 steden i en j
Het idee dat twee individuen indirect interac- noteren we als m(i, j)
teren omdat 1 van hen de omgeving verandert
In het kiezen van een volgende stad gebruiken
en de ander de veranderde omgeving gebruikt
we een extra heuristiek: de inverse van de lengte
voor het nemen van besluiten wordt stigmercy
1
tussen 2 steden: v(i, j) = l(i,j)
genoemd.
Nu maakt elke mier: k = 1..K een tour:
Ant System
1. Kies random start stad voor mier k: i =
random(1,N) en haal deze start stad weg
uit de lijst Jk van onbezochte steden voor
mier k
Het eerste Ant algoritme was “the Ant system”
(AS). The Ant system werd initieel getest op het
TSP.
2. Kies steeds de volgende stad voor mier k
als volgt:
(
arg max{[m(i, h)] · [v(i, h)]β } if q ≤ q0
h∈Jk
j=
S
anders
(1)
The Ant System werkt als volgt:
1. Alle N ants maken een tour waarbij ze de
pheromoon tracks gebruiken voor het kiezen van de volgende stad.
6
Hierbij is q een random getal (0 ≤ q ≤ 1) We hebben allereerst gekeken hoe we modellen
Parameter (0 ≤ q0 ≤ 1) bepaalt de rela- voor de spreiding van infectie ziektes kunnen
tieve belangrijkheid van exploitatie versus maken.
exploratie.
Ruimtelijke modellen bieden meer simulatie vrijheden, maar duren langer om te draaien op een
computer.
Vervolgens hebben we gekeken hoe een kolonie
S is een stad gekozen volgens de kansver- van “domme” mieren toch intelligent gedrag kan
deling gegeven in de volgende vergelijking: vertonen.
pij =

 P
[m(i,j)]·[v(i,j)]β
[m(i,h)]·[v(i,h)]β
Zo kunnen mieren objecten clusteren m.b.v. een
aantal simpele regels
if j ∈ Jk
Ant algoritmen kunnen gebruikt worden om complexe combinatorische problemen zoals de traveling salesman probleem op te lossen.
h∈Jk
 0
anders
(2)
Nu hebben alle mieren een tour gemaakt.
Andere manieren om de volgende steden te selecteren zijn ook mogelijk, maar bovenstaande
werken meestal iets beter.
Als parameters moeten ingesteld worden hoe groot
de pheromoon tracks m(i, j) initieel zijn, wat q0
is, en wat β moet zijn.
Updaten van de pheromoon tracks
Er zijn meerdere mogelijke update regels. Als
keuze kan men bijvoorbeeld maken om enkel de
beste tour te updaten (en niet alle).
We noemen de best gevonden tour van alle mieren in de laatste generatie Sgb (S globaal best).
Deze tour heeft lengte Lgb
De update regel komt er dan als volgt uit te zien:
m(i, j) = (1 − α) · m(i, j) + α · ∆m(i, j)
waarbij ∆m(i, j) =
(Lgb )−1
0
if edge (i,j) ∈ Sgb
anders
Hierbij is α de leersnelheid. Let op dat de extra gehalte aan pheromoon van de lengte van de
best gevonden tour afhangt en dat andere edges
evaporeren.
Discussie
Er zijn veel soorten biologisch adaptieve systemen.
7
Transparanten bij het vak Inleiding Adaptieve Systemen: Neurale Netwerken. M.
Wiering
Synapse
Axon van andere neuron
Nucleus
Neurale netwerken
Dendriet
Leerdoelen:
Axon
Synapse
Soma
• Weten wanneer neurale netwerken toepasbaar zijn
Dit heeft als effect dat de actie-potentiaal in
de soma vemindert of vermeerdert.
• De Delta-leerregel kennen
• Kunnen uitrekenen wat gewichtenverande- Wanneer de actie-potentiaal een bepaalde dremringen in een lineair netwerk zijn gegeven pelwaarde overschrijdt, wordt een electrische pulse doorgegeven naar de axon (de neuron vuurt).
een leervoorbeeld
• Weten wat multi-layer feedforward neurale netwerken zijn
Synapses welke de actie potentiaal laten toenemen heten excitatory.
• De backpropagation leerregel kunnen opschrijven en uitleggen
Synapses welke de actie potentiaal laten afnemen heten inhibitory.
• Weten wat recurrente neurale netwerken
zijn
Kunstmatige neurale netwerken
Een neuraal netwerk bestaat uit een aantal neuronen (units) en verbindingen tussen de neuronen.
Neurale netwerken
Elke verbinding heeft een gewicht eraan geassocieerd (een getal).
Kunstmatige neurale netwerken (KNN) bestaan
uit een verzameling neuronen (rekeneenheden)
welke verbonden zijn in netwerken (McCulloch
en Pitts, 1943).
Het leren gebeurt gewoonlijk door de gewichten
bij te stellen.
Ze bezitten nuttige computationele eigenschap- Elke neuron heeft een aantal ingaande verbinpen (bv. ze kunnen alle continue functies bena- dingen van andere neuronen, een aantal uitgaanderen met 1 hidden laag en alle functies met 2 de verbindingen en een activatie nivo.
hidden lagen)
Het idee is dat elke neuron een lokale berekening
Ze bieden ons de mogelijkheid om te leren hoe uitvoert, gebruikmakende van zijn inkomende
de hersenen werken.
verbindingen.
Een neuron of zenuwcel is de fundamentele bouw- Om een neuraal netwerk te bouwen moet men
steen van het brein.
de topologie van het netwerk instellen (hoe zijn
neuronen verbonden).
Een neuron bestaat uit een cellichaam : de soma
Gewichten worden meestal willekeurig geinitialiseerd.
Uit het cellichaam vertakken dendrieten en een
axon. Een axon verbindt zich met dendrieten
van andere neuronen in synapses, de verbindingspunten.
Vergelijking KNN en Biologische NN
Beschouw mensen:
Een menselijk neuraal netwerk
• Neuron switch tijd: .001 seconde
Chemische transmitter vloeistoffen worden vrijgegeven in de synapses en stromen de dendrieten
binnen.
• Aantal neuronen: 1010−11
• Connecties per neuron: 104−5
1
• Visuele herkennings tijd : 0.1 seconde
• 100 inferentie stappen lijkt niet genoeg →
Veel parallelle computatie
"!$#&%
Eigenschappen van neurale netwerken (KNN)
• Veel neuron-achtige drempel switch units
• Veel gewogen connecties tussen units
Sharp
Left
Straight
Ahead
Sharp
Right
30 Output
Units
4 Hidden
Units
• In hoge mate parallel, gedistribueerd proces
30x32 Sensor
Input Retina
• Nadruk op automatisch leren van gewichten
''
( ) * + , - ) . ( / 0 ) . 1 2 - + ) 3 + 4 2 2 5 687 9 : ; < = > = 7 ? < ; < @ A B C D8/ + * E ) ( A D* F - G HI / ( A J K K '
Wanneer kunnen Neurale Netwerken gebruikt worden?
• De Hidden laag: hier worden interne (nietlineaire) berekeningen uitgevoerd.
• Input is hoog-dimensionaal discreet of continu (b.v. ruwe sensor input)
• De Output laag: hier worden de waarden
van de outputs van het netwerk berekend.
• Output is discreet of continu
• Output is een vector van waarden
• Mogelijk ruisige data
Output Layer
• Vorm van doelfunctie is onbekend
Hidden Layer
• Menselijke leesbaarheid van gevonden oplossing is onbelangrijk
Input Layer
Voorbeelden:
• Spraak herkenning
• Beeld classificatie (gezichts herkenning)
Neuron
• Financiële voorspelling
In een netwerk ziet een individuele neuron er als
volgt uit:
• Patroon herkenning (postcodes)
Aj
W
Ai = g(Ii)
j,i
Σ
Voorbeeld: autorijden
Input
verbindingen
Ii
Input
functie
Feedforward neurale netwerken
Vormen een gelaagde structuur. Alle verbindingen gaan van 1 laag, naar de volgende laag.
g
Activatie
functie
Ai
Output
Verbindingen
Output
Leren gaat door gewichten bij te stellen aan de
hand van de fout op leervoorbeelden.
We onderscheiden de volgende lagen:
• De Input laag: hier worden de inputs van
het netwerk naartoe gecopieerd.
Voorbeeld: de output van een netwerk is 0.9.
De gewenste output is 1.0. Verhoog de gewich2
ten die de output van het netwerk doen toenemen. Verlaag de gewichten die de output doen
afnemen.
Y
1
-1.5
1
1
Een lineair neuraal netwerk
X1
Het simpelste neurale netwerk is een lineair neuraal netwerk. Deze bestaat uit enkel een input
en output laag.
• Definieer de fout als het kwadratische verschil tussen de gewenste uitkomst D en de
verkregen uitkomst Y voor een voorbeeld:
X1 , . . . , XN → D:
Y
Output Unit
w2
w4
w3
1
X1
X2
X3
Bias
Het leren gaat als volgt:
Een lineair neuraal netwerk ziet er als volgt uit:
w1
X2
E=
Input Units
1
(D − Y )2
2
Bias
• We willen nu de afgeleidde van de fout E
naar de gewichten w1 , . . . , wN berekenen:
Er wordt een bias-unit gebruikt om alle lineaire
functies te kunnen representeren. Deze kan als
extra waarde (1) aan de inputvector meegegeven
worden.
∂E
∂E ∂Y
=
= −(D − Y )Xi
∂wi
∂Y ∂wi
• Nu “updaten” we de gewichten met leersnelheid α > 0 om de fout te verkleinen.
De Delta-leerregel ziet er als volgt uit:
Het lineaire netwerk wordt gezien als een functiemapping van de inputs X1 , . . . , XN naar output
Y:
X
Y =
w i Xi
wi = wi + α(D − Y )Xi
i
• We stoppen als de totale fout over alle leervoorbeelden klein genoeg is.
Representeren
Een lineair netwerk kan bijvoorbeeld de AND
functie representeren:
Voorbeeld
Gegeven leervoorbeeld (0.5, 0.5 → 1).
We maken een lineair netwerk met initiele gewichten 0.3 en 0.5 en 0.0 (voor de bias).
1
1
0
X2
We kiezen een leersnelheid, bv: α = 0.5
Lineair Netwerk
0
X1
Nu kunnen we de gewichten aanpassen:
1
Y = 0.3 ∗ 0.5 + 0.5 ∗ 0.5 + 0.0 ∗ 1.0 = 0.4.
E = 1/2(1.0 − 0.4)2 = 0.18
w1 = 0.3 + 0.5 ∗ 0.6 ∗ 0.5 = 0.45
w2 = 0.5 + 0.5 ∗ 0.6 ∗ 0.5 = 0.65
w3 = 0.0 + 0.5 ∗ 0.6 ∗ 1.0 = 0.30
Het volgende netwerk (de Perceptron) doet dit
(als de output > 0 dan Y = 1, anders Y = 0):
Bij een volgende presentatie van het leervoorbeeld is de nieuwe uitkomst:
Y 0 = 0.45 ∗ 0.5 + 0.65 ∗ 0.5 + 0.3 ∗ 1.0 = 0.85.
Leren
Een initieel netwerk wordt gemaakt met random
gewichten (bv. tussen -0.5 en 0.5)
3
Vraag: Stel hetzelfde leervoorbeeld wordt nogmaals gepresenteerd. Bereken de nieuwe gewichten.
E(p)
4
3
2
1
Batch vs Stochastic Gradient Descent
-3
-2
0
-1
1
2
3
W
-1
Er zijn in principe 2 methodes om met de data
om te gaan:
-2
• Batch-leren: probeert de fout in 1 keer
voor alle voorbeelden in de leerverzame- We hebben : Y = W T X, voor alle voorbeelden.
ling te verminderen. Hiervoor wordt de We zetten de voorbeelden in de matrices X en
totale gradient berekend en in 1 keer bij- Y en doen dat als volgt:
gesteld:
Y = [Y 1 , Y 2 , Y 3 , . . . , Y N ], en X = [X 1 , X 2 , X 3 , . . . , X N ].
1X p
Nu hebben we (pseudo-inverse):
(D − Y p )2
E=
2 p
Y = WTX
Y X T = W T XX T
Dus:
X
∂E
∂E ∂Y
=
=
−(Dp − Y p )Xip
∂wi
∂Y ∂wi
p
(1)
Y X T (XX T )−1 = W T
W T = Y X T (XX T )−1
• Online-leren: stelt de fout na elk leervoorbeeld bij. Maakt dus stochastische stapjes
in het foutlandschap (de totale fout kan Voorbeeld pseudo inverse
verminderd of vermeerderd worden):
Voorbeeld: lineair netwerk met 1 input unit en 1
bias (met constante waarde 1). Data-Voorbeelden:
∂E
∂E ∂Y p
p
p
p
(0 → 1)
=
= −(D − Y )Xi
∂wi
∂Y p ∂wi
(1 → 2)
(2 → 3)
Meestal wordt online learning gebruikt. Dit kan
enkele orders van magnitude sneller convergeren
(10 a 100 keer zo snel).
0
T
XX = 1
Intuitie van leerproces
0
1 2 1
1 1 2
1
1
1
1
(XX T )−1 = 21
−2
Fout van leervoorbeeld heeft afgeleidde naar elk
gewicht. Minimaliseer de fout door de afgeleidde
(gradient) af te gaan.
Voorbeeld doelfunctie : Y = 2X.
X T (XX T )−1
Leervoorbeeld p = (1, 2).
1
−
2
= 0
1
2
Foutlandschap voorbeeld:
Y X T (XX T )−1
Berekenen van optimale gewichten
We kunnen ook Lineaire Algebra gebruiken om
de optimale gewichten voor een lineair netwerk
te berekenen.
= 1 2
5
=
3
− 21 5 3 3 6
5
6
1
3
− 16
1
−2
3 0
1
2
5
6
1
3
− 16
Beperkingen van lineaire netwerken
4
= 1 1 1
1
0
ii =
X2
X
wji aj + bi
j
1
0
0
X1
• Bereken activatie hidden units (andere ~a):
1
ai = Fi (ii ) =
Een lineair netwerk kan de X-OR functie niet representeren. De voorbeelden van de X-OR functie zijn niet-lineair scheidbaar.
1
1 + e−ii
• Bereken activatie output units s:
Na het verschijnen van het book Perceptrons
van Minsky en Papert (1969) waarin deze problemen aangetoond werden, was het aanvankelijke enthousiasme voor neurale netwerken verdwenen.
si = F i (
X
wji aj + bi )
j
Activatie Functies
Een kleine groep onderzoekers ging wel door.
Dit leidde tot een aantal verschillende neurale
netwerken.
Er kunnen meerdere activatie functies gebruikt
worden.
Verschillende activatie functies zijn nuttig voor
representeren bepaalde functie (voorkennis)
In 1986 werden neurale netwerken weer populair
na het uitvinden van het backpropagation algoritme, waarmee door gebruik van de kettingregel ook niet-lineaire (multi-layer) feedforward
neurale netwerken geleerd konden worden.
A
A
A
1
1
1
0
1
0
I
I
Representatie in multi-layer feedforward
neurale netwerken
A=I
We representeren het netwerk in een gerichte
graaf. De optimale representatie kan een willekeurig kleine fout hebben voor een bepaalde
doel functie.
Lineair
A=
1
1 + exp (-I)
Sigmoid
0
A = exp( (m -2I)
s
I
2
)
Radial Basis
(Gaussian)
Gewoonlijk wordt de topologie van het netwerk
van te voren gekozen.
De hidden laag gebruikt meestal sigmoid functies of Radial Basis functies (meer lokaal)
Hierdoor onstaat er echter een representatie fout
(zelfs de optimale gewichten in een gekozen representatie hebben een bepaalde fout)
De output laag gebruikt meestal een lineaire activatie functie (zodat alle functies gerepresenteerd kunnen worden)
Ook lukt het vaak niet om de optimale gewichten te vinden (leerfout) door de lokale minima.
Backpropagation
We onderscheiden 2 stappen: voorwaartste pro- Minimaliseer error functie:
pagatie (gebruik) en terugwaartse propagatie (le1X
ren).
E=
(di − si )2
2 i
Voorwaartse propagatie in multi-layer feed- Door gewichten aan te passen m.b.v. gradient
descent:
forward neurale netwerken
∂E
∂E ∂ii
=
∂wji
∂ii ∂wji
• Clamp input vector ~a
• Bereken gesommeerde input hidden units:
- Leerregel met leersnelheid α :
5
∆wji = −α
• Zal lokaal minimum vinden en niet noodzakelijk globaal minimum. Kan met meerdere restarts toch goed werken.
∂E
= αδi aj
∂wji
• Gebruikt soms een momentum term:
- Output unit:
δi = −
∆wij (t) = γδj xi + µ∆wij (t − 1)
∂E
= (di − si )Fi0 (ii )
∂ii
• Minimaliseert fout over alle trainings voorbeelden, zal het goed generaliseren naar
opvolgende voorbeelden?
- Hidden unit:
δi = Fi0 (ii )
X
δo wio
– Pas op met teveel hidden units →
overfitting
o∈Outputs
Hier is Fi0 (ii ) = (1 − ai )ai , als F de sigmoid
functie is.
– Werkt goed met genoeg voorbeelden:
Vuistregel: aantal leervoorbeelden is
veelvoud van aantal gewichten.
en Fi0 (ii ) = 1, als F de lineaire functie is.
• Leren kan duizenden iteraties duren → traag!
Leren als zoeken
• Gebruik van geleerd netwerk gaat snel.
Gradient descent op het foutlandschap werkt als
volgt:
Representatie van hidden units
E
R
R
O
R
!#"$&% ')(+*-,/.
Inputs
State : W
Problemen:
Outputs
• Lange even vlaktes. Als het foutlandschap ergens heel vlak is, gaat het leren
erg langzaam (de gradient is zeer klein).
0 $&1*2"/$&34/5 33$6"87 1&9+$6*:*2$6;/*2$&<=$&"%21%=5 (".
@5 3/3$6"
A?/%=;/?%
> "/;?/%
B 17 ?/$&<
C&DD+D+D+D+D+DEGF H+IJF DKLF D+HEMC&D+D+DD+D+D+D
DC6D+D+D+D+D+DEGF DC#F C+CNF H+HEODC&D+DD+D+D+D
D+DC&D+D+D+D+DEGF DC#F IPJF QPNEOD+DC&DD+D+D+D
D+DDC&D+D+D+DEGF I+IJF IPJF PCREOD+D+DC6D+D+D+D
D+DD+DC&D+D+DEGF D+SJF D+TUF D+QEOD+D+D+DC&D+D+D
D+DD+D+DC&D+DEGF Q+QJF I+IUF I+IEOD+D+D+DDC&D+D
D+DD+D+D+DC&DEGF H+DJF DCNF I+HEOD+D+D+DD+DC&D
D+DD+D+D+D+DCREGF V+DJF IKLF DCREOD+D+D+DD+D+DC
• Het leren van een optimaal netwerk is een
NP-moeilijk probleem.
WX
• Lokale minima. Als het netwerk in een
lokaal minimum komt, kan het niet meer
verbeterd worden met gradient descent.
Y Z [ \ ] ^ Z6_ Y ` a Z _2b c ^ \ Z d \ e c c f&gh i j k l m6n m h o l k l p q r2s t` \ [ u Z Y q t[ vw^ x y/z=` Y q { W W |
Meer over backpropagation
• Gradient descent over gehele netwerk gewichten vector
Evolutie van leerproces
• Makkelijk generaliseerbaar naar willekeurige gerichte grafen.
Evolutie van leerproces (2)
6
werken:
• Elman netwerken
• Jordan netwerken
Sum of squared errors for each output unit
0.9
• Time delay neurale netwerken (TDNN)
0.8
0.7
0.6
• Hopfield netwerken (Boltzmann machines)
0.5
0.4
0.3
0.2
0.1
0
0
500
1000
1500
2000
2500
Elman netwerken
Elman netwerken koppelen activatie van hidden units terug naar inputs: goed voor predictie
waarin tijd belangrijke rol speelt.
! " # $ % & ' # & ( ) *+ # , -
1
1
./ 01 21 23
Weights from inputs to one hidden unit
4
INPUT UNITS
3
CONTEXT UNITS
2
1
0
-1
-2
-3
Leeralgoritme: Recurrent backpropagation through
time:
-4
-5
0
500
1000
1500
2000
2500
Y(t+1)
45
6 7 8 9 : ; 7 < 6 = > 7 < ? @ ; 9 7 A 9 B @ @ C D E F G H I J K J E L I H I M N O P Q = 9 8 R 7 6 N Q 8 S ; T UV = 6 N W 4 4 5
Y(t)
Y(t-1)
Recurrente neurale netwerken
Feedforward neurale netwerken worden meest
gebruikt: voor patroon herkenning zijn ze uitstekend
Recurrente neurale netwerken zijn geschikt voor Jordan netwerken
problemen waarin tijdspredictie (bv. SpraakJordan netwerken koppelen activatie van outherkenning) een rol speelt.
put units terug naar inputs: goed voor predictie
Recurrente netwerken kunnen vorige inputs mee waarin tijd belangrijke rol speelt en sequentie
laten tellen in hun predictie van de huidige toe- van beslissingen een rol speelt.
stand van het systeem.
Jordan en Elman netwerken werken ongeveer
Recurrente netwerken kunnen ook gebruikt wor- even goed.
den voor het infereren van een heel patroon op
Ze hebben grote problemen als de gradient through
basis van een deelpatroon (pattern completion)
time een erg zwak signaal wordt →
We onderscheiden de volgende recurrente net- gewichten worden erg langzaam bijgesteld.
7
A1
1
A6
A2
W
INPUT UNITS
A5
CONTEXT UNITS
A3
A4
NB: Leren vaak veel trager dan feedforward netwerken. Alternatieve leermethode: Evolutionary computation.
Symmetrische gewichten / Asymmetrische gewichten. Lijken op Bayesiaanse geloofs netwerken.
Time Delay Neurale Networken (TDNN)
TDNN gebruiken inputs van voorgaande tijdstappen voor huidige predictie
Voor- en nadelen van Neurale netwerken
Nadelen:
OUTPUT(T)
• Belanden vaak in lokale minima.
• Geen directe manier om om te gaan met
missende waarden
• Soms erg traag leerproces
INPUTS(T-m)....INPUTS(T-1)
• Soms vergeet het netwerk geleerde kennis
als het getraind wordt op nieuwe kennis
(leer-interferentie)
INPUTS(T)
• Het kan veel experimenteertijd kosten om
een goede topologie en leerparameters te
vinden.
Hebben problemen met Markov order (m) :
• Hoeveel voorgaande inputs moeten meegegeven worden?
• Het is niet zo makkelijk om a-priori kennis
in een netwerk te zetten
• Kan inputs die langer geleden gezien zijn
nooit mee laten tellen in beslissing.
• Leren optimaal neuraal netwerk is NP-moeilijk
probleem
• Veroorzaakt soms erg groot netwerk
Hebben geen problemen met afnemende gradient Voordelen:
(b.v. 100000001 → 1 en 000000001 → 0).
• Kan alle functies exact representeren
• Kan goed met ruis omgaan
Hopfield Netwerk
Autoassociative Networks (Hopfield Netwerk, Boltz- • Kan goed met redundantie omgaan
mann machine): soort geheugen voor opslaan
• Kan goed met hoog dimensionale inputpatronen: goed voor pattern completion
ruimtes omgaan
Leerregels versterken verbindingen tussen inputs
• Kan direct continue functies benaderen
die gelijk aan staan. Als deelpatroon aangeboden wordt, zullen inputs die vaak gelijk met an• Is robuust tegen wegvallen neuronen →
dere inputs voorkomen ook aan komen te staan
graceful degradation
De nieuw geactiveerde inputs kunnen weer andere inputs activeren
8
Transparanten bij het vak Inleiding Adaptieve Systemen: Co-evolutie. M. Wiering
Evolutie in een computer
Omdat evolutie door natuurlijke selectie een mechanisme is, kunnen we het programmeren in
een computer programma.
Co-evolutie
Een bekend voorbeeld van een programma dat
Geen bioloog twijfelt eraan of evolutie opgetregebruik maakt van kunstmatige evolutie d.m.v.
den is, omdat er genoeg direct geobserveerde benatuurlijke selectie is het genetische algoritwijzen voor zijn.
me.
Het huidige debat gaat over de vraag hoe evoluHierbij wordt er een fitness functie gebruikt weltie tot stand is gekomen en welke mechanismen
ke door de programmeur is gedefinieerd.
erin een rol spelen.
De fitness functie bepaald (indirect) hoeveel naIn dit college gaan we de volgende aspecten bekomelingen een individu kan genereren.
handelen:
Hoewel GA geschikt zijn voor optimalisatie doeleinden, lijkt het niet perfect op natuurlijke evo• Natuurlijke selectie
lutie.
• Co-evolutie
De fitness functie moet namelijk gedefinieerd worden, en in natuurlijke evolutie is er niemand die
• Replicator dynamics
de fitness functie bepaalt.
• Daisyworld
• Gaia hypothese
Co-evolutie
• Recycling netwerken
In het echt hangt de fitness van een individu af
van zijn omgeving waaronder de andere species
die erin voorkomen.
• Co-evolutie voor optimalisatie
Zo’n fitness functie is daarom niet-stationair,
maar verandert met de tijd aangezien de groottes van de verschillende populaties veranderen.
Evolutie door natuurlijke selectie
In Darwin’s evolutionaire theorie speelt survival We hebben voorheen reeds 2 verschillende moof the fittest de belangrijkste rol als verklaring dellen bekeken om de dynamiek van interactevan de evolutie van organismen.
rende species te bestuderen:
Beschouw een wereld bevolkt met organismen
• Met differentiaal vergelijkingen
met een aanzienlijke reproductie snelheid.
(wiskundige regels die specificeren hoe beZolang de omstandigheden goed zijn, zal de popaalde variabelen veranderen)
pulatie groeien, maar op een gegeven moment
• Met cellulaire automaten
zijn er te weinig bronnen of ruimte om alle organismen zich te laten voortplanten.
Daarom zullen enkel bepaalde individuen zich Een bekend voorbeeld van de eerste zijn de LotkaVolterra vergelijkingen.
voortplanten en de vraag is welke.
Organismen verschillen omdat ze verschillende We kunnen de Lotka-Volterra vergelijkingen ook
genen hebben. Deze verschillen geven een voor- generaliseren voor meerdere organismen.
deel aan bepaalde organismen om met de omgeving om te gaan.
Replicator Dynamics
Organismen met voordelen zullen meer kans hebben zich voort te planten en daarom zullen er Laten we eerst een model bekijken waarin de fitmeer nakomelingen komen met deze genetische ness van een organisme (phenotype) wel gegeven
is.
eigenschappen.
1
De replicator vergelijking beschrijft het gedrag Hierbij zien we dat phenotypen de fitness van
van een populatie welke verdeeld is in n pheno- andere phenotypen kunnen laten afnemen of toetypes E1 tot En .
nemen.
De relatieve frequenties noteren we als x1 tot xn Hierbij kan het zijn dat aij en aji beide posigespecificeerd
door de vector ~x = (x1 , x2 , . . . , xn ) tief en groot zijn. Het gevolg daarvan is dat
P
(hier is i xi = 1)
ze samen werken om beide in frequentie toe te
nemen.
De fitness van phenotype Ei wordt genoteerd als
fi (~x)
Hierdoor kunnen bepaalde mutuele coopererende phenotypes ontstaan. Deze groepen kunnen
De gemiddelde fitness van de populatie is:
ook weer competitie hebben met andere groepen
phenotypes.
n
X
f ˆ(~x) =
xi fi (~x)
Vraag: Wat voor soort waarden a en a hebij
ji
ben predator-prooi phenotypes?
i=1
Vervolg replicator dynamics
Daisyworld
De snelheid van toename van de frequentie van
Ei is gelijk aan het verschil in fitness van Ei en
de gemiddelde fitness van de populatie:
In 1983 presenteerde Lovelock het model Daisyworld welke hij maakte om de relatie tussen
organismen en hun omgeving te verkennen.
∂xi
ˆx)
= fi (~x) − f (~
xi
Daisyworld is een computer model van een imaginaire planeet waarin zwarte en witte daisies
leven.
Nu krijgen we de replicator vergelijking met adap- Daisies kunnen hun omgeving veranderen, groeitie snelheid α:
en, reproduceren, en sterven.
ˆx))
∆xi = αxi (fi (~x) − f (~
Er is een globale variabele: de temperatuur van
de planeet welke langzaam toeneemt door een
imaginaire zon.
Als de fitness waarden van de phenotypes verschillen, verandert de vector van relatieve frequenties ~x.
Witte daisies hebben een favoriete temperatuur
waarin ze het snelste groeien en deze temperatuur is hoger dan de favoriete temperatuur van
zwarte daisies.
Als de omgeving niet verandert en de fitness
functies blijven ook gelijk (constant selection)
dan zal de phenotype met de hoogste fitness de
hele populatie overnemen.
Daarom zal de populatie witte daisies sneller
groeien als de temperatuur vrij hoog begint te
worden dan de populatie zwarte daisies.
Deze assumpties zijn natuurlijk onrealistisch: de
omgeving en fitness functies zullen wel veranderen door de selectie.
Vervolg Daisyworld
Witte daisies refecteren echter de zon en koelen
de planeet af. Dus als zij in aantal toenemen zal
de temperatuur van de planeet afnemen.
Co-evolutie met replicator dynamics
We kunnen de fitness van een phenotype ook laten afhangen van andere aanwezige phenotypes:
fi (~x) =
n
X
Zwarte daisies absorberen de hitte van de zon
en daarom verhogen ze de temperatuur van de
omgeving.
aij xj
Daisies veranderen de omgeving, en de omgeving heeft een impact op de populatie groei van
de fitness van Ei in de aanwezig- de daisies.
j=1
Hierbij is aij
heid van Ej
Groeiende aantallen witte daisies koelen de pla-
2
neet af hetgeen gunstig wordt voor de groei van
zwarte daisies.
De populatie zwarte daisies zal daarom toenemen en de temperatuur zal weer stijgen.
Het is het toe- en afnemen van de temperatuur
van de planeet welke de twee soorten daisies verbinden met hun omgeving.
Dus is er een zelf-regulerende feedback loop
CA model voor Daisyworld
We kunnen een CA gebruiken als ruimtelijk model van Daisyworld. Elke cel kan een (witte of
zwarte) daisy of een (wit of zwart) daisy-zaadje
bevatten.
den om beperkte bronnen (namelijk de beschikbare ruimte).
Verder heeft elke cel een temperatuur. Elke
cycle wordt de temperatuur van elke cel opgehoogd met 1 graad.
Mutatie is een willekeurige verandering van het
genotype van een organisme
Als witte daisies de gemiddelde temperatuur niet
afkoelen, zal de temperatuur overal 100 graden Zo’n verandering kan resulteren in een klein verschil in de kleur van de daisy hetgeen een verworden en al het leven dood gaan.
andering betekent in de absorptie van hitte van
de daisy.
Vervolg CA model Daisyworld
In het algemeen kan een mutatie goed zijn voor
Zwarte daisies hebben de meeste kans om te een organisme, hoewel de meeste mutaties schaoverleven bij 40 graden. Witte daisies bij 60 delijk of neutraal zijn.
graden. Elke 20 graden daarvan weg, daalt de
Echter, zelfs als een mutatie maar in 1 op de
overlevingskans met 50%
miljoen gevallen gunstig is, zal deze zich snel
Zwarte daisies verwarmen alle 49 cellen rondom door de populatie heen kunnen propageren.
hen met 3 graden. Witte daisies koelen de 49
cellen met 3 graden af.
Zelf-regulatie en natural selection
Witte daisies reproduceren 6 zaadjes op willekeurige lokaties in hun omgeving van 25 gridcel- Het meest interessante aspect in Daisyworld is
len met de meeste kans (40%) op 60 graden (en echter de zelf-regulatie welke op een hogere level
optreedt dan natuurlijke selectie.
zwarte op 40 graden).
De zelf-regulatie is gunstig voor alle individuen
omdat het de temperatuur op een nivo houdt
welke leven mogelijk maakt.
Daisy zaadjes hebben 10% kans om elke cycle
dood te gaan. Witte (zwarte) zaadjes worden
witte (zwarte) daisies met de meeste kans op 60
(40) graden.
Omdat de zelf-regulatie gunstig is voor alle individuen, zou men kunnen denken dat zelf-regulatie
bestaat door natuurlijke selectie.
Plaatje Daisyworld CA
In Daisyworld is de zelf-regulatie echter niet betrokken in een vorm van competitie of reproductie.
Natuurlijke selectie in Daisyworld
We kunnen echter wel zeggen dat natuurlijke selectie daisy eigenschappen prefereert welke leiden tot een zelf-regulerende omgeving.
In Daisyworld is er competitie (en daarom natuurlijke selectie) omdat de daisies allebei strij-
3
Vraag: Wat is het verband tussen zelf-regulatie
en de fitness functie?
tussen wezens en de omgeving kan de evolutie van beiden vormen.
• Geophysiological Gaia is de sterke vorm
van Gaia. Het stelt dat de aarde zelf een
levend organisme is en dat het leven zelf
de fysieke en chemische omgeving optimaliseert.
Gaia Hypothese
Toen James Lovelock onderzocht of er leven op
Mars is, bedacht hij de Gaia hypothese.
Hij realiseerde dat het niet noodzakelijk was om
Mars te bezoeken, maar dat er slechts een klein
onderzoek in de atmosfeer van Mars nodig was.
• Homeostatic Gaia ligt hier tussenin. Het
stelt dat de interactie tussen organismen
en de omgeving gedomineerd worden door
positieve en negatieve feedback loops welke de globale omgeving stabiliseren.
Omdat de atmosfeer van Mars in een chemisch
evenwicht is, kan er geen activiteit of leven zijn
op Mars.
Op aarde is er echter een chemisch niet-evenwicht;
Lovelock zegt zelf dat zijn theorie een reactie
onze atmosfeer bestaat uit veel gassen welke met
van het systeem vereist, maar geen bewustzijn,
elkaar kunnen reageren, maar toch in andere
planning, of intentie.
proporties aanwezig blijven.
De Gaia theorie zegt dat dit niet-evenwicht een
resultaat is van zelf-regulatie.
Voorbeelden van Gaia processen
Het idee dat Gaia een zelf-regulerend systeem
is leidde tot het idee dat Gaia zelf een levend
organisme is.
• Zuurstof: Lovelock toont aan dat Gaia werkt
om de zuurstof gehalte in de atmosfeer
hoog te houden. De atmosfeer van Venus
en Mars bevat slechts 0 en 0.13 procent
aan vrije zuurstof.
Griekse Godin Gaea
• Temperatuur: De gemiddelde grondtemperatuur van de aarde ligt al meer dan
120 miljoen jaar tussen de 10 en 20 graden
celcius. Op Mars varieert de temperatuur
elke dag veel meer.
• Koolstofdioxide: De stabiliteit van de temperatuur van de aarde wordt gewaarborgd
door varierende hoeveelheden aan koolstofdioxide in de atmosfeer. De vermindering
van opgenomen zonne-radiatie komt door
een vermindering van koolstofdioxide in die
perioden.
Toenemende temperatuur van de aarde
Drie vormen van de Gaia Hypothese
Er zijn drie vormen van de Gaia Hypothese:
Recycling netwerken
• Co-evolutionairy Gaia is een zwakke vormAls we meerdere co-evoluerende species in een
van Gaia. Het stelt dat het leven de om- omgeving hebben, kunnen ze ook interacteren
geving bepaalt en deze feedback koppeling met aanwezige bronnen in de omgeving, zoals
chemische verbindingen.
4
Let op dat we ook het gehalte aan C in planten
(P) en zoogdieren (Z) moeten modelleren. We
hebben boven dus niet alle toestanden getoond.
Een interne toestands-variabele is hiervoor nodig.
We moeten ook regels opstellen om planten en
zoogdieren zich te laten reproduceren en dood
te laten gaan. Verder moeten zoogdieren zich
kunnen bewegen en eventueel op zoek gaan naar
planten.
Recyling in het model
Door de ecologie worden de moleculen gerecycled.
Wat zien we nu:
Een voorbeeld is als we planten en zoogdieren
bij elkaar in een omgeving zetten en een gesimplificeerd model maken:
• Zonder planten worden alle (vrije) C en
O2 moleculen omgezet in CO2 . Er treedt
dus een evenwicht op.
• Planten zetten CO2 om in C en O2 moleculen.
• Als er heel veel planten zijn, groeit de hoeveelheid O2 . Hierdoor zal er weinig CO2
meer over zijn voor de planten.
• Zoogdieren zetten C en O2 om in CO2 moleculen.
• Als er zowel planten als zoogdieren zijn,
recyclen ze de moleculen. Dit zorgt ervoor
dat er meer planten en zoogdieren naast
elkaar kunnen bestaan.
• Externe reacties zetten C en O2 om in
CO2 .
• Zoogdieren kunnen planten eten en daarmee massa aan C erbij krijgen.
• Als er te veel zoogdieren zijn, worden alle planten snel opgegeten. Als er echter
weinig planten meer over zijn, zullen de
zoogdieren sneller sterven.
Dit model kunnen we implementeren in een cellulaire automaat bestaande uit planten, zoogdieren, en moleculen.
Voor de inzichtelijkheid kunnen we 2 CA gebruiken die in wisselwerking met elkaar staan;
1 geeft aan waar planten en dieren zijn, 1 geeft
aan waar de moleculen zitten.
Recycling treedt op in veel Co-evolutionaire systemen en ecologieen. B.v. in regenwouden zorgt
het voor een efficiente manier om met beperkte
hoeveelheden H2 O om te gaan.
CA voor recycling netwerken
Co-evolutie voor optimalisatie
We hebben reeds kennis gemaakt met Genetische algoritmen welke voor optimalisatie doeleinden gebruikt kunnen worden.
P
Z
O
CO
P
P
O
Z
O
Z
P
CO
CO
Sommige onderzoekers proberen een GA efficienter te maken door co-evolutie te gebruiken.
Z
Z
CO
CO
P
Z
P
Stel dat het probleem vereist om N taken op te
lossen (b.v. sorteren van verschillende reeksen
getallen).
P
Z
O
O
P
P
P
5
Als fitness functie kun je nu gebruiken hoeveel
van de N taken door een individu opgelost worden.
Individuen
I
Het probleem hiervan is dat er steeds veel tijd
in de evaluatie gestoken wordt.
I
Verder is het mogelijk dat er steeds door de beste individuen 0.7N taken opgelost worden, maar
niet meer. Er is dan geen goede richting voor de
volgende evolutie stap.
I
Parasieten
I
I
I
I
I
I
P P P P
P P P P
I
P P P P
P P P P
verschil kan maken (differentieren) tussen verschillende individuen.
Co-evolutie voor optimalisatie, vervolg
Een mogelijke oplossing hiervoor is om co-evolutie Bv. als een parasiet door alle individuen of juist
te gebruiken tussen probleem-instanties (para- door helemaal geen individu opgelost wordt, dan
sieten) en oplossers (de individuen).
heeft hij een lage fitness.
Er zijn K parasieten welke een kleine deelver- Als twee parasieten dezelfde onderscheidingen
zameling van de N probleeminstanties bevatten maken tussen de populatie individuen kan de
(dit maakt het efficient).
fitness van 1 van hen ook omlaag gebracht worEr zijn ook K individuen die elk getest worden
op een bepaald gekozen parasiet.
den.
De fitness van het individu is hoger naar mate
het individu beter scoort op de testproblemen
gegenereerd door de toegewezen parasiet.
Pareto front in Co-evolutionaire GA
Individuen kunnen gedomineerd worden door andere individuen als alle parasieten die zij oplossen ook door ten minste 1 ander individu opgelost wordt:
De fitness van de parasiet is hoger naar mate het
individu slechter scoort op zijn testproblemen.
Op deze manier co-evolueren parasieten en individuen. Parasieten maken de taken steeds moeilijker, terwijl de individuen op de moeilijker taken steeds beter moeten gaan scoren.
Stel we noemen de fitness van individu i op parasiet j: fi (j)
Als nu geldt; domineert(k,i) =
∀jfi (j) ≤ fk (j) ∧ ∃lfi (l) < fk (l)
Spatiele co-evolutie voor optimalisatie
Dan wordt i gedomineerd door de individu k.
Sommige onderzoekers gebruiken een spatiele ruimte (een CA) waarin de individuen en parasieten Het pareto front bestaat uit alle individuen die
helemaal niet gedomineerd worden.
co-evolueren.
Nu kunnen we evolueren door gebruik te maken
van individuen die in het pareto-front zitten
De propagatie van een individu is dan lokaal en
van de parasieten ook, zodat een individu niet te
snel met totaal verschillende parasieten in aanraking komt.
Dit is ook een goede methode voor multi-objective
optimization; als er meerdere verschillende fitness waarden voor een individu zijn.
Differentierende parasieten
Conclusie
Een probleem kan zijn dat alle individuen slecht
scoren omdat de parasieten zich hebben ontwikkeld tot te lastige problemen.
We hebben gekeken naar natuurlijke selectie en
het probleem van de fitness functie.
In ecologieen wordt de fitness van een organisme
bepaald door de andere aanwezige organismen.
Er is hier sprake van co-evolutie.
Daarom kunnen we beter de fitness van een parasiet laten afhangen van de mate waarin hij
6
De verschillende organismen kunnen ook samenwerken, waardoor een zelf-regulerend systeem
kan ontstaan.
De (zwakke) Gaia-hypothese zegt dat het leven
de omgeving bepaalt en dat deze feedback koppeling tussen wezens en de omgeving de evolutie
van beiden vormt.
In bepaalde ecologieen hebben organismen elkaar nodig om resources te recyclen. Er kunnen
dan recycling netwerken ontstaan.
Ook optimalisatie algoritmen kunnen goed gebruik maken van co-evolutie.
7
Transparanten bij het vak Inleiding Adaptieve Systemen: Beslisbomen. M. Wiering
Kleur
groen
Geur
Leerdoelen
geen
• Beslisbomen begrijpen en kunnen gebruiken om een classificatie te bepalen
Ja
wit
Nee
bruin
Nee
kruidig
wee
Ja
Nee
• Kunnen berekenen hoe beslisbomen gebouwd
worden
Aangezien elk attribuut hooguit 1 keer voor• De entropie van een kansverdeling kunnen komt op een pad, heb je na maximaal M (aantal
attributen) stappen de classificatie.
berekenen
• Weten wanneer beslisbomen toegepast kunFuncties leren met beslisbomen
nen worden
We kunnen attributen op twee verschillende manieren gebruiken.
Beslisbomen
(1) We kunnen subbomen genereren voor alle
discrete waarden van een attribuut.
Beslisbomen kunnen functies met discrete outputs representeren.
(2) We kunnen groter dan of kleiner dan gebruiken op bepaalde numerieke attributen zoals leeftijd.
Ze worden al enige tijd (sinds 1986) gebruikt
voor data mining en supervised learning.
Een beslisboom kan alle Boolean functies representeren:
Voorbeeld: je ziet de karakteristieken (Features) van een aantal paddestoelen (kleur, geur,
formaat) en krijgt te horen welke giftig zijn:
Attr. 1
Kleur
groen
wit
bruin
groen
groen
bruin
wit
groen
wit
groen
Geur
wee
kruidig
wee
geen
kruidig
wee
kruidig
geen
geen
wee
Formaat
middel
klein
middel
groot
klein
groot
middel
klein
klein
groot
Giftig?
ja
nee
nee
ja
nee
nee
nee
ja
nee
ja
Attr.2
Attr.2
Attr.2
Attr.2
Aantal Attributen
Classificatie
Representatie van functies
Met M binaire attributen zijn er op deze maM
nier 22 functioneel verschillende beslisbomen
(er zijn er zelfs meer, omdat attributen in verschillende volgordes getest kunnen worden)
Voorbeeld beslisboom
9
We willen een functie hebben welke (Kleur, Geur, Vb. M = 5 dan 4 ∗ 10 beslisbomen.
Formaat) afbeeldt op (Giftig).
In principe kan een verzameling voorbeelden direct
gekopieerd worden in paden in de boom.
We kunnen hiervoor de volgende consistente beslisboom genereren:
Hier hebben we echter niks aan, omdat we hier
niet mee kunnen generaliseren. (Vergelijk Ockham’s razor).
Voor het bepalen van de classificatie loop je simpelweg het pad van de boom af tot je in een blad
terecht komt.
1
Sommige functies kunnen niet efficient gerepre- we willen een kleine representatie zodat we kunsenteerd worden.
nen generaliseren over nieuwe voorbeelden.
Hiervoor zijn dan 2M bladeren en 2M −1 knopen
nodig.
Het induceren van beslisbomen
Voorbeeld is pariteits functie (even aantal attributen staan op 1):
Een logisch voorbeeld is gegeven bij de waarden
voor de eigenschappen (attributen) en de waarde van het doel-predicaat.
1
Gegeven de volgende voorbeelden:
2
2
3
3
4
4
1 0
1 0
3
VB.
x1
x2
x3
x4
x5
x6
x7
3
4
4
4
4
4
4
1 0
1 0
1 0
1 0
1 0
1 0
Figuur: Partiteits beslisboom
Alt
Ja
Ja
Nee
Ja
Ja
Nee
Nee
Bar
Nee
Nee
Ja
Nee
Nee
Ja
Ja
Vrij
Ja
Nee
Nee
Ja
Ja
Nee
Nee
Hon
Nee
Ja
Nee
Ja
Nee
Ja
Nee
Men
Enk
Vol
Enk
Vol
Vol
Enk
Geen
Reg
Nee
Nee
Nee
Nee
Nee
Ja
Ja
Res
Ja
Nee
Nee
Nee
Ja
Ja
Nee
Type
Frans
Thai
Burg
Thai
Frans
Ita
Burg
Een triviale oplossing copieert elk voorbeeld in
een pad in de beslisboom.
Ook de majority functie:
Hier hebben we weinig aan, want het gaat erom
Als de meeste attributen 1 zijn, is het antwoord om te generaliseren naar voorbeelden die onbekend zijn.
1, anders is antwoord 0.
We moeten niet enkel een beslisboom vinden die
consistent is met de voorbeelden, maar ook de
kleinst mogelijke (Ockham’s Razor).
Kan niet efficient gerepresenteerd worden:
1
1
0
2
0
2
1
1
0
0
3
0
3
1
0
0
4
0
0
1
1
1
0
4
0
0
Het leeralgoritme
3
1
0
4
1
1
0
0
Het algoritme kiest het belangrijkste attribuut eerst. Belangrijkst staat hier voor het
grootste verschil in de classificaties van de voorbeelden.
0
1
1
Figuur: Majority beslisboom
Je moet minstens (M/2) attributen testen voor
bepalen antwoord. =⇒ Meer dan 2M/2 bladeren.
Mensen?
Geen
+
- x7
Enkele
+ x1,x3,x6
-
Vol
+ x4
- x2, x5
Type?
frans
Ita Thai Burger
+ x1 + x6
+ x4 + x3
- x5
- x2
- x7
Exponentieel grote functies
Exponentieel grote functies zijn onvermijdelijk
Er bestaan 22
naar {0, 1}.
M
verschillende functies van {0, 1}M
Dus je hebt gemiddeld minstens 2M bits nodig
om de functie te representeren.
• Als er positieve en negatieve voorbeelden
zijn, kies dan het beste attribuut om ze te
splitsen.
In elke notatie heeft minstens de helft van de
functies een representatie van ≥ 2M bits.
• Als alle overige voorbeelden pos of neg zijn,
zijn we klaar, en geven we ja of nee terug.
Dat geldt ook voor propositie notatie:
(x1 ∧ x2 ) ∨ ¬(x5 ∧ (x3 ∧ ¬x1 )).
• Als er geen voorbeelden over zijn, geven
we de meerderheids beslissing van de vaderknoop terug
Zulke functies zijn dus niet goed leerbaar, want
2
Sch
0-10
30-60
0-10
10-30
>60
0-10
0-10
Wacht
Ja
Nee
Ja
Ja
Nee
Ja
Nee
• Als er nog pos en neg voorbeelden zijn,
maar geen attributen meer, dan is de data
incorrect (er is ruis). We kiezen dan de
meerderheids beslissing.
Stel (0 of 1), dan 2 mogelijkheden, 1 bit nodig.
Stel (00, 01, 10, 11), dan 4 mogelijkheden, 2 bits
nodig.
Stel keuze uit 8 mogelijkheden, 3 bits nodig.
Keuze uit k = 2n mogelijkheden → n maal keuze uit 2 mogelijkheden. Dan log2 (k) = n bits
nodig.
Voorbeeld van gemaakte beslisboom
Als we nu doorgaan met het bouwen van de beslisboom, krijgen we het volgende resultaat:
Mensen?
Geen
Enkele
+
- x7
Keuze uit k mogelijkheden dan log2 (k) bits nodig. Dit hoeft geen geheel getal te zijn.
Keuze uit 3 mogelijkheden → log2 (3) ≈ 1.55 bits
Keuze uit 3 mogelijkheden → log2 (3) ≈ 1.55 bits
Keuze uit 7 mogelijkheden → log2 (7) ≈ 2.81 bits
Totaal: keuze uit 63 mogelijkheden, → optellen
= 5.91 bits.
Vol
+ x1,x3,x6
>60
+
- x5
Wachtschatting?
30-60 10-30
+ x4
-
+
- x2
0-10
+
-
Informatietheorie voor kansen
Iets dat gebeurt met kans 1 op n ≈ keuze uit
n mogelijkheden, heeft informatie inhoud van
log2 (n) bits.
Stel we hebben de volgende data:
VB.
x1
x2
x3
x4
A
1
1
0
0
B
0
1
1
0
C
0
0
0
0
Output
0
1
0
0
Iets wat gebeurt met kans P heeft informatie
inhoud van log2 ( P1 ) = −log2 (P ) bits.
Als er n mogelijke gebeurtenissen zijn,P
met respectievelijke kansen: P1 , P2 , . . . , Pn ( i Pi =
1.0),
dan is de verwachte informatie inhoud:
Vraag: Welke beslisboom zou het algoritme voor
bovenstaande data genereren?
P1 (−log2 P1 ) + P2 (−log2 P2 ) + . . . + Pn (−log2 Pn ) =
n
X
Pi (−log2 Pi )
Kiezen van het splits attribuut
De belangrijkste functie in het induceren van
een boom is het kiezen van splits attributen.
i=1
Hierbij is 0log2 0 = 0.
We willen het attribuut dat de classificaties zoveel mogelijk discrimineert.
Deze waarde heet ook wel de entropie (H).
Voor het berekenen van de waarde (gain) van
een attribuut gebruiken we informatie theorie.
Voorbeelden
Informatie theorie houdt zich bezig met het bepalen van de hoeveelheid bits die nodig zijn om
iets (in dit geval pos. en neg. voorbeelden) te
coderen.
1
2
1
1
log
22
2
Eerlijke munt: n = 2, P1 = P2 =
Entropie (H) = − 21 log2 12 −
=
1
2
+
1
2
=1
Oneerlijke munt, bijvoorbeeld gooi met dobbelsteen, wel of niet 6 → n = 2, P1 = 16 , P2 = 56
Voorbeeld: als munt gegooid wordt en we willen
uitkomst representeren hebben we 1 bit nodig
(kop = 1, munt = 0).
Entropie (H) = − 16 log2 16 − 56 log2 56 = 0.65.
Deze laatste waarde is dus lager, er is dan ook
minder onzekerheid.
Informatie theorie
Eenheid van informatie is aantal (n) bits.
3
Uitwerking paddestoelen voorbeeld
Entropie voor n=2
1
Als we nu naar kleur kijken, levert dat het volgende op:
H
5 groen, waarvan 4 positief en 1 negatief
3 wit, allen negatief
2 bruin, beide negatief
0.5
0 1/6
1/2
1
5/6
Rest(kleur) =
P
5
3
2
10 E(4, 1) + 10 E(0, 3) + 10 E(0, 2)
Alles uitrekenen geeft: 0 < Rest(kleur) = 0.36 <
Rest(geur) = 0.68 < Rest(f ormaat) = 0.88 <
1.
Gebuik entropie voor kiezen van attributen
Kies-attribuut geeft dus allereerst de kleur terug:
Kies-attribuut(attributen, leervoorbeelden)
Elk attribuut resulteert in nieuwe verzamelingen
van positieve en negatieve clusters (in de nieuwe
subbomen/bladeren).
Kleur
Van 1 cluster met p positieve voorbeelden en n
negatieve voorbeelden is de entropie (verwachte
informatie inhoud):
−
groen
Hier recursief
verder
bruin
wit
0
0
p
p
n
n
log2
−
log2
p+n
p+n p+n
p+n
Voorbeeld: paddestoelen. In begin 4 positieve
en 6 negatieve voorbeelden.
Entropie =
4
4
− 10
log 10
−
6
6
10 log 10
De algemene Kies-attribuut functie
1) Bereken voor elk attribuut a ∈ attributen:
= 0.97
Kiezen attribuut
Rest(a) =
k
X
pi + ni
i=1
Nu moeten we 1 van de 3 attributen kiezen. Bijvoorbeeld: formaat.
M
E(pi , ni )
Van de 10 zijn er:
3 groot, waarvan 2 positief en 1 negatief.
3 middel, waarvan 1 positief en 2 negatief.
4 klein, waarvan 1 positief en 3 negatief.
Waarbij a1 , . . . , ak de attributen waarden voor
a zijn,
pi = {nr. positieve voorbeelden met a−waarde ai }
ni = {nr. negatieve voorbeelden met a−waarde ai }
M = totaal aantal voorbeelden
Intuitief: van alles wat, dus niet zo’n beste keuze.
Kies-attribuut kiest a waarvoor Rest(a) minimaal is.
De entropie zal dus vrij groot zijn.
Equivalent: Kies a waarvoor:
Gain(a) = E(p, n) − Rest(a) maximaal is.
De (rest)-entropie is de gemiddelde entropie van
de deelverzamelingen:
Gain(a) is altijd ≥ 0 en wordt de verwachte inwinst genoemd.
3
3
4
Rest(f ormaat) = 10
E(2, 1)+ 10
E(1, 2)+ 10
E(1, 3)formatie
p
p
n
n
Hierbij is E(p, n) = − p+n
log2 p+n
− p+n
log2 p+n
.
Vinden kleinste beslisboom
Beslisboom algoritmen (ID3, C4.5) berekenen
Rest(a) voor alle attributen en kiezen het attribuut met minimale Rest(a).
Leert het algoritme altijd de kleinste beslisboom?
Nee, hoewel er in de praktijk wel vrij kleine en
bruikbare beslisbomen gevonden worden.
4
Voorbeeld: 3 binaire attributen (stip, hoog, breed),
6 leervoorbeelden
• Worp dobbelsteen (1, 2, 3, 4, 5, 6)
• Worp munt (kop, munt)
Classificatie 1
Classificatie 0
• Weer (zonnig, bewolkt, regen)
Doel: voorspellen kop/munt aan de hand van
andere attributen.
Het algoritme zal een bijna consistente beslisboom vinden.
Toch is beslisboom niet bruikbaar.
Kleinste, consistente boom:
Cross validatie
Stip
nee
ja
Hoog
Na het induceren van een beslisboom op de leervoorbeelden gaan we deze testen op de verzameling testvoorbeelden.
Breed
ja
nee
ja
nee
1
0
1
0
Als we de rare beslisboom gaan testen op de
testvoorbeelden komt er een lage (random) score
uit.
Het bouwen van een grote beslisboom zorgt vaak
voor een goede score op leervoorbeelden en slechte score op testvoorbeelden (overfitting)
Er zijn wel meer consistente beslisbomen, maar
die hebben allemaal meer dan 3 knopen, meer
dan 4 bladeren en diepte groter dan 2.
Gegeven een hypothese ruimte H. Een hypothese h overfits de leervoorbeelden, als er een
andere hypothese h0 is zodat h een kleinere fout
heeft over de leervoorbeelden, maar h0 een kleinere fout heeft over de hele verzameling voorbeelden.
Het gewenste attribuut Stip wordt echter niet
door het algoritme gekozen, want :
gain(stip = 0)
gain(hoog) = gain(breed) = 0.044
Het algoritme vindt dus niet de kleinste consistente beslisboom.
Precisie
Het vinden van de kleinste consistente beslisboom is ook een NP-moeilijk probleem.
Leervoorbeelden
0.9
Testvoorbeelden
0.7
Ander probleem: leren van X-or functie (00 =
0, 01 = 1, 10 = 1, 11 = 0).
0.5
0
Alle attributen hebben gain(x) = 0.
20
40
60
Grootte van boom
Dan wordt er maar een attribuut gegokt, waarna
er verder geleerd kan worden.
Tegengaan van overfitting
Een raar experiment
Twee benaderingen:
Stel iemand verzamelt de volgende data gedurende enkele weken:
• Stop het groeien van de boom voordat het
de leervoorbeelden precies classificeert.
• Dag van de week (zo, ma, di, wo, do, vr,
za)
• Sta toe dat de beslisboom de leervoorbeelden overfits, maar snoei daarna de geleerde beslisboom (meer succesvol).
• Uur van de dag (9, 10, 11, . . ., 20)
• Kleur stoplicht (groen, oranje, rood)
5
Snoeien van de beslisboom kan op de volgende
manieren:
• Ontwerpen van olie platform gereedschap
• Gebruik de verzameling testvoorbeelden om
de utiliteit van het snoeien van takken te
evalueren (simpel) nadat de hele beslisboom geleerd is.
• Gebruik alle voorbeelden om te leren, maar
gebruik een Chi-square test om te evalueren of een bepaalde knoop een verbetering
voorbij de leervoorbeelden veroorzaakt.
– In 1986 maakte BP gebruik van een
expert systeem genaamd GASOIL
– Dit systeem kon systemen ontwerpen
welke olie van gas kunnen scheiden
– Het systeem was de grootste commerciele expertsysteem met 2500 regels.
– Zo’n systeem bouwen zou 10 mensjaren gekost hebben. Het leren kostte
slechts 100 dagen.
– Het systeem bespaart het bedrijf jaarlijks vele miljoenen guldens.
Uitbreidingen beslisbomen
• Leren te vliegen.
• Ontbrekende gegevens:
– vervang door meest voorkomende waarde
– Beter: gebruik kansen.
• Attributen met een prijskaartje
– Leren een Cessna te vliegen op een
vluchtsimulator.
– De data werd gegenereerd door een
ervaren menselijke piloot te observeren in zijn vlieggedrag.
– Er werden zo 90.000 voorbeelden gegenereerd elk beschreven met 20 variabelen.
– Stop prijs in gain-criterium (b.v. gebruik Gain
Cost ).
– Het geleerde systeem kon beter vliegen dan de leraren!
• Attributen met meerdere waarden
– Vervang gain door gainratio.
• Attributen met numerieke waarde
Verdere toepassingen
– Maak binaire keuze tussen a < A en
a ≥ A. Kies hierbij A zodat gain
maximaal is.
• Inductie: Probeer classificatie te voorspellen voor voorbeelden buiten gegeven data
set.
– Uitbreiding: Oblique decision trees
→ keuze op grond van lineaire combinaties van numerieke attributen.
• Datamining: probeer bepaalde regels te
vinden welke features classificeren aan de
hand van waarden van andere features. Doel
atttribuut kan alles zijn.
• Multi-variate tests → kies op grond van
meerdere attributen tegelijk.
• Windowing
Ten slotte: er kunnen verschillende equiva– Leer op subset van leervoorbeelden, lente beslisbomen voor dezelfde data set gebouwd
voeg fout geclassificeerde voorbeelden worden:
toe en leer opnieuw.
– Maakt meerdere verschillende beslisbomen. Majority vote van alle geleer- Discussie
de beslisbomen kan gebruikt worden.
• Beslisbomen kunnen voor supervised leren gebruikt worden met discrete output
waarden.
Praktisch gebruik van beslisbomen
6
o
o
o
x
o
o
o
o
x
o
o
o
o
o
x
x
x
x
x
x
x
x
x
x
o
o
o
o
x
o
o
o
o
o
o
o
o
o
o
x
o
o
o
x
x
o
o
o
x
x
x
x
x
x
x
x
x
x
x
x
x
o
o
o
x
x
o
x
x
x
x
x
• Door gebruik van greedy recursief opslits
algoritme zijn ze vaak erg snel (+)
• De geleerde hypothese is goed leesbaar voor
domein experts (+)
• Het algoritme moet goed gebruikt worden
om overfitting tegen te gaan (-)
7
Transparanten bij het vak Inleiding Adaptieve Systemen: Introductie Machine Leren. M. Wiering
Wat is het leerprobleem?
Leren = verbeteren een taak uit te voeren door
middel van ervaring
Lerende Machines
• Verbeter in taak T,
Voorbeeld: je ziet de karakteristieken (Features)
van een aantal dieren en krijgt te horen welk dier
het is.
• Met respect tot prestatie maat P,
• Gebaseerd op ervaring E.
Je bent geinteresseerd om een concept te leren
welke olifanten van andere dieren onderscheid.
Voorbeeld: Leren te schaken
Dier gegeven als [Gewicht, Kleur, Aantalpoten, Lengte]
• T: Speel Schaak
Nu hebben we een aantal (leer)-voorbeelden:
• P: % of spelletjes gewonnen in toernooi
[16kg, bruin, 4, 37cm, Hond]
[560kg, bruin, 4, 200cm, P aard]
• E: Gelegenheid om N spelletjes tegen zich[5100kg, grijs, 4, 310cm, Olif ant]
zelf te spelen
[5420kg, grijs, 4, 320cm, Olif ant]
Voorbeeld: Leren spraak te herkennen
Welke concepten zouden nu de olifant onder• T: Zet spraak om in tekst
scheiden van de rest?
[?, grijs, ?, ?, Olif ant]
[> 5000kg, ?, 4, ?, Olif ant]
[> 5099kg, grijs, 4, > 309cm, Olif ant]
• P: % goed geclassificeerde woorden
• E: Luister naar gesproken bekende tekst
van spreker
Vraag: welk concept zou jij kiezen?
Vraag: Wat zijn T, P, E voor piano leren spelen
Waarom passen we leren toe?
Waaruit bestaat een lerend programma?
• Het kan veel werk zijn om kennis te eli- We onderscheiden een leer-element welke verciteren en in een computer in te voeren. beteringen maakt en een prestatie-element welVoorbeeld: een expertsysteem welke bo- ke acties of outputs selecteert.
men classificeert.
Het ontwerp van leer-elementen wordt bepaald
door de volgende zaken:
• Voor bepaalde domeinen heeft een mens
onvoldoende kennis om alles uit te pro• Welke componenten van het prestatie elegrammeren. Voorbeeld: spraakherkenning.
ment moeten verbeterd worden?
• Welke representatie is gekozen voor die componenten?
• Een omgeving kan a priori volledig onbekend zijn. Voorbeeld: Een robot die in een
onbekende omgeving een taak moet uitvoeren.
• Wat voor feedback is aanwezig?
• Welke prior informatie is aanwezig?
• Menselijke kennis kan imperfect zijn. Voorbeeld: maken van een schaakprogramma:
hoe ziet de evaluatie functie eruit?
3 vormen van leren
• Continue automatische adaptie aan gebrui- Aan de hand van aanwezige feedback onderscheiker: lerende zoekprogramma’s, intelligent den we 3 vormen van leren:
information retrieval.
1
Agent
Inputs
Prestatie
Element
Outputs
Acties
Leer
Element
Feedback
Vormen van Supervised leren
Er bestaan 3 verschillende leerproblemen in supervised leren:
• Binary Classification. De data heeft 2 mogelijke uitkomsten. Het doel is de ene categorie van de andere te scheiden. Als dit
niet perfect lukt (consistent) dan moet het
aantal fouten geminimaliseerd worden.
Prior
Informatie
• Supervised leren: de agent krijgt de input en de gewenste output binnen. Het
doel is een functie te leren die de inputoutput mapping goed benadert.
• Multi-class Classification. In dit geval zijn
er meerdere mogelijke output klassen en
moet voor elke input de optimale klasse
teruggeven worden.
• Reinforcement leren: de agent krijgt
enkel een evaluatie van zijn gekozen actie
binnen, maar niet de optimale actie. Het
doel is een optimale actie-selectie policy te
leren.
• Regression. In dit geval moet de output
een reële waarde zijn. Nu moet de (kwadratische) fout tot de gewenste output geminimaliseerd worden.
• Unsupervised leren: de agent krijgt enkel inputs en geen outputs. Door middel
van een objectieve (afstands) functie kan
de agent patronen in de input leren zoals
clusters in de inputspace.
NB. Regression problemen kunnen niet door alle
leeralgoritmen opgelost worden.
Ingredienten van een Lerend Systeem
Vaak worden bepaalde optimalisatie (zoek) algoritmen zoals genetische algoritmen ook als lerend beschouwd.
Om te leren hebben we allereerst een representatie nodig. Voorbeeld: een neuraal netwerk,
beslisboom. De representatie bepaald welke hypotheses (functies) geleerd kunnen worden.
Enkele voorbeelden:
Een hypothese is een invulling van een representatie (vb. Een geleerd neuraal netwerk).
Supervised: Handgeschreven tekst herkenning,
Spraakherkenning, Bepalen of iemand een lening krijgt, Gezichtsherkenning.
Verder hebben we een evaluatie functie (prestatie functie) nodig, om een bepaalde hypothese
te kunnen evalueren (vb. tel het aantal fouten).
Reinforcement Leren: Spelletjes leren door tegen jezelf te spelen, Robot Controle, Kortstepad bepalen, Lift Controle
Tenslotte hebben we leervoorbeelden nodig.
In het geval van reinforcement leren hebben we
een leeromgeving nodig — de leervoorbeelden
Unupervised Leren: Compressie van data (voor- worden door het systeem zelf gegenereerd.
beeld images), data analyse (Wat zijn belang- In de leervoorbeelden kan ruis (noise) zitten:
rijkste kenmerken?), market basket (Associatie dit kan het leren aanzienlijk moeilijker maken.
regels: Als iemand zuurkool koopt, koopt deze We moeten de ruis dus niet perfect leren, maar
dan ook fles rode of witte wijn?)
ons concentreren op de generalisatie eigenschapOptimalisatie (GA’s): Robot Controle, Functie
optimalisatie (hoe moeten parameters bepaald
worden voor optimaal resultaat?), Combinatorische problemen (Scheduling, TSP).
pen.
Vraag: Welke leervorm is geschikt voor het vertalen van een document?
In Supervised leren krijgt de agent een aantal
input-output voorbeelden en moet deze een func-
Inductief supervised leren
2
tie leren welke de voorbeelden goed benadert
(inductie).
Genereer een hypothese welke consistent is met
de leervoorbeelden
Een functie kan een continue wiskundige functie
zijn, maar ook een logische functie bestaande uit
proposities etc.
- - -
Een leervoorbeeld is een paar: (x, f (x)). Soms
gebruiken we y = f (x) om de outputfunctie weer
te geven.
- - -
+ +
+ +
+ +
De inductieve inferentie taak is als volgt: gegeven een aantal voorbeelden van f (x), geef een
functie h terug welke f benadert.
Meest algemene
consistente hypothese
- - -
Meest specifieke consistente hypothese
De functie h wordt ook wel een hypothese genoemd.
Inductieve Bias: Een leeralgoritme heeft een Testen van een hypothese
preferentie over bepaalde hypotheses vergeleken De totale verzameling voorbeelden wordt meestmet andere hypotheses.
al gesplitst in een leerverzameling en een testverzameling.
De testverzameling wordt gebruikt om de geleerde hypothese te evalueren op haar generalisatie mogelijkheden (naar andere onbekende voorbeelden).
Verschillende soorten inductieve bias
Het kan gebeuren dat de fout op de leerverzameling 0 is, terwijl deze op de testverzameling
vrij hoog is.
-
-
-
-
+ +
+
+
+
+ +
-
-
+
- -
5 fouten
-
-
-
6 fouten
Voorbeeld van genereren hypothese
Gegeven de volgende leervoorbeelden:
Root learning
- - -
Root learning is eigenlijk niets anders dan het
onthouden van alle leervoorbeelden.
- - -
De Hypothese is in dit geval de gehele verzameling geziene voorbeelden met hun classificaties.
+ +
+ +
+ +
-
Hoewel het nuttig is om telefoonnummers te leren heeft root learning de volgende grote nadelen:
- - -
3
• Het systeem kan enkel voorbeelden goed
classificeren als deze al een keer gezien zijn.
E
R
R
O
R
• Voor (bijna) perfecte classificatie moeten
alle voorbeelden gezien worden
• Het aantal leervoorbeelden (leertijd) en de
opslagruimte voor de hypothese zijn enorm
groot.
State : W
Leren is eigenlijk compressie!
• Aantal input-attributen
Ockham’s razor
• Soort inputs: continu of discreet (hoeveel
mogelijkheden)
Als er meerdere hypotheses zijn die dezelfde leervoorbeelden goed classificeren, prefereren we de
kleinste (met de minste parameters).
• Zijn er missende waarden voor input-attributen
• Is er ruis in input attributen (waarde van
attribuut is gewijzigd)
De kleinste kan het beste generaliseren
Voorbeeld: Stel we hebben de volgende leervoorbeelden voor gezichten:
• Aantal output-attributen
[baard, mond, neus, snor, 2 blauwe ogen, 2 oren, bruin haar, gezicht]
• Soort outputs: continu of discreet
[¬baard, mond, neus, ¬snor, 2 groene ogen, 2 oren, bruin haar, gezicht]
[¬baard, ¬mond, ¬neus, ¬snor, 5 witte ogen, ¬oren, ¬haar, dobbelsteen]
• Zijn er missende waarden voor output-attributen
• Is er ruis in output attributen
We kunnen nu bv. de volgende 2 concepten voor
een gezicht maken:
[mond, neus, 2 oren, 2 ogen] of
[mond, neus, 2 oren, 2 ogen, bruin haar]
• Hoe ziet het proces achter de leervoorbeelden eruit (a priori kennis)
De eerste generaliseert duidelijk beter
Stappen voor Gebruik Machine Learning
Leren is zoeken naar parameters
Leren kan gezien worden als het zoeken naar parameters welke de fout minimaliseren.
Bepaal de leertaak
De parameters zijn afhankelijk van de gebruikte
representatie.
Taak T
B.v. logische proposities voor beslisbomen, reële
gewichten voor neurale netwerken.
Verzamel voorbeelden
voor deze taak
Door gebruik te maken van een leeralgoritme
krijg je een gestuurde zoektocht in het fout landschap:
Selecteer representatie
voor functie
Leervoorbeelden
Representatie
Run leeralgoritme
Hoe zien de leervoorbeelden eruit?
Hypothese
We leren een mapping van:
Input [x1 , x2 , . . . , xn ] naar
Output [y1 , . . . , ym ] voorbeelden
Testvoorbeelden
Voor het karakteriseren van de leertaak is van
belang:
4
Test
Evaluatie
Sommige topics in Machine Learning
• Welke algoritmen kunnen welke functies
goed representeren?
Unsupervised learning:
• Clustering
• Hoe beinvloedt het aantal leervoorbeelden
de nauwkeurigheid?
• K-Means Clustering
• Principale Component Analyse
• Hoe beinvloedt de complexiteit van de hypothese de nauwkeurigheid?
• Independent Component Analyse
• Hoe beinvloedt ruis de nauwkeurigheid?
• Kohonen netwerk/ Zelf-organiserende netwerken
• Wat zijn theoretische limieten van leerbaarheid?
Evolutionary Computation
• Hoe kan a priori kennis gebruikt worden?
• Welke ideeën verschaffen biologische systemen ons?
• Genetische Algoritmen
• Hoe kan de representatie door het algoritme veranderd worden?
• Probabilistic Incremental Program Evolution (PIPE)
• Genetisch Programmeren
• Evolutionary approaches to optimize Neural networks
Wat voor lerende algoritmen bestaan er?
• Evolutionary Markov Chain Monte Carlo
(EMCMC)
Supervised Learning:
• Version Spaces
• Decision Trees
Gerelateerde disciplines
• Naieve Bayes classifiers
• Kunstmatige Intelligentie
• Neurale Netwerken
• Statistiek
• k-Nearest Neighbors / Locally weighted
learning
• Computationele Complexiteits theorie
• Zelforganiserende maps
• Controle Theorie
• Bayesian belief networks
• Cognitieve Psychologie
• Support vector machines
• Biologie
• Filosofie
Reinforcement Leren
• Neurofysiologie
• Optimale controle, dynamisch programmeren
• Economie
• ...
• Reinforcement leren (RL) algoritmes
• Exploratie
Conclusie
• Functie approximatie en RL, multi-agent
RL
Er zijn drie vormen van leren: supervised, unsupervised, en reinforcement leren.
5
Om te leren hebben we leervoorbeelden (of een
leeromgeving) nodig.
Leren is het zoeken naar een hypothese (invulling van een representatie) welke goed presteert
op de leervoorbeelden.
Om om te gaan met ruis en te kunnen generaliseren, prefereren we meestal de kleinst mogelijke
(consistente) hypothese.
Om de generalisatie van een hypothese te meten,
gebruiken we testvoorbeelden welke nog niet gezien zijn door het leeralgoritme.
6
Transparanten bij het vak Inleiding Adaptieve Systemen: Evolutionary Computation. M. Wiering
f (smax ) ≥ f (s) ∀ s
Omdat de representatie ruimte vaak erg groot
is, kunnen we deze niet helemaal doorzoeken.
Evolutionary Computation (EC)
Daarom moeten we gebruik maken van heuristieke zoekalgoritmen
Optimalisatie algoritmen geinspireerd door Darwin’s evolutie theorie (“natural selection”), ontdekt in de jaren ’60 en ’70.
Voorbeelden hiervan zijn: Genetische algoritmen, Tabu search, Local hill-climbing, Simulated Annealing, Ant Colony Systemen
Goed in gedistribueerd zoeken in grote ruimtes.
Gebruiken genetische strings (meestal rij van nullen
en enen) als representatie
Local hillclimbing
Evolutionaire algoritmen kunnen gebruikt wor- Local-hillclimbing werkt als volgt voor het vinden voor:
den van een oplossing:
• Controle taken
• Genereer een oplossing s0 , t = 0
• Combinatorische optimalisatie
• Herhaal tot stopconditie geldt:
– snew = verander(st )
• Functie optimalisatie
– Als f (snew ) > f (st ) then st+1 = snew
– Anders: st+1 = st
– t = t +1
Leerdoelen
• Begrijpen waar optimalisatie problemen om De belangrijkste functie is hierbij: verander(s)
draaien
Een nadeel van local-hillclimbing is dat deze vaak
in een lokaal minimum terecht komt.
• Genetische algoritmen begrijpen
Om daar mee om te gaan, wordt het algoritme
• Representatie kunnen bedenken voor be- meestal vanaf verschillende beginpunten gestart.
paald probleem
• Mutatie en Recombinatie operatoren kunnen maken voor bepaalde representatie
Genetische algoritmen
• Verschillende selectie strategieën kennen
Initialiseer: genereer populatie individuen
(genetische strings / genotypes)
• Verschil genetische algoritmen en Evolutionaire strategieen begrijpen
- Herhaal:
(1) Evalueer alle individuen (bereken fitness)
(2) Selecteer individuen aan de hand van hun
fitness
(3) Recombineer geselecteerde individuen m.b.v.
crossover en mutatie
• Genetisch programmeren begrijpen
• PIPE begrijpen
Theorie: schemata worden overgedragen aan kinderen.
Optimalisatie problemen
In een optimalisatie probleem is er sprake van
een representatie (oplossings) ruimte S en een
fitness (evaluatie) functie.
Stappen voor maken van EA
Het doel is om de oplossing smax ∈ S te vinden
met maximale fitness
Hoe maken we een evolutionair algoritme?
Abstracte stappen:
1
POPULATIE
EVALUATIE
SELECTIE/
RECOMBINATIE
1 0 0 0
0.72
1 0 1 0
0 1
1 0
0.45
0 1
1 1 0
0.56
0 1 0 1
0.11
1 0 1 0
0.89
1
Omzetten van genotype in phenotype
1 0
Als we een representatie voor de genotypes hebben, hebben we ook nog alle vrijheid om deze te
vertalen in een phenotype
1 0 1 1
Het zoeken gebeurt in de genotype representatie
ruimte
• Ontwerp een representatie
De phenotype wordt geevalueerd
• Initialiseer de populatie
8 bits Genotype
• Ontwerp een manier om een genotype om
te zetten naar een phenotype
1
0
1
0
0
0
1
Phenotype:
* Integer
* Real number
* Schedule
* .....
1
• Ontwerp een evaluatie (fitness) functie om
een individu te evalueren
Meer specifieke stappen:
Voorbeeld: Phenotype: natuurlijke getallen: uitkomst binaire representatie = 163
• Ontwerp bepaalde recombinatie operator(en)Voorbeeld: Phenotype: getal tussen 2.5 en 20.5:
• Ontwerp bepaalde mutatie operator(en)
• Beslis hoe ouders worden geselecteerd
x = 2.5 +
• Beslis hoe individuen worden gestopt in de
nieuwe populatie
• Beslis wanneer het algoritme kan stoppen
163
(20.5 − 2.5) = 13.9609
256
Representeren van reële getallen
Ontwerpen van een representatie
Als we een phenotype van reële getallen willen
verkrijgen, is een natuurlijke manier om de reële
getallen direct te coderen in de genotype
We moeten een manier verzinnen om een individu als een genotype te representeren
Voorbeeld: een tupel met n reële getallen:
X = (x1 , x2 , . . . , xn ) xi ∈ <
Er zijn hiervoor vele mogelijkheden. De manier
die we kiezen moet relevant zijn voor het probleem dat we willen oplossen.
Een bekende applicatie hiervoor is parameter
optimalisatie
De fitness functie f mapt de tupel op een enkel
getal:
Voor het kiezen van een representatie moet er
rekening gehouden worden met de evaluatie
methode en de genetische operatoren
f : <n → <
De representatie kan met discrete waarden (binair, integer etc)
Representatie voor orderingsprobleem. Voor bepaalde problemen zoals de TSP is het nodig een
volgorde van steden te vinden. Dit coderen we
als:
Voorbeeld: binaire representatie :
Chromosoom
3
1
0
1
0
0
0
1
1
Gen
2
4
8
6
1
2
7
5
Initialisatie
• Tenminste 1 mutatie operator moet het
mogelijk maken om de hele zoekruimte te
kunnen doorzoeken
Voor de intialisatie zijn er de volgende methoden:
• Uniform willekeurig over de gehele zoekruimte:
• De grootte van de mutatie stap moet controleerbaar zijn
• Mutatie moet geldige chromosomen opleveren
1. Binaire strings: 0 en 1 met kans 0.5
2. Reeële getallen: Uniform op een gegeven interval (werkt niet als interval
niet gesloten is)
Voorbeeld mutatie:
• Gebruik vorige resultaten om de populatie
te initialiseren of gebruik heuristieken
1
1
1
1
1
1
1
1
Voor mutatie
1. Nadeel: mogelijk verlies van genetische diversiteit
1
1
1
0
1
1
1
1
Na mutatie
2. Nadeel: soms onmogelijk om te ontsnappen aan initiële bias.
Gemuteerde Gen
Evalueren van een individu
Mutatie gebeurt gewoonlijk met kans Pm op elk
gen
Dit kan soms een erg kostbaar proces zijn, zeker
voor real-world problems
Speciale mutatie operatoren
• Evalueer onveranderde individuen niet opnieuw
Mutatie op reële getallen kan gedaan worden
door een perturbatie aan te brengen met willekeurige ruis.
Het kan een subroutine zijn, een black-box simulator of een extern proces (bv robots)
Vaak wordt een Gaussiaanse ruis distributie gebruikt (met gemiddelde 0):
Je kunt beginnen met een evaluatie functie welke de uitkomst van het proces benadert, maar
dit kan niet te lang (bv. leer met neuraal netwerk hoe fitness landscape eruit ziet).
xi = xi + N (0, σ)
Mutatie voor order specifieke representaties (swap):
selecteer 2 genen en wissel ze om:
Omgaan met eisen: wat als phenotype niet aan
een bepaalde eis voldoet?
• Gebruik een penalty term in de fitness functie
• Gebruik specifieke evolutionare algoritmen
die omgaan met eisen
7
3
1
8
2
4
6 5
7
3 6
8
2
4
1 5
Probleem: omgaan met meerdere doelen in de
fitness functie : gebruik compromissen tussen
subdoelen
Recombinatie operatoren
Een recombinatie operator mapt gewoonlijk 2
ouders op 1 of 2 kinderen
Mutatie operatoren
We kunnen 1 of meerdere mutatie operatoren
We kunnen 1 of meer recombinatie operatoren
maken voor een representatie
hebben. Belangrijk is:
Belangrijk hierbij is:
3
• Het kind moet iets van elke ouder overerven. Anders is het een mutatie operator
Ouder 1
7
3
• De recombinatie operator moet samen met
de representatie ontworpen worden zodat
recombinatie niet vaak een catastrofe is.
1
Ouder 2
8
2
4
6
5
4
3
2
8
6
7
1
5
7,3,4,6,5
• Recombinatie moet geldige chromosomen
opleveren
7
5
1
8
2
1
8
2
Order:
4,3,6,7,5
4
3
6
Kind 1
Voorbeeld recombinatie (1-point crossover):
Knip
1
1
1
1
1
1
Knip
1
1
0
1
0
1
0
0
0
0
0
0
0
0
0
0
1
0
1
1
Selectie Strategie
Ouders
0
1
We willen een manier hebben zodat betere individuen een grotere kans hebben om ouders te
zijn dan minder goede individuen
Kinderen
Dit geeft de selectie-druk welke de populatie in
staat stelt zich te verbeteren
We moeten minder goede individuen een kleine
kans geven zich ook voort te propageren, omdat
ze
Recombinatie (crossover) kan one-point, two-point, bruikbaar genetisch materiaal kunnen bevatof uniform zijn. We kunnen dit visualiseren als ten.
Recombinatie maskers
een crossover masker:
1 1
0
0
1 0
0
Bv. Fitness proportionele
selectie : ouder selecP
tie met kans fi / j fj
Verwacht aantal keer dat individu i gekozen wordt
ˆ met fˆ als de gemiddelde populatieals ouder = fi /f,
fitness
Masker (Uniform)
1
1
1
1
0
1
1
0
0
1
0
0
0
0
Ouders
1
1
1
0
0
0
0
0
0
1
1 0
1
1
Kinderen
Nadelen fitness proportionele selectie:
• Gevaar van voorbarige convergentie, omdat zeer goed individuen hele populatie
snel overnemen
Crossover op reële getallen representaties kan
gebeuren door getallen te middelen:
(xc1 =
• Lage selectie druk als fitness waarden dicht
bij elkaar liggen
xa1 + xb1
xa + xbn
, . . . , xcn = n
)
2
2
• Gedraagt zich verschillend voor translatieve veranderingen van de fitness functie
Crossover voor order afhankelijke representatie
Oplossing: schalen van de fitness functie: fitness
tussen 0 en 1 (beste), som van fitness waarden
= 1.
Hier moeten we oppassen dat we wel geldige
chromosomen krijgen
Kies een willekeurig deel van de eerste ouder en
copieer dit naar het eerste kind
Tournament selectie
Copieer de overgebleven genen die niet in het
gecopieerde deel zitten naar het eerste kind (gebruik de order van de genen van de 2e ouder)
Selecteer k random individuen zonder terugleggen
4
Populatie
Kampioen
Deelnemers (k = 3)
f=6
f=2
f=1
f=8
f=3
f=5
GA vs. ES
f=9
f=4
f=9
f=5
f=5
f=3
f=9
2
1
GA gebruikt crossover en mutatie
f=3
Evolutionaire strategieën (ES) gebruiken enkel
mutatie
3
Keuze hangt af van:
• Is de fitness functie scheidbaar?
Neem de beste (k is de grootte van het toernooi)
• Bestaan er building blocks?
Andere selectie strategie: rank-based selection
• Is er een semantisch betekenisvolle recombinatie operator?
Rank-based selection ordent alle individuen op
basis van hun fitness. De plaats in deze geordende lijst wordt de rank genoemd.
Als recombinatie betekenisvol is → gebruik het!
We gebruiken de rank om een individu te selecteren. Individuen met hoge rank (goede fitness)
worden vaker gekozen.
Genetisch Programmeren
Gebruikt functionele bomen als representatie i.p.v.
binaire strings
Vervangings strategie
De selectie druk wordt ook beinvloed door de Functies zoals: cos, sin, *, +, /, random conmanier waarop individuen uit de vorige gene- stant
ratie gedood worden om plaats te maken voor Voorbeeld programma:
nieuwe individuen
We kunnen steeds een nieuwe populatie genereren, of een deel van de oude populatie elimineren
gebruik makende van hun fitness.
Programma Boom
Functie
COS
Cos((X1 + X2) * 2)
*
We kunnen bijvoorbeeld de elitist strategie gebruiken en besluiten om het beste individu nooit
uit de populatie te verwijderen
+
X1
2
X2
In elk geval slaan we het beste individu op in
een veilige plaats
Gebruik:
• Supervised leren op continue inputs/outputs
Recombinatie vs. Mutatie
• Robot controle taken
Recombinatie;
• Beeld classificatie
• Veranderingen hangen van hele populatie
af
• Flexibel: loops, geheugen registers, speciale random getallen etc.
• Afnemend effect met convergentie van populatie
• Exploitatie operator
Mutatie en Recombinatie in GP
De mutatie operator kan dan een knoop van de
boom aanpassen:
Mutatie:
• Verplicht om uit lokale minima te ontsnappen
Ook de recombinatie operator werkt op programma’s:
• Exploratie operator
5
Voor Mutatie
COS
COS
*
+
+
X1
(2) Evalueer alle M individuen
Na mutatie
+
2
X2
(3) Selecteer de beste en schuif de kansen op
zodat de kans dat de gevonden individu opnieuw
gegenereerd wordt toeneemt
2
X1
(4) Muteer de PPT zodat de kansenverdeling
licht gemuteerd wordt
X2
PIPE werd vergeleken met GP en bleek in staat
voor sommige problemen betere oplossingen te
vinden
Ouders
COS
SIN
CUT
CUT
+
*
+
X1
*
2
X2
2
X2
Voorbeeld van taak voor GA
SIN
Kinderen
COS
COS
X1
Het Bin Packing probleem is een NP-moeilijk
combinatorisch optimalisatie probleem:
+
*
*
+
2
X1
2
COS
X2
X2
X1
Gegeven een lijst van objecten met hun gewicht
en een bin met een bepaalde maximale capaciteit.
PIPE
Doel: deel de objecten zo in de bins dat er een
minimum aantal bins nodig is voor het verpakProbabilistic Incremental Program Evolution
(PIPE) gebruikt kansen om functies op een knoop ken van alle objecten.
in programma boom te genereren
Representatie: lijst van bin-nummer waarin elk
Het slaat één probabilistic prototype tree (PPT) object zit:
op i.p.v. alle individuen:
Voorbeelden: [1, 2, 1, 3, 1, 2, 1, 3, 1, 2, 1, 3]
en [2, 2, 4, 3, 1, 3, 1, 2, 1, 2, 1, 3]
Probabilistic Prototype Tree
SIN
COS
*
+
/
X1
X2
SIN
COS
*
+
/
X1
X2
0.23
0.11
0.19
0.06
0.06
0.19
0.06
Fitness functie: hoeveel bins worden gebruikt?
Hoe vol zijn gebruikte bins?
0.51
0.20
0.09
0.04
0.06
0.09
0.01
SIN
COS
*
+
/
X1
X2
Vraag: hoeveel kinderen kunnen er gegenereerd
worden door uniform crossover te gebruiken op
2 strings van lengte n?
0.01
0.22
0.19
0.24
0.09
0.07
0.18
Voor- en Nadelen EC
Met behulp van de PPT worden individuen gemaakt:
Voordelen:
• Begin bij wortel en kies hiervoor functie
volgens kansverdeling
• Evolutionaire algoritmen kunnen vaak direct ingezet worden
• Ga naar de subbomen van de PPT om de
benodigde argumenten voor de eerder gegenereerde functies te genereren
• Ze zijn goed in doorzoeken grote zoekruimtes
• Kunnen gebruikt worden voor vele soorten
problemen
• Totdat programma helemaal af is
• Makkelijk te parallelliseren
Leerproces in PIPE
Nadelen:
Herhaal tot stopconditie geldig:
• Soms last van voorbarige convergentie: verlies aan genetische diversiteit
(1) Genereer op bovenstaande manier een populatie van M individuen
6
• Veel individuen worden geevalueerd en dan
niet meer gebruikt
• Kan traag leerproces opleveren
• Als meeste individuen gelijke, slechte fitness hebben is er weinig selectie druk (bv.
taak: goed antwoord/ fout antwoord).
7
Transparanten bij het Inleiding Adaptieve Systemen. Artificial Life. M. Wiering
• Optimalisatie. Bv. Numerieke optimalisatie, job-shop scheduling.
• Robot leren.
Artificial Life
• Economische modellen. Zoals ontwikkeling van prijs-strategieen
Artificial life houdt zich bezig met het modelleren en simuleren van levende entiteiten en complexe systemen. Applicaties hiervan kan men
vinden in:
• Ecologische modellen. Zoals arm-races, coevolutie
• Populatie genetics modellen. Welke genen
blijven in populatie?
• Biologie. Hoe interacteren levende organismen in biologische processen?
• Economie: Hoe interacteren rationele agenten in economische omgevingen zoals aandeel markten, e-commerce, etc.
• Sociologie: Hoe interacteren agenten in gemeenschappen als ze competitieve/ collaboratieve doelen hebben?
• Bestuderen van interacties tussen evolutie
en leren
• Modellen van sociale systemen. Zoals evolutie van cooperatie.
Interactie tussen evolutie en leren
• Natuurkunde: Hoe interacteren fysische
deeltjes in een bepaalde ruimte?
Evolutie en leren zijn twee adaptie processen
voor organismen. Evolutie is langzaam en vindt
plaats over generaties van individuen. Leren is
snel en vindt plaats in een individu (agent).
ALife probeert de oorsprong en functionaliteit
van het leven te begrijpen.
Er zijn 2 mogelijke effecten van de combinatie
van evolutie en leren.
ALife probeert kunstmatige organismen te ontwerpen welke betekenisvol levend genoemd kunnen worden.
• Baldwin Effect. Een individu leert door
zijn interactie met de omgeving. Dit leren
stuurt de fitness van het individu. Hierdoor kunnen organismen die goed kunnen
leren een hogere fitness behalen. Geleerde kennis wordt niet overgedragen aan de
offspring.
ALife probeert interactie patronen tussen organismen te begrijpen.
ALife probeert multi-agent systemen te construeren welke een bepaald multi-agent gedrag modelleren, nabootsen, en eventueel optimaliseren.
• Lamarckiaans leren. Een individu leert tijdens zijn leven en geeft de geleerde kennis
door aan zijn offspring.
Voorbeelden:
• Markt economieen
Onderzoek toont aan dat leren en evolutie tegelijkertijd beter kan werken dan enkel 1 van
beiden.
• Sociale systemen
• Imuun systemen
• Ecosystemen
Ecosystemen en evolutionaire dynamica
Ecosystemen bestaan uit een aantal individuen
(agenten) welke:
Vraag: Wat is het verschil tussen AI en ALife?
GA en ALife
• Een positie in de omgeving bezetten
Genetische Algoritmen worden gebruikt voor diverse doeleinden:
• Interacteren met de omgeving en andere
agenten
1
• Een bepaalde interne toestand (bv. energie, geld) hebben.
• De cellulaire ruimte. De cellulaire ruimte is een lattice van N identieke cellen, elk
met identieke patronen van lokale connectiviteit naar andere cellen.
Door de evolutie van een ecosysteem te bestuderen kan men allerlei analogieen vinden met echte
ecosystemen. Voorbeelden hiervan zijn:
Laat Σ de verzameling toestanden zijn van
een cel. k = |Σ| is het aantal toestanden
per cel.
• Cooperatie. Bv. handel tussen agenten.
Een cel met index i is op tijdstip t in toestand sti . De toestand sti tezamen met de
toestanden van de cellen waarmee i verbonden is wordt de neighborhood nti genoemd.
• Competitie. Bv. gevechten tussen agenten.
• Nabootsen. Bv. een agent leert wat hij
moet doen door te kijken naar een andere
agent.
• De transitie regel. De transitie regel
r(nti ) geeft de update van toestand st+1
i
als een functie van zijn neighborhood.
• Parasitair gedrag. Een agent profiteert
van een andere agent.
Gewoonlijk worden alle cellen synchroon
geupdate.
• Evolutie van gemeenschappen. Binnen gemeenschappen kunnen agenten samenwerken en zich specialiseren.
De regel wordt meestal geimplementeerd
als een lookup-tabel.
Cellulaire Automaten
Voorbeeld CA
Cellulaire Automaten (CA) zijn gedecentraliseerde ruimtelijke systemen met een groot aantal
simpele identieke componenten met lokale verbondenheid.
Regel Tabel R:
Ze worden gebruikt als modellen voor biologische, sociale en fysische processen, zoals:
Lattice:
Neighborhood: 000 001 010 011 100 101 110 111
Output bit
0
1
1
1
0
1
1
0
Periodische boundary condities
t=0
1
0
1
0
0
1
1
0
0
1
0
t=1
1
1
1
0
1
1
1
0
1
1
1
• Vloeistof beweging
• Galaxy formaties
• Aardbevingen
Vraag: bepaal de nieuwe configuratie op tijdstap
t=2
• Biologische patroon vorming
• Emergent cooperatief en collectief gedrag
• Verkeers modellen
Werking in tijd van CA
• Bosbranden
De bovenstaande CA met 1 dimensie en een
neighborhood grootte van 3, is 1 van de simpelste CA.
Toch kan zo’n CA complex gedrag vertonen als
we deze voortdurend door itereren:
Formele beschrijving CA
CA bestaan uit 2 componenten:
CA zijn onderdeel van de klasse iteratieve netwerken of automata netwerken.
Verschillende soorten processen in CA
2
Zie hieronder een lattice zonder boundary condities (we tonen eigenlijk maar een klein gedeelte
van de complete lattice welke verder leeg is)
Dit leidt tot een periodieke cycle van lengte 2
voor bovenstaande initiele configuratie.
Vraag: kan bovenstaande transitie regel volgens
jou tot chaotisch gedrag leiden?
Als we een gegeven CA met een begintoestand
door itereren kunnen we verschillende soorten
patronen verkrijgen:
Opgave
Gegeven een 2-dimensionele lattice en de updateregel: als 1 buur actief is en cel was inactief
maak cel actief. Anders als cel actief was op
tijdtap t, maak cel ook actief op volgende tijdstap.
• 1 stabiele eindtoestand, waarna de evolutie (verandering) ophoudt.
• 1 cyclisch patroon. Hier bevindt de CA
zich achtereenvolgens in verschillende configuraties, maar deze configuraties vormen Evolueer de CA in onderstaande figuur:
een cyclus, zodat dezelfde toestanden steeds
terugkeren
t=0
t=1
t=2
t=3
• Chaotisch gedrag. De configuratie blijft
veranderen en komt nooit terug in dezelfde toestand (NB. dit kan in principe enkel
voor oneindig grote automaten)
• Sommige initiele patronen resulteren in complexe lokale structuren, welke soms lang
doorgaan. Hierin zit vaak de meeste informatie.
We noemen de tijdsperiode totdat er een fixed
point of periodieke cyclus optreedt de transient
period.
Vraag: wat voor vorm komt eruit als we dit proces voortdurend door itereren op een grotere lattice?
Ergens op de grens is er een fase transitie van
complex geordend gedrag naar chaotisch gedrag.
Eliminatie van de patroon basis
Voorbeeld van cyclische patronen
Sommige onderzoekers proberen een basis te vinden welke een achtergrond vormt (muren, singulariteiten) etc.
Een stabiele eindtoestand kan b.v. enkel 1’en
zijn. Transitie regels met zulke eindtoestanden
zijn makkelijk op te stellen.
Door de reguliere basis weg te halen kan inzicht
gegeven worden in de evolutie van chaotische of
turbulente processen.
Stel we hebben een 2-dimensionele lattice. De
transitie regel is: als 2 buren actief zijn, wordt
de cel geactiveerd. Anders gaat de cel uit.
Neem het volgende chaotische proces:
3
• Anders wordt de cel niet actief.
Universele rekenkracht in Game of Life
Conway’s game of life heeft ook universele rekenkracht. Deze rekenkracht berust op gliders welke informatie kunnen doorpropageren en waarmee logische and en not-gates gebouwd kunnen
worden.
Als we de reguliere achtergrond weghalen verkrijgen we:
t=0
t=1
t=3
t=4
t=2
Deze glider beweegt zich 1 hokje diagonaal na
elke 4 tijdstappen.
Door gebruik te maken van glider guns kunnen
interacties tussen gliders plaats vinden.
Voorbeeld: Als gliders elkaar treffen worden ze
vernietigd. Dit wordt gebruikt om een not-gate
te maken.
De “embedded particles” vertonen een “random
walk” gedrag.
Ontwikkeling van CA
Als de “embedded particles” elkaar kruisen, wor- Von Neumann (1966) construeerde een CA welden ze vernietigd.
ke in staat was om zichzelf te reproduceren.
Smith (1972) construeerde een CA welke contextsensitieve talen kon herkennen (bv. palindromen).
Onderzoek naar CA
CA zijn universele computatie machines. Ze zijn
dus net zo krachtig als Turing Machines.
Mitchell et. al (1994) gebruikten GA om CA
regels te evolueren. Ze probeerden dit uit op het
Er is veel onderzoek naar CA. Een bekend voor- meerderheidsprobleem in 1-dimensionele CA.
beeld van een CA is Conway’s game of life.
Dit probleem is: als de meerderheid van de celConway’s game of life is een 2-dimensionele lat- len aan staat moeten na een periode van tijd
tice met 8 buren voor elke cel. Verder zijn de alle cellen aangaan. Anders moeten alle cellen
transitie regel(s):
uitgaan.
De GA vonden hiervoor verschillende oplossingen. Sommigen maakten gebruik van embedded particles. Door de lokale verbondenheid kon
echter geen oplossing voor alle initiële configuraties het juiste antwoord genereren.
• Als een cel actief is en 2 of 3 van zijn andere buren zijn actief, dan wordt de cel
actief.
• Anders als de cel inactief is en precies 3
buren zijn actief, wordt de cel ook actief.
4
Andere CA
De experimenten tonen dat golven van activeit
over tijdsperiodes worden geevolueerd. Dus de
populatie vindt en exploiteert voortdurend nieuw
genetisch materiaal.
CA kunnen ook goed gebruikt worden voor problemen als het modelleren van verkeer. Hier is
een cel b.v. actief als er een auto op een plek
staat.
Hoewel het model vrij simpel is, wordt de evolutionaire activiteit als een bruikbare variabele
gezien om evolutie processen te meten.
De CA kan complexer worden door elke auto een
interne toestand mee te geven met de plaats van
bestemming. (Dit kan in de cel zelf gecodeerd
worden)
Markt modellen
CA kunnen ook gebruikt worden om epidemieën
mee te modelleren. Hier kan een cel een ziek,
gezond, of ziek-geweest persoon zijn.
Financiële markten zijn moeilijk te voorspellen.
De vraag is: onder welke omstandigheden zijn
voorspellingen überhaupt mogelijk?
CA kunnen ook gebruikt worden voor bosbranden. Hier kan een cel zich bv. in de toestanden
(Brand, Water, Bomen, Gras, Zand) bevinden.
Een uitgangspunt is de “Efficiente Markt Hypothese” (EMH)
In een informatieve efficiente markt zijn prijsOok kunnen extra externe parameters zoals wind
veranderingen onvoorspelbaar als er behoorlijk
het gedrag van de CA beinvloeden (eventueel
rekening mee is gehouden. Dat is als ze volledig
door dynamische transitie regels)
de verwachtingen en informatie van marktdeelnemers incorporeren.
Hieruit volgt: hoe efficienter een markt is, des te
willekeuriger zijn de prijsveranderingen die door
de markt gegenereerd worden.
Voorbeeld Strategic Bugs
Strategic bugs is een ALife model (Bedau and
Packard, 1992) waarin:
Dit komt omdat zelfs bij de kleinste informatieve
voordelen van investeerders, de acties van die
investeerders direct de mogelijke winst op die
aandelen elimineren.
• De omgeving een 2-dimensionele lattice is.
• Een cel in de omgeving een agent of voedsel kan bevatten.
• Voedsel automatisch groeit in de omgeving: af en toe komt er voedsel in een willekeurige cel
Zijn markten voorspelbaar?
Maar: 1 van de neigingen van investeerders is de
trade-off tussen verwachte risico’s en verwachte
winst.
• Bugs (agenten) overleven door het vinden
en eten van voedsel.
• Bugs gebruiken energie om te bewegen en
sterven als ze geen energie meer hebben.
Hierdoor kunnen bv. risk-aversieve investeerders aandelen verkopen met een hoog risico maar
ook een verwachte winst.
• Bugs kunnen zichzelf klonen of met een
andere bug offspring maken.
Het gevolg is dat niet alle prijsfluctuaties willekeurig zijn.
Bepaalde studies hebben inderdaad aangetoond
dat prijsfluctuaties niet volledig random zijn.
Vraag: denk je dat computer algoritmen in staat
zijn om aanzienlijke winsten te maken op de
aandelenmarkt?
Een bug wordt gemodelleerd door een lookuptabel representatie. Een voorbeeld regel is: als
er meer dan 5 voedsel units ten noordwesten zitten, maak dan een stap naar het noordwesten.
Bedau en Packard bestuderen de evolutionaire Niet rationele en volledig geinformeerde
activiteit: in welke mate worden nieuwe gene- agenten
tische vernieuwingen tot stand gebracht in de
De hypothese dat investeerders volledig ratiopopulatie?
5
neel zijn en alle benodigde informatie bevatten
is niet realistisch.
Verdienstelijke strategieën accumuleren geld, terwijl verliesgevende strategieën geld verliezen en
tenslotte verdwijnen.
Dit komt omdat menselijk gedrag onvoorspelbaar is, informatie moeilijk te interpreteren valt, Dit kan dus gedaan worden m.b.v. genetische
technologieen en instituten veranderen, en er algoritmen.
kosten verbonden zijn aan transacties en inforDe creatie van nieuwe strategieën kunnen andere
matie vergaring.
strategieën minder/meer aantrekkelijk maken.
Een veelbelovende richting is de relatieve effiEen financiële markt kan dus gezien worden als
cientheid van een markt in vergelijking met aneen co-evoluerende ecologie van handels stratedere markten. B.v. future-contracten versus opgieën.
ties.
Net als een koelkast met een efficientheid van
40% behoorlijk goed lijkt en geprefereerd wordt
ten opzichte van een koelkast met een efficientheid van 35%, worden ook bepaalde markten geprefereerd.
Reinforcement leren voor agent-modellen
Reinforcement leren kan gebruikt worden om
agenten te laten leren van hun acties. Als bepaalde strategieën winst opleveren, worden ze
meer gebruikt in de toekomst.
De kern van zo’n agent is de mapping van partiële informatie naar handelingen. Deze mapDe wens om financiële theorieën te onwikkelen
ping wordt aangepast door interactie met de omheeft geleid tot verschillende benaderingen om
geving (de markt).
de markt te verklaren:
Reinforcement leren stelt een agent dus bij tij• Psychologische benaderingen ten opzichte dens zijn leven, terwijl GA een agent doen vervan risico-neem gedrag van investeerders. dwijnen of copiëren, zodat bepaalde winstgevenHierin wordt geanalyseerd hoe de mense- de strategieën meer in de populatie zullen kolijke psychologie het economische beslis- men.
singsproces beinvloedt.
Om markt-modellen realistisch te maken, kun• Evolutionaire speltheorie. Hierin wordt de nen ook allerlei financiële indexen, technologievolutie van stabiele toestanden van popu- sche innovaties, fusies etc. gemodelleerd worden
laties van competitieve marktstrategieën in de simulatie.
bestudeerd. Dit gebeurt meestal in gesimplificeerde, ideale gesimuleerde markten.
Artificial Art en Fractals
• Agent-gebaseerde modellering van markten. Hier worden investeerders gemodel- Het itereren van een simpele functie kan comleerd als agenten die bepaalde strategieën plexe, artistieke patronen genereren.
gebruiken. Dit maakt het mogelijk om Een fractal is een patroon welke op zijn eigen
complex leergedrag en dynamica in finan- subpatronen lijkt en welke vaak gemaakt kan
ciële markten te bestuderen.
worden door simpele vergelijkingen
Modellen voor financiële theorieën
Beschouw de functie:
xk+1 = x2k
Agent-gebaseerde modellen
Een veelbelovende richting is de agent-gebaseerde Kijk naar de startwaarden voor xk waarvoor de
iteratie naar een stabiel punt convergeert
modellering.
Markt-deelnemers zijn computationele entiteiten welke strategieën gebruiken op beperkte informatie.
We kunnen direct zien dat voor de waarden −1 <
x0 < 1, iteratief updaten convergeert en het stabiele punt is x∞ = 0.
Sommige markt-deelnemers maken verlies en an- De waarden waarvoor de iteratie niet naar onderen winst.
eindig gaat noemen we de Julia verzameling
6
Fractals gemaakt m.b.v. complexe getallen
Met reële getallen kunnen er niet zo veel interessante dingen gebeuren. Dus laten we gebruik
maken van complexe getallen beschreven door
x = ai + b
Beschouw nu functies van het type:
xk+1 = x2k + C
Als meerdere agenten zich evolueren en de fitness van een agent bepaald wordt door de hele
Als we beginnen met x0 = 0, voor welke com- gemeenschap, wordt dit ook wel co-evolutie geplexe getallen C zal de iteratie voor deze functie noemd.
dan niet oneindig worden?
Cellulaire automaten zijn geschikt voor het moDeze verzameling van complexe getallen waar- delleren van bepaalde biologische, sociale en fyvoor de iteratie niet naar oneindig gaat noemen sische processen.
we de Mandelbrot verzameling
Markt economieën kunnen gemodelleerd worden
als complexe wisselwerkingen tussen agenten met
eigen gedragingen. De werking van zo’n systeem
heeft analogieën met eco-systemen.
Fractals zijn patronen welke op hun subpatronen lijken. Mandelbrot fractals kunnen gemaakt
worden met een simpel iteratief algoritme
Julia verzameling
Beschouw opnieuw de geitereerde functie:
xk+1 = x2k + C
Nu hebben we een waarde voor C welke een element is van de Mandelbrot verzameling.
Welke beginwaarden voor x0 in de complexe ruimte zorgen ervoor dat de iteratie niet naar oneindig gaat?
Deze verzameling welke behoort bij een bepaalde waarde voor C noemen we de Julia verzameling voor C.
Conclusie
ALife is geschikt om complexe processen te bestuderen, bestaande uit interacterende entiteiten.
Genetische algoritmen kunnen gebruikt worden
om entiteiten (agenten) aan te passen aan hun
veranderlijke omgeving.
7
Transparanten bij het vak Inleiding Adaptieve Systemen: Introductie. M. Wiering
Modellering m.b.v. agenten
Als een systeem gecontrolleerd moet worden, gebruiken we meestal de agent-metafoor.
Adaptieve Systemen
Adaptieve systemen zijn systemen waarin er een
wisselwerking bestaat tussen het systeem en zijn
omgeving, zodat beiden steeds transities maken
naar veranderlijke toestanden.
Een agent krijgt informatie over de toestand van
de omgeving d.m.v. inputs, en kiest op basis van
zijn interne toestand en de input een actie.
De actie leidt tot een verandering van de toestand van de omgeving.
Aan de hand van veranderende toestanden van
het systeem zal een adaptief systeem zichzelf
en/of de omgeving aanpassen om een bepaald
doel te bewerkstelligen (simulatie, optimalisatie).
Verder is een agent autonoom: hij bepaalt zelf
zijn actie en kan bepaalde subdoelen tegen elkaar afwegen.
Een agent kan ook communiceren met andere
agenten, in dit geval spreken we van een sociale
agent in een multi-agent systeem.
Een lerend adaptief systeem heeft een mogelijkheid om zijn eigen prestatie te meten en kan zijn
eigen interne parameters wijzigen om zichzelf te
verbeteren (optimaliseren).
De agent kan doelen hebben welke met een beloningsfunctie gemodelleerd kunnen worden.
Andere geassocieerde benamingen zijn:
• Cybernetica
Model voor adaptieve systemen
• Zelf-organiserende systemen
Een adaptief systeem welke interacteert met een
omgeving kan gemodelleerd worden met:
• Complexe adaptieve systemen
• Een tijd-element t = {1, 2, 3, . . .}
• De toestand van de omgeving op tijdstip
t: S(t)
Voorbeelden van adaptieve systemen zijn:
• Input van de agent verkregen op tijdstip
t: I(t)
• Robots die hun weg kunnen vinden in een
bepaalde omgeving
• Lerende systemen die data omzetten in kennis (vb. boomclassificatie)
• Automatisch rijdende auto’s of automatische vliegtuig piloten
• Een interne toestand op tijdstip t: B(t)
• Een verzameling mogelijke acties: A, met
A(t) de actie op tijdstip t
• Een policy welke de input en interne toestand afbeeldt op een actie van het systeem:
Π(I(t), B(t)) → A(t)
• Evolutionaire systemen waarin de distributie van de genenpool zich aanpast aan
de omgeving
• Een transitieregel welke de toestand van
de omgeving en de actie van het systeem
afbeelt op een volgende toestand van de
omgeving:
T (S(t), A(t)) → S(t + 1)
• Economieen waarin goed presterende bedrijven zich expanderen en anderen failliet
gaan
• Organismale systemen welke bepaalde essentiele eigenschappen handhaven om te
kunnen overleven (zoals homeostase, autonomie)
• Een beloningsfunctie voor het systeem:
R(I(t), B(t), A(t)) → R(t) of
R(S(t), A(t)) → R(t)
Vraag: Bedenk een ander voorbeeld van een adaptief systeem
1
• Een update functie van de interne toestand
van het systeem:
U (I(t), B(t), A(t)) → B(t + 1)
Een rationele agent handelt om zijn performance maat te maximaleren: v.b. doel bereiken
met minst mogelijke kosten.
Causale relaties in het model
We zien bepaalde causale relaties in het model:
Causaliteit in de tijd
t
t
S
I
I
B
A
I
B
A
R
t
t+1
S
A
S
I
B
A
B
Een autonome agent handelt op basis van zijn
eigen ervaringen. De agent voert dus niet een
vaststaand algoritme uit, maar gebruikt zijn waarnemingen om zijn gedrag te sturen (eventueel
ook bij te stellen).
Causale Graaf
I
Een agent wordt gestuurd door een programma welke draait op een architectuur (computer, hardware).
S
B
R
Het programma, de architectuur, en de omgeving bepalen het gedrag van de agent.
A
Vraag: In hoeverre bepaalt de architectuur het
gedrag van een agent?
Totale Systeem Perspectief
Voor het begrijpen van de interactie tussen de
agent en de omgeving is het van belang om naar
het gehele systeem te kijken.
Beloningsfunctie
Een voorbeeld: Bosbrand controle. De entiteiten die een rol spelen zijn bomen, bulldozers,
vliegtuigen, vuur, rookkolommen, het weer etc.
Een agent kan bepaalde doelen hebben welke hij
moet bereiken. Hiervoor zou men kwalitatieve
Goals kunnen gebruiken.
Hier zijn bulldozers en vliegtuigen de (controlleerbare) autonome agenten.
Een andere mogelijkheid is om een kwantitatief
belonings signaal te geven om een actie van de
agent te beoordelen.
Soms kan het lastig zijn om te abstraheren van
de werkelijkheid: we willen niet alle details opIn de Logica gebruikt men meestal Goals en in nemen, maar wel een realistische interactie tusdecision theory meestal utilities of beloningssig- sen agent en omgeving modelleren.
nalen.
Vraag: Welke entiteiten spelen een rol in het exploiteren van een restaurant? Wat zijn de agenten?
Het doel van de agent is om zijn som van beloningen verkregen in de toekomst te maximaliseren door het gebruik van een bepaalde policy:
∞
X
Een voorbeeld: de bekende kachel
γ t Rt
Beschouw een kachel welke ervoor moet zorgen
dat de kamertemperatuur gereguleerd wordt.
t=0
Hier is 0 ≤ γ ≤ 1 de discount factor welke bepaalt in hoeverre lange termijn beloningen mee
moeten tellen.
De kachel heeft een thermometer om de kamertemperatuur op te meten. Dit is de input van
het systeem.
De kachel heeft de acties: Verwarm of doe niets.
Intelligente agenten
De temperatuur van de kamer daalt als de kachel
uitstaat en wordt hoger als de kachel aanstaat.
Een intelligente agent kan waarnemen (d.m.v.
sensoren), redeneren, voorspellen, en handelen
(d.m.v. actuatoren).
Model van de kachel (1)
2
WORTEL (ROOT)
Kamer
Kachel
I(t) <= 21
Input
I(t) > 21 en
I(t) <= 23
I(t) > 23
Temperatuur
VERWARM
Actie
DOE NIETS
B(T) = VERWARM
VERWARM
B(T) = DOE NIETS
DOE NIETS
De gemodelleerde toestand van de omgeving S(t) U (∗, ∗, Doe niets) → Doe niets
is de kamertemperatuur.
Een simpele transitie regel voor de omgeving is
De input I(t) van de kachel is in dit geval ook als volgt:
de kamertemperatuur op tijdstip t.
T (S(t), V erwarm) → S(t) + 0.1
Als interne toestand B(t) heeft de kachel enkel
als waarden of de kachel reeds aanstond of uitstond (Verwarm of Doe niets).
T (S(t), Doe niets) → S(t) − 0.05
De beloningsfunctie hebben we alleen nodig voor
zelflerende systemen. We zouden deze kunnen
instellen als:
De acties van de kachel zijn: Verwarm, Doe
niets.
R(I, ∗, ∗) = −|I − 22|
Policy van de kachel
Dus het systeem krijgt steeds straf als de temperatuur van de 22 graden afwijkt.
Het belangrijkste element is de policy, omdat
deze de interactie met de omgeving bepaalt (en
eventueel geoptimaliseerd moet worden).
Dynamiek van de wisselwerking
Als we de kachel laten interacteren met de omgeving met een bepaalde begintemperatuur van
stel 15 graden, krijgen we een dynamiek van de
volgende parameters:
De constructie van een policy kan met de hand
gebeuren, maar kan ook geleerd worden.
We kunnen een policy voor de kachel maken,
b.v. bestaande uit als-dan regels:
• De toestand van de omgeving
(1) If I(t) ≤ 21 Then Verwarm
• De input van de kachel (in dit geval gelijk
aan de toestand van de omgeving)
(2) If I(t) > 21 and I(t) ≤ 23 and B(t) ==
Verwarm Then Verwarm
• De actie van de kachel
(3) If I(t) > 21 and I(t) ≤ 23 and B(t) == Doe
niets Then Doe niets
• De verkregen beloning
(4) If I(t) > 23 Then Doe niets
Voorbeeld: temperatuur
Beslisbomen
Omgevingen
Deze policy kunnen we ook met behulp van een
beslisboom laten zien:
Er zijn vele verschillende omgevingen, deze kunnen gekarakteriseerd worden aan de hand van de
volgende kenmerken:
Model van de kachel (2)
• Volledige info/partiële informatie. Ziet
een agent de volledige toestand van een
omgeving met zijn/haar sensoren, of slechts
een gedeelte hiervan?
De update functie voor de interne toestand van
de kachel is simpel en ziet er als volgt uit:
U (∗, ∗, V erwarm) → V erwarm
3
25
Volledige
informatie
20
Schaken met klok
Schaken zonder klok
Poker
Backgammon
Taxi rijden
Medische diagnose
Beeld analyse
Interactieve engelse leraar
10
5
10
30
50
Episodisch
Statisch
Discreet
Omgeving
Temperatuur
15
0
Deterministisch
70
90
110
130 Tijd
Yes
Yes
No
Yes
No
No
Yes
No
Yes
Yes
No
No
No
No
Yes
No
No
No
No
No
No
No
Yes
No
Semi
Yes
Yes
Yes
No
No
Semi
No
• Deterministisch vs.
Vraag: bedenk zelf een omgeving en bepaal de
Niet-deterministisch. Wordt de volgen- karakteristieken van deze omgeving.
de toestand van de omgeving uniek bepaald door de huidige toestand en de gekozen actie van de agent, of is er een kans- De interne toestand
verdeling naar opvolgende toestanden?
Dikwijls wordt er geen interne toestand gebruikt,
deze reactieve agent mapt direct input op ac• Episodisch vs. Niet episodisch. Wordt tie.
een agent steeds voor 1 losstaande keuze
gesteld welke onafhankelijk is van volgen- In sommige gevallen krijgt de agent dezelfde inde acties, of zit de agent in een wereld put in verschillende states. Zijn optimale acties
waarbij de hele sequentie van acties een kunnen dan niet van elkaar afwijken. In zulke
gevallen, gebruiken we de interne toestand om
rol speelt.
de huidige input te disambigueren.
• Statisch vs. Dynamisch. Verandert de
wereld tijdens het handelsproces, of niet.
Als de overgangen tussen toestanden veranderen, dan is de omgeving dynamisch en
speelt tijd een rol. Als de prestatie maat
(belonings functie) verandert heet de omgeving semi-dynamisch.
De interne toestand vat het verleden samen, alle
vorige inputs en acties kunnen de huidige interne
toestand bepalen.
Als de actie veel van de interne toestand en weinig van de input afhangt, kunnen we spreken
van een “introverte” agent.
In het geval van psychoses, gaat de interne toe• Discreet vs. Continu. Is de toestand stand zijn eigen weg en kan het geloof erin door
van de wereld discreet gerepresenteerd (vb. nieuwe inputs en acties moeilijk weerlegd worschaken) of niet, v.b. robot in continue den.
omgeving met snelheid, x en y positie etc.
Vraag: Hoe verandert de yogi zijn interne toestand met meditatie?
Partiële informatie, niet-deterministische, niet
episodische, dynamische, continue omgevingen
zijn het moeilijkst voor de optimalisatie van agen- Multi-agent systemen
ten.
Als er meerdere agenten zijn, spreken we van
Simulatie kan altijd, maar een goed voorspellend een multi-agent systeem (MAS).
model is soms weer heel moeilijk te maken (vb.
Hoewel het hele systeem in veel gevallen ook met
weersvoorspelling).
1 superagent gemodelleerd kan worden, heeft
De complexiteit van het gedrag van een agent het opsplitsen van het systeem in meerdere gehangt vaak af van de complexiteit van de omge- decentraliseerde agenten bepaalde voordelen:
ving (vb. Simon’s Ant).
• Robuustheid
• Snelheid (Distributed computing)
Voorbeelden van omgevingen
4
Yes
Yes
Yes
Yes
No
No
No
Yes
• Eenvoudigere uitbreidbaarheid of verandering
• Bosbranden bestaande uit vele bomen die
de brand doorpropageren
• Information hiding (privacy)
• Infectie ziekten bestaande uit virussen en
virusdragers
• Magnetisme bestaande uit deeltjes welke
positief of negatief geladen kunnen zijn
Model van een multi-agent systeem
Als we te maken hebben met een multi-agent
systeem, kunnen we de enkele agenten modelleren als hiervoor (met inputs, acties, interne toestand, policy, beloningsfunctie, update functie)
• Ecologieen bestaande uit vele soorten dieren welke elkaar opeten en nakomelingen
produceren.
• Economische markten welke bestaan uit
vele verschillende beleggers
In sommige gevallen wordt het systeem ook uitgebreid met communicatie tussen agenten.
De agenten hebben dan de beschikking over com- Vraag: welke van deze processen kunnen beter
municatie signalen (een taal) en mappen inputs met MAS gemodelleerd worden?
en interne toestand op een communicatie signaal.
Predator-prooi systeem
Zo’n communicatie signaal kan aan alle agenten
worden gestuurd (broadcasting), maar ook naar Een simpel voorbeeld van een systeem bestaaneen enkele agent.
de uit meerdere entiteiten is een predator-prey
systeem.
Communicatie is van belang als de agenten moeten coopereren. De agenten moeten dan op een De predator gaat op zoek naar prey (prooi) om
bepaalde manier gecoordineerd worden.
op te eten en plant zich voort.
De prooi gaat zelf ook op zoek naar voedsel,
probeert de predator te ontwijken, en plant zich
voort.
Complexe Adaptieve Systemen
Bepaalde systemen bestaande uit meerdere entiteiten worden in sommige gevallen complexe
adaptieve systemen genoemd.
De populatie van prooien en predatoren hangen
van elkaar af.
Als er veel predatoren zijn, daalt de populatie
prooien.
Het verschil met multi-agent systemen is dat het
niet zozeer gaat om de controle en optimalisatie van een systeem, maar meer om simulatie.
Entiteiten worden hier vaak als niet rationeel
verondersteld.
Als er dan weinig prooien meer zijn, daalt de
populatie predatoren.
Als er weinig predatoren meer zijn, groeit de
populatie prooien.
In complexe adaptieve systemen kunnen simpele
regels een complex gedrag genereren als er meerdere entiteiten met elkaar kunnen interacteren.
Lotka-Volterra vergelijkingen
We zeggen dan dat de totale dynamiek emergeert uit de wisselwerking tussen de entiteiten
en de omgeving.
We kunnen zo’n systeem vatten m.b.v. bepaalde
regels. Een bekend model is het gebruik van
Lotka-Volterra vergelijkingen.
We noemen de grootte van de populatie prooien
x en de de grootte van de populatie predatoren
y.
Vervolg Complexe adaptieve systemen
Voorbeelden van processen die we met complexe
adaptieve systemen kunnen modelleren zijn:
Nu stellen we als toestand S(t) = (x(t), y(t))
met:
• Het verkeer bestaande uit vele weggebruikers
x(t + 1) = x(t) + Ax(t) − Bx(t)y(t)
5
Een systeem is chaotisch als het niet in een stabiel punt terecht komt, en er ook geen periodieke
cykels zijn. Het systeem herhaalt zich dan nooit.
y(t + 1) = y(t) − Cy(t) + Dx(t)y(t)
Voorbeelden dynamiek:
Het is vaak moeilijk te detecteren of een systeem
echt chaotisch is, de cykel zou erg lang kunnen
zijn!
Vraag: denk je dat chaos in een computerprogramma mogelijk is?
Inhoud van dit vak
We gaan de volgende onderwerpen behandelen
in de vervolg colleges:
Vraag: Teken de dynamiek op de x- en y-assen
• Cellulaire Automaten
Stabiel punt
• Artificial Life
De dynamiek kan leiden tot een stabiel punt, periodisch zichzelf herhalen, of chaotisch zijn (altijd veranderlijk)
• Biologische Adaptieve Systemen
Voor een stabiel punt is het van belang dat alles
gelijk blijft. Dus x(t+1) = x(t) en y(t+1) = y(t)
• Robotica
• Co-evolutie
• Evolutionary Computation (2 colleges)
We kunnen een stabiel punt (x(∗), y(∗)) vinden
door de vergelijkingen:
• Lerende Machines
1. Decision Trees
x(∗) = x(∗) + Ax(∗) − Bx(∗)y(∗)
0 = A − By(∗)
A
y(∗) =
B
(1)
(2)
2. Bayesian Learning
(3)
4. Self-organizing maps
3. Neurale Netwerken
• Reinforcement leren (3 colleges)
y(∗)
0
x(∗)
= y(∗) − Cy(∗) + Dx(∗)y(∗)
(4)
= −C + Dx(∗)
C
=
D
(5)
Praktische Informatie
(6)
De toetsing van het vak bestaat uit:
• 2 Deeltentamens (beide 40% van het eindcijfer)
Periodieke cykels
In bepaalde gevallen treedt er een herhaling op
in een systeem. We spreken dan van een periodieke cykel.
• Inlever opgaven (20% van het eindcijfer)
• Practicum opdrachten (Verplichte voldoende)
We hebben te maken met een periodieke cykel
van lengte n als:
De inlever opgaven dienen binnen een week nadat de opgaven verspreid zijn, ingeleverd te worden.
S(t) = S(t + n)
S(t + 1) = S(t + n + 1)
Een aantal van de prakticum opgaven zijn op te
halen van het lokweb (www.ou.nl/lokweb).
. . .
S(t + n − 1) = S(t + 2n − 1)
6
Conclusie
We hebben inzicht opgedaan in adaptieve systemen welke interacteren met een omgeving.
Adaptieve systemen kunnen goed gemodelleerd
worden d.m.v. agenten met policies en een interne toestand.
Als er meerdere agenten zijn, spreken we van
multi-agent systemen (MAS). De agenten in een
MAS kunnen dikwijls met elkaar communiceren.
Veel natuurlijke processen kunnen gemodelleerd
worden met multi-agent systemen (optimalisatie) of complexe adaptieve systemen (simulatie).
De dynamiek van een systeem resulteert uit de
begintoestand en de regels welke de nieuwe toestand bepalen.
De dynamiek kan leiden naar een stabiel punt,
kan periodiek gedrag vertonen of chaotisch zijn.
7
Reinforcement Leren
Marco A. Wiering
([email protected])
Intelligent Systems Group
Institute of Computing and Computing Sciences
Universiteit Utrecht
Samenvatting
Dit korte overzichtsartikel beschrijft reinforcement leren als methode om agenten
mee te leren controleren. Allereerst wordt de theoretische achtergrond van optimale
controle theorie besproken. Vervolgens worden de principes van reinforcement−leer
algoritmen en de belangrijkste 3 algoritmen beschreven. Tenslotte wordt kort
ingegaan hoe RL algoritmen uitgebreid kunnen worden met exploratie technieken en
functie approximatoren om het voor meer praktische problemen te gebruiken.
1 Introductie
Reinforcement leren (RL) stelt een agent in staat om te leren van zijn eigen
ervaringen. De betekenis van reinforcement leren is "versterkings leren". Dat houdt in
dat als de agent iets doet waarvoor die beloning krijgt, de agent dat gedrag daarna
vaker zal uitproberen. Het doel van een agent is om zo veel mogelijk beloning over de
lange termijn te vergaren. Hiervoor moet de agent verschillende gedragingen
uitproberen en evalueren. Door het leren van het uitproberen van verschillende acties,
kan de agent op een gegeven moment leren welk gedrag optimaal is. Hiervoor worden
waarde−functies gebruikt welke weergeven hoe goed het is voor de agent om zich in
een bepaalde toestand van de wereld te bevinden en hoe goed het is om dan een
bepaalde actie te verrichten. Figuur 1 illustreert de interactie van een RL agent met
zijn omgeving. De agent krijgt inputs van de omgeving binnen en selecteert daarmee
zijn actie. Na het verrichten van zijn actie krijgt de agent een belonings signaal en
maakt de agent een stap naar een nieuwe toestand in de wereld.
Omgeving
Beloning
Input
Actie
Agent
Figuur 1: Een RL agent die interacteert met zijn omgeving
Reinforcement leren is een groeiend onderzoeksveld. Zo is het al gebruikt om het spel
Backgammon mee te leren (Tesauro, 92). In het begin werd hiervoor een neuraal
netwerk random geinitialiseerd en dit netwerk werd gebruikt als evaluatie functie voor
bordposities. Aanvankelijk speelde het netwerk dus willekeurige zetten. Na elke
gespeelde partij werd de evaluatie functie bijgesteld door middel van een RL
algoritme. Na het spelen van ruim 1 miljoen partijen tegen zichzelf, hetgeen in 1992
drie maanden kostte op een RS6000 computer, was het programma zo goed geworden
dat deze zich tot de beste spelers van de wereld mocht rekenen. Reinforcement leren
is ook gebruikt om robots te controlleren, om te leren schaken, om liften in een
gesimuleerd gebouw te controlleren, voor verkeerslicht controle, etc.
De theorie van reinforcement leren gaat terug naar de theorie om systemen optimaal
te controlleren in een bekende omgeving. Deze theorie van "optimale controle" hield
zich bezig met dynamisch programmeren om gegeven een probleem specificatie een
optimale oplossing te berekenen. Het interessante van reinforcement leren is dat de
omgeving initieel geheel onbekend kan zijn, en de agent zelf de effecten van zijn
acties moet leren en ook moet leren wat het doel is in deze omgeving. Een RL agent
zal dus in het begin willekeurige acties uitvoeren om informatie mee te vergaren. Als
de agent een keer beloning krijgt, kan deze natuurlijk het gedrag herhalen dat tot de
beloning leidde, maar dat heeft weinig zin om bepaalde redenen: (1) De omgeving is
meestal stochastisch dus een herhaling van gekozen acties hoeft niet altijd tot het
bereiken van het doel te leiden; (2) De agent wil een optimale controller te leren en
initiele "trials" die tot het doel leiden zijn meestal verreweg van optimaal. Dus moet
de agent exploreren om ook andere acties uit te proberen.
De theorie van reinforcement leren vertelt ons dat een agent uiteindelijk optimaal zal
worden als aan een aantal condities voldaan is. Uiteindelijk betekent hier dat de agent
alle acties in alle toestanden oneindig vaak moet hebben uitgeprobeerd. Hoewel dat
voor praktische toepassingen dus onmogelijk is, kan er vaak na een eindig aantal
"trials" al gestopt worden, en is de controller meestal al vrij goed. Langer uitproberen
kan de agent wel verbeteren, maar een optimale oplossing kan nooit gegarandeerd
worden in eindige tijd. Dit heeft te maken met de stochasticiteit in de omgeving. De
agent zal namelijk nooit de kansen precies kennen van de echte transitie functie: wat
is de kans dat de agent zich na het uitvoeren van een bepaalde actie in een bepaalde
toestand in een nieuwe toestand bevindt? Als deze kans bijvoorbeeld 0.543 is, en de
agent probeert deze actie 1000 keer uit, dan kan de voorspelde kans bijvoorbeeld
0.527 zijn, maar precies weet de agent het nooit. In sommige gevallen is het
noodzakelijk om alle overgangskansen precies te kennen om het optimale gedrag te
leren en dit kost nu eenmaal oneindig veel tijd. Toch laten allerlei onderzoeken zien
dat het goed mogelijk is om een agent na eindige tijd te stoppen. In de meeste
gevallen is dan een goede of bijna optimale oplossing gevonden.
In dit korte overzichtsartikel zullen we allereerst de modellering van het probleem aan
de hand van Markov decision problems (MDPs) bespreken en ingaan hoe we met
dynamisch programmeer algoritmen hiervoor optimale oplossingen kunnen
berekenen. Vervolgens komt in Hoofdstuk 3 reinforcement leren aan de orde. Hier
worden de principes van reinforcement−leer (RL) algoritmen besproken en worden
drie verschillende algoritmen beschreven. In Hoofdstuk 4 wordt kort beschreven hoe
de agent kan exploreren om de hele toestandsruimte te doorlopen en hoe de agent
m.b.v. functie approximatoren waardefuncties voor zeer grote of continue
toestandsruimtes kan leren. Hoofdstuk 5 concludeert dit overzicht.
2 Dynamisch Programmeren
Dynamisch programmeren wordt gebruikt voor verschillende toepassingen zoals in
vision, bio−informatica, en optimale controle theorie. De toepassing is meestal om
door herhaalde updates van een bepaalde functie over een toestandstuimte, een
resulterende (optimale) functie te vinden. We zullen hier allereerst ingaan op de
modellering van het controle probleem waarin wij geinteresseerd zijn.
2.1 Markov Decision Problems
Markov decision problems (MDPs) zijn problemen welke bestaan uit een aantal
discrete toestanden, een aantal acties welke in de verschillende toestanden verricht
kunnen worden, een transitiefunctie welke aangeeft naar welke toestand de wereld zal
gaan als de agent een bepaalde actie in een toestand zal uitvoeren, en een
beloningsfunctie welke aangeeft hoeveel beloning de agent krijgt als deze een actie
uitvoert in een bepaalde toestand. Meer formeel bestaat een MDP uit:
1) Een verzameling mogelijke toestanden van de wereld: S = {s1 , s2 , ...., sN}
2) Een verzameling acties welke uitgevoerd kunnen worden: A = {a1, a2, ... aM}
3) Een transitiefunctie welke de kans aangeeft om naar een nieuwe toestand s(t+1) te
gaan na het uitvoeren van actie a(t) in toestand s(t). Deze kans wordt genoteerd als:
P(s(t), a(t), s(t+1)). Deze transitiefunctie moet voor alle acties in alle toestanden
gespecificeerd worden en is gewoonlijk stationair (onafhankelijk van de tijd).
4) Een beloningsfunctie welke aangeeft hoe veel beloning r(t) de agent krijgt voor het
uitvoeren van actie a(t) in toestand s(t) waarna de agent een stap maakt naar
toestand s(t+1). Deze beloningsfunctie wordt genoteerd als R(s(t), a(t), s(t+1)).
5) Een discountfactor γ welke onmiddelijke beloningen afweegt tegen beloningen die
later worden ontvangen. Dit zorgt er b.v. voor dat een agent liever zo snel mogelijk
een schaakwedstrijd wint in plaats van te winnen na een groot aantal zetten.
6) Een tijdsindicator t = {1, 2, ....., T} waarin T ook oneindig kan zijn.
De bedoeling is nu dat de agent een reeks acties executeert welke zijn behaalde
gedisconteerde som van beloningen maximaliseert. De agent gebruikt zijn policy−
functie π(.) om toestanden op acties te mappen:
a(t) = π(s(t))
In het begin is de optimale policy onbekend. Het doel is nu om de policy te vinden
die de volgende functie maximaliseert:
π*(.) = arg max E(Σt γt R(s(t), π(s(t)), s(t+1)))
π(.)
Hier wordt dus gekeken naar alle mogelijke policy−functies en wordt bekeken
hoeveel "discounted" beloning de agent gemiddeld ontvangt door het volgen van een
bepaalde policy. De E−operator is hier een verwachtings operator welke het
gemiddelde van alle mogelijke trajecten in de toestandsruimte bepaalt. De
hoeveelheid beloning is de (gedisconteerde) som van alle beloningen verkegen tijdens
alle toekomstige stapjes (acties). Het moge duidelijk zijn dat we deze optimale policy
niet zo maar kunnen berekenen. We zouden de verwachte beloningssom van alle
mogelijke policies wel kunnen uitrekenen, maar er zijn een exponentieel aantal
policies. Het aantal policies is namelijk MN waarbij M het aantal mogelijke acties van
de agent is, en N het aantal mogelijke toestanden.
2.2 Dynamisch Programmeren
We kunnen de optimale policy berekenen met behulp van dynamisch programmeer
algoritmen. Allereerst voeren we twee waardefuncties in: een toestand waardefunctie
V(s) welke aangeeft hoeveel de som van de toekomstige beloningen wordt als de
agent zich in toestand s bevindt en policy π gebruikt wordt om acties te selecteren.
Ten tweede gebruiken we een actie−selectie waardefunctie Q(s,a) welke aangeeft hoe
groot de verwachte som van de toekomstige beloningen wordt als de agent in toestand
s zit en actie a selecteert, waarna de agent met policy π verder gaat. Deze functies
dienen ervoor om verschillende policies met elkaar te vergelijken en kunnen recursief
berekend worden. We willen allereerst dus dat V(s) de volgende waarde aanneemt:
V(s) = E(Σt γt R(s(t), π(s(t)), s(t+1)) | s(0) = s)
Of te wel de gedisconteerde som van toekomstige beloningen. Nu kunnen we
gebruik maken van een lokale vergelijking om Q(s,a) te bepalen. We constateren
dat de waarde van een actie in een toestand gelijk moet zijn aan de onmiddelijk
ontvangen beloning plus de som van de beloningen die vanuit de nieuwe toestand
wordt verkregen. Verder is er een kansverdeling om naar opvolgende toestanden te
gaan. Met deze kennis kunnen we Q(s,a) dus als volgt bepalen:
Q(s,a) = Σs’ P(s,a,s’) ( R(s,a,s’) + γ V(s’))
Hiermee kunnen we dus Q bepalen als we V kennen. V kennen we nog niet, maar
we kunnen V recursief uitdrukken in een vergelijking over de Q−waarden van de
verschillende acties. De waarde van een toestand is namelijk gelijk aan de Q−waarde
van de beste actie in die toestand. Dit houdt dus in dat we V als volgt kunnen bepalen:
V(s) = Maxa Q(s,a)
Tenslotte kunnen we de policy bepalen als we de Q−waarden van de verschillende
acties weten. De beste actie in een toestand is namelijk de actie met de hoogste Q−
waarde in die toestand:
π(s) = Arg Maxa Q(s,a)
Nu hebben we dus drie formules om V, Q, en π te bepalen. Ze zijn echter allemaal
van elkaar afhankelijk: als we de waarde van een toestand niet weten, kunnen we
ook de waarde van een actie in een toestand, die een kans heeft om naar de nog niet
geevalueerde toestand te gaan, nog niet bepalen. Dit lossen we op door recursief te
itereren. De Bellman vergelijking (Bellman, 57) vertelt ons dat de optimale Q* en
V* waarden aan de volgende vergelijking moeten voldoen:
Q*(s,a) = Σs’ P(s,a,s’) ( R(s,a,s’) + γ V*(s’)),
waarbij V* opnieuw uitgedrukt kan worden in termen van Q:
V*(s) = Maxa Q*(s,a)
Dit betekent dus dat er een fixed point is in de waardefunctie ruimte. Als we
eenmaal de optimale Q* en V* functie hebben gevonden, maakt dooritereren
niets meer uit: alles blijft dan gelijk. Ter illustratie Figuren 2a en 2b: hier worden de
optimale policy en waardefunctie afgebeeld voor een klein doolhof probleem waarbij
elke stap 1 punt kost en het bereiken van het doel met 10 punten beloond wordt. Merk
op dat er maar 1 optimale V−functie bestaat, maar meerdere optimale policies
(sommige toestanden hebben meerdere mogelijke optimale acties).
G
5
6
6
7
5
6
4
Figuur 2a: De optimale policy in
een doolhof
10
8
9
8
6
7
Figuur 2b: De optimale waarde
functie in deze doolhof
Hoe kunnen we deze optimale policy en waardefuncties nu berekenen? We beginnen
met een initiele Q− en V−functie en itereren totdat er niets meer verandert. Dit wordt
bijvoorbeeld gedaan door het Value Iteratie algoritme:
1) Initialiseer V(s) en Q(s,a) voor alle toestanden s en acties a. Meestal wordt hier
V(s) = 0 en Q(s,a) = 0 voor alle toestanden en acties.
2) Herhaal stappen 3−5 totdat de waarde−functie niet of nauwelijks meer verandert.
3) Update de Q−functie voor alle toestanden en acties m.b.v. de volgende
vergelijking:
Q(s,a) = Σs’ P(s,a,s’) ( R(s,a,s’) + γ V(s’))
4) Pas de V−functie aan:
V(s) = Maxa Q(s,a)
5) Pas de policy aan:
π(s) = Arg Maxa Q(s,a)
Dit algoritme geeft de optimale Q*, V*, en policy terug, hoewel je hiervoor oneindig
vaak moet dooritereren. Meestal wordt met de iteratie gestopt als de waarde−functie
V nauwelijks meer verandert; dus als |Vt+1(s) − Vt(s)| < ε, voor alle toestanden s,
waarbij ε een kleine waarde heeft. Als we dat doen, verkrijgen we een sub−optimale
oplossing welke beter is naarmate ε kleiner is.
2.3 Dynamisch Programmeren als Tool voor Planning
Als het model met transitiekansen en beloningen a−priori gegeven is, kan met behulp
van dynamisch programmeer algoritmen de optimale oplossing berekend worden.
Voor Pad−plannings problemen is dit vaak veel efficienter dan het gebruik van
conventionele padplanners zoals Breadth of Depth first search. In principe lijkt het
algoritme wel wat op A* of Dijkstra’s korste pad algoritme, maar deze standaard
algoritmen kunnen niet met kansverdeling omgaan of met positieve beloningen
(negatieve kosten), hetgeen DP algoritmen algemener bruikbaar maakt. Een voordeel
van DP is dat alle informatie om een actie te selecteren in de policy zit. Dus als de Q−
en V−functies nauwkeurig zijn hoeft er tijdens de executie van een agent niets meer
geplanned te worden; de agent kan reactief in een toestand een actie selecteren en
executeren. Er is dus een trade−off tussen de nauwkeurigheid van de waardefuncties
en een mogelijke planning of lookahead strategie waarin gekeken wordt welke
reeksen van acties ondernomen kunnen worden. Een goed voorbeeld om dit
onderscheid duidelijk te maken is een spelprogramma zoals een schaakprogramma.
Een schaakprogramma bestaat uit een evaluatie functie en een methode om zetten
vooruit te rekenen. Als de evaluatie functie perfect is, is er geen noodzaak om dieper
dan 1 zet te rekenen. Voor schaakprogramma’s is het echter vrijwel onmogelijk om
een perfecte evaluatie functie te hebben vanwege het enorme aantal toestanden,
lookahead blijft hiervoor dus noodzakelijk. Voor bepaalde problemen als pad−
planning of navigatie in stationaire werelden is lookahead echter niet noodzakelijk en
kunnen we dus een snelle reactieve agent gebruiken. Helaas is DP alleen mogelijk als
het model a−priori gegeven is. Als dit niet het geval is, moeten reinforcement−leer
algoritmen toegepast worden. Dit wordt besproken in het volgende hoofdstuk.
3 Reinforcement Leren
Reinforcement leren (Kaelbling et al, 96; Sutton en Barto, 98) stelt een agent in
staat te leren van zijn interactie met een omgeving. Initieel wordt de agent in een
startpositie gezet en weet de agent niets over de overgangskansen en beloningen.
Merk dus op dat de agent geen initieel doel kent; het enige dat de agent wil is zijn som
van toekomstige beloningen maximaliseren, maar hoe hij dit moet doen moet hij zelf
leren. Nadat een trial is begonnen, verkrijgt de agent na elke actie informatie om van
te leren (we gaan allereerst weer uit van een discrete toestand/actie ruimte):
– Agent zit in toestand s(t)
– Agent selecteert actie a(t) = π(s(t))
– Agent executeert actie en gaat naar toestand s(t+1) en vergaart beloning r(t)
– Agent maakt een aanpassing van zijn waarde−functies m.b.v. de informatie
(s(t), a(t), s(t+1), r(t))
Als nu een RL algoritme gebruikt wordt, leert de agent steeds beter om acties te
selecteren welke hem een hoge lange termijn som aan beloningen geven. Voor de
aanpassing van de waarde functies bestaan er 3 conventionele RL algoritmen: (1) Q−
leren, (2) Monte Carlo Sampling en (3) Model−gebaseerde RL. We zullen ze alle 3
bespreken.
3.1 Q−leren
Q−leren (Watkins, 89) past 1 Q−waarde aan na elke stap. Nadat een stap gemaakt
is en de informatie (s(t), a(t), s(t+1), r(t)) bekend is, maakt Q−leren de volgende
leerstap:
Q(s(t), a(t)) = (1 − α) Q(s(t), a(t)) + α (r(t) + γ V(s(t+1)))
Hierin is α de leersnelheid welke een waarde tussen 0.0 en 1.0 heeft. In principe
verschuift de Q−leerregel de Q−functie na elk stapje een beetje om met de laatste
ervaring (stap) rekening te houden. Merk op hoe dicht de Q−leerregel bij DP
algortimen staat: de kansverdeling is vervangen door een leersnelhied. Als α
langzaamaan afneemt zodat aan bepaalde eisen voldaan is, convergeert de Q−functie
met Q−leren naar de optimale Q*−functie als alle toestanden/actie paren oneindig
vaak uitgeprobeerd worden. Q−leren is onder andere gebruikt om liften mee te
controleren in een gesimuleerd gebouw. Hiervoor werd Q−leren gecombineerd met
neurale netwerken (Crites and Barto, 96). Het resulterende algoritme was in staat om
4 liften beter te controlleren dan conventionele controllers en kan daarmee de totale
wachttijd met 15% reduceren.
Q−leren leert steeds maar 1−stapje terug; de updates die van een doellokatie
naar een beginlokatie gaan worden dus maar langzaam verricht. Stel bijvoorbeeld
dat een agent moet leren dat er honderd passen rechts een doellokatie is. De eerste
trial beweegt de agent zich random (hij heeft immers nog niets geleerd). Als de
doellokatie nu gevonden wordt, en de agent daarvoor beloning krijgt, wordt enkel
de laatste stap geupdated door de uiteindelijke positieve beloning. Dit zorgt soms dus
voor een lang leerproces. Manieren om dit leren te versnellen zijn om gebruik te
maken van Q(λ) leren (Peng and Williams, 96). We zullen daar nu niet verder op
ingaan.
3.2 Monte Carlo Sampling
Monte Carlo sampling wordt gebruikt voor verschillende sampling methoden. In
principe berust deze methode op het genereren van uitkomsten en het middelen van
deze uitkomsten om een schatting te krijgen van de echte waarde (of kans op iets).
Monte Carlo sampling werkt als volgt; de agent maakt een trial en stelt het leren
uit (het is dus een off−line lerende agent). Tijdens de trial houdt de agent precies
bij welke toestanden deze heeft gezien, welke actie hij daarin heeft verricht en
hoeveel beloning hij heeft gekregen. Nadat de trial van de agent afgelopen is,
wordt allereerst een cumulatieve reinforcement signaal berekend voor elk tijdstip tot
het einde van de trial:
R(t) = Σi=t γi−t r(i)
Vervolgens worden alle voorgekomen (s(t), a(t)) paren geupdated m.b.v.:
Q(s(t), a(t)) = (1 − α) Q(s(t), a(t)) + α R(t)
Er wordt hierbij dus een verschuiving gemaakt van de Q−functie naar de bepaalde
som van beloningen in de trial. Er valt nog onderscheid te maken tussen first−visit
en every−visit Monte Carlo methoden. De first−visit methode maakt 1 update (alleen
voor de allereerst voorkomende (s, a) paar en de every−visit methode maakt een
update voor alle keren dat (s, a) is voorgekomen in een trial. Als we een waar
gemiddelde als uitkomst willen hebben (we berekenen dan het gemiddelde van alle
trials waarin (s, a) voorkwam) dan kunnen we dan doen door de leersnelheid als volgt
te laten afnemen:
α = 1 / Ν(s,a)
Waarin N(s,a) het aantal keren is dat paar (s,a) is geupdated. Monte Carlo sampling
heeft als voordeel dat de hele toekomst wordt gebruikt om te updaten. Het lijkt
daarom wellicht dat Monte Carlo sampling sneller naar de optimale Q−functie zal
convergeren dan Q−leren. Dit is echter vaak niet het geval, de variantie van de
updates wordt namelijk veel groter. Hoewel Monte Carlo sampling geen bias heeft (de
huidige Q−functie wordt helemaal niet gebruikt) is de variantie erg hoog. De variantie
is erg hoog omdat de hele stochastische toekomst gebruikt wordt in de update, en deze
toekomst kan veel verschillende uitkomsten genereren. Aangezien de fout van de Q−
functie opgesplitst moet worden in de bias en variantie, kan het zo zijn dat Monte
Carlo sampling een hoge fout in zijn huidige schatting heeft door de hoge variantie in
de updates.
Een andere probleem is dat exploratie acties een grote verstorende rol kunnen hebben
in Monte Carlo sampling. Exploratie is nodig (zie ook het volgende hoofdstuk) om de
optimale Q−functie te kunnen leren, maar veel exploratie met Monte Carlo sampling
zorgt voor een door de exploratie gebiasde feedback. Aangezien door exploratie soms
slechte of sub−optimale acties geselecteerd worden, kan de verkregen som van
beloningen soms veel lager uitvallen dan wat de huidige beste policy zou hebben
verkregen. Q−leren heeft hier geen last van en wordt ook wel off−policy leren
genoemd: bij Q−leren wordt altijd enkel de Q−functie aangepast op de direct gekozen
actie en hebben exploratie acties geen verstorende invloed.
3.3 Model−gebaseerd Reinforcement Leren
Het derde en laatste reinforcement−leer algoritme is gebaseerd op het gebruik van
een model. Dit model schat de transitie kansen en beloningen op de transities en
gebruikt vervolgens dynamisch programmeer−achtige algoritmen om de waarde−
functies te updaten. Dit zorgt vaak voor een leeralgortime welke veel minder
ervaringen nodig heeft om een goede of de optimale Q−functie te leren. Het algoritme
vereist echter wel dat de transitiefunctie wordt opgeslagen, dus is de ruimte−
complexiteit van het leeralgoritme hoger dan bij Q−leren of Monte Carlo sampling.
In model gebaseerd reinforcement leren gebruiken we een aantal tellers om de
transitie en beloningsfunctie te schatten uit de verkregen ervaringen van de agent.
Hiervoor introduceren we de volgende tellers:
C(s, a)
C(s, a, s’)
= aantal keren dat actie a in toestand s is verricht.
= aantal keren dat actie a in toestand s is verricht en de agent een stap
heeft gemaakt naar toestand s’.
RT(s, a, s’) = som van onmiddelijke beloningen nadat actie a in toestand s is verricht
en er een stapje werd gemaakt naar toestand s’.
Uit deze tellers (welke real numbers kunnen zijn), kunnen we de transitie− en
beloningsfunctie als volgt schatten:
P’(s, a, s’) = C(s, a, s’) / C(s, a)
en
R’(s, a, s’) = RT(s, a, s’) / C(s, a, s’)
Na het aanpassen van de transitie− en beloningsfunctie na elk stapje kunnen we
dynamisch programmeer algoritmen (value iteratie) gebruiken om direct een
nieuwe waarde functie te berekenen. Dit is echter erg traag, omdat de hele
Q−functie opnieuw berekend gaat worden op basis van 1 verandering van het model.
Om hier versnelling in aan te brengen zijn er 2 algoritmen bedacht: real−time
dynamisch programmeren en Prioritized Sweeping (Moore and Atkeson, 93). Real−
time dynamisch programmeren past de Q−functie in een beperkt aantal iteraties (b.v.
1 of 5) aan zodat elke update niet te lang gaat duren. Prioritized Sweeping (PS)
bekijkt welke Q−waarden aangetast worden door de laatste update en past enkel deze
waarden aan. In principe werkt PS net als een nieuwsflits, als er ergens in een
gebied een waarde geupdated wordt, worden enkel naburige toestanden opnieuw
geupdated. Dit zorgt voor een heel snel algoritme om de noodzakelijke updates door
te voeren voor de grootste aangetaste Q−waarden en andere Q−waarden niet te
updaten. Experimenten hebben aangetoond dat PS veel sneller dan Q−leren of Monte
Carlo sampling een goede schatting van de optimale Q−functie kan leren. Model−
gebaseerde RL kan echter alleen gebruikt worden als de toestandsruimte goed
gediscretiseerd kan worden en niet te groot is.
4 RL in de Praktijk
We hebben nu gezien hoe drie verschillende RL−algoritmen eruit zien. In de praktijk
combineren we deze technieken met enkele andere methoden om een goed werkend
syteem te verkijgen. De eerste methode is het gebruik van exploratie om de optimale
Q−functie te leren, de tweede methode maakt gebruik van functie approximatoren
voor het omgaan met grote of continue toestand/actie ruimtes.
4.1 Exploratie
Als we steeds acties selecteren met behulp van de huidige greedy policy π(.)
verkrijgen we meestal een lokaal optimum terug. Het kan namelijk zo zijn dat de
Q−waarden van de huidige policy hoger zijn dan de Q−waarden van alternatieve
acties waardoor deze nooit uitgeprobeerd worden. Het doel van exploratie is dus om
van tijd tot tijd alternatieve acties te selecteren om zo op zoek te gaan naar de
optimale policy.
De meest eenvoudige exploratie methode is de Max−random methode. Hierin wordt
de huidige beste actie gekozen met kans (1 − ε) en een alternatieve random actie met
kans ε. Als de exploratie−rate ε langzaam naar 0 gaat, worden er steeds meer acties
verricht volgens de greedy policy, terwijl er aan het begin veel geexploreerd wordt.
De Max−random exploratie methode wordt het vaakst gebruikt. Men kan ook
gebruik maken van de Boltzmann exploratie methode welke kansen om een actie
te selecteren gegeven de Q−functie als volgt bepaald:
P(a(t) | s(t)) = exp(Q(s(t), a(t)) / τ) / Σ a exp(Q(s(t), a) / τ)
Hierin is τ de (afnemende) temperatuur (als deze 0 is wordt de greedy actie
geselecteerd, als deze oneindig is worden random acties geselecteerd).
De twee bovengenoemde exploratie methoden zijn indirecte exploratie methoden;
ze houden geen rekening met wat de agent al bezocht heeft of in welke toestanden de
agent al veel informatie verzameld heeft. Directe exploratie methoden maken hier wel
gebruik van. Zo kan de agent bijvoorbeeld steeds de actie selecteren welke het minst
vaak geselecteerd is en als alle acties in alle toestanden een N aantal keer geselecteerd
zijn, kan de agent meer greedy gedrag gaan vertonen. Voor model−gebaseerd leren
bestaan er enkele efficiente directe exploratie algoritmen om de hele toestandstuimte
te doorlopen (Wiering and Schmidhuber, 1998). Deze algoritmen kunnen het leren
van een (bijna) optimale policy aanzienlijk versnellen. Onderzoek naar exploratie
heeft ook duidelijk gemaakt dat optimistische waardefuncties welke de waarde van
toestanden optimistisch bekijken (volgens een statistische methode) zeer goede
exploratie methoden kunnen opleveren.
4.2 Functie Approximatie
Als de toestandsruimte heel groot (b.v. door meerdere input dimensies) of continu is,
dan is het vaak ondoenlijk om alle toestand/actie paren in een tabulaire representatie
op te slaan. Daarom worden functie approximatoren in zulke gevallen gebruikt. Dit
biedt de volgende voordelen: als een toestand nog nooit bezocht is, kan de functie
approximator toch een Q−waarde voor die toestand hebben geleerd door gebruik te
maken van generalisatie; daarom hoeft niet de hele toestandsruimte doorzocht te
worden. Het leren kan dus veel sneller gaan met functie approximatoren, maar een
nadeel is dat de functie approximator vaak problemen heeft om de exacte optimale
waardefunctie op te slaan. Verder vergeet de functie approximator bepaalde
toestandswaarden en kan de functie approximator soms overgeneraliseren zodat de
preciese waarde van een toestand/actie paar niet goed geleerd wordt. Er zijn
verschillende mogelijke functie approximatoren; (1) neurale netwerken worden veel
gebruikt voor spelprogramma’s en ook wel voor robots; (2) CMACs worden gebruikt
om eerst de toestandsruimte te discretiseren en op te splitsen in een verzameling
discrete cellen, waarna de cellen de Q−waarde van een toestand bepalen. CMACs zijn
onder andere gebruikt om gesimuleerd multi−agent voetbal mee te leren. (3) Verder
worden self organizing netwerken, beslisbomen, locally weighted regression etc.
gebruikt in combinatie met RL.
Het gebruik van de combinatie van functie approximatoren en RL biedt geen grote
problemen indien Q−leren of Monte Carlo sampling gebruikt wordt. In dit geval kan
de functie approximator direct gebruikt worden om de updates mee te maken. In het
geval van model−gebaseerd RL kunnen neurale netwerken niet goed gebruikt worden,
omdat het leren van de transitie− en beloningsfunctie met een neuraal netwerk grote
problemen oplevert; namelijk hoeveel outputs moet het netwerk hebben als de
omgeving stochastisch is? Zelfs als dit een vaststaand gegeven aantal is, is de
combinatie neurale−netwerken model−gebaseerde RL vaak erg traag en daarom
vanwege efficientie redenen niet altijd goed toepasbaar.
In (Kaelbling et al., 96) staat een overzicht van onderzoek naar het gebruik van
functie approximatoren in combinatie met RL.
4.3 Toepassingen
RL heeft veel verschillende toepassingen. Over het algemeen wordt het gebruikt
voor controle of predictie, maar er zijn ook toepassingen van RL voor
combinatorische optimalisatie problemen. Onder het laatste vallen onder andere de
Ant Colony Systemen (Dorigo, 97). RL is al efficient toegepast om spelletjes te leren
(schaken, dammen, backgammon) en biedt wellicht de meestbelovende methode
om een spelletje te leren door een programma tegen zichzelf te laten spelen. Ook is
RL gebruikt voor network routing (Littman and Boyan, 93), waarin een aantal
pakketjes over een verbonden netwerk getransporteerd moeten worden (vergelijk
internet routing systemen). De RL systemen kunnen vaak goed omgaan met de
beschikbare resources of met veranderingen in de omgeving. RL is ook toegepast op
lift controle (Crites and Barto, 96) en verkeerslicht controle (Wiering, 00). Voor
verkeerslicht controle werd met RL geleerd wat de wachttijd van auto’s is als een
bepaald verkeerslicht op rood en op groen staat. Elk auto heeft een bepaald voordeel
als zijn licht nu op groen wordt gezet en dit voordeel is gelijk aan de wachttijd voor
een rood licht min de wachttijd op een groen licht. Vervolgens werden de
verkeerslichten op een kruising gezet om de winst ta maximaliseren. Er is nu een
verkeerslicht simulator (http://www.sourceforge.net/project/stoplicht) waarmee men
met verschillende lerende en statische verkeerslicht controllers kan experimenteren.
De voorlopige resultaten tonen aan dat RL de doorstroming van het verkeer
aanzienlijk kan verbeteren ten opzichte van vaste controllers. RL wordt ook gebruikt
in combinatie met speltheorie om rationele agenten te leren welke bepaalde matrix
spelen tegen elkaar spelen en van de uitkomst kunnen leren. Zo onderzochten
Sandholm and Crites (1995) of RL agenten de tit−for−tat strategie in de Prisoner’s
dilemma konden leren en dit bleek wel het geval te zijn. RL wordt ook gebruikt om
robots mee te controleren, maar omdat RL veel trials nodig kan hebben, wordt vaak
a−priori hand gegeven data gebruikt (joystick of programma) zodat het startpunt al
vrij redelijk is en de agent niet heel veel moeite heeft om af en toe beloningen te
vergaren.
5 Conclusie
We hebben in dit korte overzichtsartikel beschreven hoe reinforcement leren werkt.
Allereerst hebben we de theoretische achtergrond van optimale controle beschreven
en dynamisch programmeren besproken. Dynamisch programmeer algoritmen
gebruiken waarde functies voor toestanden en toestand/actie paren en kunnen hiermee
een optimale policy berekenen als het model bekend is. Als het model onbekend is,
dan kunnen we reinforcement leren (RL) gebruiken om door middel van interactie
met de omgeving een policy te leren. Als RL met een tabulaire representatie gebruikt
wordt, leert een agent onder bepaalde condities de optimale policy als alle toestanden
oneindig vaak bezocht worden. Hoewel dit geen sterk theoretisch uitgangspunt is
(oneindig lang exploreren is in realiteit onhaalbaar), leren de agenten vaak al na een
relatief korte tijd een goede policy welke daarna langzaamaan beter wordt.
We hebben ook de combinatie van RL met exploratie methoden en functie
approximatoren kort besproken. Huidig onderzoek in RL bekijkt hoe het opschalen
van problemen gedaan kan worden door nog efficientere RL methoden, en welke
functie approximatoren geschikt zijn voor het oplossen van bepaalde problemen. Ook
wordt RL steeds vaker gebruikt in lerende multi−agent systemen. Dat RL een
interessant gebied is met vele mogelijke nieuwe toepassingen, zal ertoe leiden dat
steeds meer mensen RL als methode gaan gebruiken voor het oplossen van een
bepaald probleem.
Referenties
Bellman, 57: R. Bellman, Dynamic Programming. Princeton University Press, 1957.
Crites and Barto, 96: R. Crites and A. Barto, Improving Elevator Performance using
Reinforcement Learning. Advances in Neural Information Processing
Systems 8, pp: 1017−1023, 1996.
Dorigo, 97: M. Dorigo and L. Gambardella, Ant Colony System: A Cooperative
Learning Approach to the Traveling Salesman Problem. Evolutionary
Computation 1(1), pp: 53−66, 1997.
Kaelbling et al., 96: L. Kaelbling, M. Littman, and A. Moore, Reinforcement
Learning: a Survey. Journal of Artificial Intelligence Research 4,
pp: 257−285, 1996.
Littman and Boyan, 93: M. Littman and J. Boyan, A Distributed Reinforcement
Learning Scheme for Network Routing. First International Workshop on
Applications of Neural Networks to Telecommunication, pp: 45−51, 1993.
Moore and Atkeson, 93: A. Moore and C. Atkeson, Prioritized Sweeping:
Reinforcement Learning with less Data and less Time. Machine Learning
13, pp: 103−130, 1993.
Peng and Williams, 96: J. Peng and R. Williams, Incremental Multi−step Q−learning.
Machine Learning 22, pp: 283−290, 1996.
Sandholm, 95. T. Sandholm and R. Crites. On Multi−agent Q−learning in a Semi−
Competitive Domain. IJCAI’95 workshop: Adaption and Learning in
Multi−Agent Systems, pp: 164−176, 1995.
Sutton and Barto, 98: R. Sutton and A. Barto, Reinforcement Learning: an
Introduction. MIT Press, 1998.
Tesauro, 92: G. Tesauro. Practical Issues in Temporal Difference Learning.
Advances in Neural Information Processing Systems 4, pp: 259−266, 1992.
Watkins, 89: C. Watkins. Learning from Delayed Rewards, PhD thesis, King’s
College, Cambridge, England, 1989.
Wiering and Schmidhuber, 98: M. Wiering and J. Schmidhuber, Efficient Model−
based Exploration. Sixth International Conference on Simulation of
Adaptive Behavior: From Animals to Animats 6, pp: 223−228, 1998.
Wiering, 00: M. Wiering, Multi−agent Reinforcement Learning for Traffic Light
Control. Seventeenth International Conference on Machine Learning, pp:
1151−1158, 2000.