Veze, linkovi
Kompjuter biblioteka
Korpa

Preporučujemo

Recepti za čist kod

Recepti za čist kod

Popust cena: 2100 rsd

C# 2008 od početnika do profesionalca

C# 2008 od početnika do profesionalca

Popust cena: 1760 rsd

Šta obuhvata knjiga 40 algoritama koje bi svaki programer trebalo da zna

 Za koga je ova knjiga

Ova knjiga je za ozbiljne programere! Bez obzira da li ste iskusan programer, koji želi bolje da razume matematiku iza algoritama, ili imate ograničeno znanje na polju programiranja, ili nauke o podacima, a želite da naučite više o načinu na koji možete da iskorisite ove testirane algoritme, da biste poboljšali način na koji dizajnirate i pišete kod, ova knjiga će vam biti korisna. Iskustvo u Python programiranju je obavezno, a poznavanje nauke o podacima je korisno, ali nije neophodno.

Šta obuhvata ova knjiga?

Poglavlje 1, Pregled algoritama – u ovom poglavlju rezimiraćemo osnove algoritama. Poglavlje započinjemo odeljkom o osnovnim konceptima koji su potrebni da biste razumeli kako funkcionišu različiti algoritmi. Rezimiraćemo kako su ljudi počeli da koriste algoritme da bi matematički formulisali određene klase i probleme. Takođe ćemo pomenuti ograničenja različitih algoritama. U sledećem odeljku ćemo objasniti različite načine specifikovanja logike algoritma. Pošto je u ovoj knjizi upotrebljen Python za pisanje algoritama, objašnjeno je i kako da podesite okruženje da biste pokrenuli primere. Zatim su opisani različitih načini na koje možete da kvantifikujete i uporedite performansu algoritma sa drugim algoritmima. Na kraju ovog poglavlja govorićemo o različitim načinima na koje određena implementacija algoritma može da bude potvrđena.

Poglavlje 2, Strukture podataka upotrebljene u algoritmima – u ovom poglavlju ćemo se fokusirati na potrebu algoritama za strukturama podataka u memoriji, koje mogu da skladište privremene podatke. Algoritmi mogu da budu veoma intenzivni u pogledu podataka ili izračunavanja, ili oba. Ali za sve različite tipove algoritama, biranje odgovarajuće strukture podataka je važno za njihovu optimalnu implementaciju. Mnogi algoritmi imaju rekurzivnu i iterativnu logiku i zahtevaju specijalizovane strukture podataka, koje su u osnovi iterativne po prirodi. Pošto u ovoj knjizi koristimo Python, u ovom poglavlju ćemo se fokusirati na Python strukture podataka, koje mogu da se upotrebe za implementiranje algoritama koji su opisani u ovoj knjizi.

Poglavlje 3, Algoritmi sortiranja i pretraživanja – u ovom poglavlju predstavićemo osnovne algoritme koji se koriste za sortiranje i pretraživanje. Ovi algoritmi mogu, kasnije, da postanu osnova za mnogo složenije algoritme. Poglavlje ćemo započeti predstavljanjem različitih tipova algoritama za sortiranje. Takođe ćemo uporediti peformanse različitih pristupa. Zatim ćemo predstaviti različite algoritme za pretragu. Uporedićemo ih i kvantifikovanti njihovu performansu i kompleksnost. Na kraju ovog poglavlja predstavićemo primenu ovih algoritama.

Poglavlje 4, Dizajniranje algoritama – u ovom poglavlju ćemo predstaviti osnovne koncepte dizajna različitih algoritama. Takođe ćemo opisati različite tipove algoritama i govoriti o njihovim vrlinama i slabostima. Razumevanje ovih koncepata je važno kada je reč o dizajniranju optimalnih kompleksnih algoritama. Poglavlje ćemo započeti opisom različitih tipova dizajna algoritma. Zatim ćemo predstaviti rešenje za poznati problem trgovačkog putnika. Zatim ćemo govoriti o linearnom programiranju i njegovim ograničenjima. Na kraju ćemo predstaviti praktični primer koji pokazuje kako linearno programiranje može da se upotrebi za planiranje kapaciteta.

Poglavlje 5, Grafovski algoritmi – u ovom poglavlju ćemo se fokurisati na algoritme za probleme grafa koji su uobičajeni u računarskoj nauci. Postoje mnogi problemi izračunavanja, koji mogu najbolje da se predstave u terminima grafova. U ovom poglavlju ćemo predstaviti metode za predstavljanje grafa i za pretraživanje grafa. Pretraživanje grafa podrazumeva sistematsko praćenje ivica grafa, da biste odredili vrh grafa. Algoritmi za pretraživanje grafa mogu da otkriju mnogo o strukturi grafa. Mnogi algoritmi započinju pretraživanjem ulaznog grafa za dobijanje informacija o njegovoj strukturi. Nekoliko drugih grafovskih algoritama razrađuju osnovno pretraživanje grafa. Tehnike za pretraživanje grafa nalaze se u srcu polja grafovskih algoritama. U prvom odeljku ćemo opisati dve najčešće računske reprezentacije grafova: lista susedstva i matrice povezanosti. Zatim ćemo predstaviti jednostavan algoritam pretraživanja grafa, pod nazivom breadth-first search i prikazaćemo kako da kreirate breadth-first stablo. U sledećim odeljcima predstavljena je depth-first pretraga i obezbeđeni su neki standardni rezultati o redosledu u kojem depth-first pretraga doseže vrh grafa.

Poglavlje 6, Algoritmi nenadgledanog mašinskog učenja – u ovom poglavlju predstavićemo algoritme nenadgledanog mašinskog učenja. Ovi algoritmi su klasifikovani kao nenadgledani jer model ili algoritam pokušava da nauči svojstvene strukture, obrasce i odnose iz datih podataka, bez ikakvog nadgledanja. Prvo su opisani metodi klasterovanja. To su metodi mašinskog učenja koji pokušavaju da pronađu obrasce sličnosti i odnosa među uzorcima podataka u skupu podataka, a zatim klasteruju ove uzorke u različite grupe, na primer, tako da svaka grupa ili klaster uzoraka podataka ima neke sličnosti, na osnovu svojstvenih karakteristika ili atributa. U sledećim odeljcima opisani su algoritmi redukcije dimenzionalnosti, koji se koriste kada postoji više atributa. Zatim su predstavljeni neki algoritmi koji se bave detekcijom anomalija. Na kraju ovog poglavlja predstavićemo mining pravila asocijacije, koji je metod data mininga koji se koristi za ispitivanje i analizu velikih transakcionih skupova podataka, za identifikovanje obrazaca i pravila. Ovi obrasci predstavljaju interesantne odnose i asocijacije između različitih stavki u transakcijama.

Poglavlje 7, Algoritmi tradicionalnog nadgledanog učenja – u ovom poglavlju opisaćemo algoritme tradicionalnog nadgledanog mašinskog učenja u odnosu na skup problema mašinskog učenja, u kojem postoji označeni skup podataka sa ulaznim atributima i odgovarajuće izlazne oznake ili klase. Ovi ulazi i odgovarajući izlazi se, zatim, koriste za obučavanje generalizovanog sistema, koji može da se upotrebi za predviđanje rezultata za prethodno neviđene tačke podataka. Prvo ćemo predstaviti koncept klasifikacije u kontekstu mašinskog učenja. Zatim ćemo predstaviti najjednostavnije algoritme mašinskog učenja, linearnu regresiju. Nakon toga ćemo govoriti o jednom od najvažnijih algoritama, stablu odlučivanja. Takođe ćemo govoriti o ograničenjima i moći algoritama stabla odlučivanja i opisaćemo dva najvažnija algoritma, SVM and XGBoost.

Poglavlje 8, Algoritmi neuronske mreže – prvo ćemo predstaviti glavne koncepte i komponente tipične neuronske mreže, koja postaje najvažniji tip tehnike mašinskog učenja. Zatim ćemo predstaviti različite tipove neuronskih mreža i takođe ćemo objasniti različite vrste aktivacionih funkcija koje se koriste za realizaciju ovih neuronskih mreža. Zatim je detaljno opisan backpropagation algoritam. Ovo je najčešće upotrebljavan algoritam za konvergenciju problema neuronske mreže. Zatim je objašnjena tehnika transfer učenja, koja može da se upotrebi za znatno pojednostavljivanje i delimičnu automatizaciju obučavanja modela. Na kraju je, kao primer stvarnog sveta, predstavljeno kako da upotrebite duboko učenje za detektovanje objekata u multimedijalnim podacima.

Poglavlje 9, Algoritmi za obradu prirodnog jezika – u ovom poglavlju ćemo predstaviti algoritme za obradu prirodnog jezika (NLP). U ovom poglavlju obuhvaćena je teorija i praksa na progresivan način. Prvo ćemo predstaviti osnove, zatim osnovnu matematiku. Zatim ćemo govoriti o najčešće upotrebljavanim neuronskim mrežama za dizajniranje i implementiranje nekoliko važnih slučajeva upotrebe tekstualnih podataka. Ograničenja NLP-a su takođe opisana. Na kraju, predstavljena je studija slučaja u kojem je model obučen za detektovanje autora rada na osnovu stila pisanja.

Poglavlje 10, Mehanizmi za preporučivanje – u ovom poglavlju ćemo se fokusirati na mehanizme za preporučivanje, koji su način za modelovanje informacija dostupnih u odnosu na preference korisnika, a zatim upotreba ovih informacija, za obezbeđivanje informisanih preporuka na osnovu tih informacija. Osnova mehanizma za preporučivanje je uvek snimljena interakcija između korisnika i proizvoda. Ovo poglavlje ćemo započeti predstavljanjem osnovne ideje iza mehanizma za preporučivanje. Zatim ćemo govoriti o različitim tipovima mehanizma za preporučivanje. Na kraju ovog poglavlja opisaćemo kako se mehanizmi za preporučivanje koriste za predlaganje stavki i proizvoda različitim korisnicima.

Poglavlje 11, Algoritmi podataka – u ovom poglavlju ćemo se fokusirati na probleme vezane za algoritme usmerene ka podacima. Poglavlje ćemo započeti kratkim pregledom problema vezanih za podatke. Zatim ćemo predstaviti kriterijum za klasifikaciju podataka. Zatim ćemo opisati kako da primenite algoritme, da biste olakšali primenu podataka, a zatim ćemo predstaviti temu kriptografije. Na kraju ćemo predstaviti praktičan primer izdvajanja obrazaca iz Twitter podataka.

Poglavlje 12, Kriptografija – u ovom poglavlju ćemo predstaviti algoritme vezane za kriptografiju. Poglavlje ćemo započeti predstavljanjem pozadine. Zatim ćemo govoriti o algoritmima simetrične enkripcije. Objasnićemo MD5 i SHA algoritme heširanja i ograničenja i slabosti povezane sa implementiranjem simetričnih algoritama. Zatim ćemo govoriti o algoritmima asimentrične enkripcije i kako se oni koriste za kreiranje digitalnih sertifikata. Na kraju ćemo predstaviti praktičan primer koji rezimira sve ove tehnike.

Poglavlje 13, Algoritmi velikih razmera – u ovom poglavlju ćemo objasniti kako algoritmi velikih razmera obrađuju podatke koji ne mogu da se uklope u memoriju jednog čvora i uključivanje obrade koja zahteva više CPU-a. Poglavlje ćemo započeti opisom tipova algoritama koji su najprikladniji za paralelno pokretanje. Zatim ćemo govoriti o problemima vezanim za paralelizaciju algoritama. Takođe ćemo predstaviti CUDA arhitekturu i opisati kako jedan GPU ili niz GPU-ova može da se upotrebi za ubrzavanje algoritama i koje se promene moraju izvršiti u algoritmu da bismo efikasno iskoristili moć GPU-a. Na kraju ovog poglavlja ćemo govoriti o klaster računarstvu i opisaćemo kako Apache Spark kreira resilient distributed dataset-ove (RDD) za kreiranje ekstremno brzin paralelnih implementacija standardnih algoritama.

Poglavlje 14, Praktična razmatranja – ovo poglavlje ćemo započeti važnom temom objašnjenja, koja postaje sve važnija sada kada je objašnjena logika iza automatizovanog donošenja odluka. Zatim ćemo predstaviti etiku upotrebe algoritma i mogućnosti kreiranja biasa kada ih implementiramo. Zatim ćemo detaljno opisati tehnike za obradu NP problema. Na kraju ćemo opisati načine implementiranja algoritama i izazove iz stvarnog sveta povezane sa njima.

VIŠE O KNJIZI I KORPA ZA NARUČIVANJE

 

 

         
Twitter Facebook Linkedin Pinterest Email
         

Budite prvi koji će ostaviti komentar.

Ostavite komentar Ostavite komentar

 

 

 

Veze, linkovi
Linkedin Twitter Facebook
 
     
 
© Sva prava pridržana, Kompjuter biblioteka, Beograd, Obalskih radnika 4a, Telefon: +381 11 252 0 272