Diskuse:Genetické programování

Obsah stránky není podporován v jiných jazycích.
Přidat téma
Z Wikipedie, otevřené encyklopedie

Dobrý den, na úvod připomenu, že píšeme do encyklopedie a informace by tedy mělo být možné podložit citacemi.

  1. O GP se trochu zajímám, ale nevzpomínám si že by za zakladatele metody byl považován J.Koza. Dá se to doložit? On sám se za něj považuje? Jiní ho považují za zakladatele? Jednou z kategorií GP je lineární GP se kterým Koza nemá nic společného. Podle mě tím že prosazuje a píše jen o svém Lispu a tree based GP tím GP moc nepomáhá.
  2. Upravil jsem algoritmus GP. Ten původní byl dle mně nepřesný a matoucí. Je pravda, že nejspíše neexistuje jeden obecný.
  3. Zhodnocení metody. Ten bod číslo 2 není tak úplně pravda. Za prvé se většinou vždy preferují kratší řešení (okamova břitva) protože je to rychlejší a za druhé nejasnost řešení je většinou věcí TGP. U LGP je výsledkem algoritmus velmi podobný tomu co by napsal člověk. Bod číslo 3 - sebedelší evoluce - pokud udržujete diverzitu v populaci a používáte mutaci, tak jednou výsledek najdete. Problém je že nevíte kdy, zda se dočkáte a zda jej poznáte.

--Michal Jurosz 09:20, 11. 11. 2005 (UTC)

Jinak ty dvě věty jsou celkem důležité. GA je podmnožinou GP už jen proto že GA optimalizuje jen parametry ne strukturu, GP muze delat jen parametry taky. A to ze se jedna o strojove uceni a evolucni techniku je taky nesporne. mozna ten "preklad" okolo fitness landscape -> fitness funkce by chtelo upravit, ale nenapadlo me jak. Muzete prosim delat zmeny postupne, at podle zmen vidim co zmizelo a co se zmenilo? Dekuji. --Michal Jurosz 09:45, 11. 11. 2005 (UTC)


Dobrý den, pane kolego. K Vaším věcným námitkám: 1) "Zakladatel" asi je o Kozovi opravdu moc nadnesené a nijak na tomto slově nelpím. V podstatě to byl on, komu se na to podařilo upoutat širší pozornost a dát tomu jakýsi fundament svými články a knihou, nicméně sama idea skutečně tu byla už před ním. Nazvěte ho tedy jinak - jak chcete. 2) OK, mně zase připadá trochu nepřesná a matoucí ta Vaše verze, ale snad po pár editacích najdeme aspoň nějaký způsob, jak to přiblížit laikům. Rozhodně je dobře, že jste to rozdělil do číslovaných bodů. 3) Delší doba výpočtu - závisí pochopitelně na tom, s čím srovnáváte a pro jakou úlohu; v mém oboru rozhodně GP patří mezi metody potřebující nejdelší čas a myslím, že to tak bude i obecněji. Podobnost výsledků s lidskými programy je opět věcí názoru, můj názor to v obecném případě rozhodně není. Délka evoluce - teoreticky máte pro řadu situací pravdu, ale je to často pravda přesně toho typu jako že když necháte opici dostatečně dlouho bouchat do psacího stroje, tak Vám jednou jen tak mimochodem napíše Hamleta. Nicméně souhlasím, že by to chtělo malinko zpřesnit. -- Co se týče posledního výroku o dvou větách, tak nevím, které dvě věty máte na mysli.
A k Vaším dobrým radám: Kdesi o sobě píšete, že Vám dělá určité problémy čeština. Podle toho (a podle jiných náznaků) jsem si vydedukoval, že nejspíš budete autorem pokusu o překlad, kterým kdosi anonymní včera tuto stránku zcela přepsal. Podle mého názoru byl jeho příspěvek nejen češtinářsky podivný, ale ani obsahově vcelku viděno nijak nepřesahoval to, co tam bylo předtím. Je-li moje dedukce správná, tak si nemyslím, že zrovna Vy byste tady mohl někoho vybízet k postupným změnám. Vyžadujete-li od druhých nějaké chování, měl byste se sám chovat také tak. -- Pokud náhodou oním překladatelem nejste, tak jenom vězte, že z výjimkou případů celoplošného vandalismu obvykle dělám změny postupně.--Jan Spousta 18:36, 11. 11. 2005 (UTC)
PS: Teď jsem koukal na Kozovu domovskou stránku [1] a tam o sobě sám píše, že je považován za vynálezce: "This goal can be accomplished using the technique of genetic programming (of which I am considered the inventor)." Myslím, že tomu je opravdu tak, většinou ho pokud vím v této oblasti citují na prvním místě. --Jan Spousta 18:49, 11. 11. 2005 (UTC)
Ono sam Koza pise kdy bylo poprve uzito technik GP a pak pise ze je povazovan za zakladatele, coz si trochu odporuje. Ono take tree GP je jedna vec, ale ostatni druhy reprezentace nejspise nevymyslel ani nerozviji.
Rozdeleni na generace neni docela presne. U LGP je bezne ze "generace" se musi pocitat umele, tj. napr. po 10tis aplikacich operatoru. Tj. vytvorite noveho jedince a vlozite do populace, pak znovu, tj. hranice mezi generacemi neexistuje.
Ty rady si vemu take k srdci. Je fakt ze asi oba v dobre vire upravujeme nepresnosti v clanku a myslime si ze mame pravdu. Z me upravy zmizely fakta a ja si toho vsiml jen nahodou. Ve vasem pripade jsem odstranil dva cele odstavce, coz se prehlednout nedalo.
Par poznamek k bodu 3. GP obecne nema zadne vysledky. Musime posuzovat konkretni implementaci (napr. Discipulus je neco jineho nez Lisp Kozy). Wikipedie nedela vlastni vyzkum. Koza spolu s dalsimi autory ma vedecke clanky, ktere ukazuji vysledky srovnatelne s lidskymi, pokud existuji publikovane protiargumenty, tak budu rad kdyz je uvedete. Jinak to posuzovani algoritmu je relativni, ale to asi vite (en:No-free-lunch theorem). Toho Hamleta v tech stozich papiru opice nenajdete, zatimco "slusne napsana evoluce" se pri konstantni fitness funkci nezhorsuje.
"Jedinec z nejvyšší zdatností přes všechny generace." To nechapu. Bezne, pri spravne selekcni metode se ten nejlepsi jedinec nemuze ztratit. Proto staci vzit nejlepsiho z posledni generace, resp. z populace. Prave proto je to evolucni algoritmus, ne? Od biologicke evoluce se to lisi v tom, ze nekteri jedinci mohou prezit tisice generaci, pokud maji vysokou fitness.
reprodukce by podle mne mela byt na prvnim miste, ale ty pravdepodobnosti se mi dohledavat nechce.
s temi operatory mate pravdu, napr. u LGP se ukazuje ze krizeni neni potreba, staci mutace. ono dva zcela odlisne programy se vetsinou nedaji vhodne zkrizit, je lepsi kazdy zvlast zmutovat.
--Michal Jurosz 11:38, 14. 11. 2005 (UTC)
Ad Koza - zkusil jsem kompromisní formulaci, a neměl byste ho tak očerňovat, dělá co může. :-)
Generace: záleží na typu algoritmu, někde jsou ty generace výrazné, jinde ne. Asi musíme ten popis udržet jednoduchý, jsme v obecné encyklopedii a ne ve vědeckém článku. Mně to pro laika přpadá průhlednější s genercemi než bez nich.
Bod tři: jedná se čistě o výpočetní čas, pokud tomu rozumím. A z principu lze čekat, že řešení metodou pokus-omyl (jako je evoluce) bude obvykle pomalejší než něco, co nastaví parametry nějakou přímočarou metodou hledání extrému. Na to podle mne žádný zvláštní výzkum není potřeba, mně to připadá jako jasná a praxí ověřená věc.
"Jedinec z nejvyšší zdatností přes všechny generace." je obecná formulace, která je pravdivá vždy, ať už používáte metodu, která dosavadního vítěze vždy ponechá v populaci anebo takovou, která ho umožní odstranit a dát k ledu (což taky existuje). Pokud ho ponecháváte, tak je logické, že ho na konci najdete i v poslední populaci.
Zdravím --Jan Spousta 13:12, 14. 11. 2005 (UTC)
Kozu ocernovat nechci, ale za zakladatele nebo spasitele ho nepovazuju :-). "Jen" za jednoho z nejdulezitejsich na poli GP.
"Vyrazne, jinde ne." To asi ne, ony bud jsou nebo ne. Kdyz nejsou tak se pro porovnani nebo snadnejsi popis nekdy "dopocitavaji".
Bod tri. To mate pravdu. Ale nema smysl pouzivat GP pro ulohy, kde existuje vhodnejsi (rychlejsi, ekonomictejsi, presnejsi) metoda. Rekl bych ze se pouzivaji tam, kde primocarejsi algoritmus neni znam nebo ma vetsi nevyhody nez je vetsi vypocetni narocnost GP.
Pravdiva vzdy neni. Muze se stat ze pravdepodobnost, ze se odstrani nejlepsi jedinec z populace je mala a proto se toto prehlizi nebo ze se fitness funkce meni s nejakou dynamikou. Algoritmy co jsem videl nebo delal "pres vsechny generace" nepouzivaly.
--Michal Jurosz 16:29, 14. 11. 2005 (UTC)
OK, Kozu a generace nechme, tam jde spíš o slovíčkaření. K bodu tři jen tolik, že občas předem nevíte, která z metod bude vhodná, tak jich prostě vyzkoušíte několik a koukáte, co z toho leze. A pokud budu mít vedle sebe třeba rozhodovací strom a GP, tak bych čekal, že ten strom doběhne o řád rychleji (neříkám to ale jako obecně platné pravidlo, abyste hned neběžel hledat nějaký protipříklad). A co se týče té poslední věty - tak v tom popisovaném algoritmu přece jednak bereme fitness funkci jako neměnnou a jednak zanedbání případné pravděpodobnosti vyloučení nejlepšího by přece v takovéto konkrétní situaci nepřineslo žádný zvláštní zisk na rychlosti nebo snadnosti výpočtu, takže by se jednalo o suboptimální přístup: vy přece fitness musíte stejně počítat tak jako tak u všech jedinců, a tak si vždycky někam odložíte toho dosud nejlepšího jedince a pořád si tento kousek paměti updatujete. Nemá zkrátka podle mne cenu tam psát, co by se stalo, kdyby programátor byl líný nebo hloupý - takové detaily tu asi nikoho nezajímají. --Jan Spousta 18:56, 14. 11. 2005 (UTC)
Ty generece a Koza mi po uprave nevadi. Pokud budeme verit reklame, tak Discipulus rika ze je rychlejsi nez rozhodovaci stromy a mnoho dalsich technik. Vzhledem k tomu jak to funguje (GP jedinci jsou sekvence instrukci, ktere se spousteji primo v CPU) tak na tom neco pravdy muze byt. V te casti ohledne "pres vsechny generace" uz opravdu slovickarime. Ten GP se spatnou selekcni metodou je fakt nekvalitni algoritmus. Ten s dynamickou fitness nepopisujeme, ale nemusime s nim ani odporovat. Nechal bych to prihlizne tak jak to ted je, pokud nejste proti. Podle me je zbytecne psat o vybirani pres vsechny generace, kdyz kazdy algoritmus se spravnou selekcni metodou bere jen nejlepsiho z populace (posledni generace). --147.229.221.107 21:28, 14. 11. 2005 (UTC)
Mně už to taky nijak zvlášť nevadí, děkuji. -- Jinak: nikdy bezvýhradně nevěřte sebechvále, kterou na sebe píší výrobci ve svých propagačních materiálech. Jejich zboží je přece vždycky nejlepší, jinak by ho vůbec nevyráběli, ne? :-) Když se na to podíváte podrobněji, tak většinou zjistíte, že je třeba opravdu nejlepší, ale jenom pro nějaký zvláštní případ -- takových věcí už jsem v životě viděl... Ale přiznávám, že s Discipulem žádnou praktickou zkušenost nemám, třeba je fakt nejlepší. Docela rád bych viděl nějaké benchmarky provedené někým kompetentním a nezávislým.--Jan Spousta 07:35, 15. 11. 2005 (UTC)
To mi je jasne. Cetl jsem o tom z nekolika zdroju, ale stale to asi nebude dost nezavisle :-). --Michal Jurosz 14:20, 15. 11. 2005 (UTC)