Na rozdíl od genetického programování zde máme před sebou trochu jiný úkol. Neuronová síť se má sama učit svůj úkol a současně se reprodukovat.
Vědci z Columbia University popsali svůj přístup na webu ArXiv (první autor Oscar Chang). V evolučních programovacích technikách software prostě řeší daný úkol a vnější program pak s tímto softwarem manipuluje – kříží kódy mezi sebou, podrobuje je mutacím, řadí podle úspěšnosti a pak vytváří další generaci populace. Zde ale toto vše je úkolem samotné neuronové sítě.
Autoři výzkumu přirovnávají svůj přístup k programům zvaným quines – to jsou zdrojové kódy, které na výstupu musí dokázat vyprodukovat zase samy sebe (typicky se vytisknout; myšleno tedy bez pomoci textového editoru, pouze z prostředí příslušného programovacího jazyka – vlastně je zajímavé, že takové programy vůbec mohou existovat). Reprezentací neuronové sítě není ovšem zdrojový kód, ale sada jednotlivých relativních vah, které vyjadřují míru propojení mezi uzly.
V rámci výzkumu se experimentovalo s poměrně malými sítěmi, které se učily rozpoznávat obraz a současně se měly reprodukovat. Ukázalo se, že se tím schopnost zlepšovat se v plnění daného úkol zpomaluje. Obě funkčnosti jdou proti sobě (trade-off), asi jako v přírodě organismus také může volit buď rozmnožování, nebo zvyšování své životaschopnosti či určité dovednosti.
Zdroj: The Register
Poznámky PH: Šlo o to, že vytváření kopií např. ubíralo hardwarové zdroje? Nebo o to, že aby si síť stále uchovávala schopnost se replikovat, takže byla omezeny její možnosti vlastního přetváření? (A co vlastně přesně znamená, když se neuronová síť „sama“ replikuje? Jak může sda vah jednotlivých propojení vytvořit další síť?)