On self improving AI
The way it's been done in the past is one AI turns a picture into text an the other turns text into a picture.
The AI generated material is added to known good material. The AI's job then is to guess what is real an what is fake (generated by AI).
At the point when the AI cannot tell in a false positive way both AI are said to be at their limit. If the limit is good enough you're done otherwise go back and code (more nodes or better function or more real data)
The thing to remember is you still need real data. The act of putting the AI together is good only to create more data then you could ever provide.
If that data is bad then you are going to rely on the cost function more then the data. But this allows you to label data real and AI so if the function rewards identifying the AI the AI's find each other's flaws and the better at avoiding flaws the better the AI get. (You still need real data! just less)
For example if two people cannot play ping pong if they play each other they learn slowly and only the cost function enforces their learning.
But have them play a pro (lots of good data) and they get better much faster.