Koneoppimisessa geneettinen ohjelmointi (GP) on ohjelmien automaattista luomista tai muokkaamista geneettisten algoritmien avulla . Tämän metodologian avulla ”kasvatetaan” ohjelmia, jotka ovat yhä parempia (tietyn kromosomien kuntofunktion mukaisesti) ratkaisemaan asetetun laskennallisen ongelman.
Valinta, kuinka ohjelma koodataan geneettisessä algoritmissa, on yksi geneettisen ohjelmoinnin pääkysymyksistä. Ohjelma tulee koodata siten, että siinä on helppo tehdä satunnaisia muutoksia automaattisesti (mutaatiooperaattori) ja yhdistää kaksi algoritmia yhdeksi (crossover-operaattori).
Koodausmenetelmät voidaan jakaa kahteen luokkaan:
Puukoodauksessa jokainen puusolmu sisältää funktion ja jokainen lehti operandin. Puuna esitetty lauseke voidaan helposti arvioida rekursiivisesti. Perinteisiä GPU:ita on helpompi käyttää ohjelmien kasvattamiseen, jotka on kirjoitettu kielillä, jotka luonnollisesti ilmentävät puurakennetta: Lisp , Haskell , F# ja muut toiminnalliset ohjelmointikielet.
On myös ehdotettu ja onnistuneesti toteutettu ohjelmien ei-puuesityksiä, kuten perinteisille imperatiivisille kielille sopiva lineaarinen geneettinen ohjelmointi.
Crossover-operaattoriPuuesityksessä crossover-operaattori toteutetaan vaihtamalla kahden puun välillä mikä tahansa solmu yhdessä niiden jälkeläisten (alipuiden) kanssa.
Esimerkki:
yksilöllinen . Lapset [ randomChildIndex ] = muu Yksilö . Lapset [ randomChildIndex ] ; MutaatiooperaattoriToisin kuin crossover-operaattori, mutaatiooperaattori vaikuttaa vain yhteen kromosomiin. Puunäkymässä se voidaan toteuttaa muuttamalla solmun tietoja tai lisäämällä/poistamalla solmu tai koko alipuu. Tässä tapauksessa on tarpeen seurata operaattorin tulosten oikeellisuutta.
Esimerkki:
yksilöllinen . Tiedot = satunnainenTiedot ();tai
yksilö = generoiUusiYksilö ();Metageneettinen ohjelmointi on GP, jossa paitsi tiettyä tietokoneohjelmaa muutetaan ja sitä kautta "kasvatetaan", vaan myös itse sovelletut risteytys- ja mutaatiooperaattorit.
.
Koneoppiminen ja tiedon louhinta | |
---|---|
Tehtävät | |
Opettajan kanssa oppimista | |
ryhmäanalyysi | |
Mittasuhteiden vähentäminen | |
Rakenteellinen ennustaminen | |
Anomalian havaitseminen | |
Piirrä todennäköisyysmallit | |
Neuroverkot | |
Vahvistusoppiminen |
|
Teoria | |
Lehdet ja konferenssit |
|