Robotika a jej história
Mnohých z vás určite napadla otázka: "Čo to tá robotika vlastne je?" Ako už z názvu vyplýva, je to veda zaoberajúca sa robotmi a všetkého čo s nimi súvisí. Slovo robotika je anglického pôvodu a ako prvý ho použil americký sposovateľ a autor sci-fi Isac Assimov. No samotné slovo robot bolo prvý krát na svete použité v divadelnej hre R.U.R (Rossum´s universal robots) Karla Čapka. Robotika je ako som už povedal veda o robotoch, ale aj o ich dizajne, výrobe a aplikáciách. Robotika úzko súvisí s elektronikou, mechanikou a softvérom. Prvý návrh týkajúci sa robotiky podal George Devol v roku 1954. Jeho spoločnosť Unimation bola prvá, ktorá vyrobila priemyselného robota. Konštrukciou sa človeku vôbec nepodobal a jeho hlavnou úlohou bolo prenášanie objektov z miesta na miesto. Neskôr sa konkurenciou Unimationu stali mnohé japonské firmy. Japonsko má dodnes popredné miesto v priemyselnej robotike aj vo výskume. Dnešní komerční a priemyselní roboti sú veľmi rozšírení, vykonávajú prácu lepšie, lacnejšie a spoľahlivejšie ako človek. Sú tiež využívaný pri práci v nečistote, nebezpečí, alebo jednoducho pri prácach, ktoré nie sú pre človeka vhodné. Roboti sa dnes používajú najmä vo výrobe, montáži, transportoch, vesmírnom bádaní, vojenstve, lekárstve a bezpečnosti. S robotikou veľmi úzko súvisí aj niekoľko výskumov o ktorých si tu budeme hovoriť a to:
- Genetické programovanie
- Kybernetika
- Neuronové siete
- Umelá inteligencia
- Mobilná robotika
Genetické programovanie
Genetické programovanie (ďalej len GP) využíva metódy podobné biologickej evolúcii pri vytváraní počítačových programov, ktoré čo najlepšie riešia danú úlohu. Ide teda o metódu strojového učenia, ktorá využíva genetické algoritmy, ktoré postupne zlepšujú populáciu počítačových programov. Za najdôležitejšieho z otcov tejto motodológie sa považuje John R. Koza, aj keď experimenty v tomto smere vykonávali už Stephan F. Smith a Nichael L. Cramer.
Algoritmus GP
Dnes už existuje celá škála rôznych variant GP. Nejde tu preto podať vyčerpávajúci popis všetkých variant. Ani nasledujúcu schému klasického algoritmu tohto druhu nejde použiť na všetky aplikácie, ale môže poslúžiť k pochopeniu princípu metódy.
V ďalšom popise použijeme tieto termíny:
- Jedincom sa rozumie vhodne zakódovaný počítačový program. Behom výpočtu sa takýchto programov vygeneruje v rade za sebou veľké množstvo a nakoniec sa vyberie najlepší z nich.
- Zdatnosť alebo fitness je výsledok funkcie zdatnosti (fitness function), ktorá každému jedincovi priradí číslo vyjadrujúce jeho schopnosti (zdatnosti) riešiť pôvodne zadanú úlohu. Čím vyššia zdatnosť, tým je jedinec kvalitnejší. Hľadaný najlepší jedinec sa spozná práve podľa toho, že dosiahol najvyššej zdatnosti. Funkcia zdatnosti tak vyjadruje cieľ celého počínania, t.j. program ktorý kvalitne rieši zadanú úlohu.
- Populácia je súbor (obvykle stoviek alebo tisícov) jedincov, ktoré počítač spracováva v jednom cykle ("vlne") výpočtu.
Algoritmus môžeme slovami zapísať takto:
- (Inicializácia) Vytvor nultú populáciu (obvykle zloženú z náhodne vygenerovaných jedincov)
- (Začiatok cyklu) Pomocou určitej výberovej metódy (spravidla sčasti náhodnej) vyber z populácie niekoľko jedincov s vysokou zdatnosťou.
- Z vybraných jedincov vygeneruj nových použitím metód (operátorov), čím vznikne nová generácia.
- Vypočítaj zdatnosť týchto nových jedincov.
- (Koniec cyklu) Pokiaľ nieje splnená zastavovacia podmienka, tak pokračuj od bodu 2.
- (Koniec algoritmu) Jedinec s najvyššou zdatnosťou je hlavným výstupom algoritmu a reprezentuje a reprezentuje najlepšie nájdené riešenie.
Metódy (operátory) pre generovanie nových jedincov:
- kríženie - "prehoď" časti niekoľko jedincov medzi sebou.
- mutácia - náhodne zmeň časť jedinca
- reprodukcia - kopíruj jedincov bez zmeny
V algoritme však nemusia byť použité všetky 3 uvedené metódy, záleží na konkrétnej implementácii. V prípade že zvolená výberová metóda môže behom evolúcie odstrániť najlepšieho jedinca z populácie, je vhodnejšie hľadať najlepšieho jedinca v každej generácii behom celej evolúcie.
Počítačová implementácia
Počítačové programy pre GP môžu byť napísané v najrôznejších programovacích jazykoch. V najstarších implementáciách boli inštrukcie programu a dátové hodnoty organizované v stromových štruktúrach, čo uprednostňovalo jazyky ktoré prirodzene podporujú tieto štruktúry (Kozou propagovaný Lisp). Neskôr boli navrhnuté a úspešne realizované taktiež iné typy implementácií, ako napr. s lineárnou reprezentáciou jedincov, ktorá viac vyhovuje klasickým imperatívnym jazykom [Banzhaf a kol. (1997)]. Napr. komerčný softvér Discipulus používa práve lineárne genetické programovanie kombinované s použitím strojového kódu pre vyššiu rýchlosť.
Metódami GP boli koncom roku 2003 už v 36 zložitých úlohách dosiahnuté výsledky prinajmenšom zrovnateľné s ľudskými.
Medzi najväčšie úspechy na poli teórie GP patrí vytvorenie presného pravdepodobnostného modelu, ktorý dokázal že genetické algoritmy sú podmnožinou genetického programovania.
Zhodnotenie metódy
GP je metódou, ktorá umožňuje nájsť riešenie klasických problémov a niekedy taktiež nájde uspokojivé riešenie niektorých veľmi komplikovaných, nelineárnych alebo kombinatorických úloh, napr. v oblasti Data mining alebo v predpovedaní počasia. GP môže byť v niektorých typoch úloh náročnejšie na výpočtový výkon v porovnaní so špecializovanejšími algoritmami a metódami.
Kybernetika
Kybernetika (z gréckeho slova "kybernetes" čo znamená kormidelník) vznikla ako samostatný vedný odbor po 2.svetovej vojne. Je to veda o riadení a komunikácií v dynamických systémoch skúmajúca spoločné zákonitosti na základe analógie medzi systémami rôznej fyzickej podstaty, ktorými sú technické zariadenia, živé organizmy aj spoločnosť-. Kybernetika je disciplína, ktorá skúma riadiace a regulačné procesy v biologickej sfére, v technike a v spoločnosti a navrhuje modely na znázornenie, transformáciu a spracovanie informácií. Všetky automatické zariadenia na spracovanie dát sú v tomto zmysle kybernetickými strojmi a samotná informatika je náuka o kybernetických strojoch a metódach. Základné súčasti kybernetiky sú: teória systémov, teória informácie, teória regulácie, teória hier, teória algoritmov a teória samočinných počítačov. Delí sa na tri základné súčasti: teoretická, experimentálna a aplikovaná kybernetika. Predmetom kybernetiky je spracovanie informácií pre potreby riadenia. Metódami kybernetiky sú systémový prístup a modelovanie pri riešení problémov. Oblasťami uplatnenia kybernetiky je dianie v ľudskej spoločnosti, ako aj v prírode: pri riešení matematických úloh, hromadné spracovanie údajov, organizácia, riadenie a vyhodnocovanie procesov, napodobňovanie procesov, inžinierske projektovanie, tvorba zložitých a veľkých systémov. Zakladateľom kybernetiky je americký matematik Norbert Wiener, ktorý jej zásady zhrnul v jeho knihe vydanej v roku 1948.
Dejiny kybernetiky
Kybernetika sa vyvíjala odlišne v rôznych krajinách. V západných krajinách viacmenej splynula s obecnou teóriou systémov a rady oborov, ktoré boli považované za súčasť kybernetiky, sa vyvíjajú ako samostatné obory (napr. informatika, umelá inteligencia a neuronové siete). V krajinách "socialistického tábora" (východný blok) bola najprv kybernetika považovaná za "buržoáznu pavedu" z čisto ideologických dôvodov. Začala byť znovu prijímaná až v 50. rokoch. Potom sa zrazu stala zastrešujúcou disciplínou pre mnoho oborov, ktoré sa v slobodnom svete osamostatnili. Za súčasť kybernetiky tu bola považovaná napr. aj informatika.
Najdôležitejšie princípy kybernetiky
- Spätná väzba: Princíp spätnej väzby bol známy už skôr v regulačnej technike a používal sa v návrhu spätnoväzbových zosilňovačov komunikačnej techniky. Zakladatelia kybernetiky ale rozoznali, že ide o veľmi všeobecný princíp. Je predovšetkým zásluhou kybernetiky, že sa stal všeobecne známym a umožnil vysvetliť niekoľko dejov odohrávajúcich sa v rôznych dynamických systémoch.
- Informácia: Postupne vznikla exaktná teóra informácie ako odnož teórie pravdepodobnosti. Informácia doplnila náš fyzikálny obraz sveta v tom zmysle, že ide o rovnako dôležitú entitu, ako je hmota alebo energia. Informácia je zrejme najfrekventovanejším pojmom, ktorý kybernetika priniesla. Spracovanie informácie sa stáva čoraz dôležitejším a pomaly ale isto mení charakter nášho života.
- Model: Systematické štúdium rôznych systémov viedlo k poznatku, že systémy rôznej fyzikálnej podstaty môžu mať veľmi podobné správanie a že správanie jedného systému môžeme skúmať prostredníctvom správania iného, ľahšie realizovateľného systému v celkom iných časových alebo priestorových mierkach. Ukázalo sa, že mnohé systémy mechanické, hydraulické, pneumatické, tepelné a iné sú formálne popísané rovnakými diferenciálnymi rovnicami ako elektrické obvody. Tento poznatok viedol k vytváraniu špeciálnych elektrických obvodov slúžiacich ako analógové počítače, ktoré však boli vytlačené symbolickými modelmi na číslicových počítačoch.
- Zákon nutnej variety: Zákon zjednodušene hovorí, že ak chceme pomocou riadiaceho systému odstrániť neurčitosť v premenných riadeného systému, potom množstvo neurčitosti odstránené za jednotku času je najviac kapacita riadiaceho systému ako komunikačného kanála. Inak povedané, pre dobré riadenie musí byť riadiaci systém v istom zmysle modelom riadeného systému.
Rozdelenie kybernetiky
Z praktického hladiska môžeme kybernetiku rozdeliť na dve časti podľa prístupu a aplikácií:
- teoretická kybernetika
- aplikovaná kybernetika
Teoretická kybernetika
Teoretická kybernetika študuje predovšetkým všeobecné vlastnosti a správanie systémov. Zaoberá sa všeobecným opisom vlastností a správania systémov. Z tohto pohľadu obsahuje teoretická kybernetika teóriu systémov a teoretickú informatiku.
Systém
Systém možno definovať rôznym spôsobom, základné definície sú:
- Systém je daná množina veličín.
- Systém je daná množina variácií veličín v čase.
- Systém je časovo invariantný vzťah medzi súčasnými a predchádzajúcimi alebo budúcimi hodnotami veličín.
- Systém je daná množina prvkov spolu s ich správaním a množina väzieb medzi týmito prvkami a okolím.
- Systém je množina stavov a množina prechodov medzi stavmi.
Podľa toho, aký prístup volíme, bude ta ktorá definícia viac či menej vhodné. Napr. definície č.1 a 2 budú vhodné pri prvom štúdiu zložitých systémov, definícia č.3 bude vhodná pri návrhu regulácie, definícia č.4 pri kybernetickom prístupu v biológii alebo vo fyzike a definície č.5 v teoretickej informatike.
Aplikovaná kybernetika
Aplikovaná kybernetika predstavuje použítí kybernetického prístupu pri analýze, modelovaní, simulácii a návrhu systémov, ďalej aplikuje poznatky kybernetiky do ďalších oblastí. Aplikovaná kybernetika zasahuje do mnohých oblastí ľudskej činnosti - zahŕňa totiž okrem iného nasledujúce odbory:
- technická kybernetika ako hlavná aplikačná oblasť
- informatika
- biokybernetika
- ekonomika
- manažment
- sociológia
- a mnoho ďalších
Model systému
Modelom systému nazývame akýkoľvek zjednodušený opis systému, ktorý v sebe akumuluje dôležité vlastnosti systému. Žiadúce je, aby model umožňoval aj predikciu správania systému v zatiaľ neoverených podmienkach.
Neuronové siete
Neuronová sieť je jedný z výpočtových modelov použícvaných v umelej inteligencii. Jej vzorcom je chovanie odpovedajúcich biologických štruktúr. Umelá neuronová sieť je štruktúra určená pre distribuované pararelné spracovanie dát. Skladá sa z umelých (alebo aj formálnych) neurónov, ktorých predobrazom je biologický neuron. Neuróny sú navzájom prepojené a navzájom si odovzdávajú signály a transformujú sa pomocou určitých prenosových funkcií. Neuron má ľubovoľný počet vstupov, ale len jeden výstup. Neurónové siete sa používajú okrem iného aj pre rozpoznávanie a kompresiu obrazov alebo zvukov, predvídanie vývoja časových radov (napr. burzových indexov), niekedy dokonca na filtrovanie spamu. V medicíne slúži k prehlbovaniu vedomostí o fungovaní nervových sústav živých organizmov. Napríklad perceptronová sieť vznikla pôvodne ako simulácia fyziologického modelu rozpoznávania vzorov na sietnici ľudského oka.
Model umelého neurónu
Je opísaná celá rada neurónov. Od tých najjednoduchších, používajúcich nespojité prenosové funkcie, až po veľmi zložité, opisujúce každý detail správania neurónu živého organizmu. Jedným z najpoužívanejších je model opísaný McCullochom a Pittsom:
kde:
- xi sú vstupy neurónu
- wi sú synaptické váhy
- Θ je prah
- S(x) je prenosová funkcia neurónu (niekedy aktivačná funkcia)
- Y je výstup neurónu
Veľkosť váh wi vyjadruje uloženie skúseností do neurónu. Čím je vyššia hodnota, tým je daný vstup dôležitejší. V biologickom neuróne prah Θ označuje prah aktivácie neurónu.
Tzn. ak je menší ako prah, neurón je v pasívnom stave.
Podľa charakteru vstupných (a výstupných) dát môžeme neuróny rozdeliť na binárne a spojité. Podľa typu neurónu a typu neurónovej siete sa uplatňuje vhodná prenosová funkcia.
Prenosové funkcie (náhľad vo fotogalérii)
- Skoková prenosová funkcia vracia pre vstup menší než daná hranica nulu, pre väčší vracia jedna. f(x) = 0 pro x < Θ af(x) = 1 pre
- Sigmoidálna prenosová funkcia je v tvare . Jej hodnoty sa blížia nule v mínus nekonečne a jednotke v nekonečne. Pre nulu je hodnota 0,5. Výhodou sigmoidálnej prenosovej funkcie oproti skokovej je existencia rozumnej derivácie v každom bode.
- Prenosová funkcia hyperbolickej tangenty je v tvare . Jej hodnoty sa blížia -1 v mínus nekonečne a jednotke v nekonečne. Pre nulu je hodnota 0.
- Prenosová funkcia radiálnej bázy je v tvare . Jej hodnoty sa blížia nule v mínus nekonečne a nule v nekonečne. Pre nulu je maximálna hodnota 1.
Učenie neurónovej siete
Cieľom učenia neurónovej siete je nastaviť sieť tak, aby dávala presné výsledky. V biologických sieťach sú skúsenosti uložené v dendritoch. V umelých neurónových sieťach sú skúsenosti uložené v ich matematickom ekvivalente - váhach. Učenie neurónovej siete rozlišujeme na učenia s učiteľom a učenia bez učiteľa. Fáza učenia neurónovej siete býva nazývaná adaptívnou. Po naučení neurónovej siete je sieť vo fáze vybavovania.
Podobne ako v biologických sieťach je tu využitá spätná väzba. Neurónovej sieti je predložený vzor. Na základe aktuálneho nastavenia je zistený aktuálny výsledok. Ten porovnáme s požadovaným výsledkom a určíme chybu. Potom spočítame nutnú korekciu (podľa typu neurónové siete) a upravíme hodnoty váh a prahov, aby sme znížili hodnotu chyby. Toto opakujeme až do dosiahnutia nami stanovenej minimálnej chyby. Potom je sieť adaptovaná.
Pri učení bez učiteľa nevyhodnocujeme výstup, je nám neznámy. Sieť dostáva na vstup sadu vzorov, ktoré si sama triedi. Buď si vzory triedi do skupín a reaguje na typického zástupcu, alebo si prispôsobí topológiu vlastnostiam vstupu.
Umelá inteligencia
Umelá inteligencia (UI) je odbor informatiky zaoberajúca sa tvorbou strojov vykazujúcich známky inteligentného správania. Definícia pojmu "inteligentné správanie" je stále predmetom diskusie, najčastejšie sa ako etalón inteligencie užíva ľudský rozum.
Turingov test
Na tomto porovnaní spočíva aj myšlienka Turingovho testu, ktorú vyjadril informatik Alan Turing v roku 1950 vo svojom článku "Computing machinery and intelligence". V skratke tvrdí, že za inteligentný môžeme stroj prehlásiť, ak nerozoznáte jeho lingvistický výstup od lingvistického výstupu človeka. Tvrdenie čínskeho pokoja je často považovaný za protiklad k Turingovmu testu. Uvažuje, že by mohol existovať stroj, ktorý by inteligentné správanie simuloval predom pripravenou sadou reakcií na všetky možné otázky, bez toho, aby nad čímkoľvek "premýšľal".
História
V tom istom článku, v akom Alan Turing navrhol svoj slávny test (sám ho nazýval "imitačnou hrou") predpovedal, že za päťdesiat rokov (tj. na prelome tisícročia) budú mať počítače pamäťovú kapacitu 109 bitov a rozhodca imitačnej hry bude mať len 70% šancu, že správne pozná ľudskú inteligenciu. Zatiaľ čo sa odhad pamäťových schopností ukázal byť neobyčajne presným, nevedia dnešné počítače pracovať s ľudským jazykom zďaleka tak dobre, ako asi Turing dúfal. Počiatočné nadšenie sa totiž postupom času menilo na hlbokú skepsu. Ukázalo sa, že naprogramovanie úloh, ktoré ľuďom pripadajú triviálne (napr. rozpoznávania tvarov v obrazoch) môže byť ťažšie, ako vytvoriť stroje riešiace "klasické" problémy umelej inteligencie, ako je napríklad hra šachu. V tomto zmysle je signifikantný vývoj v predmete automatického prekladu, ktorý postupom času prešiel obdobím nekritického nadšenia aj hlbokej dezilúzie. Podobne sa nádeje vkladané do umelých neurónových sietí dostali do konfliktu s realitou neúspechov vytvoriť siete riešiacu jednoduché úlohy (napr. simulovať funkciu XOR).
Mobilná robotika
Mobilná robotika je časť vedy o robotoch, ktorá sa zaoberá robotmi, ktorí sa môžu pohybovať (na kolesách, pásoch, vzduchom apod) Roboti môžu byť úplne autonómni (robot sa sám rozhoduje, čo urobí, bez vonkajšieho zásahu), alebo môžu byť vzdialene riadení (programom, alebo v spolupráci s človekom).
Mobilná robotika je v súčasnosti stále vo vývoji a zriedka je možné sa stretnúť s robotom, ktorý by plnil nejaké bežné úlohy (výnimkou sú napríklad automatické vozíky v skladoch). Pre rozvoj a popularizáciu najmä autonómnej robotiky sú organizované rôzne súťaže, asi najznámejší je DARPA Grand Challenge, v Česku organizuje takéto súťaže združenie Robotika.