Perceptronový algoritmus
Cílem tohoto cvičení je implementovat Perceptronový algoritmus učení
lineárního klasifikátoru a jeho nelineární rozšíření pro případ
kvadratické diskriminační funkce.
Formulace úlohy
Úloha nalezení lineární diskriminační funkce Perceptronovým algoritmem
je zformulována a popsána v [1].
Její rozšíření na nelineární (v našem případě kvadratickou)
diskriminační funkci je popsáno v [2].
Zadání
- Implementujte perceptronový algoritmus a ověřte jeho
funkčnost na syntetických dvoudimenzionálních lineárně separovatelných
datech (pro vytvoření dat použijte funkci createdata)
Výstupy:
- Vykreslený klasifikátor (přímka) a data (dá se dělat i
průběžně, ale stačí pro výsledný klasifikátor). Pro vykreslení použijte
funkce pline
a ppatterns.
- Graf průběhu chyby klasifikace (měla by klesat, nemusí
být nutně monotonní)
Otázka:
Co si pamatujete z přednášky o optimalitě nalezeného řešení?
- Vyzkoušejte algoritmus na neseparabilním příkladě, např.
XOR problému.
Otázka:
Co se děje v neseparabilním případě?
- Rozšiřte perceptronový algoritmus na nelineární
(kvadratický) perceptron,
demonstrujte funkčnost na jednoduchém příkladě
Nápověda:
Použijte funkci pboundary
s jedním parametrem model.
Ten musí obsahovat položku .fun,
která obsahuje jméno vámi vytvořené funkce (např. 'classif_quadrat_perc'),
která je definována takto:
classif
= classif_quadrat_perc(test_data, model)
Jejím úkolem je klasifikovat test_data
(2D) do dvou tříd (výstup buď 1 nebo 2) a využívá k tomu parametry
klasifikátoru předané v struktuře model
(tedy např. model.v
bude vektor nalezený Perceptronovým algoritmem).
Bonusová úloha
Implementujte perceptronový algoritmus pro více tříd (multiclass
perceptron). Tento algoritmus sice nebyl odpřednášen a ani zde nebudeme
dokazovat jeho správnost, je však velmi jednoduchý a elegantní. Lze ho
najít na desáté stránce této přednášky Radima Šáry.
Pro tento algoritmus zopakujte body 1 a 2 výše. Počet tříd musí být nejméně tři.
Doporučená literatura
[1] Perceptronový algoritmus
(cvičení
z minulého semestru)
[2] Nelineární perceptron
(cvičení
z minulého semestru)
[3] Archív
zápisů z přednášek
rozpoznávání (33RPZ)
[4] Michail I.
Schlesinger, Václav Hlaváč. Deset
přednášek z teorie statistického a
strukturního rozpoznávání. Vydavatelství ČVUT, Praha 1999.
Created
by Jan Šochman, 5.11.2006