Delphi

┌vodem

┌vodem  |  Soubory ke sta₧enφ

 

Dnes dokonΦφme povφdßnφ o neuronovΘ sφti a zßv∞rem op∞t odlehΦenφ.

NeuronovΘ sφt∞ - 3.

V minul²ch Φßstech jsme si uvedli zßkladnφ principy prßce s jednφm typem neuronov²ch sφtφ. V tΘto Φßsti si uvedeme praktickΘ v²sledky - program v Delphi, realizujφcφ neuronovou sφ¥.

K naprogramovßnφ je vyu₧ita komponenta firmy DatalandSoftware. Pokud budete chtφt sami s p°ilo₧en²m p°φkladem nebo s n∞jakou vlastnφ neuronovou sφtφ experimentovat, a nebude se vßm samotn²m chtφt programovat algoritmy neuronovΘ sφt∞ od zaΦßtku do konce, doporuΦuji vßm zmφn∞nou komponentu si nainstalovat. Prßce s komponentou je velmi snadnß - viz popis na konci stati.

V p°ilo₧enΘm naprogramovanΘm p°φkladu - viz obrßzek - je v pravΘm okn∞ zobrazena mno₧ina uΦebnφch p°φklad∙. Ka₧d² p°φklad je na jednom °ßdku, p°iΦem₧ prvnφ t°i znaky jsou chßpßny jako kombinace znak∙ v °ßdku, sloupci Φi diagonßle ze hry Tic-Tac-To verze 3 x 3. Znak . (teΦka) opticky nahrazuje mezeru. Za znakem / (lomφtko) je uvedena kombinace nul a jedniΦek, jako ocen∞nφ pole, na n∞₧ se mß provΘst tah (0 - neprovßd∞t, 1 - provΘst). CelΘ hodnocenφ je brßno s hlediska hrßΦe s koleΦky. Mno₧ina p°φklad∙ je v textovΘm souboru s nßzvem TestData.txt a naΦφtß se po spuÜt∞nφ programu.


p°φklad

V prvnφm editaΦnφm poli je zadßn implicitnφ poΦet uΦebnφch pr∙chod∙ p°es mno₧inu p°φklad∙. Teoreticky Φφm vφce pr∙chod∙, tφm lΘpe, ale abychom u poΦφtaΦe nestrßvili t°eba celou noc uΦebnφm procesem, omezuje se v lepÜφm p°φpad∞ poΦet pr∙chod∙ dosa₧enφm n∞jakΘho minimßlnφho souΦtu chyb za celou mno₧inu p°φklad∙, v horÜφm p°φpad∞ se poΦet pr∙chod∙ omezφ napevno n∞jak²m poΦtem krok∙. PoΦet krok∙ m∙₧ete zm∞nit, nebo m∙₧ete projφt celou v²uku vφcekrßt a ve druhΘm editaΦnφm okn∞ se celkov² poΦet pr∙chod∙ souΦtuje. V²ukov² proces se spouÜtφ tlaΦφtkem "v²uka".

PotΘ co neuronovou sφ¥ p°φklady "nauΦφte", m∙₧ete si ov∞°it jak dob°e se p°φklady "nauΦila". M∙₧ete bu∩ zadat kombinaci znak∙ x, o a . (teΦka) (namφsto teΦky m∙₧ete ponechat prßzdnΘ pole) a nebo poklepejte na °ßdek s p°φkladem. PotΘ stiskn∞te tlaΦφtko "test kombinace" a v °ßdcφch pod zadanou trojicφ se objevφ nauΦenΘ hodnoty.

Obdobn∞ m∙₧ete provΘst test vyhodnocenφ situace - tentokrßt nad cel²m hracφm polem. Program postupn∞ vybere vÜechny vodorovnΘ, svislΘ a diagonßlnφ trojice a po vyhodnocenφ trojice seΦte hodnoty na odpovφdajφcφch polφch. Tah (koleΦkem) by se m∞l teoreticky provΘst na pole s nejvyÜÜφm souΦtem.

Pokud si s programem trochu pohrajete a provedete pßr pokus∙, zjistφte, ₧e vyhodnocovßnφ zßvisφ na celΘ °ad∞ faktor∙. Jednak je to uΦebnφ mno₧ina, dßle poΦet cykl∙ v²uky, struktu°e sφt∞ (tj. poΦet vrstev sφt∞ a poΦet neuron∙ v jednotliv²ch skryt²ch vrstvßch) a dßle vyhodnocenφ zßvisφ na n∞kter²ch dalÜφch parametrech. V²sledky jsou obΦas zajφmavΘ a p°ekvapivΘ.

Pokud pou₧ijete pro definici sφt∞ v²Üe zmφn∞nou komponentu, pak v inspektoru objekt∙ m∙₧ete nastavit vlastnosti:

inspektor

BPSpeed a Inertion jsou v²Üe zmφn∞nΘ parametry, na nich₧ mohou zßviset v²sledky. InputCount a OutputCount urΦujφ poΦet neuron∙ vstupnφ a v²stupnφ vrstvy, vlastnosti Input/OutputMin a Input/OutputMax urΦujφ v jakΘm intervalu se mohou vstupnφ a v²stupnφ hodnoty pohybovat. Vlastnost NLayers je kolekce skryt²ch vrstev, p°iΦem₧ pro ka₧dou skrytou vrstvu si m∙₧ete zvolit poΦet neuron∙.

Zßkladnφ metody a hodnoty prom∞nn²ch, s nimi₧ budete v programu pracovat, jsou:

Prom∞nnΘ:

Input[1] .. Input[InputCount]    -> hodnoty vstupnφ vrstvy
Output[1] .. Output[OutputCount] -> hodnoty v²stupnφ vrstvy


Metody: 

BackProp - uΦφcφ algoritmus - nastavφme hodnoty pole Input a Output  a volßme metodu

CalcOut - vyhodnocovacφ algoritmus - nastavφme hodnoty pole Input, volßme metodu a v²sledek odΦφtßme v poli Output.
To je zatφm k neuronov²m sφtφm a um∞lΘ inteligenci vÜe. VaÜe vlastnφ konstruktivnφ p°φsp∞vky, nßzory a komentß°e jsou vφtßny.

Zßv∞rem

PoΦφtaΦe nßm pomßhajφ efektivn∞ zvlßdat administrativu:




Nßsledujφcφ sΘrie obrßzk∙ ukazuje modernφ trendy konstrukce ergonomick²ch PC:





Pokud vßs v²Üe uvedenß vylepÜenφ zaujala, mßte pravd∞podobn∞ sklon k workoholismu a tak byste si m∞li dßt pozor, abyste nakonec nedopadli podobn∞:




Viry dnes ·toΦφ na naÜe poΦφtaΦe ze vÜech stran. Musφme vyu₧φt vÜech mo₧nostφ jak je p°ed nimi ochrßnit...

 

Ji°φ Ventluka