Skip to content

Comment on Machine Learning Cheat Sheet for scikit-learnparent

Comments

just as a point of clarification: "genetic programming" is not the same as a "genetic algorithm". Genetic programming is an area of evolutionary computation in which the AST of a program is created using a genetic algorithm. So while genetic programming is definitely "machine learning" in the truest sense, it's not terribly useful for classification and regression problems (what we usually think of when we talk about ml).

Now genetic algorithms are any algorithm that encodes solutions (typically parameters to a cost function) as a gene and performs optimization through an artificial evolutionary process. Now GAs are incredibly easy to learn how to implement, but it's much harder to figure out when they should be used.

In theory GAs can be used anywhere in this diagram that parameters need to be chosen. However there are two major draw backs to GAs:

1. Cost function is a huge bottle neck 2. In many cases there is a known, better method of optimization.

So for example you might want to use a GA to determine the parameters for training an SVM, however (given you have enough data) this runs into problem 1, since it might take minutes, hours or days to train an SVM. Which is too long and you would have to train 100s or more SVM for each iteration of the GA, with a least 100s of iterations.

Also GAs have been used to find optimal weights in neural nets, however here you run into 2 (and I believe 1 as well), as using backprop usually performs better.

All that said GAs are an amazing tool when you have some cost function you need to optimize that 1.) can be evaluated very quickly, and 2.) is weird, very non linear, or otherwise has no known 'good' solution already.

So finally to your question: most heavily studied areas of ML already have a better optimization algorithm than a GA (hence no GAs on this diagram), however in the real world you never know when you my find some very strange, difficult and poorly studied optimization issue and then GAs can be very useful

Here is my intuition. Hopefully adding to your explanation.

GA are a way to solve search problems. But there are other ways that are more efficient and more specific. http://www.pearsonhighered.com/samplechapter/0136042597.pdf

But solving a problem with GA may sometimes be cooler and more interesting.

genetic algorithms are just randomized hill climbing with the added assumption that variables "physically" next to each other in your data structure are correlated.

AboutSource Built by g1lg1l

Hackerly is an independent reader for Hacker News, built on the public HN API. Not affiliated with Y Combinator.