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í

  1. 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: Otázka: Co si pamatujete z přednášky o optimalitě nalezeného řešení?

  2. Vyzkoušejte algoritmus na neseparabilním příkladě, např. XOR problému.
    Otázka: Co se děje v neseparabilním případě?

  3. 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