RoBach A Case Study in the Use of Genetic Algorithms for Automatic Music Composition.

Slides:



Advertisements
Similar presentations
Algorithm Design Techniques
Advertisements

CS6800 Advanced Theory of Computation
1 An Adaptive GA for Multi Objective Flexible Manufacturing Systems A. Younes, H. Ghenniwa, S. Areibi uoguelph.ca.
Using Parallel Genetic Algorithm in a Predictive Job Scheduling
Tetris and Genetic Algorithms Math Club 5/30/2011.
Genetic Algorithms By: Anna Scheuler and Aaron Smittle.
Genetic Algorithms for Real Parameter Optimization Written by Alden H. Wright Department of Computer Science University of Montana Presented by Tony Morelli.
1 Listen to the next generation of Beethoven’s compositions: Digital music generator using fractal and genetic crossover concepts FractalsGeneMatrixResultsConclusions.
Linear Obfuscation to Combat Symbolic Execution Zhi Wang 1, Jiang Ming 2, Chunfu Jia 1 and Debin Gao 3 1 Nankai University 2 Pennsylvania State University.
Multiple People Detection and Tracking with Occlusion Presenter: Feifei Huo Supervisor: Dr. Emile A. Hendriks Dr. A. H. J. Stijn Oomes Information and.
21-May-15 Genetic Algorithms. 2 Evolution Here’s a very oversimplified description of how evolution works in biology Organisms (animals or plants) produce.
Genetic Algorithms1 COMP305. Part II. Genetic Algorithms.
1 Lecture 8: Genetic Algorithms Contents : Miming nature The steps of the algorithm –Coosing parents –Reproduction –Mutation Deeper in GA –Stochastic Universal.
Multi-Objective Evolutionary Algorithms Matt D. Johnson April 19, 2007.
Data Mining CS 341, Spring 2007 Genetic Algorithm.
A new crossover technique in Genetic Programming Janet Clegg Intelligent Systems Group Electronics Department.
COMP305. Part II. Genetic Algorithms. Genetic Algorithms.
COMP305. Part II. Genetic Algorithms. Genetic Algorithms.
Algorithm Analysis CS 201 Fundamental Structures of Computer Science.
Intro to AI Genetic Algorithm Ruth Bergman Fall 2002.
Recursion Chapter 7. Chapter 7: Recursion2 Chapter Objectives To understand how to think recursively To learn how to trace a recursive method To learn.
Intro to AI Genetic Algorithm Ruth Bergman Fall 2004.
Register Allocation and Spilling via Graph Coloring G. J. Chaitin IBM Research, 1982.
Genetic Algorithms Overview Genetic Algorithms: a gentle introduction –What are GAs –How do they work/ Why? –Critical issues Use in Data Mining –GAs.
Genetic Programming.
Slides are based on Negnevitsky, Pearson Education, Lecture 10 Evolutionary Computation: Evolution strategies and genetic programming n Evolution.
Multiple Sequence Alignment CSC391/691 Bioinformatics Spring 2004 Fetrow/Burg/Miller (Slides by J. Burg)
Computer Implementation of Genetic Algorithm
SOFT COMPUTING (Optimization Techniques using GA) Dr. N.Uma Maheswari Professor/CSE PSNA CET.
© Negnevitsky, Pearson Education, Lecture 10 Evolutionary Computation: Evolution strategies and genetic programming Evolution strategies Evolution.
CS 484 – Artificial Intelligence1 Announcements Lab 3 due Tuesday, November 6 Homework 6 due Tuesday, November 6 Lab 4 due Thursday, November 8 Current.
Lecture 8: 24/5/1435 Genetic Algorithms Lecturer/ Kawther Abas 363CS – Artificial Intelligence.
Genetic Algorithms Michael J. Watts
ART – Artificial Reasoning Toolkit Evolving a complex system Marco Lamieri Spss training day
S J van Vuuren The application of Genetic Algorithms (GAs) Planning Design and Management of Water Supply Systems.
GENETIC ALGORITHMS FOR THE UNSUPERVISED CLASSIFICATION OF SATELLITE IMAGES Ankush Khandelwal( ) Vaibhav Kedia( )
An Introduction to Genetic Algorithms Lecture 2 November, 2010 Ivan Garibay
Major objective of this course is: Design and analysis of modern algorithms Different variants Accuracy Efficiency Comparing efficiencies Motivation thinking.
Genetic Algorithms Genetic Algorithms – What are they? And how they are inspired from evolution. Operators and Definitions in Genetic Algorithms paradigm.
Computational Complexity Jang, HaYoung BioIntelligence Lab.
Genetic Algorithms Introduction Advanced. Simple Genetic Algorithms: Introduction What is it? In a Nutshell References The Pseudo Code Illustrations Applications.
GENETIC ALGORITHM A biologically inspired model of intelligence and the principles of biological evolution are applied to find solutions to difficult problems.
GENETIC ALGORITHMS.  Genetic algorithms are a form of local search that use methods based on evolution to make small changes to a popula- tion of chromosomes.
1 A New Method for Composite System Annualized Reliability Indices Based on Genetic Algorithms Nader Samaan, Student,IEEE Dr. C. Singh, Fellow, IEEE Department.
2005MEE Software Engineering Lecture 11 – Optimisation Techniques.
Why do GAs work? Symbol alphabet : {0, 1, * } * is a wild card symbol that matches both 0 and 1 A schema is a string with fixed and variable symbols 01*1*
Genetic Algorithms. 2 Overview Introduction To Genetic Algorithms (GAs) GA Operators and Parameters Genetic Algorithms To Solve The Traveling Salesman.
MAE 552 Heuristic Optimization Instructor: John Eddy Lecture #12 2/20/02 Evolutionary Algorithms.
Biologically inspired algorithms BY: Andy Garrett YE Ziyu.
GENETIC ALGORITHM Basic Algorithm begin set time t = 0;
D Nagesh Kumar, IIScOptimization Methods: M8L5 1 Advanced Topics in Optimization Evolutionary Algorithms for Optimization and Search.
In the name of ALLAH Presented By : Mohsen Shahriari, the student of communication in Sajad institute for higher education.
Design of a real time strategy game with a genetic AI By Bharat Ponnaluri.
1 Chapter 3 GAs: Why Do They Work?. 2 Schema Theorem SGA’s features: binary encoding proportional selection one-point crossover strong mutation Schema.
An Introduction to Genetic Algorithms Lecture 2 November, 2010 Ivan Garibay
Why do GAs work? Symbol alphabet : {0, 1, * } * is a wild card symbol that matches both 0 and 1 A schema is a string with fixed and variable symbols 01*1*
EVOLUTIONARY SYSTEMS AND GENETIC ALGORITHMS NAME: AKSHITKUMAR PATEL STUDENT ID: GRAD POSITION PAPER.
Genetic Algorithms An Evolutionary Approach to Problem Solving.
Genetic Algorithm(GA)
George Yauneridge.  Machine learning basics  Types of learning algorithms  Genetic algorithm basics  Applications and the future of genetic algorithms.
Genetic Algorithm. Outline Motivation Genetic algorithms An illustrative example Hypothesis space search.
Presented By: Farid, Alidoust Vahid, Akbari 18 th May IAUT University – Faculty.
Genetic (Evolutionary) Algorithms CEE 6410 David Rosenberg “Natural Selection or the Survival of the Fittest.” -- Charles Darwin.
Genetic Algorithms.
Evolution strategies and genetic programming
Chapter 4 Beyond Classical Search
Objective of This Course
Searching for solutions: Genetic Algorithms
Stephen Andersen, Aaron Schuman, Lee Ingram Jonathan Peard
Presentation transcript:

RoBach A Case Study in the Use of Genetic Algorithms for Automatic Music Composition

Introduction to Music Generation First attempt: 1956, Hiller and Isaacson, Illiac Suite Many failed attempts since Unsolved problem: balancing structure and novelty More Structured More Novel Optimal Solutions

Music Generation Strategies Rule-based Learning by example Evolutionary corpus

Genetic Algorithms Purpose: robust, efficient optimization Other optimization algorithms Calculus-based: needs continuity and derivatives; local search scope (which hill to climb?) Enumerative: inefficient Random: more inefficient GAs need no auxiliary information GAs search from many places at once GAs constantly seek improvement

Genetic Algorithms GAs work with codings of parameters, not the parameters themselves Codings are strings in some applicable alphabet Implementation-specific requirements Routine to interpret strings Routine to judge the fitness of strings

Genetic Algorithms Generate population of random strings Three step generational loop: Every iteration yields ‘current best’ solution StringFitness StringFitness ? ? ? ? ? ? M ReproductionCrossover & MutationInitial PopulationNew Population x=+ x=+ x=+

The Corpus - Bach’s Chorales A corpus of works provides the basis for statistical data Almost 300 Bach chorales were analyzed for histograms Frequency of intervals, chord changes, and phrases were collected Reasons for using chorales as models: Highly Structural Large existing corpus

The Composition Object The Composition object was designed to match the structure of a chorale 4 voices Sequential chords Serves as the interface between composers and critics Voice 1Voice 2Voice 3Voice 4 Chord List Composition

Introduction to Haskore Haskore is a programming environment designed for music composition It is implemented in the functional language Haskell, which is useful for list processing Haskore defines lists of music objects that can be generated and manipulated recursively Our “Composition” object contains a list of notes for each voice, making it favorable for this environment

Music Composer Building Blocks Each composer consists of several “building blocks” Building blocks determine the various characteristics of each composer There are two basic types of building blocks: Generators Chords Modifiers Rhythm

More on Building Blocks Sample composer: {a, b, c, d, e, f, g, h} Each letter represents a different building block, layered onto the composer There are an infinite number of combinations of building blocks: {a, b, c, g, e, d, a, a, a, g, e, d, …} This means an infinite number of composers, generating an infinite amount of music! abcdefgh

More on Building Blocks There is an infinite number of composers! Composer blocks are not commutative: {a, b} is different from {b, a} Each composer can have an unlimited number of blocks: {a, b, c, d, e, f, g, h, a, b, c, d, e, f, g, h, a, b,... } Unfortunately, not all of them are good... {a, d, e, a, b} {d, e, b, c, e, a, b} {e, c, d, d, e, b, a, b} {c, b, a}

Inside a Composer Defined by a “genetic sequence” Chromosome --> Word32 (32-bit binary string) 32 string can be divided any way we choose Contains code for composer’s traits Traits controlled include: Harmony Melody Rhythm Order tweaker [ ] {d, d, b, a, e} {a, g, h}{e, a, h, h, h, h, h, h} {f, g, a, b, c} {c, h, g, a, a, b}

A Composer’s Genes Composer blocks are called by genes within the traits Each gene (binary combination) represents a composer block The number of composer blocks available -> number of bits per gene Ex. 3 bits -> 8 combinations -> 7 composer blocks Translator calls the blocks represented each combination To mix things up, tweaker mixes rhythm genes with melody genes The blocks then modify the composition 000 tells the translator to call nothing Can call multiples of the same block [ ] Trait Gene 2 calls fcaabd Melody (trait) zzx f z b c x d a z a

Critic Building Blocks Mathematical analysis of music Histogram comparison The degree of feature similarity is analyzed with a method similar to chi-square Intervals Chord Progression Melodic Rhythms Similarities, Differences Phrasing Patterns in rhythm and intervals

Implementation of Critics Survival of the Fittest Composers Critic Functions In The Good The Bad

Different critics evaluate the same music differently, much like many people like different genres of music Having many critics will yield a variety of music, instead of allowing one type of composer to dominate Critics define weighting vectors for the critic functions, that is, how strongly they value each one in their analysis The 32-bit chromosome must define the 14 weights to create a critic The best critics are the ones that give the largest score difference between “bad” (current) music and the selected corpus Genetic Structure of the Critics: Part 1 {156, 129, …, 61} {31, 165, …, 142}{5, 2, …, 1} {19, 189, …, 54} {16, 91, …, 122}

Each c i is associated with a particular critic function, while d and e apply to all critic functions d is the index to the array a, containing possible values for the scaling factor a d e defines whether the scale will be power or exponential The weight of the i th critic function is given by: w i = a d ^c i, if e=0 w i = c i ^a d, if e=1 Genetic Structure of the Critics: Part 2

Experiment Setup Using our definitions for composer and critic blocks and chromosomes, we created an environment of 20 composers and 20 critics Each epoch consisted of: Evolve the composers for 100 generations Define the current music as the bad corpus Evolve the critics for 100 generations After many epochs had passed, we listened to the results

Experiment Results Good Music 1

Analysis of Results Bad music Real Bach Music Good Music 2 Good Music 3 Good Music 4 Every epoch converged proving a successful genetic algorithm Music that scored poorly was worse than music that scored better Ratings improved after each epoch

Future Improvements More composer/critic blocks (longer string) Composer blocks implement histograms Composer blocks correspond with critic blocks Next experiment Larger population, more generation Add brand new melody modifier block

Adam Aaron Adam Bildersee Rebecca Cooper Malamo Countouris Carlin Eng Melissa Fritz Tim Heath Kyle Leiby Yunxue Xu Luke Zarko Special Thanks to Joel Donovan and Peter Lee! 1337 pR353N70r5