2007
műszaki
FPGA-n implementált, sztochasztikus bitfolyam alapú, programozható neurális hálózat
Témavezető:
Dr. Cserey György
Dr. Cserey György
Összefoglaló
Napjainkban a robotika egyik fontos kérdése olyan szabályzási és vezérlési algoritmusok tervezése, melyek tanulásra képesek és előnyösen alkalmazhatóak a különféle célokra történő megvalósításokban. Célunk egy olyan speciális célhardveren történő periférikus neurális vezérlés megvalósítása volt, melynek implementációjában az egyes alacsony szintű mozgások robosztus működése mellett, a vezérlési lépések igen rövid válasz-időt igényeljenek. Ezt általában számítógép és robot közötti kapcsolattal nehéz biztosítani. Ugyanakkor minél több lokális vezérlés valósul meg, annál több számítási kapacitás jut a magasabbszintű vezérlésre és a szenzorok adatainak feldolgozására. Alacsony szintű vezérlés alatt értjük az olyan gyors válaszokat, melyek például az egyensúly megtartásához szükségesek, vagy azokat, melyek használatával elkerülhetőek a magasabb szintű vezérlés latenciájából keletkező oszcillációk. A sebesség és helyoptimalizálás érdekében érdemes minél kisebb áramköri megvalósítást választani. A rendelkezésre álló korszerű technológiák közül mikrovezérlős vagy FPGA alapú megoldás jöhet számításba. A neurális vezérlés megvalósítása esetén egy mikrovezérlő nem ad megfelelő számítási sebességet. Ugyanakkor egy FPGA azonban bizonyos komplexitáson belül, optimális párhuzamos feldolgozás mellett, tetszőleges logikai áramkört meg tud valósítani. A neurális hálózat FPGA-n történő megvalósítása sztochasztikus bitfolyam segítségével történt, mert kevés áramköri elem szükséges hozzá. Két érték szorzása ebben az esetben csupán egy ÉS kapu, és az idegháló súlyaként szolgáló, konstans értékű adatfolyam előállításához csak egy look-up table (LUT) szükséges. A sztochasztikus neuronhálót FPGA demó panelen valósítottuk meg, a referencia adatfolyamokat pedig shift regiszteres pszeudo véletlenszám generátorokkal állítottuk elő. Ezekből LUT-ok segítségével kaptuk a súlyokat. Megfelelő architektúrában ezek a LUT-ok működés közben programozhatóak, így a háló újrakonfigurálható az FPGA újraprogramozása nélkül.
A megvalósított technológia felhasználható robotok alacsony szintű vezérléséhez, illetve azok szenzoradatainak előfeldolgozásához. Ezenfelül mivel működés közben programozható ezért az FPGA-n, a neurális háló mellé történő, egyszerű mikrovezérlő implementálásával, egy chipben, nagy sebességgel megoldható a tanítási algoritmus vagy a genetikus algoritmus lefuttatása.
A megvalósított technológia felhasználható robotok alacsony szintű vezérléséhez, illetve azok szenzoradatainak előfeldolgozásához. Ezenfelül mivel működés közben programozható ezért az FPGA-n, a neurális háló mellé történő, egyszerű mikrovezérlő implementálásával, egy chipben, nagy sebességgel megoldható a tanítási algoritmus vagy a genetikus algoritmus lefuttatása.
Dr. Cserey György