What Exactly is "Improvement" in Seed AI?
Improves itself by recursively rewriting its own source code without human intervention.


A machine learning technique that has some of the properties of a Seed AI is Meta Genetic Programming.

With Genetic Programming (GP) the system automatically writes code to solve a predefined task. GP evolves computer programs according to a natural evolution paradigm, using various operators and parameters.

Meta-GP allows simultaneous evolution of operators and parameters along with the population of programs.

Of course one can imagine multiple meta-levels in an evolutionary computation system: more levels of populations acting on each other and/or populations that act upon themselves.

It's worth noting that there can be a Free Lunch for Meta-GP / Hyper-Heuristics, but these techniques:


introduce extra computational cost, which have to be weighed against potential advantages;
seem very sensitive to biases in the syntax from which the operators are generated and thus less robust.


Anyway it's an open research field.


  How do you define "improve"? 


Usually GP has an objective function (fitness function) to translate a desired behaviour.

Writing these fitness functions is a formidable task and it happens than your GP system optimizes for something other than it was intended for (may it happen for a Seed-AI-system?)

It's not clear if there is a way of doing without defining an objective function.

You can try to mimic Nature using a local, distributed, asynchronous form of competition or, according to the idea that "to achieve your highest goals, you must be willing to abandon them", applying Novelty Search,

but often fitness is still there (although behind the scene).