Machine Learning: Introduction to Genetic Algorithms
The Introduction to ‘Machine Learning in Javascript’ post provides a nice introduction and context for this post and the rest of the series. I like starting my machine learning classes with genetic algorithms (which we’ll abbreviate ‘GA’ sometimes). Genetic algorithms are probably the least practical of the ML algorithms I cover, but I love starting with them because they’re fascinating and they do a good job of introducing the ‘cost function’ or ‘error function’, and the idea of local and global optima — concepts both important and common to most other ML algorithms. Genetic algorithms are inspired by nature and evolution, which is seriously cool to me. It’s no surprise, either, that artificial neural networks (‘NN’) are also modeled from biology: evolution is the best general-purpose learning algorithm we’ve experienced, and the brain is the best general-purpose problem solver we know. These are two very important pieces of our biological existence, and also two rapidly growing fields of artificial intelligence and machine learning study. While I’m tempted to talk more about the distinction I make between the GA’s ‘learning algorithm’ and the NN’s ‘problem solver’ terminology, we’ll drop the topic of NNs altogether and concentrate on GAs… for now.