Perceptron
Perceptron je nejjednodušším modelem dopředné neuronové sítě. Sestává pouze z jednoho neuronu. Perceptron byl vynalezen 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é ho použít pouze na množiny, které jsou lineárně separovatelné. Jeho rozšířením je vícevrstevný perceptron, který má již mnohem širší možnosti použití.
Historie
První umělé neurony byly vytvořeny Warrenem McCullochem a Walterem Pittsem v roce 1943. 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 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 80. let přestává být o perceptrony a neuronové sítě zájem.
V 80. letech dochází k vývoji vícevrstevných perceptronových sítí s asociačními pravidly, díky čemuž dochází k nové vlně zájmu o neuronové sítě.[1]
Definice
Perceptron v nejjednodušší podobě je binární klasifikátor, který mapuje vektor vstupů na výstupní hodnoty .
kde je vektor vah (také někdy ), je konstanta
Perceptron je jednovrstevná 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.[2]
Každý neuron sítě dělí vstupní prostor na 2 části.
Vstupy
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
Jednotlivé vstupní spoje 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
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 do 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 nadprostoru vymezeném separující nadrovinou , jinak leží v nadprostoru doplňkovém. [2]
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 větší vrací jedna. pro a pro
Dalším možným tvarem přenosové funkce S u perceptronu je tvar sigmoidy. Sigmoidální přenosová funkce je ve tvaru: Tato funkce je monotónně rostoucí mezi dvěma asymptotickými hodnotami, kterými jsou nejčastěji 0 a 1. Největší derivaci má sigmoidální funkce v bodě 0. Výhoda sigmoidální funkce oproti skokové funkci je, že má ve všech bodech spojité derivace.
Dalšími typy přenosových funkcí je například přenosová funkce hyperbolické tangenty či radiální báze.
Rozhodovací hranice
Rozhodovací hranice je určena vstupními vektory, pro které je síťový výstup n nulový. Jedná se tedy o čáru 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í pravidla
Učící pravidlo je procedura k modifikaci vah a prahů v síti, která je používána k trénování sítě, aby plnila zadanou úlohu.
Učící pravidla lze rozdělit do 3 kategorií:
- učení s učitelem - síti nejdříve prezentujeme tréninkovou množinu, která odpovídá správnému chování, na nich síť „natrénujeme“, poté ověříme kvalitu sítě na cílové množině
- učení bez učitele - váhy a prahy jsou měněny pouze na základě vstupů do sítě, síť se učí klasifikovat vstupní vzory do konečného množství tříd.
- posilované učení - algoritmus obsahuje navíc míru měření výkonu sítě na sekvenci vstup, aplikovatelné v kontrolních systémech
Učící pravidlo perceptronu
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.
Učení má následující fáze:
- inicializace úvodních hodnot - nastavení vah na náhodné hodnoty, nastavení prahu
- předložení vstupního vektoru síti - vstupní vektor je předložen síti a pomocí funkce je zjištěna jeho 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 vah, 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 novou váhu získáme přičtením vektoru tohoto vstupu k původní váze a naopak, je-li vyhodnocen vektor jako 1, i když má být vyhodnocen jako 0, pak získáme novou hodnotu vah tak, že od staré váhy odečteme vektor vstupu. Pokud je vektor vyhodnocen správně, pak váhy neupravujeme a pokračujeme k vyhodnocení dalšího ze vstupů v tréninkové množině.
- úprava prahu perceptronu:
- opakování kroků 2-4 pro všechny tréninkové vstupy[1]
Použití a limity
Učící algoritmus u perceptronu je konečný, pouze pokud řešení existuje a navíc pokud je učící množina lineárně separovatelná. Proto je základní využití perceptronu pro lineárně separovatelné obrazy. Modifikované algoritmy lze použít i pro neseparovatelné obrazy (jedná se například o LHS algoritmus či Kapsovy algoritmus).
Rozšířením základního algoritmu je vícevrstevný perceptron, který je využitelný pro libovolné klasifikační problémy, kdy je využito učení pomocí backpropagation.
Vícevrstevný perceptron
Odkazy
Reference
Související články
Externí odkazy
- Stránky o neuronových sítích
- Stránky o neuronových sítích v podobě kurzu v angličtině
- Ukázkové kapitoly z knihy Neural networks design od T.Martin Hagana, včetně kapitoly o perceptronu
- On-line učebnice o neuronových sítích - 1.díl, ve slovenenštině
- On-line učebnice o neuronových sítích - 2.díl, ve slovenenštině