A gépi tanulásban a genetikai programozás (GP) a programok automatikus létrehozása vagy módosítása genetikai algoritmusok segítségével . Ennek a módszernek a segítségével olyan programokat „nőnek ki”, amelyek egyre jobban (egy kromoszómára vonatkozó fitnesz függvénynek megfelelően) megoldják a beállított számítási problémát.
Egy program genetikai algoritmusban való kódolásának megválasztása a genetikai programozás egyik fő kérdése. A programot úgy kell kódolni, hogy könnyen lehessen véletlenszerű változtatásokat végrehajtani (mutációs operátor) és két algoritmust egyesíteni (crossover operátor).
A kódolási módszerek két csoportra oszthatók:
A fa kódolásánál minden fa csomópont tartalmaz egy függvényt, és minden levél egy operandust. A faként ábrázolt kifejezés könnyen rekurzív módon kiértékelhető. A hagyományos GPU-k könnyebben használhatók olyan nyelveken írt programok fejlesztéséhez, amelyek természetesen fastruktúrát testesítenek meg: Lisp , Haskell , F# és más funkcionális programozási nyelvek.
A programok nem faábrázolásait is javasolták és sikeresen implementálták, például a hagyományos imperatív nyelvekhez alkalmas lineáris genetikai programozást.
Crossover operátorEgy faábrázolásban a keresztezési operátort két fa közötti cserével valósítják meg bármely csomópont, azok leszármazottaival (részfáival) együtt.
Példa:
egyéni . Gyermekek [ randomChildIndex ] = egyéb Egyén . Gyermekek [ randomChildIndex ] ; Mutációs operátorA crossover operátorral ellentétben a mutációs operátor csak egy kromoszómát érint. Fanézetben egy csomópont információinak megváltoztatásával, vagy egy csomópont vagy egy teljes részfa hozzáadásával/eltávolításával valósítható meg. Ebben az esetben ellenőrizni kell az üzemeltető eredményeinek helyességét.
Példa:
egyéni . Információ = randomInformation ();vagy
egyéni = generálNewIndividual ();A metagenetikus programozás olyan háziorvos, amelyben nem csak egy adott számítógépes programot változtatnak meg, és így "nőnek", hanem magukat az alkalmazott keresztezési és mutációs operátorokat is.
.
Gépi tanulás és adatbányászat | |
---|---|
Feladatok | |
Tanulás tanárral | |
klaszteranalízis | |
Dimenziócsökkentés | |
Strukturális előrejelzés | |
Anomália észlelése | |
Grafikon valószínűségi modellek | |
Neurális hálózatok | |
Megerősítő tanulás |
|
Elmélet | |
Folyóiratok és konferenciák |
|