This document is posted to help you gain knowledge. Please leave a comment to let me know what you think about it! Share it to your friends and learn new things together.
Transcript
Evolving SolutionsMachine Learning
Programs that Search for SolutionsSearching Random Points
Recursive Descent / AscentSub-Optimization
Faulty AnalogiesFitness
Genetic AlgorithmsParticle Swarm Optimization
Simulated Annealing
1Monday, January 14, 13
Basic Concepts
2Monday, January 14, 13
Learning ==> Improvement
Some quality is being improved.
There is some measure of good / bad.
There is some way to move toward good.
Change position
Change behavior
3Monday, January 14, 13
Learning ==>Some quality is being improved.
Implies / Assumes:
There is consensus about good versus bad.
There is some way to measure good / bad.
Give that measure a name: “Fitness”
Analogy to nature and evolution concept.
4Monday, January 14, 13
Searching for BetterRandom Search
Randomize values in degrees of freedom.
Compare resulting fitness.
Pick the best results.
And then what?
Recursive Descent / Ascent
Assumes that solution space has a gradient.
Assumes there are minima / maxima.5Monday, January 14, 13
Seeker:When do you quit searching?
Infinite Loop versus “Stopping Condition”
Eventually we run out of time / resource / energy.
Complications:
Sometimes “Best” is not well-defined.
The solution space is continuously changing.
The shape (gradient qualities) of space is unknown.
6Monday, January 14, 13
Faulty Analogs
7Monday, January 14, 13
EvolutionThere is some way to measure “fitness”
Fitness is a function of a set of objects that can vary over individual instances.
Call the objects “genes” to use genetic analogy.
Mutation ==> Changing the values of “genes”.
Sexual Reproduction ==> Merging gene “sequences.”
Next Generation <== keep most fit, cull least fit.8Monday, January 14, 13
Genetic AlgorithmDefine degrees of freedom ==> genes.
Produce first generation with randomized genes.
Evaluate fitness of each individual
Calculate / Run a simulation of environment.
Keep most fit <==> Cull least fit.
Populate the next generation. ( mutate and/or splice )
Repeat until “done”
Note: Real environments change over time. 9Monday, January 14, 13
Lessons LearnedI did not and do not expect this to work.It is just something I always wanted to tinker.
Best fitness for 2007-2008: Stay out of the market!
“When-to-buy” was competing with “when-to-sell” and producing counter-productive results.==> Need more complex strategy ==> more parameters.
Very compute intensive (generation takes way too long)==> Need faster data structure ==> Refactor database.==> Squeak VM is single-thread ==> Port to Erlang ???==> Potential GPU application.