Univerzitet u Niˇ su ˇki Fakultet Prirodno matematic ˇunarske nauke Departman za rac Uˇ cenje vektorske reprezentacije reˇ ci govornog jezika primenom
|
|
- Тибор Бранковић
- пре 5 година
- Прикази:
Транскрипт
1 Univerzitet u Niˇ su ˇki Fakultet Prirodno matematic ˇunarske nauke Departman za rac Uˇ cenje vektorske reprezentacije reˇ ci govornog jezika primenom dubokih neuronskih mreˇ za Master rad Mentor: Prof. dr Branimir Todorovi c Niˇs, Oktobar Student: ˇ c Nenad Zivi
2 Predgovor Ovaj rad nastao je kao plod višegodišnjeg izučavanja mašinskog učenja, procesiranja govornog jezika i tehnologija paralelnog programiranja na grafičkim procesorima. Tema ovog rada veoma lepo spaja moja navedena interesovanja, te sam uživao pišući ga. Zahvaljujem se svom mentoru, prof. dr Branimiru Todoroviću, koji me je uveo u sferu mašinskog učenja, tamo me zadržao i usmerio u daljem individualnom napredovanju. Veliko mu hvala ne samo kao profesoru, već i kao istinskom mentoru koji me je naučio mnogo više od samog mašinskog učenja i procesiranja govornog jezika. Takod e se zahvaljujem i prof. dr Marku Petkoviću, dugogodišnjem nastavniku, profesoru i saradniku, na svemu što me je naučio o naučnom radu, kao i na tome što je kvalitenim i zanimljivim časovima u srednjoj školi direktno uticao na moju odluku da upišem Informatiku na Prirodno-matematičkom fakultetu. Dugujem veliku zahvalnost i svim ostalim profesorima na Departmanu za Računarske nauke Prirodno-matematičkog fakulteta u Nišu, zato što su uvek nesebično i prijateljski delili svoje znanje sa mnom, kao i svojoj porodici, prijateljima, i devojci Jeleni, koji su mi uvek pružali neizmernu podršku. 1
3 Sadržaj 1 Uvod 4 2 Osnovni koncepti dubokih neuronskih mreža Višeslojni perceptron Konvolucione duboke neuronske mreže Konvolucija Mape osobina Udruživanje Arhitektura i treniranje duboke konvolucione mreže Dodatne ideje dubokog učenja Sloj izbacivanja Sloj ugrad ivanja u latentni vektorski prostor Procesiranje govornog jezika Zadaci procesiranja govornog jezika Reprezentacija reči hot vektor reprezentacija Reprezentacija pomoću klasterovanja Reprezentacija u latentnom prostoru Metode redukcije dimenzionalnosti reprezentacije reči Latentna semantička analiza Slučajno indeksiranje Reprezentacija reči pomoću dubokih neuronskih mreža Implementacija i rezultati Arhitektura mreže Korpusi Pregled alata dubokog učenja Python biblioteka Keras Rezultati Brzina konvergencije Optimalna veličina mreže Uticaj sloja izbacivanja Ugrad ivanje reči za različite dimenzionalnosti Zaključak 30 Literatura 31 2
4 SADRŽAJ 3 Biografija 33
5 Glava 1 Uvod Procesiranje govornog jezika (eng. natural language processing) je jedna od najvažnijih i trenutno najaktivnijih oblasti veštačke inteligencije ali i informatike uopšte. Ova grana nauke bavi se interakcijom računara i čoveka, a kao krajnji cilj ima da omogući računarima da u potpunosti razumeju značenje govornog jezika. Ovo, naravno, nije nimalo jednostavan zadatak, te se na putu do gore navedenog konačnog cilja rodio veliki broj podzadataka koji su toliko kompleksni da se već sada mogu smatrati naukama za sebe. Neki od najpoznatijih primera su automatska sumarizacija teksta (eng. text summarization), mašinski prevod, prepoznavanje entiteta (eng. named entity recognition - NER), automatsko generisanje teksta, odred ivanje vrste reči u rečenici (eng. part of speech - POS tagging), i mnogi drugi. Nešto detaljnija diskusija o ovim zadacima nalazi se u trećem poglavlju ovog rada. Jedan od problema procesiranja govornog jezika je odred ivanje semantički sličnih reči. Istorijski, jedna od većih prepreka u razvoju softvera koji je u stanju da razume govorni jezik je bila činjenica da računar može da razume samo da su dve reči u tekstu u potpunosti iste, ili u potpunosti različite. Tako se javila potreba za algoritmima koji bi na neki način merili semantičku sličnost reči, a te podatke kasnije koristili kao akumulirano znanje za dalju obradu teksta i time značajno popravili kvalitet rešenja finalnog zadatka. Naučnici iz oblasti procesiranja govornog jezika su za ovakve zadatke koristili statističke metode kao sto su Slučajno indeksiranje [13], Braunovo klasterovanje [9], [8] ili standardne metode redukcije dimenzionalnosti predstave reči kao sto je SVD (Singular Value Decomposition). Ovi metodi su nažalost ili previše jednostavni (Slučajno indeksiranje), grubi (Braunovo klasterovanje) ili računski zahtevni (SVD). Za to vreme, naučnici su se bavili neuronskim mrežama koje su se činile kao jako dobra ideja, ali u svoje vreme su se suočile sa nedovoljno jakim računarima da bi bile naučene dovoljno dobro za razumno vreme. Kraj prve decenije dvadeset prvog veka obeležavaju tzv. duboke neuronske mreže, koje su u stanju da nauče različite nivoe apstrakcije. Neke od primena su klasifikacija teksta, slika i videa. Treniranje dubokih neuronskih mreža postalo je izvodljivo u realnom vremenu zahvaljujući tehnologiji njihovog treniranja na grafičkim procesorima, veoma pogodnim za matrična izračunavanja, koja čine najveći deo posla u treniranju neuronskih mreža. To je otvorilo mogućnost za primenu dubokih neuronskih mreža čak i u problemima procesiranja govornog jezika, koji su naročito problematični zbog skupova velike kardinalnosti. Cilj ovog rada je paralelna implementacija duboke neuronske mreže na grafičkom procesoru i njena primena na odred ivanje semantičkih sličnosti reči, i to predstavljanjem reči u visokodimenzionom vektorskom prostoru. U anglosaksonskoj literaturi, ovaj problem se 4
6 Uvod 5 može naći pod imenom word embedding. Ovo predstavljanje se, na veliku sreću, postiže kao usputni proizvod treniranja problema klasifikacije na neanotiranom korpusu teksta, te nije potreban dodatni napor (vremenski a samim tim i finansijski) za ljudsku anotaciju teksta. Drugim rečima, predstavljanje reči u vektorskom prostoru je reprezentacija koju neuronska mreža sama nauči kako bi sebi olakšala problem odred ivanja da li odred eni kontekst ima smisla u govornom jeziku ili ne. Rad je struktuiran na sledeći način. U drugom poglavlju su najpre predstavljeni osnovni koncepti dubokih neuronskih mreža. Najpre se uvodi definicija modela neurona, sloja neurona, pa napokon i cele neuronske mreže. Nakon toga navedeni su neki od osnovnih koncepata dubokih neuronskih mreža, kao sto su konvolucija, mape osobina i udruživanje, sve kroz primer duboke konvolucione mreže. Na kraju, navedene su još neke od ideja dubokog učenja koje su od naročitog značaja za problem ugrad ivanja reči u latentni vektorski prostor. To su sloj izbacivanja i sloj ugrad ivanja u latentni vektorski prostor. Treće poglavlje daje kratak pregled aktuelnih problema procesiranja govornog jezika. U ovom poglavlju se najpre ukratko upoznajemo sa tim zadacima. Zatim pokazujemo različite načine reprezentacije reči u algoritmima mašinskog učenja. Nakon toga, dat je uvid u neke od metoda redukcije dimenzionalnosti reprezentacija reči, od kojih je jedan ugrad ivanje u latentni vektorski prostor pomoću duboke neuronske mreže, a koji je glavna tema ovog rada. Četvrto poglavlje govori detaljnije o konkretnoj arhitekturi mreže korišćene u ovom radu za reprezentaciju reči. Pored arhitekture, tu je i kratak pregled korišćenih korpusa teksta, kao i opis alata u kojima je neuronska mreža isprogramirana. Na kraju ovog poglavlja predstavljeni su rezultati ovakve arhitekture mreže kroz nekoliko eksperimenata i primera ugrad ivanja reči. Zaključak sumira dobijene rezultate i predlaže moguće pravce za dalje unapred enje reprezentacija reči korišćenjem dubokih neuronskih mreža.
7 Glava 2 Osnovni koncepti dubokih neuronskih mreža Postoji veliki broj različitih arhitektura dubokih neuronskih mreža. U daljem tekstu biće navedene neke od njih, i kroz njih objašnjeni neki od osnovnih koncepata dubokog učenja, kao što su različiti nivoi apstrakcije, slučajna eliminacija čvorova (eng. dropout), udruživanje (eng. pooling) itd. 2.1 Višeslojni perceptron Posmatrajmo problem nadgledanog (eng. supervised) učenja u kome imamo označeni (eng. labeled) korpus D = {(x i, y i )} N i=1. Neuronska mreža je sposobna da nauči kompleksnu, nelinearnu, hipotezu h W,b (x) koja u dobroj meri odgovara podacima iz korpusa D. Kako bismo opisali način funkcionisanja neuronske mreže, krenućemo od najjednostavnije moguće neuronske mreže - jednog jedinog neurona (slika 2.1). Slika 2.1: Prikaz jednog neurona sa svojim ulaznim i izlaznim sinapsama. Neuron na slici je ništa drugo do jedinica za izračunavanje (eng. computational unit) koja uzima ulazne vrednosti x 1, x 2 i x 3, kao i konstantni član, a na izlazu daje h W,b (x) = f(w T x) = f( 3 W i x i + b), (2.1) gde je f tzv. aktivaciona funkcija koja se može definisati na nekoliko načina. U daljem tekstu biće navedena tri često korišćena primera aktivacionih funkcija. 6 i=1
8 Osnovni koncepti dubokih neuronskih mreža 7 Prvi je tzv. sigmoidalna aktivaciona funkcija, ili skraćeno sigmoid, koja ima sledeći oblik: f(z) = 1. (2.2) 1 + e z Druga korišćena opcija za aktivacionu funkciju je hiperbolički tangens, sledećeg oblika: f(z) = ez e z. (2.3) e z + e z Istraživanja su pokazala da u neuronskim mrežama veoma dobro radi treća opcija, zglobna aktivacija: f(z) = max(0, z). (2.4) Na grafiku 2.2 prikazano je pored enje ove tri najzastupljenije aktivacione funkcije. Slika 2.2: Poredbeni prikaz tri najčešće korišćene aktivacione funkcije neurona. U daljem radu biće korisno znati koji su izvodi ovih funkcija. Zapravo, njihovi izvodi su i uzrok njihove popularnosti. Izvod sigmoidalne aktivacione funkcije je f (z) = f(z)(1 f(z)), (2.5) a izvod zglobne aktivacione funkcije je takod e veoma jednostavan i ima sledeći oblik { f 1 z > 0 (z) = 0 z < 0. (2.6) U nuli je ovaj gradijent nedefinisan, ali to ne predstavlja problem u praktičnoj primeni, pošto se gradijent usrednjava po više primera tokom učenja. Postoje i aktivacione funkcije
9 Osnovni koncepti dubokih neuronskih mreža 8 koje imaju takav oblik da vrlo malo odstupaju od zglobne aktivacione funkcije, ali su diferencijabilne u svim tačkama. Neke od njih mogu se naći u radovima [26] i [27]. Sloj neuronske mreže dobija se kada se paralelno postavi odred eni broj neurona. Vrlo su česte mreže sa arhitekturom u kojima postoje veze samo izmed u susednih slojeva, a signal se propagira samo unapred, i u ovom radu ćemo uglavnom takve mreže i razmatrati. Ovakve mreže zovu se neuronske mreže sa direktnim propagiranjem signala (eng. feedforward neural network). Na slici 2.3 je prikazana takva mreža sa jednim ulaznim, jednim skrivenim i na kraju, izlaznim slojem. Slika 2.3: Neuronska mreža sa direktnim propagiranjem signala i jednim skrivenim slojem. U sledećim odeljcima uvodimo notaciju neophodnu za razumevanje izvod enja i formula vezanih za neuronske mreže. Neka L predstavlja broj slojeva u mreži. W (i) predstavljaće matricu težina sinapsi izmed u slojeva l i l + 1, a indeksira se tako da W (l) ij predstavlja težinu sinapse izmed u neurona i u sloju l i neurona j u sloju l + 1. Sa a (l) i obeležavaćemo aktivaciju neurona i u sloju l. U specijalnom slučaju sloja 1, tj. ulaznog sloja, označavaćemo a (1) i = x i. Signal se propagira na sledeći način: aktivacija neurona i u sloju l + 1 računa se kao: s l i = f( W (l) ji al j). (2.7) a (l+1) j=1 Kao što se može primetiti, radi se o množenju matrice i vektora. Ove operacije su veoma pogodne za masovnu paralelizaciju, te zaključujemo da je propagiranje signala kroz mrežu veoma pogodna operacija za računanje na grafičkom procesoru. Više o tome u narednom poglavlju. Ova operacija propagiranja signala se, dakle, može predstaviti na sledeći način: a (l+1) = f(w (l) a (l) ). (2.8) Na ovaj način možemo naslagati proizvoljan broj slojeva i graditi proizvoljne arhitekture. Arhitekture u kojima nema ciklusa ili petlji (mreže sa direktnim propagiranjem signala) su naročito korišćene i pogodne za brza izračunavanja na grafičkom procesoru te će oni biti
10 Osnovni koncepti dubokih neuronskih mreža 9 glavna tema istraživanja. Primer dublje arhitekture mreže dat je na slici 2.4. Ovakva mreža se popularno zove višeslojni perceptron (eng. multi-layered perceptron). Slika 2.4: Arhitektura visešlojnog perceptrona. 2.2 Konvolucione duboke neuronske mreže Gore opisana arhitektura neuronskih mreža podrazumeva veze izmed u svakog neurona sloja l sa svakim neuronom sloja l + 1. Ova osobina nosi sa sobom dva problema. Prvi je taj što realne, biološke, neuronske mreže ne funkcionišu na takav način, već su lokalno povezane. Ovo je med u prvima primećeno i objavljeno u [22]. Drugi, daleko praktičniji razlog, je taj što ovo ume biti veoma računarski zahtevno jer broj konekcija raste kvadratno sa brojem neurona u slojevima. Ova opservacija vodi nas do podele neuronskih mreža na potpuno povezane (eng. fully connected) i lokalno povezane (eng. locally connected) Konvolucija Ideja lokalno povezanih mreža potiče iz zadataka klasifikacije slika. U ovom domenu, takozvana konvolucija je prirodan izbor. Konvolucija je tehnika povezivanja slojeva u kojoj na čvor i u sloju l + 1 utiču (povezani su) samo čvorovi i k, i k + 1,..., i + k 1, i + k iz sloja l, gde je k parametar koji predstavlja veličinu polja konvolucije i veoma zavisi od domena. Veoma popularan primer je MNIST set podataka, koji sadrži rukom pisane cifre prevedene u oblik bit mape. U ovom setu podataka nalaze se slike rezolucije 28 28, pa se najčešće uzima širina konvolucije k = 2. Za slike veće rezolucije uzimalo bi se veće k. Skica konvolucije u dve dimenzije prikazana je na slici 2.5. Kernel je filter koji množi odgovarajuće veze odgovarajućim težinama Mape osobina U prethodnom potpoglavlju opisali smo kako se iz jednog sloja duboke konvolucione mreže dobijaju aktivacije u narednom sloju upotrebom kernela konvolucije. Ovaj kernel se uči postupkom optimizacionog algoritma koristeći propagiranje greške unazad. Ovako
11 Osnovni koncepti dubokih neuronskih mreža 10 Slika 2.5: Konvolucija u 2D. Vrednosti u matrici kernela množe odgovarajuće vrednosti u sloju l i ta vrednost se dodaje odgovarajućem neuronu u sloju l + 1. naučen kernel predstavlja znanje o nekom nivou apstrakcije. Kako ovakvih osobina može biti mnogo (u konkretnom primeru slike to mogu biti različiti oblici, ivice, teksture itd), moramo imati veći broj različitih kernela u svakom konvolucionom sloju. To znači da se npr. iz ulaznog sloja, pomoću k kernela, podaci slikaju u k različitih slojeva mreže istog nivoa apstrakcije. Svaki od tih k slojeva zove se mapa osobina (eng. feature map). Svaka od ovih mapa čuva informaciju o nekoj osobini dela slike definisanog širinom konvolucije. Slikanje ulaznog sloja u više mapa osobina prikazano je na slici 2.6. Slika 2.6: Kompletna konvoluciona neuronska mreža koja pokazuje najpre proces konvolucije, zatim slikanja u više mapa osobina, potom udruživanje, i na kraju spajanje sa potpuno povezanim višeslojnim perceptronom Udruživanje Nakon što smo dobili nove vrednosti u sledećem sloju (eng. features), treba ih nekako propagirati i upotrebiti za klasifikaciju. U teoriji, možemo iskoristiti sve osobine iz svih mapa osobina koje smo dobili konvolucijom. Med utim, ovaj broj ume da naraste do redova veličine miliona, iz jednostavnog razloga što u praktičnim primenama, broj mapa osobina je reda veličine stotina. Iz tog razloga se koristi tehnika udruživanja (eng. pooling). Ova
12 Osnovni koncepti dubokih neuronskih mreža 11 tehnika podrazumeva da se p susednih neurona udruže na neki način i time formiraju ulaz sa sledeći sloj. Ovo je prikazano na slici 2.6. Vrednost p opet jako zavisi od primene. U gore navedenom primeru MNIST slika pisanih cifara, ima smisla birati p = 2 i p = 3 jer su slike male rezolucije. Najčešći vid udruživanja su srednja vrednost aktivacija svih neurona u oblasti koja se udružuje (eng. mean-pooling) i maksimalna vrednost tih aktivacija (eng. max-pooling) Arhitektura i treniranje duboke konvolucione mreže Konvoluciona neuronska mreža (eng. Convolutional Neural Network - CNN) je sastavljena od jednog ili više konvolucionih slojeva, na koje se nestavlja jedan ili više potpuno povezanih slojeva na isti način kao u standardnom višeslojnom perceptronu. Arhitektura konvolucione mreže je dizajnirana tako da iskoristi 2D strukturu slike, med utim ideja konvolucije se koristi i sa 1D podacima u vidu teksta, a u skorije vreme i sa 3D podacima u vidu videa [15]. Prednosti CNN arhitekture su u iskorišćenju različitih nivoa apstrakcije, kao i u brzini treniranja, pošto CNN mreža ima za red veličine manje sinapsi od MLP mreže sa istim brojem neurona. Sada ćemo malo detaljnije opisati arhitekturu konvolucione mreže na primeru. Ukoliko je ulaz konvolucionoj mreži slika dimenzije m m, sa r kanala, najpre se vrši q konvolucija reda k (matricom kernela 2k + 1 2k + 1), gde je q broj mapa osobina a k broj susednih neurona iz ulaznog sloja koji utiče na vrednost neurona u prvom skrivenom sloju. Tako smo dobili q paralelnih slojeva, svaki dimenzije m 2k + 1 m 2k + 1. Ovi slojevi se potom udružuju koristeći udruživanje reda p, tako da naredni sloj ima dimenzije (m 2k+1)/p (m 2k+1)/p. Onda se proces konvolucije ponavlja sve dok ukupan broj neurona ne postane pogodan za povezivanje za potpuno povezanim ostatkom mreže. Ovakva mreža trenira se gradijentnim spustom, ili bilo kojim naprednijim algoritmom optimizacije kriterijumske funkcije (npr. Nesterovljev metod momenta [24]) i propagiranjem signala greške unazad. Formalno, algoritam treniranja neuronske mreže na korpusu D = {(X i, y i ) N i=1} je zapravo optimizacioni problem: (W, b) = argmin W,b J(W, b; (X i, y i ) N i=1), (2.9) gde je J kriterijumska funkcija, odnosno funkcija koja odred uje meru kažnjavanja greške u klasifikaciji. Sada ćemo ukratko pokazati formule za propagiranje greške unazad. Neka je δ (l+1) vektor greške u sloju l + 1 u mreži u kojoj je kriterijumska funkcija J(W, b; x, y), gde su (W, b) parametri a (x, y) trening podaci. Ako je sloj l gusto (potpuno) povezan sa slojem l + 1, onda je greška u l-tom sloju: a gradijenti su: δ (l) = ((W (l) ) T δ (l+1) ) f (z (l) ), (2.10) W (l)j(w, b; x, y) = δ (l+1) (a (l) ) T, (2.11) b (l)j(w, b; x, y) = δ (l+1). (2.12) U slučaju propagiranja greške ka slojevima udruživanja i konvolucije, treba voditi dodatnog računa. Kod propagiranja ka sloju udruživanja, greška u l + 1-om sloju se uniformno
13 Osnovni koncepti dubokih neuronskih mreža 12 rasporedi po svim udruženim činiocima u l-tom sloju. Kod konvolucije, radi se slična stvar, samo što se greška težinski raspored uje na osnovu vrednosti u matrici kernela. Primetimo da je i propagiranje greške unazad matrična operacija te je i nju moguće izuzetno brzo izvesti na grafičkom procesoru. Zaključujemo da je ceo trening neuronske mreže veoma pogodan za masovno paralelno izračunavanje, pa će to i biti način na koji će se trening vršiti. Za kraj ovog poglavlja valja napomenuti sledeće. Iako ideja konvolucije ima najprirodniju primenu u obradi slika, ona je našla primenu i u obradi teksta. Par uspešnih pokušaja mogu se naći u [1] i [14]. Najveći problem u primeni konvolucionih mreža u obradi teksta je taj što nije najjasnije kako iskoristiti lokalni uticaj reči i što je broj kanala umesto 3 (RGB) reda veličine nekoliko desetina hiljada (kardinalnost rečnika). Odgovor na ove probleme još uvek nije definitivno nad en, te konvolucione mreže jos uvek nisu napravile pravi proboj u inteligentnoj obradi teksta. 2.3 Dodatne ideje dubokog učenja U ovom kratkom poglavlju opisaćemo dve ideje dubokog učenja koje će biti od suštinskog značaja kada budemo kreirali duboku neuronsku mrežu koja će rešavajući problem klasifikacije modela jezika vršiti reprezentaciju reči u latentnom vektorskom prostoru. Ove dve ideje zapravo su dve vrste slojeva koje su otkrivene veoma skoro, u 21. veku. To su: Sloj izbacivanja (eng. dropout layer) Sloj ugrad ivanja (eng. embedding layer) Sloj izbacivanja Duboke neuronske mreže sa velikim brojem parametara su veoma moćan alat mašinskog učenja. Med utim, zbog ogromnog broja parametara, pretreniravanje (eng. overfitting) je ozbiljan problem u ovakvim mrežama. Pošto su duboke mreže relativno spore, kako za treniranje, tako i u testiranju, nisu pogodne ni za statističko usrednjavanje naučenih modela (eng. ensemble averaging), koje je poznata tehnika za adresiranje pretreniravanja. Izbacivanje (eng. dropout) je tehnika koja na adekvatan i prirodan način adresira ovaj problem. Naime, ideja je da se neuroni nasumično izbacuju iz neuronske mreže u toku treniranja. Ovo sprečava koadaptaciju neurona i poboljšava generalizaciju. U toku treniranja se zapravo dešava uzorkovanje (eng. sampling) podmreža iz eksponencijalnog (po broju neurona) broja podmreža. U toku testiranja, vrši se usrednjavanje svih ovih mreža na jednostavan način - jednostavno se kao izlaz računa izlaz cele, neuzorkovane mreže. Ovakva tehnika značajno smanjuje pretreniravanje i daje bolje rezultate od većine drugih metoda regularizacije. U [16] su prikazana poboljšanja u nekoliko najčešćih primena dubokih mreža, med u kojima su zadaci računarskog vida (eng. computer vision), prepoznavanja govora (eng. speech recognition), klasifikacije dokumenata itd. Rezultati predstavljeni u [16] su u velikom broju zadataka state-of-the-art. Na slici 2.7 grafički je prikazano izbacivanje. Najčešće se vrednost parametra izbacivanja (verovatnoća da svaki neuron ostane u mreži) uzima iz intervala [0.2, 0.8].
14 Osnovni koncepti dubokih neuronskih mreža 13 Slika 2.7: Model izbacivanja u neuronskoj mreži. Levo je standardna neuronska mreža sa dva skrivena sloja. Desno je primer uzorkovane mreže dobijene nakon primene izbacivanja neurona na levu mrežu. Razlika u propagiranju signala unapred u mreži sa izbacivanjem neurona u odnosu sa standardnu neuronsku mrežu se postiže uzorkovanjem vektora iz Bernulijeve raspodele r (l) j = B(1, p), (2.13) gde p predstavlja verovatnoću da svaki neuron ostane u mreži za naredni trening podatak (u slučaju stohastičkog gradijentnog spusta) ili grupu trening podataka (u slučaju gradijentnog spusta sa malim grupama (eng. mini-batch gradient descent)). Dalje se signal propagira unapred na sledeći način, slično kao u mreži bez izbacivanja neurona: ˆ y (l) = y (l) r (l), (2.14) z (l+1) i = W (l+1) i y ˆ (l) + b (l+1) i, (2.15) y (l+1) i gde predstavlja operaciju poelementnog množenja vektora. = f(z (l+1) i ), (2.16) Sloj ugrad ivanja u latentni vektorski prostor Slojevi neuronske mreže mogu se interpretirati na sledeći nacin - svaki sloj nakon ulaznog, a pre izlaznog, zapravo predstavlja preslikavanje u novi prostor karakteristika koje neuronska mreža sama nauči u procesu optimizacije, kako bi što efikasnije rešila problem klasifikacije logističkom regresijom u zadnjem, tzv. softmax sloju. U zavisnosti od ulaza, tj. domena, ova osobina može se iskoristiti kako bi se upored ivale reprezentacije ulaznih podataka koje neuronska mreža generiše. Što je reprezentacija u skrivenom sloju sličnija, pretpostavka je da je sličniji i ulaz, jer ih mreža kodira na sličan način. Ovu ideju koristi tzv. sloj ugrad ivanja (eng. embedding) neuronske mreže. Sloj ugrad ivanja može se shvatiti na više načina. Razmotrimo primer reči govornog jezika. Recimo da svaka reč ima svoj vektor dužine d kao svoju reprezentaciju. Ukoliko te vektore stavimo na ulaz
15 Osnovni koncepti dubokih neuronskih mreža 14 neuronske mreže i rešavamo npr. problem modela jezika standardnim treniranjem neuronske mreže, rešićemo dati problem samo ako su početne reprezentacije dobre i na dobar način oslikavaju odnose med u rečima. Pošto to ne možemo da garantujemo (ili čak želimo da saznamo), možemo da propagiranje greške unazad produžimo do ulaznog sloja i time dopustimo mreži da sama koriguje ulazne reprezentacije. Drugačije gledano, možemo za ulazni sloj proglasiti 1-hot reprezentaciju reči, pa bi ugrad ivanje reči u latentni prostor bilo kodirano u težinama drugog (prvog skrivenog) sloja. U praksi se sloj ugrad ivanja implementira matricom dimenzija V d, gde je V broj različitih reči u vokabularu, a d dimenzija latentnog prostora u koji se reči ugrad uju. Ta matrica se koristi kao enkoder na taj način što vrednosti na ulaznom sloju indeksiraju odgovarajući red matrice ugrad ivanja. Ovaj proces je opisan u [1]. Sloj ugrad ivanja ima veoma zanimljivu primenu jer možemo saznati med usobne odnose izmed u odred enih entiteta implicitno, rešavajući drugi problem, ili čak skup više problema (u multitask učenju). Ovaj sloj biće okosnica odred ivanja reprezentacija reči u latentnom prostoru u nastavku ovog rada.
16 Glava 3 Procesiranje govornog jezika 3.1 Zadaci procesiranja govornog jezika Kako je procesiranje govornog jezika veoma široka oblast istraživanja, teško je dati precizniji opis od onog koji je dat u uvodu - to su svi algoritmi koji za svoj cilj imaju neki stepen razumevanja govornog jezika, bilo u pisanoj ili zvučnoj formi. Ovako definisana, ova klasa problema obuhvata probleme od najjednostavnijih poput korigovanja grešaka u kucanju pa sve do najzahtevnijih kao što je označavanje semantičkih uloga u rečenici (eng. semantic role labelling ili shallow text parsing). U ovom odeljku pokušaćemo da navedemo najreprezentativnije primere NLP-a. Problemi koje ćemo navesti se takod e nalaze i u radu [1], gde se naveden veoma zanimljiv rezultat neuronske arhitekture koja je u stanju da nauči da rešava više zadataka procesiranja govornog jezika odjednom (eng. multitask learning). Odred ivanje sintaksne uloge reči (eng. Part-Of-Speech (POS) Tagging) ima za zadatak da svakoj reči u rečenici dodeli njenu sintaksnu ulogu, odnosno klasu. Primera radi, u rečenici Mačka sedi na otiraču, zadatak algoritma je da vrati sledeće: Mačka - imenica, sedi - glagol, na - predlog, otiraču - imenica. POS Tagging se smatra jednim od jednostavnijih problema procesiranja govornog jezika, posto većina reči ima samo jednu moguću ulogu u rečenici, te algoritmi koji rade na principu najverovatnije sintaksne uloge mogu da dostignu preciznost od 90% na realnim korpusima [2]. Druge, nešto naprednije metode, kao što su skriveni Markovljevi modeli (eng. Hidden Markov Models - HMM) i algoritmi dinamičkog programiranja mogu da dostignu pristojnih 95% preciznosti ([3], [4]). U primeni su takod e i pristupi koji podrazumevaju mašinsko učenje, kao što su princip k najbližih suseda (eng. k Nearest Neighbors - knn), klasifikator sa maksimalnom marginom (eng. support vector machine - SVM), klasifikatori koji maksimizuju entropiju itd. Svi ovi algoritmi uspevaju da premaše granicu od 95%. Prepoznavanje entiteta (eng. Named Entity Recognition - NER) predstavlja problem prepoznavanja početka i kraja, kao i klasifikaciju atomičnih elemenata u rečenici, kao što su OSOBA, KOMPANIJA, LOKACIJA, STRUČNA SPREMA i sl. Ovo je, u suštini, problem klasifikacije i spada u relativno dobro rešene probleme procesiranja govornog jezika, ali se nikako ne može smatrati definitivno rešenim. Generalno, postoje dva pristupa: ekspertski, na principu gramatičkih pravila, koji je često zametan i podrazumeva veliki broj ručno kodiranih pravilnosti i pristup mašinskim učenjem koji je daleko elegantniji. Tipično, prvi pristup vodi do bolje preciznosti (eng. precision) ali lošijeg odaziva (eng. recall). 15
17 Procesiranje govornog jezika 16 Trenutno najnapredniji algoritmi (eng. state-of-the-art) su na većini često korišćenih korpusa nekoliko procenata lošiji od ljudskog anotatora (97.60% naspram 93.39%, što se može videti u [5]). Odred ivanje semantičke uloge (eng. Semantic Role Labeling - SRL) za cilj ima da svakoj reči u tekstu dodeli semantičko značenje, odnosno ulogu reči u rečenici. Postoje različiti formalizmi kada je u pitanju SRL. Jedan od njih se može naći u tzv. PropBank [6], gde se rečima dodeljuju sledeće uloge: ARG0-5 su reči koje predstavljaju argumente predikatima u rečenici (subjekti i objekti), REL predstavljaju predikate, odnosno reči koje odred uju relacije izmed u argumenata, kao i ARGM koje predstavljaju modifikatore argumenata, kao što su lokacija, vreme i sl. Odred ivanje semantičke uloge smatra se jednim od najkompleksnijih zadataka procesiranja govornog jezika, što ne čudi, s obzirom da ukoliko se uradi savršeno, vodi do gotovo potpunog razumevanja smisla rečenice. Iz tog razloga se SRL koristi kao glavni test (eng. benchmark) u mnogim radovima koji se bave primenom dubokih neuronskih mreza na NLP [1]. Modeli jezika (eng. Language Models) imaju nekoliko definicija. Istorijski se najčešće koristila ona koja podrazumeva odred ivanje koja reč je sledeća, uzimajući u obzir prozor od nekoliko reči (tzv. n-gram). U ovom radu ćemo modelom jezika podrazumevati klasifikacioni problem kome je zadatak da uzimajući kontekst širine k odredi da li taj kontekst ima smisla u govornom jeziku ili ne. Ovakva formulacija problema je veoma pogodna za treniranje neuronske mreže na korpusu skinutom sa globalne mreže (www) bez dodatne anotacije, jer je lako slučajno generisati kontekste koji nemaju smisla u govornom jeziku. Ova ideja se može naći u [7], radu koji za model jezika koristi plitki klasifikator. Valja napomenuti da se ovde ipak radi o nadgledanom učenju, iako nije potrebna dodatna anotacija, pošto je anotaciju zapravo indirektno izvršio autor teksta iz korpusa pišući ga smisleno. Odred ivanje semantički povezanih reči (sinonima) je jedan od ciljeva ovog rada. Generalnije, ovaj zadatak može da podrazumeva algoritam mašinskog učenja koji odred uje sličnosti izmed u svake dve reči, ili da podrazumeva klasterovanje reči. Klasterovanje reči može da bude planarno [8] ili hijerarhijsko [9]. Ovako odred ene sličnosti med u rečima mogu da u velikoj meri poprave performanse drugih algoritama procesiranja govornog jezika, te se vrlo često koriste kao deo preprocesiranja u procesu rešavanja nekog drugog problema. 3.2 Reprezentacija reči Kao što je već u nekoliko navrata pomenuto, jedan od problema u procesiranju govornog jezika su veliki rečnici. Primera radi, korpusi koji sadrže govor ljudi preko telefona imaju rečnike od oko reči, što je prihvatljiv broj. Med utim, u primenama na korpuse sa globalne mreže srećemo se sa čak i za dva reda veličine većim korpusima. Razlog ovome je veliki broj datuma, mejl adresa, skraćenica, izraza specifičnih domena, grešaka u kucanju, itd. Ovakvi korpusi mogu da dostignu i kardinalnost rečnika od oko reči hot vektor reprezentacija Najjednostavniji način predstavljanja reči u metodama mašinskog učenja (eng. feature vector) je vektor sa jednom jedinicom, tzv. 1-hot vektor. 1-hot vektor se gradi na sledeći
18 Procesiranje govornog jezika 17 način: ukoliko je reč mačka na i-tom mestu u vokabularu koji ima V elemenata, 1-hot vektor je vektor dužine V koji na i-toj poziciji ima vrednost 1 a na svim ostalim mestima ima vrednost 0. Jasno je da ukoliko ulaznom sloju neuronske mreže dajemo kontekst širine k, koristeći 1-hot vektorsku reprezentaciju reči u kontekstu, taj ulazni sloj mora imati kv neurona. Ukoliko prvi skriveni sloj neuronske mreže ima h 1 neurona, dobijamo da samo izmed u ulaznog i prvog skrivenog sloja ima kv h 1 konekcija. Razmotrimo tipične vrednosti za k, V i h 1 i analizirajmo kompleksnost dela mreže izmed u ula znog i prvog skrivenog sloja. Jedna od najčešćih širina konteksta u NLP-u je dve reči pre i posle posmatrane reči, te imamo da k = 5. Ukoliko se bavimo realnim korpusom skinutim sa weba, čak i nakon blagog preprocesiranja koje podrazumeva detekciju mejl adresa, datuma i sl, dolazimo do realnih V = Na kraju, u realnim problemima se vrlo često koriste skriveni slojevi od h 1 = 1000 neurona. Dakle, izmed u ulaznog i prvog skrivenog sloja imamo c i 1 = kv h 1 = konekcija. Ovo je ogroman broj, čak i za današnji hardver. Još jedan problem sa 1-hot predstavljanjem reči je taj što u tom slučaju algoritam nema nikakvo znanje o eventualnoj sličnosti izmedju reči. Ovo za posledicu ima to da je ulazni tekst veoma redak (eng. sparse). Drugim rečima, u korpusu se veoma retko ponavljaju odred eni n-grami baš iz razloga što odbacujemo znanje o sinonimiji. Ukoliko bismo uključili to znanje, u velikoj meri bismo poboljšali generalizaciju, jer bi se algoritam češće susretao sa poznatim kontekstima Reprezentacija pomoću klasterovanja Jedan od načina kako se mogu rešiti problemi koje nosi 1-hot reprezentacija reči je jednostavno da V bude mnogo manje. Ovo se može postići time što se slične reči stavljaju u isti klaster, pa se dalje tretiraju kao potpuno ista reč. Tada indeks reči i zapravo postaje indeks klastera i c i gubi se bilo kakva različitost reči unutar klastera. Gubitak individualnosti se može rešiti hijerarhijskim klasterovanjem [9], gledanjem pripadnosti klasteru na različitim dubinama hijerarhije. Problem sa hijerarhijskim klasterovanjem u praksi je taj što su algoritmi formiranja klastera jako kompleksni i vrlo često umeju da zaglave u besmislenom lokalnom minimumu [25]. Algoritmi hijerarhijskog klasterovanja se mogu podeliti u dve klase: odozgo-nadole (eng. top-down) i odozdo-nagore (eng. bottomup). Planarni algoritmi [8] su, pak, jako brzi i generišu klastere veoma izbalansiranih veličina, i u praksi, iz iskustva autora, su se pokazali kao pravi pristup redukcije dimenzionalnosti reprezentacije reči klasterovanjem. Nedostatak hijerarhije mogu nadomestiti sa više instanci planarnog klasterovanja sa eksponencijalno različitim brojem klastera, i čak i tako su brži od svojih hijerarhijskih konkurenata Reprezentacija u latentnom prostoru Treći pristup predstavljanja reči u algoritmima mašinskog učenja je takozvana reprezentacija u latentnom prostoru (eng. word embedding). Ona podrazumeva redukciju dimenzionalnosti 1-hot predstave u vektorski prostor čije koordinate nemaju direktno jasnog smisla čoveku (stoga i naziv latentni vektorski prostor). Dimenzionalnost tog vektorskog prostora zavisi od dalje primene, ali kreće se od nekoliko desetina do nekoliko hiljada. Ključna razlika ove reprezentacije u odnosu na prethodne dve je što je ona gusta (eng. dense), a prethodne dve su retke (eng. sparse). Retke reprezentacije imaju svojih prednosti
19 Procesiranje govornog jezika 18 kada je u pitanju vremenska kompleksnost nekih algoritama, prvenstveno onih u kojima ima operacija sa retkim vektorima i matricama. S obzirom na prirodu i arhitekturu neuronskih mreža, a samim tim i dubokih neuronskih mreža koje su glavni predmet istraživanja ovog rada, ova prednost ne postoji - neuronskim mrežama pogodna je gusta predstava, odnosno gusti vektori osobina reči. Gusti vektori osobina reči u ovom slučaju znače i da skalarni proizvod (mera sličnosti) izmed u dve reči ne uzima binarne vrednosti iz skupa {0, 1}, već uzima vrednosti iz intervala [0, 1], što, kao što je već ranije pomenuto, u velikoj meri eliminiše problem retkog korpusa i koristi pojavu sinonimije ili pak semantički sličnog značenja reči. Postoje različite statističke i metode mašinskog učenja za predstavljanje reči u latentnom prostoru. U narednom poglavlju ćemo se baviti sa tri suštinski različite metode: Latentna semantička analiza (eng. Latent Semantic Analysis - LSA) Slučajno indeksiranje (eng. Random Indexing - RI) Reprezentacija reči pomoću duboke neuronske mreže 3.3 Metode redukcije dimenzionalnosti reprezentacije reči Latentna semantička analiza Matrica reč-dokument (eng. Term-Document Matrix) je jedan od načina predstavljanja rečnika jednog korpusa teksta. Naime, to je matrica u kojoj svaka kolona predstavlja jedan dokument, a svaki red predstavlja jednu reč. Svaka ćelija predstavlja neku meru pojavljivanja reči u dokumentu. Postoji nekoliko takvih mera: Slika 3.1: Prikaz matrice reč-dokument. Kolona predstavlja bag-of-words predstavu dokumenta, a red predstavlja vektor osobina reči.
20 Procesiranje govornog jezika 19 Binarno predstavljanje gde vrednost 1 označava da se reč nalazi makar jednom u dokumentu a vrednost 0 znači da se reč ne pojavljuje u dokumentu. Broj pojavljivanja, gde matrica reč-dokument u svakoj ćeliji čuva broj pojavljivanja odgovarajuće reči u odgovarajućem dokumentu. Tf-idf, ili bilo koja druga težinska mera koja na inteligentniji način broji pojavljivanja reči u dokumentu. Ovakvi pristupi smanjuju dominantnost čestih reči (eng. stopwords), kao što su i, ili, da itd. Treba napomenuti da pojam dokumenta koji je korišćen u prethodnim pasusima ne mora da predstavlja dokument u bukvalnom smislu. Dokument može biti rečenica, kontekst, pasus, ili kako god je to pogodno za konkretnu primenu. Gorepomenuta matrica je najčešće jako velika, naročito ukoliko se radi sa velikim rečnicima i velikim korpusima. Ovu matricu je moguće dekomponovati na proizvod tri matrice. Time se bavi latentna semantička analiza. Naime, latentna semantička analiza (LSA) je tehnika u procesiranju govornog jezika, konkretno u odred ivanju semantičke sličnosti, koja analizira odnose izmed u reči i dokumenata u kojima se one nalaze. Glavna pretpostavka ove tehnike je da se slične reči nalaze u sličnim dokumentima. Latentna semantička analiza generiše set koncepata (svaki koncept je jedna dimenzija u latentnom prostoru u kome se reprezentuju reči) koji je izveden iz pomenutih relacija. LSA koristi matematičku tehniku matrične dekompozicije, konkretno dekompoziciju singularne vrednosti (eng. Singular Value Decomposition - SVD) kako bi ogromnu matricu reč-dokument dekomponovala na tri matrice i time generisala latentni prostor za reprezentaciju reči. Pomenute tri matrice su daleko manje od inicijalne - dve su jako uske i dugačke, a jedna je veoma mala kvadratna matrica. Neka je X matrica reč-dokument. Tada je možemo predstaviti kao: X = UΣV T. (3.1) Slika 3.2: Prikaz dekompozicije matrice reč-dokument. matrica Σ je kvadratna malih dimenzija. Matrice U i V su duge i uske a Ukoliko je broj reči V a broj dokumenata D, tada su dimenzije matrica sledeće: U V d, Σ d d i V d D. Vrednosti σ 1,..., σ d na dijagonali matrice Σ zovemo singularne vrednosti a vektore u 1,..., u d i v 1,..., v d zovemo levi i desni singularni vektori. Možemo primetiti da, ako je t i i-ti red u matrici X i predstavlja vektor reči i, jedini deo matrice U koji doprinosti tom vektoru je zapravo takod e i-ti red matrice U. Nazovimo ovaj red ˆt i. Analogno, jedina kolona u matrici V koja doprinosi vektoru dokumenta d j je zapravo j-ta kolona te matrice. Nazovimo ovu kolonu ˆd j.
21 Procesiranje govornog jezika 20 Kod dekompozicije jediničnih vrednosti važi jedno veoma zanimljivo pravilo - ukoliko izaberemo k najvećih jediničnih vrednosti (bez gubitka opštosti neka su to σ 1,..., σ k ), dobijamo aproksimaciju matrice X k-tog reda sa najmanjom greškom po Frobeniusovoj normi. Ono što je još zanimljivije je da vektor ˆt i mapira reč i u vektorski prostor koncepata dimenzionalnosti k. Isto to važi i za kolonu ˆd j i dokument j. Možemo da dobijemo i aproksimaciju k-tog reda cele matrice X, na sledeći način X k = U k Σ k V T k (3.2) Nakon ove dekompozicije, sličnost med u rečima se dobija kao njihov skalarni proizvod u novom prostoru koncepata: similarity(x i, x j ) = x i, x j = ˆt i ˆt j. (3.3) Ovako dobijene sličnosti veoma dobro odred uju semantički povezane reči. Med utim, ova metoda ima dva velika nedostatka. Prvo, sama dekompozicija je jako računarski zahtevna, pošto je njena kompleksnost kubna po dimenzijama ulazne matrice. Drugo, podjednako važno, je to što je ovo algoritam koji radi isključivo sa celim korpusom (eng. batch) i nije u mogućnosti da inkrementalno popravlja naučene semantičke sličnosti med u rečima. Zbog toga se ovaj, inače jako dobar algoritam sa stanovišta konačnog rezultata, najčešće ne primenjuje u praksi. Naredne dve klase algoritama su daleko praktičnije i često se koriste u realnim primenama Slučajno indeksiranje Slučajno indeksiranje (eng. Random Indexing - RI) nastalo je kao alternativa metodama latentne semantičke analize. Ova tehnika adresira najveći problem latentne semantičke analize - batch procesiranje. RI je inkrementalna tehnika predstavljena u radovima [10] i [13]. Osnovna ideja je kreiranje i održavanje vektora konteksta baziranih na pojavljivanju reči u kontekstima. Ova tehnika može se koristiti sa bilo kojom vrstom konteksta (okolina reči, rečenica, pasus ili dokument) i po svojoj prirodi je inkrementalna, što je u dobu dramatičnog rasta količine podataka velika prednost u odnosu na druge metode. Algoritam slučajnog indeksiranja može se podeliti u dve faze: Korak 1: Svakoj reči se dodeljuje jedinstvena, slučajno generisana (iz uniformne raspodele) vektorska reprezentacija koju zovemo indeksni vektor (eng. index vector). Ovi vektori su visokodimenzioni (dimenzije u stotinama ili hiljadama), u kojima je većina elemenata jednaka nuli, a jako mali broj elemenata uzima vrednosti +1 i 1. Korak 2: Kreiraju se kontekstni vektori idući kroz tekst, tako što svaki put kada se reč pojavi u kontekstu, kontekstnom vektoru date reči dodaju se indeksni vektori reči iz konteksta. Valja napomenuti da je tehnika slučajnog indeksiranja bazirana na pretpostavci da je reč odred ena kontekstima u kojima se pojavljuje. To povećava značajnost odluke o širini konteksta. Takod e, time što su indeksni vektori veoma retki, postiže se skoro-ortogonalnost med u indeksnim vektorima. Motivacija za ovu odluku leži u primedbi iz [11], gde je pokazano da u visokodimenzionim prostorima ima mnogo više skoro-ortogonalnih nego ortogonalnih pravaca. To znači da možemo aproksimirati ortogonalnost biranjem slučajnih pravaca u
22 Procesiranje govornog jezika 21 visokodimenzionom prostoru. Slična ideja koristi se u tehnikama Slučajnog Projektovanja (eng. Random Projection) i Slučajnog Mapiranja (eng. Random Mapping). Ove metode su potkrepljene istom idejom - Džonson-Lindenštrausovom lemom [12], koja tvrdi da ako projektujemo tačke vektorskog prostora na slučajno odabran potprostor dovoljno velike dimenzionalnosti, rastojanja izmed u tačaka se skoro očuvavaju. Glavne prednosti slučajnog indeksiranja su njegova inkrementalnost kao i mogućnost korišćenja bilo kakvog konteksta - bila to okolina reči, rečenica, pasus ili ceo dokument Reprezentacija reči pomoću dubokih neuronskih mreža Ugrad ivanje reči u latentni vektorski prostor (u daljem tekstu ugrad ivanje) pomoću dubokih neuronskih mreža je trenutno jedan od najaktuelnijih problema u procesiranju govornog jezika. Ova ideja je stara oko deceniju, i predstavljena je u [17]. Ugrad ivanje W : Ω R n je funkcija koja preslikava skup reči nekog govornog jezika u visokodimenzioni vektorski prostor. Visokodimenzioni u praktičnim primenama može značiti bilo šta od nekoliko desetina do nekoliko hiljada, u zavisnosti od kompleksnosti jezika i veličine ulaznog vokabulara, kao i dalje primene ugrad enih reči. Najčešće je ova funkcija realizovana matricom u kojoj je svaki red zapravo vektor reprezentacije reči: W Θ (w n ) = Θ n. Jako je važno inicijalizovati W na slučajne vrednosti (najbolje iz uniformne raspodele). Mreža se trenira tako da rešava sledeći problem klasifikacije: da li je data sekvenca (kontekst, n-gram) širine 2k + 1 validna u datom jeziku ili ne. Vrlo lako može se dobiti ogroman, naizgled neanotiran korpus sa web-a (recimo sa wikipedia-e). Zatim se sve sekvence iz tog korpusa proglase validnim. Pogrešni konteksti mogu se dobiti na veoma jednostavan način, menjajuci reč u sredini konteksta nasumično biranom rečju iz vokabulara jezika. Ovako se najverovatnije dobija besmislena sekvenca koja se može koristiti kao negativan primer modela jezika. Navešćemo jedan primer: R(W ( pas ), W ( sedi ), W ( na ), W ( limenom ), W ( krovu )) = 1, (3.4) R(W ( pas ), W ( sedi ), W ( ugrad ivanje ), W ( limenom ), W ( krovu )) = 0. (3.5) Prva sekvenca se koristi kao pozitivan primer modela jezika, a druga kao negativan. Funkcija R : R 2k+1 {0, 1} modeluje izlaz neuronske mreže utrenirane za pomenuti model jezika. Kako bi ovaj zadatak dobro rešavala, neuronska mreža mora da usput nauči i dobre reprezentacije reči korigujući W. Zapravo, najveći deo znacajnosti ovakve mreže je u usputnom zadatku učenja reprezentacija reči, pošto primarni zadatak nije naročito interesantan (može eventualno da posluži kao korekcija gramatike ili detekcija prevare/robota).
23 Glava 4 Implementacija i rezultati 4.1 Arhitektura mreže U ovom poglavlju ćemo opisati arhitekturu duboke neuronske mreže koja je korišćena u ovom radu za rešavanje problema modela jezika i ugrad ivanje reči. Postoje različiti pristupi rešavanju ovog problema. Mogu se koristiti višeslojni perceptroni, konvolucione mreže, rekurentne mreže itd. U ovom radu biće obrad ena arhitektura višeslojnog perceptrona (MLP) sa slojem ugrad ivanja izmed u ulaznog sloja i prvog skrivenog sloja, kao i slojevima izbacivanja nakon svakog skrivenog sloja. Konkretno, koristićemo arhitekturu sa dva skrivena sloja. Dakle, idući redom, mreža ce sadržati: 1. Ulazni sloj. Ovaj sloj ima 2k + 1 neurona, a vrednost svakog je zapravo indeks reči u rečniku. k je širina konteksta pre i posle centralne reči. U eksperimentima u sledećem potpoglavlju uzimaćemo k = Sloj ugrad ivanja, koji predstavlja ništa drugo do matricu ugradnje koju indeksiraju vrednosti iz ulaznog sloja. Pri svakom trening primeru, čitaju se odgovarajući redovi iz ove matrice, propagira signal unapred, izračuna i propagira greška unazad i koriguju se vrednosti u odgovarajućem redu matrice. Red matrice je transponovani vektor kojim je predstavljena reč u vektorskom prostoru. 3. Prvi skriveni sloj, sa nekoliko stotina skrivenih neurona. O uticaju broja neurona na uspešnost klasifikacije biće reči kasnije u ovom poglavlju. 4. Prvi sloj izbacivanja, koji zapravo predstavlja vektor slučajnih promenljivih uzorkovanih iz Bernulijeve raspodele sa verovatnoćom p, koja je parametar mreže. U eksperimentima ćemo koristiti p = Drugi skriveni sloj. Isti po arhitekturi kao prvi skriveni sloj, ali u opštem slučaju sa različitim brojem neurona. 6. Drugi sloj izbacivanja. Potpuno isti kao prvi sloj izbacivanja. 7. Izlazni softmax sloj. Ovaj sloj ima dva neurona čije vrednosti u sumi daju 1, a predstavljaju verovatnoću da je ulazna sekvenca deo modela jezika ili nije deo modela jezika. 22
24 Implementacija i rezultati 23 Slika 4.1: Arhitektura neuronske mreže korišćene u ovom radu, gde su slojevi 3-6 predstavljeni jednim skrivenim slojem. 4.2 Korpusi Testiranje gorepomenute arhitekture biće vršeno na dvama korpusima. Korpus 1: Korpus na engleskom jeziku, netehničke prirode. Sadrži oko 11 miliona reči teksta, od toga oko 140 hiljada jedinstvenih. Korpus je očišćen od znakova interpunkcije i dekapitalizovan. Izbačene su reči koje se pojavljuju manje od 100 puta. Nakon ove obrade, ostaje vokabular sa oko 9 hiljada reči. Korpus 2: Korpus na holandskom jeziku, tehničke prirode, sačinjen od ponuda za posao i biografija. Sadrži oko 33 miliona reči teksta, od toga oko 700 hiljada jedinstvenih. Korpus je očišćen na isti način kao i Korpus 1, i izbačene su reči koje se pojavljuju manje od 100 puta. Nakon ovoga, ostao je vokabular od oko 33 hiljada reči. 4.3 Pregled alata dubokog učenja CUDA je u trenutku pisanja ovog rada srž svakog softvera dubokog učenja. CUDA je paralelna platforma za izračunavanja i API razvijena od strane najvećeg svetskog proizvod ača grafičkih kartica, NVIDIA-e. Ova platforma omogućava inženjerima softvera i istrazivačima da koriste grafičke procesore koji podržavaju CUDA-u (u suštini svi grafički procesori proizvedeni od strane NVIDIA-e nakon godine) za procesiranja opšte namene. CUDA je sloj softvera koji daje direktan pristup virtuelnim instrukcijama grafičkog procesora. CUDA platforma je dizajnirana tako da radi sa programskim jezicima C, C++ i Fortran, što je vrlo zgodno, s obzirom da je za korišćenje prethodnih API rešenja kao što su Direct3D i OpenGL bilo potrebno napredno znanje grafičkog programiranja. CUDA podržava programske okvire (eng. framework) kao što su OpenACC i OpenCL. CUDA je zapravo podrška svim najčešće korišćenim softverskim rešenjima kao što su Caffe, Torch i Theano, koji će biti opisani u nastavku ovog potpoglavlja.
25 Implementacija i rezultati 24 Caffe [19] je razvijen u Centru za kompjuterski vid i mašinsko učenje na Berkliju. Predstavlja brzu i lako čitljivu implementaciju konvolucionih mreža u C++ programskom jeziku. Ovo softversko rešenje može da procesira preko 60 miliona slika dnevno na jednom jedinom NVIDIA K40 procesoru. Može se koristiti samo za procesiranje slika, i tu je jako dobar, ali je neprimenljiv za ostale zadatke kao što su procesiranje teksta ili govora. Torch je alat koji je napisan u programskom jeziku Lua, a koristi se na Njujorškom univerzitetu, u Fejsbukovoj laboratoriji za veštačku inteligenciju i u Guglovoj kompaniji DeepMind. Torch pruža okruženje slično MATLAB-ovom. Theano [20] [21] je razvijen na Univerzitetu u Montrealu. Predstavlja Python biblioteku, a može se posmatrati i kao kompajler matematičkih izraza. Veoma je dobar za razvoj algoritama mašinskog učenja ispočetka, za razliku od alata Caffe i Torch. Zbog svoje univerzalnosti i zbog toga što je ovo softver nižeg nivoa (eng. lower level), pomoću Theano-a kreirano je više Python biblioteka koje su bazirane na njemu, ali pružaju specifičnije namene i čitljiviji kod, kao i lakše prototipovanje specifičnih algoritama mašinskog učenja. Dva jako dobra primera ovakvih alata su Lasagne i Keras [18], oba specijalizovana za rad sa dubokim neuronskim mrežama. Za sve eksperimente u ovom radu, korišcena je biblioteka Keras Python biblioteka Keras Keras je minimalistička, visoko modularna Python biblioteka za neuronske mreže. Keras ispod haube koristi Theano za visoko optimizovane operacije sa tenzorima na grafičkom i centralnom procesoru. Razvijen je sa fokusom na brzom prototipovanju i eksperimentisanju. Keras ima četiri osnovna principa: Modularnost: primera radi, slojevi neuronske mreže, optimizacione kriterijumske funkcije, algoritmi optimizacije, šeme inicijalizacije, aktivacione funkcije, šeme regularizacije, itd. su sve primeri modula u Kerasu i mogu se kombinovati uz minimalna ograničenja. Minimalizam: Svaki modul je kratak i lako čitljiv. Laka proširivost: Novi moduli se dodaju veoma lako. Primera radi, sloj ugrad ivanja korišćen u ovom radu je dodat svega mesec dana pre početka pisanja rada i već je veoma korišćen. Sve je u Python kodu: Nema konfiguracionih fajlova u deklarativnom formatu, kao u Caffe-u ili PyLearn-u. Modeli su opisani u Python kodu koji je kompaktan, lak za debagiranje i proširivanje. 4.4 Rezultati U ovom poglavlju analiziraćemo uspešnost rešavanja problema modela jezika, brzinu treniranja i rešavanje problema pretreniravanja, kao i, najbitnije, kvalitet ugrad ivanja reči engleskog (Korpus 1) i holandskog (Korpus 2) jezika u latentni vektorski prostor. Primarni problem je sličan predikciji sledeće reci na osnovu n-grama. Radi se o problemu klasifikacije i tu ćemo analizirati parametre kao što su preciznost na trening skupu i u validaciji. Pokazaćemo kako različite veličine mreže i dimenzionalnosti ugrad ivanja utiču na kvalitet klasifikacije.
26 Implementacija i rezultati 25 Usputni, ali značajniji, problem ugrad ivanja reči u latentni vektorski prostor je primer problema izdvajanja karakteristika (eng. feature extraction). Uspešnost ovog zadatka ćemo proveriti na dva načina - prikazujući najsličnije reči za nekoliko primera reči, kao u [1], kao i crtajući reči u 2D ravni koristeći t-sne algoritam [23]. Ovo je algoritam redukcije dimenzionalnosti koji će nam pomoći da vizuelno ocenimo kvalitet grupisanja semantički sličnih reči Brzina konvergencije U ovom delu analize rezultata daćemo kratak pregled brzine konvergencije i konačne uspešnosti klasifikacije zadatka modela jezika na korpusima 1 i 2. Rezultati su prikazani na graficima 4.2 i 4.3. Na x osi nalaze se redni brojevi epoha treniranja, dok vrednost na y osi predstavlja tačnost klasifikacije. Tačnost klasifikacije je udeo korektno klasifikovanih konteksta u delu podataka korišćenom za testiranje modela. Slika 4.2: Brzina konvergencije neuronske mreže sa dva skrivena i dva sloja izbacivanja na Korpusu 1. Vidimo da se konvergencija postiže nakon vrlo malog broja epoha, a i vremenski veoma brzo, s obzirom da se izračunavanja vrše na grafičkom procesoru. U narednim potpoglavljima analiziraćemo uticaj veličine mreže i slojeva izbacivanja na brzinu i kvalitet konvergencije Optimalna veličina mreže Jedno od pitanja koje nema definitivan odgovor kada god se radi sa neuronskim mrežama je veličina mreže. Drugim rečima, pitanje je koliko skrivenih neurona staviti kako bi se izbalansiralo izmed u dobrih performansi na trening delu podataka i dovoljno dobre generalizacije. Suština ove dileme leži u balansiranju izmed u pretreniravanja (eng. overfit) i podtreniravanja (eng. underfit). Ova dilema je poznata kao bias-variance dilema. Naime, ukoliko skrivenim slojevima dodelimo previše neurona (u opštem slučaju ako imamo previše kompleksan model), tada će model veoma dobro naučiti podatke koje je video u skupu za treniranje, ali će varijansa biti prevelika. Drugim rečima, model će šum
27 Implementacija i rezultati 26 Slika 4.3: Brzina konvergencije neuronske mreže sa dva skrivena i dva sloja izbacivanja na Korpusu 2. smatrati signalom. S druge strane, previše jednostavan model (u našem slučaju premalo neurona u skrivenim slojevima) nije u stanju da nauči sve zakonitosti koje vladaju u skupu koji mu je dodeljen. Kako bismo rešili taj problem za Korpuse 1 i 2, probaćemo nekoliko različitih veličina mreža i naći onu optimalnu. Verujemo da je optimalna veličina mreže u odred enoj meri invarijantna za korpuse istih ili sličnih jezika, slične tematike i veličine rečnika, tako da verujemo da će zaključci ovog potpoglavlja pomoći čitaocu u narednim eksperimentima. Tabela 4.1 daje rezultate za nekoliko veličina skrivenih slojeva na korpusima 1 i 2. Arhitektura mreže Tačnost [Korpus 1] Tačnost [Korpus 2] % 95.33% % 95.57% % 95.80% % 95.97% % 96.05% Tabela 4.1: Uspešnost klasifikacije sa mrežama različitih veličina. Ova tabela nam pokazuje zasićenje kod mreže sa 1000 neurona u skrivenim slojevima. Svako povećavanje veličine skrivenih slojeva iznad tih okvira značajno povećava vreme treniranja mreže, a ne dovodi do boljeg kvaliteta klasifikacije, te ovaj broj možemo smatrati preporučenim Uticaj sloja izbacivanja Osnovna svrha sloja izbacivanja je sprečavanje pojave pretreniravanja. Kako bismo proverili ovu tvrdnju, uporedićemo rezultate iz epohe u epohu u mrežama sa i bez slojeva izbacivanja. Rezultati su prikazani na grafiku 4.4.
28 Implementacija i rezultati 27 Slika 4.4: Uticaj sloja izbacivanja na brzinu i kvalitet konvergencije i neutralisanje pretreniravanja. Sa ovog grafika se jasno vidi uticaj sloja izbacivanja. On utiče upravo onako kako se i pretpostavlja. Naime, konvergencija je sporija i kvalitetnija, a generalizacija je bolja zahvaljujući tome što se u treniranju izbegava to da jedan neuron bude sam odgovoran za neke primere, s obzirom na to da pristustvo neurona nije garantovano. U našem konkretnom slučaju, maksimalna tačnost klasifikacije je u velikoj meri ista sa i bez sloja izbacivanja, ali se u slučaju bez sloja izbacivanja mora koristiti neka druga tehnika odred ivanja kada da se treniranje zaustavi. U suprotnom, vrlo lako može doći do pretreniravanja i do gubitka tačnosti u testu. Treba napomenuti da postoje i mnoge situacije u kojima mreža sa slojevima izbacivanja postiže značajno bolje rezultate u testu. Intellectual France Dissapeared Emphasize John Ideological Italy Traveled Assure Paul Artistic Europe Arose Interpret James Cultural Japan Emerged Illustrate Robert Constitutional Spain Originated Appreciate David Spiritual India Existed Pursue George Criminal Germany Survived Dismiss Richard Emotional Rome Positioned Reject Michael Monetary Canada Depicted Deny Peter Journalistic Britain Acted Acknowledge William Diplomatic Cuba Devised Solve Charles Tabela 4.2: Nekoliko primera, na osnovu sloja ugrad ivanja odred enih, semantički najsličnijih reči Ugrad ivanje reči za različite dimenzionalnosti Najvažniji problem ovog master rada je ugrad ivanje reči u latentni visokodimenzioni vektorski prostor. U ovom potpoglavlju prikazaćemo nekoliko primera semantički sličnih reči,
29 Implementacija i rezultati 28 kao u [1], kao i 2D predstavu reči nakon primene t-sne algoritma redukcije dimenzionalnosti koja moze biti veoma dobar način vizuelne ocene kvaliteta predstave. Prikazaćemo samo reči iz engleskog korpusa - Korpusa 1. U tabeli 4.2 nalaze se primeri reči sa rečima koje je neuronska mreža označila kao semantički najsličnije. Vidimo da je kvalitet ugrad ivanja veoma dobar i da su navedene reči zaista veoma semantički slične. Korišćenjem t-sne algoritma redukcije dimenzionalnosti [23], možemo dobiti veoma lepu 2D predstavu celog engleskog jezika izgrad enu na osnovu korpusa korišćenog za treniranje neuronske mreže. Ovakva predstava predstavlja veoma dobar način kvalitativne evaluacije semantičkih sličnosti med u rečima - slične reči moraju biti veoma blizu jedne drugima u pomenutom 2D prikazu. Na grafiku 4.7 možemo videti najčešće reči u engleskom jeziku, i gde se one nalaze. Na graficima 4.5 i 4.6 ispod, uvećani su, u svrhe demonstracije kvaliteta ugrad ivanja, odred eni delovi 2D prostora u kojem su reči predstavljene. Slika 4.5: Uvećani delovi 2D prostora popunjenog rečima. Levo možemo videti priloge grupisane jedne blizu drugih, dok su desno uglavnom glagoli u prošlom vremenu. Slika 4.6: Uvećani delovi 2D prostora popunjenog rečima. Levo su biološki elementi, a desno članovi rodbine i neka zanimanja.
Microsoft Word - III godina - EA - Metodi vjestacke inteligencije
Школска година 2018/2019. Предмет Методи вјештачке интелигенције Шифра предмета 2284 Студијски програм Електроенергетика и аутоматика Циклус студија Година студија Семестар Број студената Број група за
ВишеCelobrojno programiranje Rešavamo sledeći poblem celobrojnog programiranja: min c T x Ax = b x 0 x Z n Gde pretpostavljamo da je A celobrojna matrica
Celobrojno programiranje Rešavamo sledeći poblem celobrojnog programiranja: min c T x Ax = b x 0 x Z n Gde pretpostavljamo da je A celobrojna matrica dimenzije m n, b Z m, c Z n. Takođe, očekuje se da
ВишеPowerPoint Presentation
Колоквијум # задатак подељен на 4 питања: теоријска практична пишу се програми, коначно решење се записује на папиру, кодови се архивирају преко сајта Инжењерски оптимизациони алгоритми /3 Проблем: NLP:
Више6-8. ČAS Celobrojno programiranje Rešavamo sledeći poblem celobrojnog programiranja: Gde pretpostavljamo da je A celobrojna matrica dimenzije,. Takođe
6-8. ČAS Celobrojno programiranje Rešavamo sledeći poblem celobrojnog programiranja: Gde pretpostavljamo da je A celobrojna matrica dimenzije,. Takođe, očekuje se da su koordinate celobrojne. U slučaju
ВишеKlasifikacija slika kucnih brojeva dubokim konvolucijskim modelima
Klasifikacija slika kućnih brojeva dubokim konvolucijskim modelima Ivan Šego 4. srpnja 2018. Sadržaj 1 Uvod 2 Konvolucijske neuronske mreže Konvolucijski sloj Sloj sažimanja Potpuno povezani sloj 3 Ispitni
ВишеОрт колоквијум
II колоквијум из Основа рачунарске технике I - 27/28 (.6.28.) Р е ш е њ е Задатак На улазе x, x 2, x 3, x 4 комбинационе мреже, са излазом z, долази четворобитни BCD број. Ако број са улаза при дељењу
ВишеОрт колоквијум
Испит из Основа рачунарске технике - / (6.6.. Р е ш е њ е Задатак Комбинациона мрежа има пет улаза, по два за број освојених сетова тенисера и један сигнал који одлучује ко је бољи уколико је резултат
ВишеПА-4 Машинско учење-алгоритми машинског учења
ПА-4 Машинско учење-алгоритми машинског учења Машинско учење увод и основни појмови Деф: the desgn and development of algorthms that allow computers to mprove ther performance over tme based on data sensor
ВишеInženjering informacionih sistema
Fakultet tehničkih nauka, Novi Sad Inženjering informacionih sistema Dr Ivan Luković Dr Slavica Kordić Nikola Obrenović Milanka Bjelica Dr Jelena Borocki Dr Milan Delić UML UML (Unified Modeling Language)
ВишеТехничко решење: Софтвер за симулацију стохастичког ортогоналног мерила сигнала, његовог интеграла и диференцијала Руководилац пројекта: Владимир Вуји
Техничко решење: Софтвер за симулацију стохастичког ортогоналног мерила сигнала, његовог интеграла и диференцијала Руководилац пројекта: Владимир Вујичић Одговорно лице: Владимир Вујичић Аутори: Велибор
ВишеP11.3 Analiza zivotnog veka, Graf smetnji
Поједностављени поглед на задњи део компајлера Међурепрезентација (Међујезик IR) Избор инструкција Додела ресурса Распоређивање инструкција Инструкције циљне архитектуре 1 Поједностављени поглед на задњи
ВишеРачунарска интелигенција
Рачунарска интелигенција Генетско програмирање Александар Картељ kartelj@matf.bg.ac.rs Ови слајдови представљају прилагођење слајдова: A.E. Eiben, J.E. Smith, Introduction to Evolutionary computing: Genetic
ВишеMicrosoft PowerPoint - Topic02 - Serbian.ppt
Tema 2 Kriterijumi kvaliteta za softverske proizvode DAAD Project Joint Course on Software Engineering Humboldt University Berlin, University of Novi Sad, University of Plovdiv, University of Skopje, University
ВишеMicrosoft PowerPoint - Topic02 - Serbian.ppt
Tema 2 Kriterijumi kvaliteta za softverske proizvode DAAD Project Joint Course on Software Engineering Humboldt University Berlin, University of Novi Sad, University of Plovdiv, University of Skopje, University
ВишеУвод у организацију и архитектуру рачунара 1
Увод у организацију и архитектуру рачунара 2 Александар Картељ kartelj@matf.bg.ac.rs Напомена: садржај ових слајдова је преузет од проф. Саше Малкова Увод у организацију и архитектуру рачунара 2 1 Секвенцијалне
ВишеР273 Пројектовање база података Примери питања за колоквијум 1. Навести најважније моделе података кроз историју рачунарства до данас. 2. Објаснити ос
Р273 Пројектовање база података Примери питања за колоквијум 1. Навести најважније моделе података кроз историју рачунарства до данас. 2. Објаснити основне концепте мрежног модела 3. Објаснити основне
ВишеPaper Title (use style: paper title)
Статистичка анализа коришћења електричне енергије која за последицу има примену повољнијег тарифног става Аутор: Марко Пантовић Факултет техничких наука, Чачак ИАС Техника и информатика, 08/09 e-mal адреса:
ВишеSlide 1
Катедра за управљање системима ТЕОРИЈА СИСТЕМА Предавањe 2: Основни појмови - систем, модел система, улаз и излаз UNIVERSITY OF BELGRADE FACULTY OF ORGANIZATIONAL SCIENCES План предавања 2018/2019. 1.
ВишеLAB PRAKTIKUM OR1 _ETR_
UNIVERZITET CRNE GORE ELEKTROTEHNIČKI FAKULTET STUDIJSKI PROGRAM: ELEKTRONIKA, TELEKOMUNIKACIJE I RAČUNARI PREDMET: OSNOVE RAČUNARSTVA 1 FOND ČASOVA: 2+1+1 LABORATORIJSKA VJEŽBA BROJ 1 NAZIV: REALIZACIJA
ВишеАНКЕТА О ИЗБОРУ СТУДИЈСКИХ ГРУПА И МОДУЛА СТУДИЈСКИ ПРОГРАМИ МАСТЕР АКАДЕМСКИХ СТУДИЈА (МАС): А) РАЧУНАРСТВО И АУТОМАТИКА (РиА) и Б) СОФТВЕРСКО ИНЖЕЊЕ
АНКЕТА О ИЗБОРУ СТУДИЈСКИХ ГРУПА И МОДУЛА СТУДИЈСКИ ПРОГРАМИ МАСТЕР АКАДЕМСКИХ СТУДИЈА (МАС): А) РАЧУНАРСТВО И АУТОМАТИКА (РиА) и Б) СОФТВЕРСКО ИНЖЕЊЕРСТВО И ИНФОРМАЦИОНЕ ТЕХНОЛОГИЈЕ (СИИТ) У циљу бољег
ВишеУНИВЕРЗИТЕТ У БЕОГРАДУ МАШИНСКИ ФАКУЛТЕТ Предмет: КОМПЈУТЕРСКА СИМУЛАЦИЈА И ВЕШТАЧКА ИНТЕЛИГЕНЦИЈА Задатак број: Лист/листова: 1/1 Задатак 5.1 Pостоје
Лист/листова: 1/1 Задатак 5.1 Pостоје софтвери за препознавање бар кодова који знатно олакшавају велики број операција које захтевају препознавање објеката. Слика 1: Приказ свих слова за које је ART-1
ВишеРАСПОРЕД ИСПИТА У ИСПИТНОМ РОКУ ЈАНУАР 1 ШКОЛСКЕ 2016/2017. ГОДИНЕ (последња измена ) Прва година: ПРВА ГОДИНА - сви сем информатике Име пр
РАСПОРЕД ИСПИТА У ИСПИТНОМ РОКУ ЈАНУАР 1 ШКОЛСКЕ 2016/2017. ГОДИНЕ (последња измена 23.01.2017.) Прва година: ПРВА ГОДИНА - сви сем информатике Име предмета Датум и термин одржавања писменог дела испита
ВишеPowerPoint Presentation
УВОД Дa би рaчунaри нa мрежи могли међусобно да кoмуницирaју и рaзмeњују пoдaткe, пoтрeбнo je: дa сe увeду ПРOТOКOЛИ (утврђeна прaвилa и процедуре за комуникацију) да постоје АДРEСE кoje су jeдинствeнe
ВишеPowerPoint Presentation
Факултет организационих наука Центар за пословно одлучивање Системи за препоруку П8: Системи за препоруку Закључивање на основу случајева Системи за препоруку 2 Закључивање на основу случајева ПРОНАЂЕНО
Више1
Podsetnik: Statističke relacije Matematičko očekivanje (srednja vrednost): E X x p x p x p - Diskretna sl promenljiva 1 1 k k xf ( x) dx E X - Kontinualna sl promenljiva Varijansa: Var X X E X E X 1 N
ВишеТехничко решење: Метода мерења ефективне вредности сложенопериодичног сигнала Руководилац пројекта: Владимир Вујичић Одговорно лице: Владимир Вујичић
Техничко решење: Метода мерења ефективне вредности сложенопериодичног сигнала Руководилац пројекта: Владимир Вујичић Одговорно лице: Владимир Вујичић Аутори: Драган Пејић, Бојан Вујичић, Небојша Пјевалица,
ВишеMicrosoft Word - 15ms261
Zadatak 6 (Mirko, elektrotehnička škola) Rješenje 6 Odredite sup S, inf S, ma S i min S u skupu R ako je S = { R } a b = a a b + b a b, c < 0 a c b c. ( ), : 5. Skratiti razlomak znači brojnik i nazivnik
ВишеMicrosoft PowerPoint - Programski_Jezik_C_Organizacija_Izvornog_Programa_I_Greske [Compatibility Mode]
Programski jezik C organizacija izvornog programa Prevođenje Pisanje programa izvorni program Prevođenje programa izvršni program Izvršavanje programa rezultat Faze prevođenja Pretprocesiranje Kompilacija
Више1 Konusni preseci (drugim rečima: kružnica, elipsa, hiperbola i parabola) Definicija 0.1 Algebarska kriva drugog reda u ravni jeste skup tačaka opisan
1 Konusni preseci (drugim rečima: kružnica, elipsa, hiperbola i parabola) Definicija 0.1 Algebarska kriva drugog reda u ravni jeste skup tačaka opisan jednačinom oblika: a 11 x 2 + 2a 12 xy + a 22 y 2
ВишеClassroom Expectations
АТ-8: Терминирање производно-технолошких ентитета Проф. др Зоран Миљковић Садржај Пројектовање флексибилних ; Математички модел за оптимизацију флексибилних ; Генетички алгоритми у оптимизацији флексибилних
ВишеI колоквијум из Основа рачунарске технике I СИ- 2017/2018 ( ) Р е ш е њ е Задатак 1 Тачка А Потребно је прво пронаћи вредности функција f(x
I колоквијум из Основа рачунарске технике I СИ- / (...) Р е ш е њ е Задатак Тачка А Потребно је прво пронаћи вредности функција f(x, x, x ) и g(x, x, x ) на свим векторима. f(x, x, x ) = x x + x x + x
ВишеMicrosoft PowerPoint - 03-Slozenost [Compatibility Mode]
Сложеност алгоритама (Програмирање 2, глава 3, глава 4-4.3) Проблем: класа задатака истог типа Велики број различитих (коректних) алгоритама Величина (димензија) проблема нпр. количина података које треба
ВишеGrafovi 1. Posmatrajmo graf prikazan na slici sa desne strane. a) Odrediti skup čvorova V i skup grana E posmatranog grafa. Za svaku granu posebno odr
Grafovi 1. Posmatrajmo graf prikazan na slici sa desne strane. a) Odrediti skup čvorova V i skup grana E posmatranog grafa. Za svaku granu posebno odrediti njene krajeve. b) Odrediti sledeće skupove: -
ВишеDR DRAGOŚ CVETKOVIC DR SLOBODAN SIMIC DISKRETNA MATEMATIKA MATEMATIKA ZA KOMPJUTERSKE NAUKĘ DRUGO ISPRAYLJENO I PROSIRENO IZDANJE HMUJ
DR DRAGOŚ CVETKOVIC DR SLOBODAN SIMIC DISKRETNA MATEMATIKA MATEMATIKA ZA KOMPJUTERSKE NAUKĘ DRUGO ISPRAYLJENO I PROSIRENO IZDANJE HMUJ Sadrżaj Predgovor Iz predgovora prvoni izdanju knjige "Diskretne mateiuatićke
ВишеModel podataka
Fakultet organizacionih nauka Uvod u informacione sisteme Doc. Dr Ognjen Pantelić Modeliranje podataka definisanje strategije snimanje postojećeg stanja projektovanje aplikativno modeliranje implementacija
ВишеMere slicnosti
Nenad Mitić Matematički fakultet nenad@matf.bg.ac.rs Kako odrediti sličnost/različitost, obrazaca, atributa, dogadjaja... Podaci različitog tipa i strukture Zavisnost od tipa, raspodele, dimenzionalnosti
ВишеSlide 1
OSNOVNI POJMOVI Naredba je uputa računalu za obavljanje određene radnje. Program je niz naredbi razumljivih računalu koje rješavaju neki problem. Pisanje programa zovemo programiranje. Programski jezik
ВишеPowerPoint Presentation
Data mining kocepti i tehnike Udžbenik: Data Mining: Concepts and Techniques, Jiawei Han, Micheline Kamber Introduction to Data Mining, Pang-Ning Tan, Michael Steinbach, Vipin Kumar Ocjenjivanje: kolokvijumi
ВишеMicrosoft Word - CAD sistemi
U opštem slučaju, se mogu podeliti na 2D i 3D. 2D Prvo pojavljivanje 2D CAD sistema se dogodilo pre više od 30 godina. Do tada su inženjeri koristili table za crtanje (kulman), a zajednički jezik komuniciranja
ВишеMicrosoft Word - AIDA2kolokvijumRsmerResenja.doc
Konstrukcija i analiza algoritama 2 (prvi kolokvijum, smer R) 1. a) Konstruisati AVL stablo od brojeva 100, 132, 134, 170, 180, 112, 188, 184, 181, 165 (2 poena) b) Konkatenacija je operacija nad dva skupa
ВишеТЕОРИЈА УЗОРАКА 2
ТЕОРИЈА УЗОРАКА 2 12. 04. 13. ВЕЖБАЊА Написати функције за бирање елемената популације обима N у узорак обима n, код простог случајног узорка, користећи алгоритме: Draw by draw procedure for SRS/SRSWOR
ВишеЗадатак 4: Центрифугална пумпа познате карактеристике при n = 2900 min -1 ради на инсталацији приказаној на слици и потискује воду из резервоара А у р
Задатак 4: Центрифугална пумпа познате карактеристике при n = 900 min -1 ради на инсталацији приказаној на слици и потискује воду из резервоара А у резервоар B. Непосредно на излазу из пумпе постављен
Више1 Polinomi jedne promenljive Neka je K polje. Izraz P (x) = a 0 + a 1 x + + a n x n = n a k x k, x K, naziva se algebarski polinom po x nad poljem K.
1 Polinomi jedne promenljive Neka je K polje. Izraz P (x) = a 0 + a 1 x + + a n x n = n a k x k, x K, naziva se algebarski polinom po x nad poljem K. Elementi a k K su koeficijenti polinoma P (x). Ako
ВишеPOSLOVNI INFORMACIONI SISTEMI I RA^UNARSKE
ZNAČAJ RAČUNARSKIH KOMUNIKACIJA U BANKARSKOM POSLOVANJU RAČUNARSKE MREŽE Računarske mreže su nastale kombinacijom računara i telekomunikacija dve tehnologije sa veoma različitom tradicijom i istorijom.
ВишеMicrosoft Word - 6ms001
Zadatak 001 (Anela, ekonomska škola) Riješi sustav jednadžbi: 5 z = 0 + + z = 14 4 + + z = 16 Rješenje 001 Sustav rješavamo Gaussovom metodom eliminacije (isključivanja). Gaussova metoda provodi se pomoću
Више06 Poverljivost simetricnih algoritama1
ЗАШТИТА ПОДАТАКА Симетрични алгоритми заштите поверљивост симетричних алгоритама Преглед биће објашњено: коришћење симетричних алгоритама заштите како би се заштитила поверљивост потреба за добрим системом
ВишеQFD METODA – PRIMER
QFD METODA - PRIMER PROBLEM: U kompaniji X koja se bavi izradom kompjuterskih softvera uočen je pad prodaje konkretnog softvera - Softver za vođenje knjigovodstva. Kompanija X je raspolagala sa jednom
ВишеPowerPoint Presentation
Prof. dr Pere Tumbas Prof. dr Predrag Matkovid Identifikacija i izbor projekata Održavanje sistema Inicijalizacija projekata i planiranje Implementacija sistema Dizajn sistema Analiza sistema Faze životnog
ВишеTeorija skupova - blog.sake.ba
Uvod Matematika je jedan od najomraženijih predmeta kod većine učenika S pravom, dakako! Zapitajmo se šta je uzrok tome? Da li je matematika zaista toliko teška, komplikovana? Odgovor je jednostavan, naravno
ВишеAKVIZICIJA PODATAKA SA UREĐAJEM NI USB-6008 NI USB-6008 je jednostavni višenamjenski uređaj koji se koristi za akviziciju podataka (preko USBa), kao i
AKVIZICIJA PODATAKA SA UREĐAJEM NI USB-6008 NI USB-6008 je jednostavni višenamjenski uređaj koji se koristi za akviziciju podataka (preko USBa), kao i za generisanje željenih izlaznih signala (slika 1).
ВишеПрограмирај!
Листе Поред појединачних вредности исказаних бројем или ниском карактера, често је потребно забележити већи скуп вредности које су на неки начин повезане, као, на пример, имена у списку путника у неком
ВишеMicrosoft Word - KVADRATNA FUNKCIJA.doc
KVADRATNA FUNKCIJA Kvadratna funkcija je oblika: = a + b+ c Gde je R, a i a, b i c su realni brojevi. Kriva u ravni koja predstavlja grafik funkcije = a + b+ c je parabola. Najpre ćemo naučiti kako izgleda
ВишеФАКУЛТЕТ ОРГАНИЗАЦИОНИХ НАУКА
Питања за усмени део испита из Математике 3 I. ДИФЕРЕНЦИЈАЛНЕ ЈЕДНАЧИНЕ 1. Појам диференцијалне једначине. Пикарова теорема. - Написати општи и нормални облик диференцијалне једначине првог реда. - Дефинисати:
ВишеVerovatnoća - kolokvijum 17. decembar Profesor daje dva tipa ispita,,,težak ispit i,,lak ispit. Verovatnoća da student dobije težak ispit je
Verovatnoća - kolokvijum 17. decembar 2016. 1. Profesor daje dva tipa ispita,,,težak ispit i,,lak ispit. Verovatnoća da student dobije težak ispit je 0.8. Ako je ispit težak, verovatnoća da se prvo pitanje
ВишеI година Назив предмета I термин Вријеме Сала Математика :00 све Основи електротехнике :00 све Програмирање
I година Математика 1 2225 03.10.2019. 15:00 све Основи електротехнике 1 2226 30.09.2019. 15:00 све Програмирање 1 2227 04.10.2019. 15:00 све Основи рачунарске технике 2228 01.10.2019. 15:00 све Социологија
ВишеOsnovi programiranja Beleške sa vežbi Smer Računarstvo i informatika Matematički fakultet, Beograd Jelena Tomašević i Sana Stojanović November 7, 2005
Osnovi programiranja Beleške sa vežbi Smer Računarstvo i informatika Matematički fakultet, Beograd Jelena Tomašević i Sana Stojanović November 7, 2005 2 Sadržaj 1 5 1.1 Specifikacija sintakse programskih
ВишеMatrice. Algebarske operacije s matricama. - Predavanje I
Matrice.. Predavanje I Ines Radošević inesr@math.uniri.hr Odjel za matematiku Sveučilišta u Rijeci Matrice... Matrice... Podsjeti se... skup, element skupa,..., matematička logika skupovi brojeva N,...,
ВишеMicrosoft PowerPoint - 10 PEK EMT Logicka simulacija 1 od 2 (2012).ppt [Compatibility Mode]
ij Cilj: Dobiti što više informacija o ponašanju digitalnih kola za što kraće vreme. Metod: - Detaljni talasni oblik signala prikazati samo na nivou logičkih stanja. - Simulirati ponašanje kola samo u
ВишеThe Contemporary Systems Development Project Landscape
Budući projektni ciklusi u Evropi Horizon Europe, nakon Horizon 2020 Program za period 2021-2027 Oko 100 milijardi ulaganja u istraživanja i inovativne programe Glavne osobine: Jačanje nauke i tehnologije
ВишеP2.1 Formalne gramatike
Превођење Полазни језик? Одредишни језик 1 Превођење Полазни језик? Одредишни језик Како знање неког језика стиче и складишти човек, а како рачунар? 2 Два аспекта језика Синтакса Семантика значење То су
ВишеMicrosoft Word - tumacenje rezultata za sajt - Lektorisan tekst1
ПРИЛОГ ЗА ТУМАЧЕЊЕ РЕЗУЛТАТА ИСТРАЖИВАЊА TIMSS 2015 У међународном испитивању постигнућа TIMSS 2015 по други пут је у нашој земљи испитивано постигнуће ученика четвртог разреда у области математике и природних
ВишеMV Merchandise visibility sistem
MV Merchandise visibility sistem Pomoć maloprodajnim lancima u smanjenju troškova usled nedostatka robe u prodajnom prostoru, smanjenju troškova i vremena za popis robe i povećanje prodaje Maloprodaje
ВишеMicrosoft PowerPoint - OOPpredavanja05 [Compatibility Mode]
OBJEKTNO ORIJENTISANO PROGRAMIRANJE PREDAVANJE 5 OBJEKTI U INTERAKCIJI Miloš Kovačević Đorđe Nedeljković 1 /25 OSNOVNI KONCEPTI - Abstrakcija - Modularizacija - Objektne reference - Klasni dijagram - Objektni
ВишеУНИВЕРЗИТЕТ У НОВОМ САДУ ОБРАЗАЦ 6
УНИВЕРЗИТЕТ У НОВОМ САДУ ОБРАЗАЦ 6. ФАКУЛТЕТ ТЕХНИЧКИХ НАУКА ИЗВЕШТАЈ О ОЦЕНИ ДОКТОРСКЕ ДИСЕРТАЦИЈЕ Мр БОШКА БОЖИЛОВИЋА I ПОДАЦИ О КОМИСИЈИ 1. Датум и орган који је именовао комисију Решење Декана Факултета
ВишеУниверзитет у Београду Факултет организационих наука Коначан распоред испита за предмете Мастер академских студија Испитни рок: ОКТОБАР Предмет
Универзитет у Београду Факултет организационих наука Коначан распоред испита за предмете Мастер академских студија Испитни рок: ОКТОБАР 2016. Предмет Датум Време Сала Напомена Big data у електронском пословању
ВишеVeeeeeliki brojevi
Matematička gimnazija Nedelja informatike 3 12. decembar 2016. Uvod Postoji 10 tipova ljudi na svetu, oni koji razumeju binarni sistem, oni koji ne razumeju binarni sistem i oni koji nisu očekivali šalu
ВишеI година Назив предмета I термин Вријеме II термин Вријеме Сала Математика : :00 све Основи електротехнике
I година Математика 1 2225 20.06.2019. 9:00 04.07.2019. 9:00 све Основи електротехнике 1 2226 17.06.2019. 9:00 01.07.2019. 13:00 све Програмирање 1 2227 21.06.2019. 9:00 05.07.2019. 9:00 све Основи рачунарске
ВишеI година Назив предмета I термин Вријеме II термин Вријеме Сала Математика : :00 све Основи електротехнике
I година Математика 1 2225 05.09.2019. 9:00 19.09.2019. 9:00 све Основи електротехнике 1 2226 02.09.2019. 9:00 16.09.2019. 9:00 све Програмирање 1 2227 06.09.2019. 9:00 20.09.2019. 9:00 све Основи рачунарске
ВишеI година Назив предмета I термин Вријеме II термин Вријеме Сала Математика : :00 све Основи електротехнике
I година Математика 1 2225 07.02.2019. 9:00 21.02.2019. 9:00 све Основи електротехнике 1 2226 04.02.2019. 9:00 18.02.2019. 9:00 све Програмирање 1 2227 08.02.2019. 9:00 22.02.2019. 9:00 све Основи рачунарске
ВишеOblikovanje i analiza algoritama 4. predavanje Saša Singer web.math.pmf.unizg.hr/~singer PMF Matematički odsjek, Zagreb OAA 2017, 4. pr
Oblikovanje i analiza algoritama 4. predavanje Saša Singer singer@math.hr web.math.pmf.unizg.hr/~singer PMF Matematički odsjek, Zagreb OAA 2017, 4. predavanje p. 1/69 Sadržaj predavanja Složenost u praksi
ВишеСТРАХИЊА РАДИЋ КЛАСИФИКАЦИJА ИЗОМЕТРИJА И СЛИЧНОСТИ Према књизи [1], свака изометриjа σ се може представити ком позици - jом неке транслациjе за векто
СТРАХИЊА РАДИЋ КЛАСИФИКАЦИJА ИЗОМЕТРИJА И СЛИЧНОСТИ Према књизи [1], свака изометриjа σ се може представити ком позици - jом неке транслациjе за вектор a (коjи може бити и дужине нула) и неке изометриjе
ВишеОрт колоквијум
I колоквијум из Основа рачунарске технике I - надокнада СИ - 008/009 (10.05.009.) Р е ш е њ е Задатак 1 a) Пошто постоје вектори на којима се функција f не јавља и вектори на којима има вредност један,
ВишеТехничко решење: Метода мерења реактивне снаге у сложенопериодичном режиму Руководилац пројекта: Владимир Вујичић Одговорно лице: Владимир Вујичић Аут
Техничко решење: Метода мерења реактивне снаге у сложенопериодичном режиму Руководилац пројекта: Владимир Вујичић Одговорно лице: Владимир Вујичић Аутори: Иван Жупунски, Небојша Пјевалица, Марјан Урекар,
Више1, 2, 3, кодирај! Активности циклуса 4 Пројект «Аркадне игре» - Час 6: Програмирање падања новчића (наставак) Доминантна дисциплина Математикa Резиме
1, 2, 3, кодирај! Активности циклуса 4 Пројект «Аркадне игре» - Час 6: Програмирање падања новчића (наставак) Доминантна дисциплина Математикa Резиме Програмирање добијања награда омогућује ученицима да
ВишеMicrosoft Word - Lekcija 11.doc
Лекција : Креирање графова Mathcad олакшава креирање x-y графика. Треба само кликнути на нови фајл, откуцати израз који зависи од једне варијабле, например, sin(x), а онда кликнути на дугме X-Y Plot на
ВишеMatematka 1 Zadaci za vežbe Oktobar Uvod 1.1. Izračunati vrednost izraza (bez upotrebe pomoćnih sredstava): ( ) [ a) : b) 3 3
Matematka Zadaci za vežbe Oktobar 5 Uvod.. Izračunati vrednost izraza bez upotrebe pomoćnih sredstava): ) [ a) 98.8.6 : b) : 7 5.5 : 8 : ) : :.. Uprostiti izraze: a) b) ) a b a+b + 6b a 9b + y+z c) a +b
ВишеШкола Ј. Ј. Змај Свилајнац МЕСЕЧНИ ПЛАН РАДА ЗА СЕПТЕМБАР Школска 2018 /2019. Назив предмета: Информатика и рачунарство Разред: 5. Недељни број часова
Школа Ј. Ј. Змај Свилајнац МЕСЕЧНИ ПЛАН РАДА ЗА СЕПТЕМБАР јединице 1. 1. Увод у информатику и рачунарство 1. 2. Oрганизација података на рачунару 1. 3. Рад са текстуалним документима 1. 4. Форматирање
ВишеУниверзитет у Београду Факултет организационих наука Распоред испита за предмете мастер академских студија Испитни рок: Јун Предмет Датум Време
Универзитет у Београду Факултет организационих наука Распоред испита за предмете мастер академских студија Испитни рок: Јун 2018. Предмет Датум Време Сала Напомена Big data у електронском пословању 4.
ВишеMicrosoft Word - Master 2013
ИСПИТНИ РОК: ЈУН 2018/2019 МАСТЕР АКАДЕМСКЕ СТУДИЈЕ (АКРЕДИТАЦИЈА 2013) Студијски програм: ЕЛЕКТРОЕНЕРГЕТИКА Семестар 17.06.2019 Статички електрицитет у технолошким процесима Електронска кола за управљање
ВишеОрт колоквијум
Задатак 1 I колоквијум из Основа рачунарске технике I - надокнада - 008/009 (16.05.009.) Р е ш е њ е a) Пошто постоје вектори на којима се функција f не јавља и вектори на којима има вредност један, лако
ВишеSatnica.xlsx
САТНИЦА ПОЛАГАЊА ИСПИТА У ИСПИТНОМ РОКУ СЕПТЕМБАР 2018/2019 ПОНЕДЕЉАК 19.08.2019 Објектно оријентисано програмирање 41 2Б-ТЕЛ Методе преноса у телекомуникационим системима 1 2Б-ТЕЛ Моделовање и симулација
ВишеPowerPoint Presentation
Metode i tehnike utvrđivanja korišćenja proizvodnih kapaciteta Metode i tehnike utvrđivanja korišćenja proizvodnih kapaciteta Sa stanovišta pristupa problemu korišćenja kapaciteta, razlikuju se metode
ВишеASAS AS ASAS
РАСПОРЕД НАСТАВЕ за предмете мастер академских студија 2016/17. година Предмет Модул Датум Време Сала Администрација базе података 8-10. фебруар 2017. 13-17. фебруар 2017. Алати и методе софтверског инжењерства
ВишеТРОУГАО БРЗИНА и математичка неисправност Лоренцове трансформације у специјалној теорији релативности Александар Вукеља www.
ТРОУГАО БРЗИНА и математичка неисправност Лоренцове трансформације у специјалној теорији релативности Александар Вукеља aleksandar@masstheory.org www.masstheory.org Август 2007 О ауторским правима: Дело
ВишеMicrosoft Word - SIORT1_2019_K1_resenje.docx
I колоквијум из Основа рачунарске технике I СИ- 208/209 (24.03.209.) Р е ш е њ е Задатак f(x, x 2, x 3 ) = (x + x x ) x (x x 2 + x ) + x x 2 x 3 f(x, x 2, x 3 ) = (x + x x ) (x x + (x )) 2 + x + x x 2
ВишеRA
ELEKTRONSKI SISTEMI PLAĆАNJA NА INTERNЕTU ELEKTRONSKI SISTEMI PLAĆАNJA NА INTERNЕTU U zavisnosti od novčanog iznosa koji je predmet plaćanja, ona se generalno mogu podeliti u dve kategorije: makroplаćаnjа
ВишеSKRIPTE EKOF 2019/20 skripteekof.com Lekcija 1: Brojevni izrazi Lekcija 1: Brojevni izrazi Pregled lekcije U okviru ove lekcije imaćete priliku da nau
Lekcija : Brojevni izrazi Pregled lekcije U okviru ove lekcije imaćete priliku da naučite sledeće: osnovni pojmovi o razlomcima proširivanje, skraćivanje, upoređivanje; zapis razlomka u okviru mešovitog
ВишеPostojanost boja
Korištenje distribucije osvjetljenja za ostvaranje brzih i točnih metode za postojanost boja Nikola Banić 26. rujna 2014. Sadržaj Postojanost boja Ubrzavanje lokalnog podešavanja boja Distribucija najčešćih
ВишеPowerPoint Presentation
Nedjelja 6 - Lekcija Projiciranje Postupci projiciranja Projiciranje je postupak prikazivanja oblika nekog, u opštem slučaju trodimenzionalnog, predmeta dvodimenzionalnim crtežom. Postupci projiciranja
ВишеMicrosoft Word - NULE FUNKCIJE I ZNAK FUNKCIJE.doc
NULE FUNKCIJE I ZNAK FUNKCIJE NULE FUNKCIJE su mesta gde grafik seče osu a dobijaju se kao rešenja jednačine y= 0 ( to jest f ( ) = 0 ) Mnogi profesori vole da se u okviru ove tačke nadje i presek sa y
ВишеUniverzitet u Novom Sadu Tehnički fakultet Mihajlo Pupin Zrenjanin Seminarski rad Predmet: Konkuretno programiranje doc. dr Dejan Lacmanovic Zorica Br
Univerzitet u Novom Sadu Tehnički fakultet Mihajlo Pupin Zrenjanin Seminarski rad Predmet: Konkuretno programiranje doc. dr Dejan Lacmanovic Zorica Brkić SI 29/15 Zrenjanin 2018. Softversko inženjerstvo
ВишеMicrosoft Word - Master 2013
ИСПИТНИ РОК: СЕПТЕМБАР 2018/2019 МАСТЕР АКАДЕМСКЕ СТУДИЈЕ (АКРЕДИТАЦИЈА 2013) Студијски програм: ЕЛЕКТРОЕНЕРГЕТИКА Семестар 19.08.2019 Електромагнетна компатибилност у електроенергетици Управљање дистрибутивном
ВишеKombinatorno testiranje
Kombinatorno testiranje Uvod Na ponašanje aplikacije utiče puno faktora, npr. ulazne vrednosti, konfiguracije okruženja. Tehnike kao što je podela na klase ekvivalencije ili analiza graničnih vrednosti
ВишеSatnica.xlsx
ПОНЕДЕЉАК 10.06.19 2Б Алгоритми и програмирање - КОЛОКВИЈУМ 64 А3 2Б Алгоритми и програмирање - КОЛОКВИЈУМ 46 Ч1 2Б Алгоритми и програмирање - КОЛОКВИЈУМ 70 Ч2 2Б Алгоритми и програмирање - КОЛОКВИЈУМ
ВишеSatnica.xlsx
ПОНЕДЕЉАК 17.06.2019 2Б-УПС Електрична кола 24 Б-УПС Електрична кола 1 УПС Теорија кола 2 2Б-ЕЕН Електрична кола у електроенергетици 8 Б-ЕЕН Електрична кола 1 ЕЕН Теорија електричних кола 1 А1 2Б-ЕЛК Дигитална
ВишеTEORIJA SIGNALA I INFORMACIJA
Multiple Input/Multiple Output sistemi MIMO sistemi Ulazi (pobude) Izlazi (odzivi) u 1 u 2 y 1 y 2 u k y r Obrada=Matematički model Načini realizacije: fizički sistemi (hardware) i algoritmi (software)
ВишеPRIRODNO-MATEMATIČKI FAKULTET U NIŠU DEPARTMAN ZA MATEMATIKU I INFORMATIKU ZADACI SA REŠENJIMA SA PRIJEMNOG ISPITA IZ MATEMATIKE, JUN Odrediti
PRIRODNO-MATEMATIČKI FAKULTET U NIŠU DEPARTMAN ZA MATEMATIKU I INFORMATIKU ZADACI SA REŠENJIMA SA PRIJEMNOG ISPITA IZ MATEMATIKE, JUN 0. Odrediti moduo kompleksnog broja Rešenje: Uočimo da važi z = + i00
ВишеУНИВЕРЗИТЕТ У НИШУ ПРИРОДНО-МАТЕМАТИЧКИ ФАКУЛТЕТ Департман за рачунарске науке Писмени део испита из предмета Увод у рачунарство 1. [7 пое
УНИВЕРЗИТЕТ У НИШУ ПРИРОДНО-МАТЕМАТИЧКИ ФАКУЛТЕТ Департман за рачунарске науке 30.06.2018. Писмени део испита из предмета Увод у рачунарство 1. [7 поена] Методом МакКласкија минимизарити систем прекидачких
Више2015_k2_z12.dvi
OBLIKOVANJE I ANALIZA ALGORITAMA 2. kolokvij 27. 1. 2016. Skice rješenja prva dva zadatka 1. (20) Zadano je n poslova. Svaki posao je zadan kao vremenski interval realnih brojeva, P i = [p i,k i ],zai
Више