search and machine learning -...

35
Search and Machine Learning CGO Tutorial February 8th, 2015 Kalyan Veeramachaneni, Jason Ansel, Shoaib Kamil, Jeffrey Bosboom, Una-May O’Reilly, Saman Amarasinghe

Upload: others

Post on 11-Mar-2020

8 views

Category:

Documents


0 download

TRANSCRIPT

Page 1: Search and Machine Learning - OpenTuneropentuner.org/slides/opentuner-cgo2015-veeramachaneni-ml.pdfSearch and Machine Learning CGO Tutorial February 8th, 2015 Kalyan Veeramachaneni,

!

Search and Machine Learning

CGO Tutorial February 8th, 2015

Kalyan Veeramachaneni, Jason Ansel, Shoaib Kamil, Jeffrey Bosboom, Una-May O’Reilly,

Saman Amarasinghe

Page 2: Search and Machine Learning - OpenTuneropentuner.org/slides/opentuner-cgo2015-veeramachaneni-ml.pdfSearch and Machine Learning CGO Tutorial February 8th, 2015 Kalyan Veeramachaneni,

Overview • Parameter types and tuning

• An example tuning problem - permutation

• A typical population based search process

• Select-Create-Update process

• Options • Create —> Operators • Select - Update

• Composition of multiple search approaches

• Steps to take for a new problem

• Back to Mario example

Page 3: Search and Machine Learning - OpenTuneropentuner.org/slides/opentuner-cgo2015-veeramachaneni-ml.pdfSearch and Machine Learning CGO Tutorial February 8th, 2015 Kalyan Veeramachaneni,

Parameter types

Page 4: Search and Machine Learning - OpenTuneropentuner.org/slides/opentuner-cgo2015-veeramachaneni-ml.pdfSearch and Machine Learning CGO Tutorial February 8th, 2015 Kalyan Veeramachaneni,

Parameter types

Let’s pick permutation

Example: Permute the placement of these computations

Page 5: Search and Machine Learning - OpenTuneropentuner.org/slides/opentuner-cgo2015-veeramachaneni-ml.pdfSearch and Machine Learning CGO Tutorial February 8th, 2015 Kalyan Veeramachaneni,

A typical population based search process

Select Create Update Evaluate Initialize Evaluate

1

1

1

4

1

2

2

2

6

2

3

3

3

3

8

3

4

4

...

...

4

4

5

4

5

5

5

2

5

6

6

2 56

9

6

6

7

7

7

1

17

7

8

8

8

8

3

8

9

9

9

9

7

9

Page 6: Search and Machine Learning - OpenTuneropentuner.org/slides/opentuner-cgo2015-veeramachaneni-ml.pdfSearch and Machine Learning CGO Tutorial February 8th, 2015 Kalyan Veeramachaneni,

Evaluate Initialize Select Create Update Evaluate

1

1

1

4

1

2

2

2

6

2

3

3

3

3

8

3

4

4

0.97

0.84

0.73

0.52

0.32

...

...0.14

4

4

5

4

5

5

5

2

5

6

6

2 56

9

6

6

7

7

7

1

17

7

8

8

8

8

3

8

9

9

9

9

7

9

A typical population based search process

Page 7: Search and Machine Learning - OpenTuneropentuner.org/slides/opentuner-cgo2015-veeramachaneni-ml.pdfSearch and Machine Learning CGO Tutorial February 8th, 2015 Kalyan Veeramachaneni,

Evaluate Initialize Select Create Update Evaluate

1

1

4

1

2

2

6

2

3

3

8

3

4 0.97

0.84

0.73

0.52

4

5

4

5

5

2

5

6

9

6

6

7

7

1

7

8

8

3

8

9

1 2 3 4 5 6 7 8 9

9

7

4 68 5 2 91 37

9

1

2

3

3

4 0.32

...

...0.14456

2 56 7

17

8

8 9

9

A typical population based search process

Page 8: Search and Machine Learning - OpenTuneropentuner.org/slides/opentuner-cgo2015-veeramachaneni-ml.pdfSearch and Machine Learning CGO Tutorial February 8th, 2015 Kalyan Veeramachaneni,

Evaluate Initialize Select Create Update Evaluate

1

1

4

1

2

2

6

2

3

3

8

3

4 0.97

0.84

0.73

0.52

4

5

4

5

5

2

5

6

9

6

6

7

7

1

7

8

8

3

8

9

1 2 3 4 5 6 7 8 9

9

7

4 68 5 2 91 37

9

9 6 3 4 5 8 7 1 2

9 56 8 2 31 47

1

2

3

3

4 0.32

...

...0.14456

2 56 7

17

8

8 9

9

A typical population based search process

Page 9: Search and Machine Learning - OpenTuneropentuner.org/slides/opentuner-cgo2015-veeramachaneni-ml.pdfSearch and Machine Learning CGO Tutorial February 8th, 2015 Kalyan Veeramachaneni,

Evaluate Initialize Select Create Update Evaluate

9 6 3 4 5 8 7 1 2

9 56 8 2 31 47

1

1

1

4

1

2

2

2

6

2

3

3

3

3

8

3

4

4

0.97

0.84

0.73

0.52

0.32

...

...0.14

4

4

5

4

5

5

5

2

5

6

6

2 56

9

6

6

7

7

7

1

17

7

8

8

8

8

3

8

9

9

9

9

7

9

1234 56 7 89

12 3 45 67 89

9

9 5

5 6

6

8

8

2

2

3

3

1

1

4

4

7

7

A typical population based search process

Page 10: Search and Machine Learning - OpenTuneropentuner.org/slides/opentuner-cgo2015-veeramachaneni-ml.pdfSearch and Machine Learning CGO Tutorial February 8th, 2015 Kalyan Veeramachaneni,

Evaluate Initialize Update Evaluate Select Create

1

1

1

4

1

2

2

2

6

2

3

3

3

3

8

3

4

4

0.97

0.84

0.73

0.52

0.32

...

...0.14

4

4

5

4

5

5

5

2

5

6

6

2 56

9

6

6

7

7

7

1

17

7

8

8

8

8

3

8

9

9

9

9

7

9

1

1

2

2

3

3

4

...

...

4

5

5

6

6

7

7

8

8

9

9

9 6 3 4 5 8 7 1 2

9

9

9

9

5

5

5

5

6

6

6

6

8

8

8

8

2

2

2

2

3

3

3

3

1

1

1

1

4

4

4

4

7

7

7

7

A typical population based search process

Page 11: Search and Machine Learning - OpenTuneropentuner.org/slides/opentuner-cgo2015-veeramachaneni-ml.pdfSearch and Machine Learning CGO Tutorial February 8th, 2015 Kalyan Veeramachaneni,

Evaluate Initialize Update Evaluate Select Create

1

1

1

4

1

2

2

2

6

2

3

3

3

3

8

3

4

4

0.97

0.84

0.73

0.52

0.32

...

...0.14

4

4

5

4

5

5

5

2

5

6

6

2 56

9

6

6

7

7

7

1

17

7

8

8

8

8

3

8

9

9

9

9

7

9

1

1

2

2

3

3

4

...

...

4

5

5

6

6

7

7

8

8

9

9

9 6 3 4 5 8 7 1 2

9

9

9

9

5

5

5

5

6

6

6

6

8

8

8

8

2

2

2

2

3

3

3

3

1

1

1

1

4

4

4

4

7

7

7

7

0.94

0.53

0.87

0.73

0.12

A typical population based search process

Page 12: Search and Machine Learning - OpenTuneropentuner.org/slides/opentuner-cgo2015-veeramachaneni-ml.pdfSearch and Machine Learning CGO Tutorial February 8th, 2015 Kalyan Veeramachaneni,

Evaluate Initialize Update Evaluate Select Create

1

1

1

4

1

2

2

2

6

2

3

3

3

3

8

3

4

4

0.97

0.84

0.73

0.52

0.32

...

...0.14

4

4

5

4

5

5

5

2

5

6

6

2 56

9

6

6

7

7

7

1

17

7

8

8

8

8

3

8

9 1 2 3 4 0.975 6 7 8 9

9 2 3

...

...

0.14456 17 8 9

9

9

7

9

1

1

2

2

3

3

4

...

...

4

5

5

6

6

7

7

8

8

9

9

9 6 3 4 5 8 7 1 2

9

9

9

9

5

5

5

5

6

6

6

6

8

8

8

8

2

2

2

2

3

3

3

3

1

1

1

1

4

4

4

4

7

7

7

7

0.94

0.53

0.87 1234 56 7 89 9 56 8 2 31 47 0.87

0.73 95 6 8 231 47 0.73

0.12

A typical population based search process

Page 13: Search and Machine Learning - OpenTuneropentuner.org/slides/opentuner-cgo2015-veeramachaneni-ml.pdfSearch and Machine Learning CGO Tutorial February 8th, 2015 Kalyan Veeramachaneni,

Evaluate Initialize Update Evaluate Select Create

Continue

A typical population based search process

Page 14: Search and Machine Learning - OpenTuneropentuner.org/slides/opentuner-cgo2015-veeramachaneni-ml.pdfSearch and Machine Learning CGO Tutorial February 8th, 2015 Kalyan Veeramachaneni,

Create —> Requires operators

• Operators take two or more parameters and create two or more new parameters • Let’s take the permutation example:

!1 2 3 4 5 6 7 8 9 8 5 7 1 2 4 9 3 6 Input

1 2 │ 3 4 5 │ 6 7 8 9 8 5 │ 7 1 2 │ 4 9 3 6 cross over points

Page 15: Search and Machine Learning - OpenTuneropentuner.org/slides/opentuner-cgo2015-veeramachaneni-ml.pdfSearch and Machine Learning CGO Tutorial February 8th, 2015 Kalyan Veeramachaneni,

• Operators take two or more parameters and create two or more new parameters • Let’s take the permutation example:

!1 2 3 4 5 6 7 8 9 8 5 7 1 2 4 9 3 6 Input

1 2 │ 3 4 5 │ 6 7 8 9 8 5 │ 7 1 2 │ 4 9 3 6 cross over points

_ _ │3 4 5│ _ _ _ _ Copy over a portion of good material from #1

Create —> Requires operators

Page 16: Search and Machine Learning - OpenTuneropentuner.org/slides/opentuner-cgo2015-veeramachaneni-ml.pdfSearch and Machine Learning CGO Tutorial February 8th, 2015 Kalyan Veeramachaneni,

• Operators take two or more parameters and create two or more new parameters • Let’s take the permutation example:

!1 2 3 4 5 6 7 8 9 8 5 7 1 2 4 9 3 6 Input

cross over points

Copy over a portion of good material from #1

1 2 │ 3 4 5 │ 6 7 8 9 8 5 │ 7 1 2 │ 4 9 3 6

_ _ │3 4 5│ _ _ _ _

Create —> Requires operators

Page 17: Search and Machine Learning - OpenTuneropentuner.org/slides/opentuner-cgo2015-veeramachaneni-ml.pdfSearch and Machine Learning CGO Tutorial February 8th, 2015 Kalyan Veeramachaneni,

• Operators take two or more parameters and create two or more new parameters • Let’s take the permutation example:

!1 2 3 4 5 6 7 8 9 8 5 7 1 2 4 9 3 6 Input

cross over points

Copy over a portion of good material from #1_ _ │3 4 5│ _ _ _ _

1 2 │ 3 4 5 │ 6 7 8 9 8 5 │ 7 1 2 │ 4 9 3 6

9

Create —> Requires operators

Page 18: Search and Machine Learning - OpenTuneropentuner.org/slides/opentuner-cgo2015-veeramachaneni-ml.pdfSearch and Machine Learning CGO Tutorial February 8th, 2015 Kalyan Veeramachaneni,

• Operators take two or more parameters and create two or more new parameters • Let’s take the permutation example:

!1 2 3 4 5 6 7 8 9 8 5 7 1 2 4 9 3 6 Input

cross over points

Copy over a portion of good material from #1_ _ │3 4 5│ _ _ _ _

1 2 │ 3 4 5 │ 6 7 8 9 8 5 │ 7 1 2 │ 4 9 3 6

9 6

Create —> Requires operators

Page 19: Search and Machine Learning - OpenTuneropentuner.org/slides/opentuner-cgo2015-veeramachaneni-ml.pdfSearch and Machine Learning CGO Tutorial February 8th, 2015 Kalyan Veeramachaneni,

• Operators take two or more parameters and create two or more new parameters • Let’s take the permutation example:

!1 2 3 4 5 6 7 8 9 8 5 7 1 2 4 9 3 6 Input

cross over points

Copy over a portion of good material from #1_ _ │3 4 5│ _ _ _ _

1 2 │ 3 4 5 │ 6 7 8 9 8 5 │ 7 1 2 │ 4 9 3 6

9 6 8

Create —> Requires operators

Page 20: Search and Machine Learning - OpenTuneropentuner.org/slides/opentuner-cgo2015-veeramachaneni-ml.pdfSearch and Machine Learning CGO Tutorial February 8th, 2015 Kalyan Veeramachaneni,

• Operators take two or more parameters and create two or more new parameters • Let’s take the permutation example:

!1 2 3 4 5 6 7 8 9 8 5 7 1 2 4 9 3 6 Input

cross over points

Copy over a portion of good material from #1_ _ │3 4 5│ _ _ _ _

1 2 │ 3 4 5 │ 6 7 8 9 8 5 │ 7 1 2 │ 4 9 3 6

9 6 8 7 1 2

Create —> Requires operators

Page 21: Search and Machine Learning - OpenTuneropentuner.org/slides/opentuner-cgo2015-veeramachaneni-ml.pdfSearch and Machine Learning CGO Tutorial February 8th, 2015 Kalyan Veeramachaneni,

• Operators take two or more parameters and create two or more new parameters • Let’s take the permutation example:

!1 2 3 4 5 6 7 8 9 8 5 7 1 2 4 9 3 6 Input

cross over points

Copy over a portion of good material from #1

1 2 │ 3 4 5 │ 6 7 8 9 8 5 │ 7 1 2 │ 4 9 3 6

9 6 8 7 1 2

9 6 │3 4 5 │ 8 7 1 2

Create —> Requires operators

Page 22: Search and Machine Learning - OpenTuneropentuner.org/slides/opentuner-cgo2015-veeramachaneni-ml.pdfSearch and Machine Learning CGO Tutorial February 8th, 2015 Kalyan Veeramachaneni,

Create:Several options exist for operators

• For permutation parameter there are several operators

• Partially mapped crossover

• Partition crossover

• Ordered crossover

• Edge crossover

• Cycle crossover

Page 23: Search and Machine Learning - OpenTuneropentuner.org/slides/opentuner-cgo2015-veeramachaneni-ml.pdfSearch and Machine Learning CGO Tutorial February 8th, 2015 Kalyan Veeramachaneni,

Select-update

• Select —> chooses the solutions among the population from which new solutions will be created • biasing the search towards to better solutions

• Update—> updates the entire population towards better search spaces • has stronger influence on convergence

Page 24: Search and Machine Learning - OpenTuneropentuner.org/slides/opentuner-cgo2015-veeramachaneni-ml.pdfSearch and Machine Learning CGO Tutorial February 8th, 2015 Kalyan Veeramachaneni,

Particle Swarm Optimization (PSO) Select-update

• State based—> for each member of the population, a history is maintained

• Select —> Individual based • for every individual select its previous best • select the best solution seen so far

• Update—> only update individuals history if it finds a better solution in the search space

Page 25: Search and Machine Learning - OpenTuneropentuner.org/slides/opentuner-cgo2015-veeramachaneni-ml.pdfSearch and Machine Learning CGO Tutorial February 8th, 2015 Kalyan Veeramachaneni,

Genetic Algorithms Select-update

• Select —> Tournament selection • select randomly k from n • among these k select the top 2 • allows enough mixing

1

1

1

4

1

2

2

2

6

2

3

3

3

3

8

3

4

4

0.97

0.84

0.73

0.52

0.32

...

...0.14

4

4

5

4

5

5

5

2

5

6

6

2 56

9

6

6

7

7

7

1

17

7

8

8

8

8

3

8

9

9

9

9

7

9

n random k k=5 best 2

Page 26: Search and Machine Learning - OpenTuneropentuner.org/slides/opentuner-cgo2015-veeramachaneni-ml.pdfSearch and Machine Learning CGO Tutorial February 8th, 2015 Kalyan Veeramachaneni,

Genetic Algorithms Select-update

• Update—> multiple ways that allow us to control exploration and exploitation • strong elitism

• combine both old and new and select the top n • weak elitism

• do it on a per individual basis, select if the new one it created is better than itself.

Page 27: Search and Machine Learning - OpenTuneropentuner.org/slides/opentuner-cgo2015-veeramachaneni-ml.pdfSearch and Machine Learning CGO Tutorial February 8th, 2015 Kalyan Veeramachaneni,

Composition of multiple approaches

Ordered

PartialCycle

Partition

Edge

PSO select-update

GA select-update

DE select-update

GA - Genetic algorithmsPSO- Particle swarm optimizationDE- Differential evolution

Operators

For permutation

Select-update choices

Page 28: Search and Machine Learning - OpenTuneropentuner.org/slides/opentuner-cgo2015-veeramachaneni-ml.pdfSearch and Machine Learning CGO Tutorial February 8th, 2015 Kalyan Veeramachaneni,

Ordered

PartialCycle

Partition

Edge

PSO select-update

GA select-update

DE select-update

GA - Genetic algorithmsPSO- Particle swarm optimizationDE- Differential evolution

Ordered—PSO

Composition of multiple approaches

For permutation

Operators Select-update choices

Page 29: Search and Machine Learning - OpenTuneropentuner.org/slides/opentuner-cgo2015-veeramachaneni-ml.pdfSearch and Machine Learning CGO Tutorial February 8th, 2015 Kalyan Veeramachaneni,

Ordered

PartialCycle

Partition

Edge

PSO select-update

GA select-update

DE select-update

GA - Genetic algorithmsPSO- Particle swarm optimizationDE- Differential evolution

Ordered—PSOOrdered—GA

Composition of multiple approaches

For permutation

Operators Select-update choices

Page 30: Search and Machine Learning - OpenTuneropentuner.org/slides/opentuner-cgo2015-veeramachaneni-ml.pdfSearch and Machine Learning CGO Tutorial February 8th, 2015 Kalyan Veeramachaneni,

Ordered

PartialCycle

Partition

Edge

PSO select-update

GA select-update

DE select-update

GA - Genetic algorithmsPSO- Particle swarm optimizationDE- Differential evolution

Ordered—PSOOrdered—GAPartial—PSO

Composition of multiple approaches

For permutation

Operators Select-update choices

Page 31: Search and Machine Learning - OpenTuneropentuner.org/slides/opentuner-cgo2015-veeramachaneni-ml.pdfSearch and Machine Learning CGO Tutorial February 8th, 2015 Kalyan Veeramachaneni,

Ordered

PartialCycle

Partition

Edge

PSO select-update

GA select-update

DE select-update

GA - Genetic algorithmsPSO- Particle swarm optimizationDE- Differential evolution

Ordered—PSOOrdered—GAPartial—PSO

Composition of multiple approaches

Partition—PSOPartition—GACycle—PSO

For permutation

Operators Select-update choices

Page 32: Search and Machine Learning - OpenTuneropentuner.org/slides/opentuner-cgo2015-veeramachaneni-ml.pdfSearch and Machine Learning CGO Tutorial February 8th, 2015 Kalyan Veeramachaneni,

Parameter types

For each of these parameters we have operators, combined with techniques

Page 33: Search and Machine Learning - OpenTuneropentuner.org/slides/opentuner-cgo2015-veeramachaneni-ml.pdfSearch and Machine Learning CGO Tutorial February 8th, 2015 Kalyan Veeramachaneni,

Steps when trying for a new problem ?

• Design a representation • either uses an existing parameter • add new parameter

• add operators that work on this new parameter • Choose the select-update/technique

Page 34: Search and Machine Learning - OpenTuneropentuner.org/slides/opentuner-cgo2015-veeramachaneni-ml.pdfSearch and Machine Learning CGO Tutorial February 8th, 2015 Kalyan Veeramachaneni,

Back to Mario • Naive representation

• 5 choices (left, right, jump, duck, run )

• 12,000 frames

• encode a bit string 60,000 bits long

• first 5 are for decision making for the first frame and second 5 are for second frame and so on

• each bit represents whether or not a choice is made at the frame

Page 35: Search and Machine Learning - OpenTuneropentuner.org/slides/opentuner-cgo2015-veeramachaneni-ml.pdfSearch and Machine Learning CGO Tutorial February 8th, 2015 Kalyan Veeramachaneni,

Back to Mario • Duration representation • 1000 - EnumerationParameters for direction of movement (biased 3:1 to move to right)

• Enumerated parameter options • L = left, R = right, B = run, N = none • Actual definition of options : • ["R", "L", "RB", "LB", "N", "LR", "LRB", "R2", "RB2", "R3", "RB3"]

!• 1000 - IntegerParameters for duration of each direction

• Range:1-60 frames • 1000 - IntegerParameters for which frames to jump

• Range 1-24000 frames !• 1000 - IntegerParameters for duration of each jump

• Range: 1-32 frames !!

• Better because the number of dimensions of search is 4000 • Decoupled jump