Kas yra „entropija ir informacijos gavimas“?

Skaitysiu šią knygą ( NLTK ) ir tai paini. Entropija apibrėžiama kaip :

Entropija yra kiekvieno etiketės tikimybių suma, kai tik tos pačios etiketės žurnalo tikimybė

Kaip galiu taikyti entropiją ir didžiausią entropiją teksto gavybos požiūriu? Ar kas nors gali man pateikti paprastą, paprastą pavyzdį (vizualinį)?

272
07 дек. nustatyti TIMEX 07 dec. 2009-12-07 14:54 '09, 14:54, 2009-12-07 14:54
@ 6 atsakymai

Manau, kad entropija buvo paminėta kuriant sprendimų medžius .

Norėdami iliustruoti, įvesti mokymosi užduotį suklasifikuoti pavardes vyrų / moterų grupėse. Tai sąrašas pavadinimų, kurių kiekvienas yra pažymėtas „ m arba „ f , mes norime žinoti modelį , kuris atitinka duomenis, ir gali būti naudojamas prognozuoti naujo nematomo vardo lytį.

 name gender ----------------- Now we want to predict Ashley f the gender of "Amro" (my name) Brian m Caroline f David m 

Pirmas žingsnis yra nuspręsti , ar duomenų funkcijos priklauso tikslinei klasei, kurią norime numatyti. Keletas pavyzdžių: pirmoji / paskutinė raidė, ilgis, balsių skaičius, ar jis baigiasi balsiais ir pan. Todėl išgavus funkciją, mūsų duomenys atrodo taip:

 # name ends-vowel num-vowels length gender # ------------------------------------------------ Ashley 1 3 6 f Brian 0 2 5 m Caroline 1 4 8 f David 0 2 5 m 

Tikslas - sukurti sprendimų medį. Medžio pavyzdys būtų:

 length<7 | num-vowels<3: male | num-vowels>=3 | | ends-vowel=1: female | | ends-vowel=0: male length>=7 | length=5: male 

iš esmės kiekvienas mazgas yra testas, atliktas viename atribute, ir mes einame į kairę arba į dešinę, priklausomai nuo bandymo rezultatų. Mes toliau judame per medį, kol pasiekiame mazgo lapą, kuriame yra klasės ( m arba f ) prognozė

Taigi, jei paleisime Amro pavadinimą šiame medyje, pradėsime bandymu "tai yra ilgis <7?" ir atsakymas yra „taip“, todėl einame į šią temą. Po filialo kitas testas "yra balsių skaičius <3?" dar kartą vertina. Tai veda prie mazgo sąrašo, pažymėto m , todėl prognozė yra vyriška (nepriklausomai nuo to, kas esu, todėl medis prognozavo rezultatą teisingai ).

Sprendimų medis yra pastatytas iš viršaus į apačią , tačiau kyla klausimas, kaip pasirinkti, kokį atributą reikia įsilaužti į kiekvieną mazgą? Atsakymas yra rasti funkciją, kuri geriausiai sugriauna tikslinę klasę į gryniausius vaikų mazgus (t. Y. Mazgus, kuriuose nėra vyrų ir moterų derinio, gana grynų mazgų su tik viena klase).

Šis grynumo matas vadinamas informacija . Jis atspindi numatomą informacijos kiekį , kurį reikės nurodyti, ar naujasis egzempliorius (vardas ir pavardė) turėtų būti klasifikuojami kaip vyrai ar moterys, atsižvelgiant į pavyzdį, kuris pasiekė mazgą. Apskaičiuojame jį pagal vyrų ir moterų klasių skaičių.

Entropija , kita vertus, yra priemaišų matas (priešingai). Jis apibrėžiamas dvejetaininei klasei, turinčiai a / b reikšmes:

 Entropy = - p(a)*log(p(a)) - p(b)*log(p(b)) 

Ši funkcija

Žinoma, entropijos apibrėžimą galima apibendrinti atskiram atsitiktiniam kintamajam X su N rezultatais (ir ne tik dviem):

2019

861
07 дек. Atsakyti Amro 07 Dec 2009-12-07 16:16 '09, 16:16, 2009-12-07 16:16

Pradžioje geriau būtų suprasti the measure of information .

Kaip mes measure informaciją?

Kai kažkas yra mažai tikėtina, mes sakome, kad tai yra didelė naujiena. Be to, kai sakome ką nors nuspėjamą, tai nėra labai įdomu. Taigi, norint kiekybiškai įvertinti interesting-ness , funkcija turi tenkinti

  • jei įvykio tikimybė yra 1 (nuspėjama), tada funkcija suteikia 0
  • jei įvykio tikimybė yra artima 0, tuomet funkcija turėtų suteikti didelį skaičių
  • Jei įvyksta 0,5 įvykio tikimybė, ji pateikia one bit informacijos.

Viena natūrali priemonė, atitinkanti apribojimus

 I(X) = -log_2(p) 

kur p yra X įvykio tikimybė. Ir prietaisas yra bit , tas pats bitų kompiuteris naudoja. 0 arba 1.

1 pavyzdys

„Fair Coin“:

Kiek informacijos galime gauti iš vienos vėliavos su moneta?

Atsakymas: -log(p) = -log(1/2) = 1 (bit)

2 pavyzdys

Jei rytoj meteoritas pateks į Žemę, p=2^{-22} , tada gausime 22 informacijos.

Jei saulė rytoj pakyla, p ~ 1 , tai bus 0 bitų.

Entropija

Taigi, jei laukiame Y įvykių interesting-ness , tai yra entropija. t.y. entropija yra laukiama renginio įdomumo vertė.

 H(Y) = E[ I(Y)] 

Formaliau, entropija yra tikėtinas įvykio bitų skaičius.

Pavyzdys

Y = 1: X įvykis įvyksta su tikimybe p

Y = 0: X įvykis nepasireiškia tikimybe 1-p

 H(Y) = E[I(Y)] = p I(Y==1) + (1-p) I(Y==0) = - p log p - (1-p) log (1-p) 

Visų rąstų rąstų bazė 2.

27
04 июля '14 в 4:27 2014-07-04 04:27 atsakymas pateikiamas VforVitaminui liepos 4 d. 14 d. 4:27 2014-07-04 04:27

Aš negaliu jums pateikti tvarkaraščio, bet galbūt galiu pateikti aiškų paaiškinimą.

Tarkime, mes turime informacijos kanalą, pavyzdžiui, šviesą, kuri mirksi kartą per dieną, raudona arba žalia. Kiek informacijos jis perduoda? Pirmoji prielaida gali būti vienas bitas per dieną. Bet kas, jei pridedame mėlyną, kad siuntėjas turėtų tris galimybes? Mes norėtume turėti informaciją, kuri galėtų tvarkyti dalykus, kurie skiriasi nuo šių dviejų galių, bet vis dar yra papildomi (galimų pranešimų skaičiaus padauginimo iš dviejų metodų metodas padidina vieną bitą). Tai galėtume padaryti atsižvelgiant į žurnalą 2 (galimų pranešimų skaičių), tačiau mes gausime bendresnį būdą.

Tarkime, mes grįžome į raudoną / žalią, bet raudona šviesa sudegė (tai yra žinoma), kad lemputė visada šviečia žalia. Dabar kanalas yra nenaudingas, mes žinome, kokia bus kita blykstė, taigi blykstė neperduoda jokios informacijos, jokių naujienų. Dabar mes remontuojame lemputę, tačiau mes nustatome taisyklę, kad raudona šviesa gali netrūkti du kartus iš eilės. Kai lemputė mirksi raudonai, žinome, kas bus kita blykstė. Jei bandote siųsti bitų srautą per šį kanalą, pastebėsite, kad turite jį koduoti su daugiau blyksnių nei šiek tiek (iš tikrųjų 50% daugiau). Ir jei norite apibūdinti blyksčių seką, galite tai padaryti su mažiau bitų. Tas pats pasakytina ir tada, kai kiekviena blykstė yra nepriklausoma (kontekstinė), tačiau žalieji blykstės yra dažniau nei raudonos spalvos: tuo labiau iškraipoma tikimybė, kad mažiau bitų reikės apibūdinti seką, ir kuo mažiau informacijos, kurioje yra visa informacija - žalias, lempos išsiliejimo riba.

Pasirodo, kad yra būdas įvertinti informacijos kiekį signale, remiantis skirtingų simbolių tikimybėmis. Jei tikimybė gauti simbolį x i yra lygi p i , tuomet apsvarstykite vertę

 -log p i 

Kuo mažesnė p i , tuo didesnė ši vertė. Jei x i tampa pusę vertės, ši vertė padidinama nustatytu dydžiu (log (2)). Tai turėtų priminti jums pridėti vieną bitą prie pranešimo.

Jei nežinome, kas bus simbolis (bet mes žinome tikimybes), tada mes galime apskaičiuoti vidutinę šios vertės vertę, kiek mes gauname apibendrinant įvairias galimybes:

 I = -Σ p i log (p i )

Tai informacinis turinys vienoje blykstėje.

 Raudona lemputė sudegė: p raudona = 0, p žalia = 1, I = - (0 + 0) = 0 Raudona ir žalia spalva yra neįmanoma: p raudona = 1/2, p žalia = 1/2 , I = - (2 * 1/2 * žurnalas (1/2)) = žurnalas (2) Trys spalvos, vienodos: p i = 1/3, I = - (3 * 1/3 * log (1/3)) = žurnalas (3) Žalia ir raudona, žalia žalia du kartus didesnė tikimybė: p raudona = 1/3, p žalia = 2/3, I = - (1/3 žurnalo (1/3) + 2/3 žurnalo (2/3)) = žurnalo ( 3) - 2/3 žurnalas (2)

Tai informacinis turinys arba pranešimų entropija. Tai maksimalus, kai vienodai tikėtini skirtingi simboliai. Jei esate fizikas, jūs naudojate natūralų žurnalą, jei esate kompiuterių mokslininkas, naudojate log 2 ir gaukite šiek tiek.

17
07 дек. atsakymas pateikiamas Beta 07 d. 2009-12-07 16:45 '09, 4:45 PM 2009-12-07 16:45

Aš tikrai rekomenduoju perskaityti informaciją apie informacijos teoriją, Bayeso metodus ir MaxEnt. Vieta, kur pradėti yra David McKay (laisvai prieinama internetinė) knyga:

http://www.inference.phy.cam.ac.uk/mackay/itila/

Šie išvadų metodai iš tikrųjų yra daug bendresni nei tik teksto gavyba, ir aš negaliu išsiaiškinti, kaip išmokti tai taikyti NLP be mokymosi kai kurių šiame knygoje esančių bendrų pagrindų ar kitų įvadinių knygų apie kompiuterinį mokymą ir MaxEnt Bajeso metodai.

Entropijos ir tikimybių teorijos ryšys su informacijos apdorojimu ir saugojimu iš tiesų yra labai gilus. Skoniui suteikti yra Shannon teorema, kad maksimalus informacijos kiekis, kurį galite perduoti be klaidų per triukšmingo ryšio kanalą, yra lygus triukšmo proceso entropijai. Ji taip pat turi teoriją, kuri susieja, kiek duomenų galite suspausti, kad galėtumėte kiek įmanoma mažiau atminties savo kompiuteryje prieš proceso, kuris generavo duomenis, entropiją.

Nemanau, kad jums tikrai reikia žinoti apie visus šiuos teorijų apie komunikacijos teoriją, tačiau neįmanoma žinoti apie tai be mokymosi, kas yra entropija, kaip ji apskaičiuojama, koks yra ryšys su informacija ir produkcija, ir tt .

7
14 дек. Atsakymą pateikė Rafael S. Calsaverini gruodžio 14 d 2009-12-14 20:42 '09 ne 20:42 2009-12-14 20:42

Įgyvendindamas vaizdų entropijos skaičiavimo algoritmą, radome šias nuorodas, žr. Čia ir čia .

Tai yra pseudokodas, kurį naudoju, jums reikės pritaikyti jį dirbti su tekstu, o ne su vaizdais, bet šie principai turėtų būti vienodi.

 //Loop over image array elements and count occurrences of each possible //pixel to pixel difference value. Store these values in prob_array for j = 0, ysize-1 do $ for i = 0, xsize-2 do begin diff = array(i+1,j) - array(i,j) if diff lt (array_size+1)/2 and diff gt -(array_size+1)/2 then begin prob_array(diff+(array_size-1)/2) = prob_array(diff+(array_size-1)/2) + 1 endif endfor //Convert values in prob_array to probabilities and compute entropy n = total(prob_array) entrop = 0 for i = 0, array_size-1 do begin prob_array(i) = prob_array(i)/n //Base 2 log of x is Ln(x)/Ln(2). Take Ln of array element //here and divide final sum by Ln(2) if prob_array(i) ne 0 then begin entrop = entrop - prob_array(i)*alog(prob_array(i)) endif endfor entrop = entrop/alog(2) 

Aš gavau šį kodą iš bet kur, bet negaliu iškasti nuorodos.

4
07 дек. Atsakyti Matt Warren 07 gr 2009-12-07 16:35 '09 ne 16:35 2009-12-07 16:35

Skaitydami knygą apie „NLTK“, būtų įdomu sužinoti apie „MaxEnt“ klasifikatoriaus modulį http://www.nltk.org/api/nltk.classify.html#module-nltk.classify.maxent

Norėdami klasifikuoti duomenų gavybą, žingsniai gali būti: išankstinis apdorojimas (tokenizavimas, garų apdorojimas, funkcijų parinkimas naudojant informacijos priėmimą ...), konvertavimas į skaitinę vertę (dažnis arba TF-IDF) (manau, kad tai yra pagrindinis žingsnis siekiant suprasti naudojant tekstas kaip įvesties algoritmui, kuris priima tik skaitmeninę), ir tada klasifikuojamas naudojant „MaxEnt“, yra tik pavyzdys.

0
26 марта '15 в 15:33 2015-03-26 15:33 atsakymą Paulo pateikė kovo 26 d. 15 val. 15:33 2015-03-26 15:33