For no reason in particular I'm wondering about the size of the smallest program that would constitute a starting point of a recursively self-improving AI.
The analysis of FOOM as a self-amplifying process would seem to indicate that in principle one could get it started from a relatively modest starting point -- perhaps just a few bytes of the right code could begin the process. Or could it? I wonder whether any other considerations give tighter lower-bounds.
One consideration is that FOOM hasn't already happened -- at least not here on Earth. If the smallest FOOM seed were very small (like a few hundred bytes) then we would expect evolution to have already bumped into it at some point. Although evolution is under no specific pressure to produce a FOOM, it has probably produced over the last few billion years all the interesting computations up to some minor level of complexity, and if there were a FOOM seed among those then we would see the results about us.
Then there is the more speculative analysis of what minimal expertise the algorithm constituting the FOOM seed would actually need.
Then there is the fact that any algorithm that naively enumerates some space of algorithms qualifies in some sense as a FOOM seed as it will eventually hit on some recursively self-improving AI. But that could take gigayears so is really not FOOM in the usual sense.
I wonder also whether the fact that mainstream AI hasn't yet produced FOOM could lower-bound the complexity of doing so.
Note that here I'm referring to recursively self-improving AI in general -- I'd be interested if the answers to these questions change substantially for the special case of friendly AIs.
Anyway, just idle thoughts, do add yours.
This involves so many unknowns that it isn't clear where to start. First, fooming isn't well-defined to start with. Second, number of bits for something would change drastically depending on the substrate (default programming language and hardware). Third of all, we can't even give much in the way of non-trivial bounds for minimum program size for well-defined algorithms (among other issues, it starts to lead to Halting problem/Godel issues if one has a way of answering this sort of question in general). To even get an upper bound we'd probably need some form of strong AI so we could point to it and say "that's an upper bound."
We got humans with general intelligence, built into a stage where they can start learning from an extremely noisy and chaotic physical environment by a genome that fits on a CD-ROM and can probably be compressed further.