Hašovací Funkce Mgr. Rudolf B. Blažek, Ph.D. prof. RNDr. Roman Kotecký, DrSc. Katedra počítačových systémů Katedra teoretické informatiky Fakulta informačních technologií České vysoké učení technické v Praze Rudolf Blažek & Roman Kotecký, 2011 Pravděpodobnost a statistika BI-PST, LS 2010/11, Přednáška 12 Evropský sociální fond Praha & EU: Investujeme do vaší budoucnos@
Lineární regrese (Linear Regression) 2
Lineární regrese Regresní model y i = 0 + 1 x i + " i, i = 1,..., n β0 a β1 (...( jsou neznámé parametry εi ( ( (...( jsou náhodné chyby ( ( ( ( obvykle i.i.d. N(0,σ 2 ) 3
Residuální součet čtverců Sečteme čtvercové residuální svislé chyby e1 e2 e3 e4 Hledáme přímku, RSS = která minimizuje RSS e5 e6 nx i=1 (metoda nejmenších čtverců) e 2 i Residual Sum of Squares (zbytkový součet čtverců) e7 e9 e8 e 10 4
Lineární regrese odhady parametrů Regresní model Odhady parametrů y i = 0 + 1 x i + " i, i = 1,..., n b 0 = y b 1 x P n i=1 (x i x)(y i y) b 1 = P n i=1 (x i x) 2 5
Lineární regrese odhady parametrů Regresní model: Proložená přímka: (Reziduální) chyby: y i = 0 + 1 x i + " i, i = 1,..., n ŷ i = b 0 + b 1 x i e i = y i ŷ i = y i (b 0 + b 1 x i ) Součet čtverců ( ( RSS ( ( = ( ( ( e 2 ( (Residual Sum of i ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( Squares) Odhady b0 a b1 nalezneme minimizací RSS. Položíme rovny nule derivace RSS podle b0 a podle b1: nx i=1 d RSS db 0 =0 d RSS db 1 =0 6
Položíme rovnu nule derivaci RSS podle b0: 0= d RSS = d db 0 db 0 nx i=1 e 2 i = d db 0 nx i=1 (y i ŷ i ) 2 0= nx i=1 d db 0 (y i (b 0 + b 1 x i )) 2 = nx i=1 d db 0 (y i b 0 b 1 x i ) 2 nx nx 0= 2(y i b 0 b 1 x i )( 1) = 2 (y i b 0 b 1 x i ) i=1 i=1 nx nx 0= y i nb 0 b 1 x i = n (y b 0 b 1 x) i=1 b 0 = y b 1 x i=1 7
Položíme rovnu nule derivaci RSS podle b1: 0= d RSS = d db 1 db 1 nx i=1 e 2 i = d db 1 nx i=1 (y i ŷ i ) 2 0= nx i=1 nx d db 1 (y i (b 0 + b 1 x i )) 2 = nx i=1 d db 1 (y i b 0 b 1 x i ) 2 0= 2(y i b 0 b 1 x i )( x i ) i=1 nx 0= (y i b 0 b 1 x i ) x i i=1 NX Z předchozí stránky: 0= (y i b 0 b 1 x i ) i=1 8
Zkombinujme obě rovnice: +1 x 0= P n i=1 (y i b 0 b 1 x i ) x i 0= P n i=1 (y i b 0 b 1 x i ) b 0 = y b 1 x 0= P n i=1 (y i b 0 b 1 x i )(x i x) 0= P n i=1 (y i y + b 1 x b 1 x i )(x i x) 0= P n i=1 (y i y + b 1 (x x i ))(x i x) 0= P n i=1 (y i y)(x i x) b 1 P n i=1 (x i x) 2 b 1 P n i=1 (x i x) 2 P n = i=1 (y i y)(x i x) b 1 = P n i=1 (y i y)(x i x) P n i=1 (x i x) 2 9
Minimum oveříme pomocí druhých derivací RSS: Hessova matice druhých derivací H = 0 @ d 2 RSS db 2 0 d 2 RSS db 1 db 0 Determinant Hessovy matice: d 2 RSS db 0 db 1 d 2 RSS db 2 1 1 A D = det(h) = d 2 RSS db 2 0 d 2 RSS db 2 1 d 2 RSS 2 db 0 db 1 V našem případě v bodě odhadů (b0, b1) vyjde D > 0 a d 2 RSS db 2 0 > 0, což znamená, že jsme našli bod minima (bez důkazu). 10
Intuitivní význam odhadů parametrů 11
Intuitivní význam odhadů parametrů Odhady parametrů b 0 = y b 1 x (y = b 0 + b 1 x... t.j. (x, y) leží na regresní přímce) b 1 = P n i=1 (x i x)(y i y) P n i=1 (x i x) 2 = s X,Y s 2 X = r s Y s X Korelační koeficient X,Y = Cov (X,Y ) X Y = E(X EX)(Y EY ) X Y Odhad ρx,y r = s X,Y s X s Y Odhad Cov(X,Y) Odhad Var(X) s X,Y = 1 P n n 1 i=1 (y i y)(x i x) s 2 X = 1 P n n 1 i=1 (x i x) 2 12
Intuitivní význam odhadů parametrů y 120 140 160 180 200 8 9 10 11 12 x 13
Intuitivní význam odhadů parametrů Přímka směrodatných odchylek (SD-Line) y 120 140 160 180 200 směrnice SD-Line: s Y s X s X s Y Y + s Y Y 8 9 10 11 12 Xx X + s X 14
Intuitivní význam odhadů parametrů Regresní přímka je vždy méně strmá než SD-Line y 120 140 160 180 200 směrnice SD-Line: s Y s X Korel. koef. r: -1 r 1 směrnice regresní přímky: r s Y s X 8 9 10 11 12 x 15
Regresní Klam (Regression Fallacy) Regresní přímka je vždy méně strmá než SD-Line y 120 140 160 180 200 Blíž průměru než Y + s Y Y + s Y Y 8 9 10 11 12 Xx X + s X 16
Regresní Klam (Regression Fallacy) Body (x,y) na regresní přímce s x velmi daleko od průměru mají y blíže průměru: protože regresní přímka je vždy méně strmá než SD-Line když pak x = X + k s X y = Y + r k s Y kde pro regresní koeficient r platí: -1 r 1 17
Regresní Klam (Regression Fallacy) Příklad Uvažujme( xi = IQ studenta i před doučovacím kurzem a ( ( ( ( yi = IQ studenta i po doučovacím kurzu S použitím regresní přímky uvidíme: 1. Studenti 3 sx pod průměrem před kurzem jsou méně než 3 sy pod průměrem po kurzu zlepšili se! 2. Studenti 3 sx nad průměrem před kurzem jsou méně než 3 sy nad průměrem po kurzu zhoršili se! NE!!! Toto je způsobeno tím, že regresní přímka je méně strmá než SD-Line!!! 18
Intuitivní význam odhadů parametrů Regresní přímka prochází průměry vertikálních skupin y 120 140 160 180 200 8 9 10 11 12 x 19
Testování významnosti modelu 20
Redukce variability (rozptylu) modelem Test Modelu: Pokud je redukce rozptylu velká, pak model je významný 120 140 160 180 200 y y y 120 140 160 180 200 Histogram of e -20-10 0 10 20 e Histogram of e 0 5 10 15 20 Frequency -20-10 0 10 20 e Histogram of e 0 5 10 15 20 Frequency -20-10 0 10 20 e 0 5 10 15 20 0 5 10 15 20 Histogram Y Frequency Frequency 8 9 10 11 12 x Histogram reziduálů ei 21
Redukce variability (rozptylu) modelem Test Modelu: Pokud je redukce rozptylu velká, pak model je významný 120 140 160 180 200 y y y 120 140 160 180 200 Histogram of e -20-10 0 10 20 e Histogram of e 0 5 10 15 20 Frequency -20-10 0 10 20 e Histogram of e 0 5 10 15 20 Frequency -20-10 0 10 20 e Reziduály: y 0 5 10 15 20 y i Frequency 0 5 10 15 20 Frequency 8 9 10 11 12 Reziduály: y x i ŷ = y i (b 0 + b 1 x i ) 22
Redukce variability (rozptylu) s modelem Test Modelu: Pokud je redukce rozptylu velká, pak model je významný 120 140 160 180 200 y y y 120 140 160 180 200 Histogram of e -20-10 0 10 20 e Histogram of e 0 5 10 15 20 Frequency -20-10 0 10 20 e Histogram of e 0 5 10 15 20 Frequency -20-10 0 10 20 e 0 5 10 15 20 RSS 0 = P n Frequency 0 5 10 15 20 Frequency 8 9 10 11 12 x i=1 (y i y) 2 P n RSS 1 = i=1 (y i b 0 b 1 x i ) 2 23
Testování lineárního modelu Předpoklady: β0 a β1 (...( neznámé parametry εi ( ( (...( náhodné chyby, i.i.d. N(0,σ 2 ) Nulová hypotéza(( ( H0: β1 = 0 Takže: y i = 0 + " i, i = 1,..., n y i N( 0, 2 ) RSS 0 = P n i=1 (y i y) 2 Alternativní hypotéza( HA: β1 0 (lineární vztah mezi yi a xi) Takže: y i = 0 + 1 x i + " i, i = 1,..., n y i N( 0 + 1 x i, RSS 1 = P n i=1 (y i b 0 b 1 x i ) 2 RSS0 2 ) 24
Testování lineárního modelu Předpoklady: β0 a β1 (...( neznámé parametry εi ( ( (...( náhodné chyby, i.i.d. N(0,σ 2 ) Nulová hypotéza(( ( P H0: β1 = 0 n RSS 0 = i=1 (y i y) 2 RSS 0 / 2 2 n 1 Alternativní hypotéza( P HA: β1 0 (lineární vztah mezi yi a xi) n RSS 1 = i=1 (y i b 0 b 1 x i ) 2 RSS0 RSS 1 / 2 2 n 2 Zlepšení: RSS0 RSS1 Nezávislé pro εi( ~ i.i.d. N(0,σ 2 )! (RSS 0 RSS 1 )/ 2 2 1 25
F rozdělení Definice Nechť U 2 k 1 a V 2 k 2 veličiny s rozděleními chi-kvadrát. jsou nezávislé náhodné Pak U/k 1 V/k 2 F k1,k 2 má F rozdělení s k1 a k2 stupni volnosti. 26
Testování lineárního modelu RSS 1 / 2 2 n 2 Nezávislé pro (RSS 0 RSS 1 )/ 2 2 1 εi( ~ i.i.d. N(0,σ 2 )! Testovací statistika, dle předchozí věty: F = (RSS 0 RSS 1 )/(1 2 ) RSS 1 /((n 2) 2 ) F 1,n 2 Významné zlepšení: RSS0 RSS1 >> 0 Významné zlepšení: F >> 0 F = RSS 0 RSS 1 RSS 1 /(n 2) F 1,n 2 27
Testování lineárního modelu Předpoklady: β0 a β1 (...( neznámé parametry εi ( ( (...( náhodné chyby, i.i.d. N(0,σ 2 ) Nulová hypotéza(( ( H0: β1 = 0 y i = 0 + " i, i = 1,..., n Takže: y i N( 0, 2 ) Alternativní hypotéza( HA: β1 0 (lineární vztah mezi xi a yi) y i = 0 + 1 x i + " i, i = 1,..., n Takže: y i N( 0 + 1 x i, 2 ) 28
Testování lineárního modelu Hustota rozdělení F1,n 2 yy 0.0 0.1 0.2 0.3 0.4 0.5 0.6 0.7 1 α/2 Pokud H0 platí, pak Významné zlepšení: F > Fα/2 α/2 F = RSS 0 RSS 1 RSS 1 /(n 2) F 1,n 2 Evidence proti H0 zamítnu H0, čili lineární model je statisticky významný 0 1 2 3 4 5 6 Fα/2 F xx 29
Aplikace v Informatice Hash Function Aplikace v Informatice Hašovací Funkce (Hash Function) 30
Aplikace v Informatice Hash Function Hašovací funkce Hash h pro zprávu M (message) je h = H(M) ( M ((...( zpráva s proměnnou délkou ( H( (...( hašovací funkce ( H(M)(...( hash kód zprávy je pevné délky (rel. krátký) ( ( ( ( (výtah, miniatura, otisk, fingerprint, hash, haš) Autentikace zpráv pomocí hašovací funkce příjemce znovu spočítá hash kód zprávy ověří, zda spočtená haš se shoduje s publikovanou haší 31
Aplikace v Informatice Hash Function Požadavky na hašovací funkci H 1. Vstup proměnlivé délky 2. Výstup pevné délky 3. Snadno a rychle spočitatelná (nízké nároky na hardware) 4. Pro známou hodnotu h je výpočetně nemožné najít x takové, že H(x) = h (jednosměrnost) 5. Pro danou hodnotu x je výpočetně nemožné najít y takové, že H(x) = H(y) (slabá odolnost proti kolizím) 6. Je výpočetně nemožné najít pár (x,y) takový, že H(x) = H(y) (silná odolnost proti kolizím) 32
Aplikace v Informatice Hash Function Hašovací algoritmy Volba hašovacího algoritmu velmi často závisí na vlastnostech vstupních dat a pravděpodobnostním rozdělení dat během použití. Triviální hašování: Pokud je zpráva krátká, můžeme použít zprávu jako haš funkce = identita (0 výpočetní náročnost) Převod textu z malých na velká písmena a naopak: Tabulka indexovaná ASCII či Unicode znaku Tabulka 2-znakových kódů států: CZ, TW, US, CA,... 33
Aplikace v Informatice Hash Function Hašovací algoritmy Perfektní hašování: Injektivní funkce každá zpráva má unikátní hash kód Hash kód se přímo vyhledá v tabulce Nedochází ke kolizím Např. Datum a čas => epoch date (počet vteřin od 1.1.1970) Minimální perfektní hašování: Hashovací tabulka neobsahuje zbytečné hodnoty 34
Aplikace v Informatice Hash Function Rovnoměrnost hašovací funkce Očekávaný vstup by měl být mapován rovnoměrně na možné výstupní hodnoty: Každá výstupní hodnota by měla mít stejnou pravděpodobnost Pokud nějaké výstupní hodnoty mají vyšší pravděpodobnost, pak, může často dojít ke kolizím Kolize znamenají zdržení Rovnoměrnost rozdělení hašovací funkce můžeme testovat pomocí statistického chi-kvadrát testu (test dobré shody) 35
Aplikace v Informatice Hash Function Příklad členové klubu Příklad Hashovací funkce pro členy klubu: Příjmení člena mnoho kolizí Příjmení a křestní jméno méně kolizí Příjmení, křestní jméno a datum narození téměř žádné kolize Členské číslo bez kolizí (perfektní hašování) 36
Aplikace v Informatice Hash Function Příklad bežné hašovací funkce XOR Příklad XOR Obecný postup: 1. Vstup rozdělen na sekvenci n-bitových bloků 2. Každý blok je zpracován zvlášť. Příklad: Pro každý blok spočteme XOR bit po bitu: ( ( ( ( ( Ci = bi1 bi1... bim Ci ( m(( bij(( ((...( bit i hash kódu...( počet n bitových bloků ve vstupu...( bit i v j-tém bloku...( operace XOR 37