Perceptron

Z Wikipedie, otevřené encyklopedie
Skočit na navigaci Skočit na vyhledávání

Perceptron je nejjednodušším modelem dopředné neuronové sítě. Sestává pouze z jednoho neuronu. Perceptron byl modelován v roce 1957 Frankem Rosenblattem. Přes úvodní nadšení bylo později zjištěno, že jeho užití je velmi omezené, neboť je možné jej použít pouze ke klasifikaci lineárně separovatelných kategorií. Jeho rozšířením je vícevrstvý perceptron, který má již mnohem širší možnosti použití.

Historie[editovat | editovat zdroj]

První umělé neurony byly vytvořeny Warrenem McCullochem a Walterem Pittsem v roce 1943.[1] Tyto neurony fungovaly tak, že byl jejich výstup 0 nebo 1 v závislosti na tom, jestli vážená suma vstupních signálů překročila prahovou hranici, nebo ne. Jejich teorie byla, že takový neuron v principu spočte jakoukoli aritmetickou či logickou funkci. Tehdy však nebyla vypracována žádná tréninková metoda.

V padesátých letech přichází Frank Rosenblatt[2] s perceptrony, které doprovází již i učící pravidla. Perceptrony využívá k rozpoznávání vzorů. Mimo to dokazuje, že pokud existují váhy, které zadaný problém řeší, pak k nim učící pravidlo konverguje.

Počáteční nadšení však uvadá, když je zjištěno, že takovýto perceptron umí řešit pouze lineárně separovatelné úlohy. Frank Rosenblatt se sice snaží model upravit a rozšířit, ale nedaří se mu to a tak až do osmdesátých let přestává být o perceptrony a neuronové sítě zájem.

V 80. letech dochází k vývoji vícevrstvých perceptronových sítí s asociačními pravidly, schopných aproximovat libovolnou vektorovou funkci, díky čemuž dochází k nové vlně zájmu o neuronové sítě[3], který později částečně upadá díky neschopnosti učit sítě o větším počtu vrstev. Až okolo roku 2010 opět dochází k renesanci neuronových síti díky objevu hloubkového učení.

Definice[editovat | editovat zdroj]

jednoduchý perceptron s n vstupy (jimž přísluší váhy ), jedním výstupem a prahem citlivosti neuronu

Perceptron v nejjednodušší podobě je binární klasifikátor, který mapuje vektor vstupů na výstupní hodnoty :

kde je vektor vah a je práh citlivosti neuronu.

Perceptron je jednovrstvá neuronová síť s dopředným šířením a učením s učitelem.

Celkový podnět neuronu udává vážený součet . Tento celkový podnět bývá označován jako potenciál neuronu. Na potenciál reaguje neuron (perceptron) výstupní odezvou , kde je tzv. přenosová funkce. Je-li přenosová funkce ve tvaru funkce skokové, pak se jedná o již výše zmíněný perceptron fungující jako binární klasifikátor, každý neuron sítě tedy dělí vstupní prostor na dvě části.[4]

Vstupy[editovat | editovat zdroj]

Vstupy mohou být výstupy z jiných neuronů či podněty z vnějšího prostředí. Každým i-tým vstupem získá neuron informaci v daném časovém okamžiku jako reálné číslo. Jedná-li se o vstupy z vnějšího prostředí, pak vektor vstupů reprezentuje zkoumaný objekt, přičemž jednotlivé příznaky () obsahují specifické informace o daném objektu (např. velikost, barva ...).

Váhy[editovat | editovat zdroj]

Jednotlivé vstupy mají udanou důležitost pomocí synaptických vah . Jedná se o reálné hodnoty. Vektor vah musí být vždy kolmý na rozhodovací hranici. Možností nastavení vah tak, aby odpovídaly správnému řešení je nekonečně mnoho.

Práh[editovat | editovat zdroj]

Další určující veličinou neuronu je tzv. práh . Tento práh je někdy považován za speciální případ váhy spoje vedoucího od fiktivního neuronu s trvalým výstupem -1. Potom můžeme označit a a dostáváme . Pokud převýší podnět práh, tedy , pak bod leží v kladném poloprostoru vymezeném separující nadrovinou , jinak leží v poloprostoru doplňkovém.[5]

Přenosová funkce[editovat | editovat zdroj]

Sigmoidální přenosová funkce
Skoková přenosová funkce

Přenosových funkcí S může být více druhů. Uvažujeme-li perceptron jako binární klasifikátor, pak je přenosovou funkcí skoková funkce. Skoková přenosová funkce vrací pro vstup menší než daná mez nulu, pro vstup větší než daná mez jedničku, pro vstup roven dané mezi se dodefinuje funkční hodnota na jedničku: pro a pro .

Dalším možným tvarem přenosové funkce je tvar sigmoidy. Sigmoidální přenosová funkce je ve tvaru: . Tato funkce je monotónně rostoucí mezi dvěma asymptotickými hodnotami, tj. nulou a jedničkou. Největší derivaci má sigmoidální funkce v bodě nula. Výhoda sigmoidální funkce oproti skokové funkci je, že má ve všech bodech spojité derivace.

Rozhodovací hranice[editovat | editovat zdroj]

Rozhodovací hranice je určena vstupním vektorem, pro který je síťový výstup nulový. Jedná se tedy o čáru, přesněji podprostor v prostoru vstupů, přičemž na jedné straně bude výstupní hodnota pro daný vstup 0 a na druhé 1. Vektor vah musí být vždy kolmý na rozhodovací hranici.

Učící pravidlo perceptronu[editovat | editovat zdroj]

Učení perceptronu probíhá pomocí tréninku s učitelem, kdy je perceptronu nejdříve předložena množina příkladů se správným chováním, učící pravidlo následně nastaví váhy a práh tak, aby došlo k přiblížení výstupu sítě cíli. Rozhodovacích hranic může být nekonečný počet.

3 fáze učení jednoduchého perceptronu - A: je zvolen náhodně vektor vah a k němu určena kolmá rozhodovací hranice , zjišťujeme výstup pro bod 1 - leží v oblasti s výstupem 1, i když má ležet v oblasti s výstupem 0 → B: odečteme vektor bodu 1 od vektoru vah a získáme nový vektor vah a k němu příslušnou rozhodovací hranici znázorněnou přímkou r, bod 2 je umístěn správně, bodu 3 přiřadí síť hodnotu 1 i když má dostat výstup 0 → C: odečteme vektor bodu 3 od vektoru vah a získáme nový vektor vah → nyní je již problém vyřešen - všem bodům je přiřazen odpovídající hodnota výstupu, řešením problému je tedy vektor vah s příslušnou rozhodovací hranicí .

Učení má následující fáze:

  • inicializace výchozích hodnot - nastavení vah a prahu na náhodné hodnoty
  • předložení vstupního vektoru síti - vstupní vektor je předložen síti a pomocí funkce je zjištěna výstupní hodnota
  • vyhodnocení klasifikace vstupního vektoru - výstupní hodnota zjištěná sítí je porovnána se správnou výstupní hodnotou - pokud se nerovnají, je potřeba přikročit k adaptaci, jinak je možné pokračovat k dalšímu kroku
  • adaptace vah a prahu
    • váhy perceptronu jsou adaptovány dle následujícího pravidla: , přičemž je chyba perceptronu, je zjištěná hodnota výstupu, je očekávaná hodnota výstupu. Konkrétně je-li vyhodnocen vstup jako 0, přestože má být vyhodnocen jako 1, pak nové hodnoty vah získáme přičtením vektoru vstupu k původním vahám a naopak, je-li vyhodnocen vstup jako 1, přestože má být vyhodnocen jako 0, pak nové hodnoty vah získáme odečtením vektoru vstupu od původních vah. Pokud je vektor vstupu vyhodnocen správně, pak váhy neupravujeme a pokračujeme k vyhodnocení dalšího ze vstupů tréninkové množiny.
    • práh perceptronu je adaptován dle následujícího pravidla:
  • opakování kroků 2-4 pro všechny tréninkové vstupy

Reference[editovat | editovat zdroj]

  1. MCCULLOCH, W. S. T.; PITTS, W. A logical calculus of the ideas immanent in nervous activity. Bulletin of Mathematical Biophysics 5. [s.l.]: [s.n.], 1943. 19 s. (anglicky) 
  2. ROSENBLATT, F. The Perceptron - a perceiving and recognizing automaton, Report 85–460–1, Cornell Aeronautical Laboratory. [s.l.]: [s.n.], 1957. (anglicky) 
  3. HAGAN, Martin T. Neural network design. druhé. vyd. [s.l.]: [s.n.], 2014. 800 s. Dostupné online. (anglicky) 
  4. KŘIVAN, Miloš. Umělé neuronové sítě. první. vyd. Praha: Oeconomica, 2021. 76 s. Dostupné online. ISBN 978-80-245-2420-7. 
  5. MAŘÍK, Vladimír. Umělá inteligence I.. první. vyd. Praha: Academia, 1993. 264 s. ISBN 80-200-0496-3. 

Externí odkazy[editovat | editovat zdroj]