Lineární. Perceptronový algoritmus. Petr Pošík Czech Technical University in Prague Faculty of Electrical Engineering Dept. of Cybernetics P. Pošík c 2012 Artificial Intelligence 1 / 12
Binární klasifikace Diskriminační : příklady Druhy diskriminační P. Pošík c 2012 Artificial Intelligence 2 / 12
Úloha binární klasifikace (dichotomie) Binární klasifikace Diskriminační : příklady Druhy diskriminační Mějme trénovací sadu dat (x 1, y 1 ),...,(x m, y m ): každý objekt x je popsán vektorem reálných příznaků (x 1, x 2,..., x D ) každý objekt x je označen správným štítkem y {+1, 1} Diskriminační je, která umožňuje rozlišit, do které třídy objekt patří. Binární klasifikace objektů x (klasifikace do 2 tříd, dichotomie): Stačí 1 Pravidlo: f(x i ) > 0 y i = +1 f(x i ) < 0 y i = 1 neboli y i = sign( f(x)) P. Pošík c 2012 Artificial Intelligence 3 / 12
Diskriminační : příklady Binární klasifikace Diskriminační : příklady Druhy diskriminační 1.5 1 0.5 f(x) 0 0.5 1 0.5 1 1.5 2 2.5 3 3.5 x P. Pošík c 2012 Artificial Intelligence 4 / 12
Diskriminační : příklady Binární klasifikace Diskriminační : příklady Druhy diskriminační f(x) 4 3 2 1 0 1 2 3 4 5 6 0 1 2 3 4 5 x P. Pošík c 2012 Artificial Intelligence 4 / 12
Druhy Binární klasifikace Diskriminační : příklady Druhy diskriminační Diskriminační může mít podobu: jakékoli matematické (lineární, kvadratická, polynomiální,... ), matematického modelu v jiné formě (uvnitř neuronové sítě, v rámci support vector machine,... ), atd. Lineární: f(x) = w 1 x 1 + w 2 x 2 +...+w D x D + w 0 (1) Vektorově: f(x) = w T x+w 0 x = (x 1, x 2,..., x D ) T w = (w 1, w 2,..., w D ) T Vektorově (homogenní souřadnice): f(x) = w T x x = (x 1, x 2,..., x D, 1) T w = (w 1, w 2,..., w D, w 0 ) T P. Pošík c 2012 Artificial Intelligence 5 / 12
Binární klasifikace Diskriminační : příklady Druhy diskriminační 1. Jak získat predikce, když známe model? 2. Jak získat model, když známe trénovací data? P. Pošík c 2012 Artificial Intelligence 6 / 12
Binární klasifikace Diskriminační : příklady Druhy diskriminační 1. Jak získat predikce, když známe model? 2. Jak získat model, když známe trénovací data? 1. Jak učit lineární diskr. funkci z trénovacích dat? Perceptronový algoritmus Optimální rozdělující nadplocha 2. Když lineární nestačí... Rozšíření báze Support vector machine AdaBoost P. Pošík c 2012 Artificial Intelligence 6 / 12
Perceptron Demo: perceptron Vlastnosti perceptronového algoritmu Nadplocha nalezená perceptronem Příště: P. Pošík c 2012 Artificial Intelligence 7 / 12
Perceptronový algoritmus Perceptron Demo: perceptron Vlastnosti perceptronového algoritmu Nadplocha nalezená perceptronem Příště: Perceptron [Ros62]: jednoduchý model neuronu lineární klasifikátor (klasifikátor s lineární diskriminační funkcí) perceptronový algoritmus je jeden z mnoha algoritmů učení lineární diskr. (další jsou např. lineární diskr. analýza, Fisherova diskr. analýza, SVM s lineárním jádrem,... ) Algoritmus 1: Perceptronový algoritmus Vstup: Lineárně separabilní množina ohodnocených trénovacích bodů: {x i, y i }, x i R D+1 (homogenní souřadnice), y i {+1, 1} Výstup: Váhový vektor w takový, že w T x i > 0 iff y i = +1 a w T x i < 0 iff y i = 1 1 begin 2 Inicializuj váhový vektor, např. w = 0. 3 Invertuj body ve 2. třídě: x i = x i pro všechna i, kde y i = 1. 4 Najdi špatně zaklasifikovaný trénovací vektor, tj. najdi j, pro které w T x j 0, např. nejhůře zaklasifikovaný vektor: x j = arg min xi (w T x i ). 5 if neexistuje špatně zaklasifikovaný bod then 6 Vektor w je řešením. Konec. 7 else 8 Uprav váhový vektor: w = w+x j. 9 10 Pokračuj krokem 4. [Ros62] Frank Rosenblatt. Principles of Neurodynamics: Perceptron and the Theory of Brain Mechanisms. Spartan Books, Washington, D.C., 1962. P. Pošík c 2012 Artificial Intelligence 8 / 12
Demo: perceptron Perceptron Demo: perceptron Vlastnosti perceptronového algoritmu Nadplocha nalezená perceptronem Příště: 1 0.8 Iteration 257 0.6 0.4 0.2 0 0.2 0.2 0 0.2 0.4 0.6 0.8 1 1.2 P. Pošík c 2012 Artificial Intelligence 9 / 12
Vlastnosti perceptronového algoritmu Perceptron Demo: perceptron Vlastnosti perceptronového algoritmu Nadplocha nalezená perceptronem Příště: Věta o konvergenci perceptronu [Nov62]: Perceptronový algoritmus nalezne lineární nadplochu oddělující dvě třídy bodů za předpokladu, že taková nadplocha existuje. Věta o zacyklení perceptronu: Pokud oddělující nadplocha neexistuje, algoritmus nemusí konvergovat (a bude iterovat donekonečna). Možná řešení: Pocket algorithm - sledovat chybu, jakou perceptron v každé iteraci dělá, a udržovat váhy s nejmenší dosud nalezenou chybou v oddělené paměti. K učení lineárního klasifikátoru použít algoritmus, který najde alespoň přibližné řešení, pokud třídy lineárně separovatelné nejsou. [Nov62] Albert B. J. Novikoff. On convergence proofs for perceptrons. In Proceedings of the Symposium on Mathematical Theory of Automata, volume 12, Brooklyn, New York, 1962. P. Pošík c 2012 Artificial Intelligence 10 / 12
Nadplocha nalezená perceptronem Perceptron Demo: perceptron Vlastnosti perceptronového algoritmu Nadplocha nalezená perceptronem Příště: Perceptronový algoritmus pro lineárně separabilní data najde rozdělující nadplochu, pokud existuje pokud existuje jedna nadplocha, existuje jich nekonečně mnoho najde jakoukoliv rozdělující nadplochu! Která z nekonečného množství rozdělujících nadploch je optimální? P. Pošík c 2012 Artificial Intelligence 11 / 12
Příště: Perceptron Demo: perceptron Vlastnosti perceptronového algoritmu Nadplocha nalezená perceptronem Příště: Optimální rozdělující nadplocha Co když lineární hranice nestačí? Rozšíření báze Kernel trik Adaboost Dotazy? P. Pošík c 2012 Artificial Intelligence 12 / 12