Machine Learning in Embedded System
Machine Learning in Embedded System
Standard functions Y
Hardware-software co-design
Machine-Learning for
Embedded Systems:
Rationale and
Classification
Why Machine-Learning?
Complementarity to a model-based/engineering
approaches: when low-level details matter
(optimization) and/or good models do not exist
(design)!
When the design/optimization space is too big
(infinite)/too computationally expensive to be
systematically searched
Automatic design and optimization techniques
Role of engineer reduced to specifying
performance requirements and problem encoding
Why Machine-Learning?
There are design and optimization
techniques robust to noise, nonlinearities,
discontinuities
Individual real-time adaptation to new
environmental conditions; i.e. increased
individual flexibility when environmental
conditions are not known/cannot predicted a
priori
Search space: parameters and/or rules
ML Techniques: Classification Axis 1
Off-line
No teacher available, no distinction between training and test data sets
Goal: structure extraction from the data set
Examples: data clustering, Principal Component Analysis (PCA) and
Independent Component analysis (ICA)
Reinforcement (or Evaluative) Learning
On-line
No pre-established training or test data sets
The system judges its performance according to a given
metric (e.g., fitness function, objective function,
performance, reinforcement) to be optimized
The metric does not refer to any specific input-to-output
mapping
The system tries out possible design solutions, does
mistakes, and tries to learn from its mistakes
ML Techniques: Classification Axis 2
Learning
In-Line Adaptive Learning DIS course
Reinforcement Learning (RL) DIS course
Genetic Algorithms
Genetic Algorithms Inspiration
In natural evolution, organisms adapt to
their environments better able to survive
over time
Aspects of evolution:
Survival of the fittest
Genetic combination in reproduction
Mutation
Genetic Algorithms use evolutionary
techniques to achieve parameter
optimization and solution design
GA: Terminology
Population: set of m candidate solutions (e.g. m = 100); each candidate
solution can also be considered as a genetic individual endowed with a single
chromosome which in turn consists of multiple genes.
Generation: new population after genetic operators have been applied (n = #
generations e.g. 50, 100, 1000).
Fitness function: measurement of the efficacy of each candidate solution
Evaluation span: evaluation period of each candidate solution during a given
generation. The time cost of the evaluation span differs greatly from scenario
to scenario: it can be extremely cheap (e.g., simply computing the fitness
function in a benchmark function) or involve an experimental period (e.g.,
evaluating the performance of a given control parameter set on a robot)
Life span: number of generations a candidate solution survives
Population manager: applies genetic operators to generate the candidate
solutions of the new generation from the current one
Evolutionary Loop: Several
Generations
Start
Initialize Population
Generation loop
Population
Selection
replenishing
Decoding
Fitness measurement
(genotype phenotype) and encoding (phenotype
genotype)
Population Manager
Evaluation of
Individual Candidate
System Solutions
GA: Encoding & Decoding
phenotype genotype phenotype
encoding (chromosome) decoding
phenotype: usually represented by the whole system which can be
evaluated; the whole system or a specific part of it (problem formulation
done by the engineer) is represented by a vector of dimension D; vector
components are usually real numbers in a bounded range
genotype: chromosome = string of genotypical segments, i.e. genes, or
mathematically speaking, again a vector of real or binary numbers; vector
dimension varies according to coding schema ( D); the algorithm search in
this hyperspace
G1 G2 G3 G4 Gn Gi = gene = binary or real number
Encoding: real-to-real or real-to-binary via Gray code (minimization of
nonlinear jumping between phenotype and genotype)
Decoding: inverted operation
Rem:
Artificial evolution: usually one-to-one mapping between phenotypic and genotypic space
Natural evolution: 1 gene codes for several functions, 1 function coded by several genes.
GA: Basic Operators
Selection: roulette wheel (selection probability determined by
normalized fitness), ranked selection (selection probability determined
by fitness order), elitist selection (highest fitness individuals always
selected)
Crossover: 1 point, 2 points (e.g. pcrossover = 0.2)
Gk Gk
wij
Oi = f ( xi )
synaptic 2
weight f ( x) = x
1
Ij 1+ e S8 S7
m
xi = wij I j + I 0
input
inhibitory conn.
j =1 excitatory conn.
Note: In our case we evolve synaptic weigths but Hebbian rules for dynamic
change of the weights, transfer function parameters, can also be evolved (see
Floreanos course)
Evolving Obstacle Avoidance
(Floreano and Mondada 1996)
Defining performance (fitness function):
= V (1 V )(1 i )
V = mean speed of wheels, 0 V 1
v = absolute algebraic difference
between wheel speeds, 0 v 1
i = activation value of the sensor with the
highest activity, 0 i 1
Note: Fitness accumulated during evaluation span, normalized over number of control
loops (actions).
Evolving Robot Controllers
Note:
Controller architecture can be
of any type but worth using GA
if the number of parameters to
be tuned is important
phenotype
encoding
Evolved
Obstacle Avoidance Behavior
Generation 100, on-line,
off-board (PC-hosted)
evolution
Evolved path
Fitness evolution
Expensive Optimization and
Noise Resistance
Expensive Optimization Problems
Two fundamental reasons making embedded system
design and optimization expensive in terms of time:
= V (1 i )
V = mean speed of wheels, 0 V 1
i = activation value of the sensor with the
highest activity, 0 i 1
Fitness accumulated during life span, normalized over maximal number (150) of
control loops (actions).
No explicit expression of battery level/duration in the fitness function (implicit).
Chromosome length: 102 parameters (real-to-real encoding).
Generations: 240, 10 days embedded evolution on Khepera.
Evolving Homing Behavior
Fitness evolution
Battery energy
Reach the nest -> battery recharging -> turn on spot -> out of the nest
Evolved Homing Behavior
Evolving Homing Behavior
battery level
orientation (in comparison to light
source)
position in the arena (distance
form light source)
Not only Control Shaping:
Off-line Automatic
Hardware-Software Co-
Design and Optimization
Moving Beyond
Controller-Only Evolution
Evidence: Nature evolve HW and SW at the
same time
Faithful realistic simulators enable to explore
design solution which encompasses evolution
of HW features (body shape, number of
sensors, placement of sensors, etc. ) or co-
evolution of both control and HW features
GA are powerful enough for this job and the
methodology remain the same; only the
problem formulation changes
Multi-Vehicle Scenario
Webots 2004
Webots 2009
Evolving Sensory Configuration
Number n (variable
chromosome length!)
Type
Range
Cone of view
Cost f(, )
Placement
Position
Orientation
[Zhang et al., RED 2008]
Fitness Function
1
cost
s
+ coverage
s
s
xx: fuzzy preference on factor xx
Fitness( , s ) =
1+ (0: totally unacceptable;
1: completely acceptable)
coverage xx: weight on factor xx
= s: degree of compensation
cost V: actual number of vehicles
V been in the detection region
Coverage = k PDF( , r )
i =1
i i i
during an evaluation span
ki: 1 if the ith car at distance ri
n
and approaching angle i
Cost = cost
i =1
i
detected; 0 if not detected
n: number of sensors used
i: ith sensors range
costi = f ( i , i ) i: ith sensors cone of view
Sample Results
Fitness evolution process and the final best design
s = 0, = 3/17
Example of evolutionary
sequence:
Examples of Evolved Machines
PhD Thesis
Pugh J., Synthesis, Modeling, and Experimental Validation of Distributed
Robotic Search; December 2008, EPFL PhD Nr. 4256.
Papers
Lipson, H., Pollack J. B., "Automatic Design and Manufacture of Artificial
Lifeforms", Nature, 406: 974-978, 2000.
Zhang Y., Antonsson E. K., and Martinoli A., Evolutionary Engineering
Design Synthesis of On-Board Traffic Monitoring Sensors. Research in
Engineering Design, 19: 113-125, 2008.