Umělá inteligence je pojem, který se často vyskytuje v médiích a je prostě cool. A v angličtině zní ještě lépe než v češtině. A i když budu mluvit o něčem, co je “umělé”, tak rozhodně nepůjde o nic neekologického. Takže žádný strach (tedy alespoň v závislosti na tom, jak je vyráběna elektrická energie, která umělou inteligenci pohání) 🙂
Umělou inteligenci můžeme najít v různých podobách. Když se s ní ale setkáte, označení umělá inteligence není většinou použito úplně správně. Často (nebo skoro vždycky) jsou tím totiž myšleny metody umělé inteligence. Tyto metody jsou specifické tím, že jsou inspirovány přírodními procesy, na nichž jsou založeny živé systémy nebo organismy. Sem patří třeba genetika (a k tomu odpovídající genetické algoritmy), neuronové systémy — a neuronové sítě, evoluce (a jí inspirované evoluční algoritmy) a podobně.
Evoluční algoritmy, na které se podíváme dnes, jsou podmnožinou metod umělé inteligence, které jsou zaměřené na optimalizaci. Ta může být např. ve formě aproximace funkcí, rozeznávání vzorků (v angličtině pattern recognition) apod.
Jedním z nejznámnějších evolučních algoritmů je diferenciální evoluce. Jde o algortimus, který je výrazně inspirovaný evolucí tak, jak ji známe v přírodě. A vlastně není vůbec čemu se divit. Co je evoluce jiného, než vlastně optimalizace. Diferenciální evoluce je založena na principech Darwinovy evoluční teorie a vychází ze schopnosti jedinců v populaci se adaptovat na okolní prostředí. Tyto schopnosti jsou jednak nejčastěji děděné a jednak prochází změnou mezi generacemi. Obecně lze říct, že vyjadřují schopnost jedince “přežít”. Schopnosti důležité pro přežití závisí na daném prostředí. V přírodě to může být např. schopnost obstarání potravy, síla, a další. Lze tedy říct, že tyto vlastnosti vyjadřují “kvalitu” jedince. Členové populace s vyšší “kvalitou” mají větší šanci na přežití v okolním prostředí. Takže co je to jiného, než optimalizace?
V případě diferenciální evoluce představují jedinci částečná řešení daného problému, který zase představuje okolní prostředí v němž jedinci “žijí”. Optimalizace potom spočívá v hledání takového jedince, který je nejadaptabilnější pro dané prostředí.
Krok 1

Protože jedinci představují částečná řešení, je nezbytné stanovit, jak jsou tato řešení “zakódována” do podoby jedinců. To určuje tzv. specimen, neboli vzor. Je to vektor, který definuje počet parametrů a jejich rozsah. Tyto parametry jsou vlastně jednotlivé vlastnosti jedince. Na začátku, pro první generaci, jsou tyto parametry stanoveny náhodně. Následně je potřeba vypočítat “kvalitu” jedince. Ta se označuje jako “cost value”. V závislosti na cost value jsou vybrání jedinci, kteří “přežijí” do další generace.
Krok 2
Při každé nové generaci jsou postupně ke každému aktuálně vybranému jedinci náhodně vybrání další tři.

Krok 3
První dva z náhodně vybraných jedinců jsou od sebe odečteni. Tím vznikne diferenciální vektor.

Krok 4
V následujícím kroku proběhne jeho mutace. Ta spočívá ve vynásobení diferenciálního vektoru mutační konstantou. Takto vznikne vážený diferenciální vektor.

Krok 5
Tento vektor je přičten ke třetímu náhodně zvolenému jedinci. Výsledkem je šumový vektor.

Krok 6
Poslední operací je křížení aktuálně vybraného jedince a šumového vektoru. To dá za vznik testovacímu vektoru, který je potomkem všech čtyřech původních jedinců s evolučně vyvinutými vlastnostmi — parametry.

Krok 7
V tuto chvíli se vypočítají cost values aktuálně zpracovávaného jedince a testovacího vektoru. Výpočet probíhá pomocí tzv. cost function, která popisuje řešený problém pro optimalizaci. Podle lepšího ohodnocení postupuje do další generace jedinec, nebo testovací vektor.

Po zpracování všech jedinců v aktuální generaci je vytvořena generace nová, kde se optimalizace opakuje.
Diferenciální evoluce má několik variant, které se liší výpočtem šumového vektoru. Jde např. o DE Best 1 Bin, DE Rand 1 Bin, DE Best 2 Bin, DE Rand 2 Bin. Parametry diferenciální evoluce jsou počet jedinců v populaci pro jednu generaci (NP), mutační konstanta (F), práh křížení (Cr) a počet generací (G).
A to je celý princip diferenciální evoluce. A proč jsou metody umělé inteligence tak populární? Protože se umí na daný problém podívat s naprosto jiným úhlem pohledu než člověk, jejich řešení bývá velice kreativní a není zkresleno lidským vnímáním a chápáním řešeného problému. Tím je možné přijít na hodně zajímavá řešení v jakýchkoliv oblastech, ve kterých je možné popsat zpracovávanou úlohu v matematické podobě.