Neuronové sítě-delta učení Filip Habr České vysoké učení technické v Praze Fakulta jaderná a fyzikálně inženýrská 30. března 2009
Obsah prezentace Obsah prezentace Delta učení 1 Teorie k delta učení 2 Zadání příkladu 3 Vyhledání m j a M j výpočet standardizovaných hodnot 4 Standardizovaná tabulka 5 Výpočet prvních dvou iterací w 1 a w 2 a výsledného w 6 Grafické znázornění
Obsah prezentace Příprava dat Data X R m n je vhodné před spuštěním perceptronu standardizovat např. rozpětím: X new ij = X ij m j M j m j 0, 1 m j = min(x kj ) M j = max(x kj )
Obsah prezentace Delta učení y = f (x, w) y k = f (x k, w) k = y k y k p k (w) = 1 2 2 k P(w) = m k=1 p k(w) = min P(w) = m k=1 1 2 2 k = m k=1 1 2 (y k y k) 2 = m k=1 1 2 (y k f (x k, w)) 2 = min
Obsah prezentace Delta učení Algoritmus w 0 R n+1 (malé), λ 0 > 0 náhodná volba k. vzoru, λ j = λ 0 1+j výpočet y k a k výpočet citlivosti sítě na váhy adaptace vah Učení hladkého perceptronu y = f (x, w) = tanh( n i=0 w ix i ) tanh(x,w) w i = (1 y 2 )x i w j+1 = w j + λ j k (1 y 2 k )x k
Příklad Zadání příkladu Tabulka hodnot: x 0 x 1 x 2 y* 1 1 5-1 1 2 3,5-1 1 2 7 1 1 3 3,5-1 1 3 4,5 1 1 4 4 1 1 4 6 1 1 5 5 1 1 6 5,5 1 1 8 2 1
Příklad Zadání příkladu Tabulka hodnot: x 0 x 1 x 2 y* 1 1 5-1 1 2 3,5-1 1 2 7 1 1 3 3,5-1 1 3 4,5 1 1 4 4 1 1 4 6 1 1 5 5 1 1 6 5,5 1 1 8 2 1 Výpočet m j a M j : m 1 = 1 m 2 = 2 M 1 = 8 M 2 = 7
Příklad Zadání příkladu Tabulka hodnot: x 0 x 1 x 2 y* 1 1 5-1 1 2 3,5-1 1 2 7 1 1 3 3,5-1 1 3 4,5 1 1 4 4 1 1 4 6 1 1 5 5 1 1 6 5,5 1 1 8 2 1 Výpočet m j a M j : m 1 = 1 m 2 = 2 M 1 = 8 M 2 = 7 Standardizované hodnoty: x 0 x 1 x 2 y* 1 0 0,6-1 1 0,14 0,3-1 1 0,14 1 1 1 0,28 0,3-1 1 0,28 0,5 1 1 0,43 0,4 1 1 0,43 0,8 1 1 0,57 0,6 1 1 0,71 0,7 1 1 1 0 1
První iterace Zvolili jsme λ 0 = 1
První iterace Zvolili jsme λ 0 = 1 Jako první vzor jsme náhodně vybrali: k = 2
První iterace Zvolili jsme λ 0 = 1 Jako první vzor jsme náhodně vybrali: k = 2 Váhový vektor jsme zvolili w 0 = (0; 0; 0)
První iterace Zvolili jsme λ 0 = 1 Jako první vzor jsme náhodně vybrali: k = 2 Váhový vektor jsme zvolili w 0 = (0; 0; 0) y 2 = tanh(0 1 + 0 0, 14 + 0 0, 3) = 0 y = tanh( n i=0 w ix i )
První iterace Zvolili jsme λ 0 = 1 Jako první vzor jsme náhodně vybrali: k = 2 Váhový vektor jsme zvolili w 0 = (0; 0; 0) y 2 = tanh(0 1 + 0 0, 14 + 0 0, 3) = 0 y = tanh( n i=0 w ix i ) 2 = 1 0 = 1 k = y k y k
První iterace Zvolili jsme λ 0 = 1 Jako první vzor jsme náhodně vybrali: k = 2 Váhový vektor jsme zvolili w 0 = (0; 0; 0) y 2 = tanh(0 1 + 0 0, 14 + 0 0, 3) = 0 y = tanh( n i=0 w ix i ) 2 = 1 0 = 1 k = y k y k w 1 = (0; 0; 0) + 1 ( 1) (1 0 2 ) (1; 0, 14; 0, 3) = ( 1; 0, 14; 0, 3) w j+1 = w j + λ j k (1 y 2 k )x k
První iterace Zvolili jsme λ 0 = 1 Jako první vzor jsme náhodně vybrali: k = 2 Váhový vektor jsme zvolili w 0 = (0; 0; 0) y 2 = tanh(0 1 + 0 0, 14 + 0 0, 3) = 0 y = tanh( n i=0 w ix i ) 2 = 1 0 = 1 k = y k y k w 1 = (0; 0; 0) + 1 ( 1) (1 0 2 ) (1; 0, 14; 0, 3) = ( 1; 0, 14; 0, 3) w j+1 = w j + λ j k (1 y 2 k )x k Rovnice přímky tedy vypadá takto: 0, 3x 1 1x 2 0, 14 = 0
První iterace Zvolili jsme λ 0 = 1 Jako první vzor jsme náhodně vybrali: k = 2 Váhový vektor jsme zvolili w 0 = (0; 0; 0) y 2 = tanh(0 1 + 0 0, 14 + 0 0, 3) = 0 y = tanh( n i=0 w ix i ) 2 = 1 0 = 1 k = y k y k w 1 = (0; 0; 0) + 1 ( 1) (1 0 2 ) (1; 0, 14; 0, 3) = ( 1; 0, 14; 0, 3) w j+1 = w j + λ j k (1 y 2 k )x k Rovnice přímky tedy vypadá takto: 0, 3x 1 1x 2 0, 14 = 0 Průsečík s osou x 1 je: 0, 47
První iterace Zvolili jsme λ 0 = 1 Jako první vzor jsme náhodně vybrali: k = 2 Váhový vektor jsme zvolili w 0 = (0; 0; 0) y 2 = tanh(0 1 + 0 0, 14 + 0 0, 3) = 0 y = tanh( n i=0 w ix i ) 2 = 1 0 = 1 k = y k y k w 1 = (0; 0; 0) + 1 ( 1) (1 0 2 ) (1; 0, 14; 0, 3) = ( 1; 0, 14; 0, 3) w j+1 = w j + λ j k (1 y 2 k )x k Rovnice přímky tedy vypadá takto: 0, 3x 1 1x 2 0, 14 = 0 Průsečík s osou x 1 je: 0, 47 Průsečík s osou x 2 je: 0, 14
První iterace
Druhá iterace Jako druhý vzor jsme náhodně vybrali: k = 7
Druhá iterace Jako druhý vzor jsme náhodně vybrali: k = 7 y 7 = tanh(( 1) 1 + ( 0, 14) 0, 43 + ( 0, 3) 0, 8) = 0, 86
Druhá iterace Jako druhý vzor jsme náhodně vybrali: k = 7 y 7 = tanh(( 1) 1 + ( 0, 14) 0, 43 + ( 0, 3) 0, 8) = 0, 86 7 = 1 ( 0, 86) = 1, 86
Druhá iterace Jako druhý vzor jsme náhodně vybrali: k = 7 y 7 = tanh(( 1) 1 + ( 0, 14) 0, 43 + ( 0, 3) 0, 8) = 0, 86 7 = 1 ( 0, 86) = 1, 86 λ 1 = 0, 5 λ j = λ 0 1+j
Druhá iterace Jako druhý vzor jsme náhodně vybrali: k = 7 y 7 = tanh(( 1) 1 + ( 0, 14) 0, 43 + ( 0, 3) 0, 8) = 0, 86 7 = 1 ( 0, 86) = 1, 86 λ 1 = 0, 5 λ j = λ 0 1+j w 2 = ( 1; 0, 14; 0, 3) + 0, 5 1, 86 (1 ( 0, 86) 2 ) (1; 0, 43; 0, 8) = = (0, 73; 0, 6; 1, 08)
Druhá iterace Jako druhý vzor jsme náhodně vybrali: k = 7 y 7 = tanh(( 1) 1 + ( 0, 14) 0, 43 + ( 0, 3) 0, 8) = 0, 86 7 = 1 ( 0, 86) = 1, 86 λ 1 = 0, 5 λ j = λ 0 1+j w 2 = ( 1; 0, 14; 0, 3) + 0, 5 1, 86 (1 ( 0, 86) 2 ) (1; 0, 43; 0, 8) = = (0, 73; 0, 6; 1, 08) Rovnice přímky tedy vypadá takto: 0.6x 1 + 1.08x 2 + 0.73 = 0
Druhá iterace Jako druhý vzor jsme náhodně vybrali: k = 7 y 7 = tanh(( 1) 1 + ( 0, 14) 0, 43 + ( 0, 3) 0, 8) = 0, 86 7 = 1 ( 0, 86) = 1, 86 λ 1 = 0, 5 λ j = λ 0 1+j w 2 = ( 1; 0, 14; 0, 3) + 0, 5 1, 86 (1 ( 0, 86) 2 ) (1; 0, 43; 0, 8) = = (0, 73; 0, 6; 1, 08) Rovnice přímky tedy vypadá takto: 0.6x 1 + 1.08x 2 + 0.73 = 0 Průsečík s osou x 1 je: 1, 22
Druhá iterace Jako druhý vzor jsme náhodně vybrali: k = 7 y 7 = tanh(( 1) 1 + ( 0, 14) 0, 43 + ( 0, 3) 0, 8) = 0, 86 7 = 1 ( 0, 86) = 1, 86 λ 1 = 0, 5 λ j = λ 0 1+j w 2 = ( 1; 0, 14; 0, 3) + 0, 5 1, 86 (1 ( 0, 86) 2 ) (1; 0, 43; 0, 8) = = (0, 73; 0, 6; 1, 08) Rovnice přímky tedy vypadá takto: 0.6x 1 + 1.08x 2 + 0.73 = 0 Průsečík s osou x 1 je: 1, 22 Průsečík s osou x 2 je: 0, 68
Druhá iterace
Konečná iterace-výsledek V posledním kroku jsme vybrali: k = 7
Konečná iterace-výsledek V posledním kroku jsme vybrali: k = 7 y 7 = 0, 86
Konečná iterace-výsledek V posledním kroku jsme vybrali: k = 7 y 7 = 0, 86 7 = 0, 36
Konečná iterace-výsledek V posledním kroku jsme vybrali: k = 7 y 7 = 0, 86 7 = 0, 36 λ n = 2 10 8
Konečná iterace-výsledek V posledním kroku jsme vybrali: k = 7 y 7 = 0, 86 7 = 0, 36 λ n = 2 10 8 w n = ( 0, 73; 1, 49; 0, 94)
Konečná iterace-výsledek V posledním kroku jsme vybrali: k = 7 y 7 = 0, 86 7 = 0, 36 λ n = 2 10 8 w n = ( 0, 73; 1, 49; 0, 94) Rovnice přímky tedy vypadá takto: 1, 49x 1 + 0, 94x 2 + 0, 73 = 0
Konečná iterace-výsledek V posledním kroku jsme vybrali: k = 7 y 7 = 0, 86 7 = 0, 36 λ n = 2 10 8 w n = ( 0, 73; 1, 49; 0, 94) Rovnice přímky tedy vypadá takto: 1, 49x 1 + 0, 94x 2 + 0, 73 = 0 Průsečík s osou x 1 je: 0, 49
Konečná iterace-výsledek V posledním kroku jsme vybrali: k = 7 y 7 = 0, 86 7 = 0, 36 λ n = 2 10 8 w n = ( 0, 73; 1, 49; 0, 94) Rovnice přímky tedy vypadá takto: 1, 49x 1 + 0, 94x 2 + 0, 73 = 0 Průsečík s osou x 1 je: 0, 49 Průsečík s osou x 2 je: 0, 78
Konečná iterace