reklama
Aktuality  |  Články  |  Recenze
Doporučení  |  Diskuze
Grafické karty a hry  |  Procesory
Storage a RAM
Monitory  |  Ostatní
Akumulátory, EV
Robotika, AI
Průzkum vesmíru
Digimanie  |  TV Freak  |  Svět mobilně

Neuronová síť - pohyb robota podle vizoru (hledí)

evergrey (1)|15.7.2010 19:35
Dobrý den,

rád bych na tomto serveru našel někoho, kdo by byl ochotný mi pomoci s řešením následujícího problému:

Ve škole jsem dostal zadanou seminární práci s úkolem naprogramování neuronové sítě v libovolném jazyce. Tato síť by měla
fungovat jako pokyny pro robota, jakým směrem se vydat podle údajů na jeho hledí.

Hledí by bylo rozděleno do sedmi polí a podle jejich zaplnění by se měl robot rozhodovat.

Příklad: pokud je vlevo jedno pole plné a zbytek prázdné, tak robot může pokračovat pouze dopředu a doprava (šel by i pohyb šikmo, ale myslím si, že základní směry budou bohatě stačit). Tohle by šlo vyřešit pomocí binárních čísel - 1 = plná, 0 = prázdná.

Pro robota se využijí dvoje data - trénovací a testovací. Aby robot v testovacích neopakoval náhodně to, co se naučil v trénovacích, tak bych rád, aby se trénovací a testovací data střídala. Z těchto dat, by pak bylo dobré udělat nějaký procentový výsledek typu: kolikrát robot naboural atd.

Nežádám tady nikoho, aby tuto práci udělal za mě (i když iniciativě se meze nekladou :)). Spíše bych rád, pokud má někdo nějaké zkušenosti s programováním, protože já mám čistě základy a tohle jde vysoce nad můj level, aby mě někdo postrčil tím správným směrem a vysvětlil či konzultoval případné dotazy.

Pokud by se někdo velmi nudil a chtělo se mu tuto práci udělat celou, pak jsem připraven ji finančně ohodnotit.

Děkuji a přeji hezký den,
Vojtěch
Dojigiri (1629)|16.7.2010 13:18
No, co se týká neuronových sítí ... ty se neprogramujou takovýmhle způsobem (procedurálním - testováním jednotlivých polí a přesným specifikováním toho, co má v takovým případě přesně dělat).

Pokud si pamatuju ze školy (osobně jsem neuronovou síť zatím nikdy neimplementoval, ačkoliv mě to svýho času docela zajímalo), prostě se naprogramuje neuronová síť (jsou různý druhy, který se lépe či hůře hodí pro různý věci, zejména co se týká vzájemných propojení jednotlivých "neuronů" - topologií) a ta se pak "trénuje" - trénovací režim spočívá v tom, že se nastaví vstup a požadovaný výstup a podle toho se jednotlivým neuronům nastaví jejich určitý vnitřní stavy ("váhy"). Když je síť pak správně natrénovaná, měla by u "podobných" vstupů poskytovat "podobný" výstupy (tj. měla by být schopná relativně správně zpracovat i vstupy jiný, než jaký "viděla" v průběhu trénování - jiný než na jaký byla "natrénovaná" - to je právě výhoda neuronových sítí, že se přesně a konkrétně neprogramuje specifikace, co má přesně na jakej vstup dělat, ale výstup je danej tak nějak "celkovým stavem" sítě - včetně možnosti určitý "paměti", tedy "učení" apod.).

Viz http://cs.wikipedia.org/wiki/Neuronov%C3%A1_s%C3%AD%C5%A5
http://cs.wikipedia.org/wiki/U%C4%8Den%C3%AD_s_u%C4%8Ditelem


No a v čem to udělat, to záleží v čem umíš nejlíp programovat (Pascal, C, Java).
Případně i Matlab na to má nějakej toolbox (zde je příklad použití: http://www.samples.cz/clanky/neuronove-site-s-free-matlab-toolboxem/)
EditorPO (2819)|16.7.2010 13:45
Kamarát podobný obor študoval. Raz mi ukazoval jeho vlastný program, kde dvaja roboti chytali tretieho robota. Mali svoju inteligenciu, ktorú si dokázali zlepšovať a myslím, že dokonca komunikovali medzi sebou.
Problém je v tom, či by bol ochotný ti pomôcť a kedy by som ho odchytil na FB.
mstejska (2912)|16.7.2010 14:10
Před pěti lety jsem se Neuronkami pár let zabýval.
Pokud by jsi měl konkrétní otázky, tak bzch ti na ně mohl třeba odpovědět (pokud bych věděl) ale takhle obecně je to krátce nevysvětlitelné.
Nejlépe si přečti nějaký obecný pokec. Na G jsem našel třeba tohle http://nlp.fi.muni.cz/uui/referaty2009/kabath_david/referat.pdf
No a pak se můžeš začít vybírat síť pro své použití a samozřejmě styl učení
Zkus třeba kapitolu 6 Perceptron.
Kdysi jsem četl nějakou slovenskou knihu (1999?) o Neuronkách, bohužel už si nepamatuji jméno.