Zdravim, je sice pekne, ze autor popise, ze ma 3 2D pole, pak 3 2D pole s vahami, ale postradam treba vysvetleni proc je delka pole o 1 delsi nez 256. V obrazku u klasifikace je sice pekne schema, ale ocenil bych vysvetleni jak velka ta pole jsou a proc. Obecne bych ocenil co a proc se kde dela, proc se nastavuje nejaka velikost apod. V jave nedelam, takze precteni zdrojaku mi nic moc nerekne. Bylo by asi zajimave nejak vizualizovat vypocet, ovsem chapu, ze by to bylo neumerne narocne napsat. Bylo by mozne treba clanek rozsirit o tyto informace ? Byl bych neskonale nadsen :-) (Plus pripadne jsem ochoten poslat autorovi nejakou korunu.)
Kazdoapdne dekuji za serial, nebot je velmi zajimavy a velmi brzy budu v situaci, kdy budu tyto informace hodne potrebovat pri jedne uloze.
Zdravím, každé 2D pole reprezentuje každou vrstvu. Vrstva se skládá z N neuronů a každý neuron má M vstupů - odtud matice MxN. Každý prvek matice je m-tá váha n-tého neuronu. Neurony mají ale o 1 vstup více než je dimenze vstupujicího vektoru - viz článek "Biologické algoritmy (4) - Neuronové sítě" obrázek pod nadpisem Umělý neuron. Tato jednička v podstatě způsobuje posunutí rozdělující roviny a zbylé váhy pronasobené se vstupy způsobují orientaci (směr) této roviny, ktera rozděluje prostor na dva podprostory - viz v tom samém článku příklad s muži a ženami.
Velikost matic je tedy dána zvoleným počtem neuronů v jednotlivých vrstvách. Málo neuronů ve skrytých vrstvách může vést k méně přesné klasifikaci (prostě není dostatek zdrojů k zmapování celého prostoru). Hodně neuronů naopak může způsobit přeučení (zbytečně velké zaměření na detaily v trénovacích datech), což způsobí lepší výsledky v trenovacích datech, ale reálně v testovacích horší a učení trvá déle. Záleží na konkrétním problému jaké počty zvolíme.
U první vrstvy je 256, protože jsem zvolil zrovna tuto metodu výpočtu příznaku obrázku, který má 256 hodnot. Kdybychom příznaky nepočítali jako histogramy barev, ale zvolili nějaký jiný přístup, těchto hodnot by mohl být jiný počet. Výstupní vrstva má 4 neurony protože rozlišujeme právě 4 typy scén.
Počty neuronů ve skrytých vrstvách 75 a 15 by šlo zvolit i jiné. Jen by jich nemělo být příliš málo ani příliš mnoho. Záleží na konkrétním problémů. Jestliže je prostor řešení jako z příkladu mužů a žen v článku 4 takto jednoduchý, tak stačí málo neuronů, jestliže ale bude komplikovaný jako např. tady http://www.ire.pw.edu.pl/~rsulej/NetMaker/index.php?pg=e03 je potřeba neuronů více. Existují odhady pro neuronovou síť se dvěma skrytými vrstvami: N1 = out*(out/in)^(2/3) a N2 = out*(out/in)^(1/3), kde v tomto případě je out=256 a in=4. Nejlepší by bylo otestovat pro různé počty neuronů, kdy síť na testovacích datech klasifikuje nejlépe.
Jinak jsou tam 2 skryté vrstvy a jedna výstupní. Někdy se volí pouze jedna skrytá vrstva - aspoň jedna je potřeba, protože pro některé problémy (např. XOR) by jen výstupní vrstva nestačila.
Pokud by byla jen jedna skrytá vrstva tak situace je následující. Ta jedna vrstva rozseká prostor na různé dvojice podprostorů - viz článek 5. Tím v prostoru vzniknou různé polygonální oblasti. A poslední výstupní vrstva se pak naučí, že když je bod uvnitř té které oblasti, tak jak se má klasifikovat.
V případě, že máme dvě skryté vrstvy může se ještě zpřesnit klasifikace bodů na rozhraní mezi dvěma oblastmi.
Komentovaný kód můžete zaslat na e-mail, děkuji.