Translated ['src/AI/AI-Unsupervised-Learning-algorithms.md'] to sr

This commit is contained in:
Translator 2025-06-08 00:43:16 +00:00
parent 9bf8fa54c4
commit 106e92d19e

View File

@ -21,7 +21,7 @@ K-Means je algoritam klasterizacije zasnovan na centroidima koji deli podatke u
#### Odabir K
Broj klastera (K) je hiperparametar koji treba definisati pre pokretanja algoritma. Tehnike poput Elbow metode ili Silhouette skora mogu pomoći u određivanju odgovarajuće vrednosti za K procenom performansi klasterizacije:
- **Elbow metoda**: Prikazivanje sume kvadratnih udaljenosti svake tačke do njenog dodeljenog centroida klastera kao funkcije K. Potražite "laktasti" tačku gde se brzina opadanja naglo menja, što ukazuje na odgovarajući broj klastera.
- **Elbow metoda**: Prikazivanje sume kvadratnih udaljenosti svake tačke do njenog dodeljenog centroida klastera kao funkcije K. Potražite "lakat" tačku gde se brzina opadanja naglo menja, što ukazuje na odgovarajući broj klastera.
- **Silhouette skor**: Izračunajte silhouette skor za različite vrednosti K. Viši silhouette skor ukazuje na bolje definisane klastere.
#### Pretpostavke i ograničenja
@ -67,16 +67,16 @@ Hijerarhijsko klasterovanje gradi hijerarhiju klastera koristeći ili pristup od
1. **Aglomerativno (odozdo prema gore)**: Počnite sa svakom tačkom podataka kao posebnim klasterom i iterativno spajajte najbliže klastere dok ne ostane jedan klaster ili se ne ispuni kriterijum zaustavljanja.
2. **Divizivno (odozgo prema dole)**: Počnite sa svim tačkama podataka u jednom klasteru i iterativno delite klastere dok svaka tačka podataka ne postane svoj vlastiti klaster ili se ne ispuni kriterijum zaustavljanja.
Aglomerativno klasterovanje zahteva definiciju međuklaster udaljenosti i kriterijum povezivanja da bi se odlučilo koji klasteri će se spojiti. Uobičajene metode povezivanja uključuju pojedinačno povezivanje (udaljenost najbližih tačaka između dva klastera), potpuno povezivanje (udaljenost najdaljih tačaka), prosečno povezivanje itd., a metrička udaljenost je često euklidska. Izbor povezivanja utiče na oblik klastera koji se proizvode. Nema potrebe da se unapred definiše broj klastera K; možete "prerezati" dendrogram na odabranom nivou da biste dobili željeni broj klastera.
Aglomerativno klasterovanje zahteva definiciju međuklaster udaljenosti i kriterijum povezivanja da bi se odlučilo koji klasteri će se spojiti. Uobičajene metode povezivanja uključuju pojedinačno povezivanje (udaljenost najbližih tačaka između dva klastera), potpuno povezivanje (udaljenost najdaljih tačaka), prosečno povezivanje itd., a metrička udaljenost je često euklidska. Izbor povezivanja utiče na oblik proizvedenih klastera. Nema potrebe da se unapred definiše broj klastera K; možete "prerezati" dendrogram na odabranom nivou da biste dobili željeni broj klastera.
Hijerarhijsko klasterovanje proizvodi dendrogram, strukturu nalik drvetu koja prikazuje odnose između klastera na različitim nivoima granularnosti. Dendrogram se može prerezati na željenom nivou da bi se dobio specifičan broj klastera.
> [!TIP]
> *Upotrebe u sajber bezbednosti:* Hijerarhijsko klasterovanje može organizovati događaje ili entitete u drvo kako bi se uočili odnosi. Na primer, u analizi malvera, aglomerativno klasterovanje bi moglo grupisati uzorke prema ponašanju, otkrivajući hijerarhiju porodica i varijanti malvera. U mrežnoj bezbednosti, moglo bi se klasterovati IP saobraćaj i koristiti dendrogram da se vide podgrupe saobraćaja (npr. prema protokolu, zatim prema ponašanju). Pošto ne morate unapred odabrati K, korisno je kada istražujete nove podatke za koje je broj kategorija napada nepoznat.
> *Upotreba u sajber bezbednosti:* Hijerarhijsko klasterovanje može organizovati događaje ili entitete u drvo kako bi se uočili odnosi. Na primer, u analizi malvera, aglomerativno klasterovanje bi moglo grupisati uzorke prema ponašanju, otkrivajući hijerarhiju porodica i varijanti malvera. U mrežnoj bezbednosti, moglo bi se klasterovati IP saobraćaj i koristiti dendrogram da se vide podgrupe saobraćaja (npr. prema protokolu, zatim prema ponašanju). Pošto ne morate unapred odabrati K, korisno je kada istražujete nove podatke za koje je broj kategorija napada nepoznat.
#### Pretpostavke i Ograničenja
Hijerarhijsko klasterovanje ne pretpostavlja određeni oblik klastera i može uhvatiti ugnježdene klastere. Korisno je za otkrivanje taksonomije ili odnosa među grupama (npr. grupisanje malvera prema porodicama). Determinističko je (nema problema sa slajnom inicijalizacijom). Ključna prednost je dendrogram, koji pruža uvid u strukturu klasterovanja podataka na svim razmerama analitičari bezbednosti mogu odlučiti o odgovarajućem preseku da identifikuju značajne klastere. Međutim, računski je skup (tipično $O(n^2)$ vremena ili gore za naivne implementacije) i nije izvodljiv za veoma velike skupove podataka. Takođe je pohlepna procedura jednom kada se spajanje ili deljenje izvrši, ne može se poništiti, što može dovesti do suboptimalnih klastera ako se greška dogodi rano. Izuzeci takođe mogu uticati na neke strategije povezivanja (jednostavno povezivanje može izazvati efekat "lančanja" gde se klasteri povezuju putem izuzetaka).
Hijerarhijsko klasterovanje ne pretpostavlja određeni oblik klastera i može uhvatiti ugnježdene klastere. Korisno je za otkrivanje taksonomije ili odnosa među grupama (npr. grupisanje malvera prema porodicama). Determinističko je (nema problema sa nasumičnom inicijalizacijom). Ključna prednost je dendrogram, koji pruža uvid u strukturu klasterovanja podataka na svim razmerama analitičari bezbednosti mogu odlučiti o odgovarajućem preseku da identifikuju značajne klastere. Međutim, računski je skup (tipično $O(n^2)$ vremena ili gore za naivne implementacije) i nije izvodljiv za veoma velike skupove podataka. Takođe je pohlepna procedura jednom kada se spajanje ili deljenje izvrši, ne može se poništiti, što može dovesti do suboptimalnih klastera ako se greška dogodi rano. Izolovani podaci takođe mogu uticati na neke strategije povezivanja (jednostavno povezivanje može izazvati efekat "lančanja" gde se klasteri povezuju putem izolovanih podataka).
<details>
<summary>Primer -- Aglomerativno Klasterovanje Događaja
@ -115,10 +115,10 @@ DBSCAN identifikuje glavne tačke, tačke na granici i tačke šuma:
- **Tačka na granici**: Tačka koja se nalazi unutar ε udaljenosti od glavne tačke, ali ima manje od MinPts suseda.
- **Tačka šuma**: Tačka koja nije ni glavna tačka ni tačka na granici.
Klasterovanje se nastavlja biranjem neposećene glavne tačke, označavanjem kao novog klastera, a zatim rekurzivnim dodavanjem svih tačaka koje su dostupne po gustini (glavne tačke i njihovi susedi, itd.). Tačke na granici se dodaju klasteru obližnje glavne tačke. Nakon proširenja svih dostupnih tačaka, DBSCAN prelazi na drugu neposećenu glavnu tačku da započne novi klaster. Tačke koje nisu dostignute od strane nijedne glavne tačke ostaju označene kao šum.
Klasterovanje se nastavlja biranjem neposećene glavne tačke, označavanjem kao novog klastera, a zatim rekurzivnim dodavanjem svih tačaka koje su gustinski dostupne od nje (glavne tačke i njihovi susedi, itd.). Tačke na granici se dodaju klasteru obližnje glavne tačke. Nakon proširenja svih dostupnih tačaka, DBSCAN prelazi na drugu neposećenu glavnu tačku da započne novi klaster. Tačke koje nisu dostignute od strane nijedne glavne tačke ostaju označene kao šum.
> [!TIP]
> *Upotreba u sajber bezbednosti:* DBSCAN je koristan za detekciju anomalija u mrežnom saobraćaju. Na primer, normalna aktivnost korisnika može formirati jedan ili više gustih klastera u prostoru karakteristika, dok se nove napadačke ponašanja pojavljuju kao rasute tačke koje će DBSCAN označiti kao šum (izuzetke). Koristi se za klasterovanje zapisa mrežnog toka, gde može detektovati skeniranja portova ili saobraćaj usluge uskraćivanja kao retke oblasti tačaka. Druga primena je grupisanje varijanti malvera: ako se većina uzoraka grupiše po porodicama, ali se nekoliko ne uklapa nigde, tih nekoliko bi moglo biti zero-day malver. Sposobnost označavanja šuma znači da se timovi za bezbednost mogu fokusirati na istraživanje tih izuzetaka.
> *Upotreba u sajber bezbednosti:* DBSCAN je koristan za detekciju anomalija u mrežnom saobraćaju. Na primer, normalna aktivnost korisnika može formirati jedan ili više gustih klastera u prostoru karakteristika, dok se nove napade ponašanja pojavljuju kao rasute tačke koje će DBSCAN označiti kao šum (izuzetke). Koristi se za klasterovanje zapisa mrežnog toka, gde može detektovati skeniranja portova ili saobraćaj usluga uskraćivanja kao retke oblasti tačaka. Druga primena je grupisanje varijanti malvera: ako se većina uzoraka grupiše po porodicama, ali se nekoliko ne uklapa nigde, tih nekoliko bi moglo biti zero-day malver. Sposobnost označavanja šuma znači da se timovi za bezbednost mogu fokusirati na istraživanje tih izuzetaka.
#### Pretpostavke i Ograničenja
@ -150,7 +150,7 @@ num_noise = np.sum(labels == -1)
print(f"DBSCAN found {num_clusters} clusters and {num_noise} noise points")
print("Cluster labels for first 10 points:", labels[:10])
```
U ovom isječku, prilagodili smo `eps` i `min_samples` da odgovaraju našoj skali podataka (15.0 u jedinicama karakteristika, i zahtevajući 5 tačaka za formiranje klastera). DBSCAN bi trebao pronaći 2 klastera (klastere normalnog saobraćaja) i označiti 5 ubačenih izuzetaka kao šum. Izlazimo broj klastera u odnosu na tačke šuma kako bismo to potvrdili. U stvarnom okruženju, može se iterirati preko ε (koristeći heuristiku grafika k-udaljenosti za odabir ε) i MinPts (često postavljenih na oko dimenzionalnosti podataka + 1 kao pravilo prsta) kako bi se pronašli stabilni rezultati klasterisanja. Sposobnost da se eksplicitno označi šum pomaže u oddvajanju potencijalnih podataka o napadima za dalju analizu.
U ovom isječku, prilagodili smo `eps` i `min_samples` da odgovaraju našoj skali podataka (15.0 u jedinicama karakteristika, i zahtevajući 5 tačaka za formiranje klastera). DBSCAN bi trebao pronaći 2 klastera (klastere normalnog saobraćaja) i označiti 5 ubačenih izuzetaka kao šum. Izlazimo broj klastera u odnosu na tačke šuma kako bismo to potvrdili. U stvarnom okruženju, može se iterirati preko ε (koristeći heuristiku grafika k-udaljenosti za odabir ε) i MinPts (često postavljen na oko dimenzionalnosti podataka + 1 kao pravilo prsta) kako bi se pronašli stabilni rezultati klasterovanja. Sposobnost da se eksplicitno označi šum pomaže u odvojenju potencijalnih podataka o napadima za dalju analizu.
</details>
@ -161,18 +161,18 @@ PCA je tehnika za **smanjenje dimenzionalnosti** koja pronalazi novi skup ortogo
Napomena da je ovo korisno ako dimenzije skupa podataka sadrže **značajne linearne zavisnosti ili korelacije**.
PCA funkcioniše identifikovanjem glavnih komponenti podataka, koje su pravci maksimalne varijanse. Koraci uključeni u PCA su:
1. **Standardizacija**: Centriranje podataka oduzimanjem proseka i skaliranjem na jediničnu varijansu.
1. **Standardizacija**: Centriranje podataka oduzimanjem srednje vrednosti i skaliranjem na jediničnu varijansu.
2. **Kovarijantna matrica**: Izračunavanje kovarijantne matrice standardizovanih podataka kako bi se razumele veze između karakteristika.
3. **Dezintegracija sopstvenih vrednosti**: Izvršavanje dezintegracije sopstvenih vrednosti na kovarijantnoj matrici kako bi se dobile sopstvene vrednosti i sopstveni vektori.
4. **Odabir glavnih komponenti**: Sortiranje sopstvenih vrednosti u opadajućem redosledu i odabir vrhunskih K sopstvenih vektora koji odgovaraju najvećim sopstvenim vrednostima. Ovi sopstveni vektori formiraju novi prostor karakteristika.
5. **Transformacija podataka**: Projekcija originalnih podataka na novi prostor karakteristika koristeći odabrane glavne komponente.
5. **Transformacija podataka**: Projektovanje originalnih podataka na novi prostor karakteristika koristeći odabrane glavne komponente.
PCA se široko koristi za vizualizaciju podataka, smanjenje šuma i kao korak predobrada za druge algoritme mašinskog učenja. Pomaže u smanjenju dimenzionalnosti podataka dok zadržava njegovu suštinsku strukturu.
#### Sopstvene vrednosti i sopstveni vektori
Sopstvena vrednost je skalar koji ukazuje na količinu varijanse koju hvata njen odgovarajući sopstveni vektor. Sopstveni vektor predstavlja pravac u prostoru karakteristika duž kojeg se podaci najviše menjaju.
Zamislite da je A kvadratna matrica, a v nenulti vektor takav da: `A * v = λ * v`
Zamislite da je A kvadratna matrica, a v je nenulti vektor tako da: `A * v = λ * v`
gde:
- A je kvadratna matrica poput [ [1, 2], [2, 1]] (npr. kovarijantna matrica)
- v je sopstveni vektor (npr. [1, 1])
@ -181,24 +181,24 @@ Tada, `A * v = [ [1, 2], [2, 1]] * [1, 1] = [3, 3]` što će biti sopstvena vred
#### Sopstvene vrednosti i sopstveni vektori u PCA
Objasnimo ovo sa primerom. Zamislite da imate skup podataka sa puno slika lica u sivim tonovima dimenzija 100x100 piksela. Svaki piksel se može smatrati karakteristikom, tako da imate 10,000 karakteristika po slici (ili vektor od 10,000 komponenti po slici). Ako želite da smanjite dimenzionalnost ovog skupa podataka koristeći PCA, pratili biste ove korake:
Objasnimo ovo sa primerom. Zamislite da imate skup podataka sa puno slika lica u sivim tonovima dimenzija 100x100 piksela. Svaki piksel se može smatrati karakteristikom, tako da imate 10,000 karakteristika po slici (ili vektor od 10000 komponenti po slici). Ako želite da smanjite dimenzionalnost ovog skupa podataka koristeći PCA, pratili biste ove korake:
1. **Standardizacija**: Centriranje podataka oduzimanjem proseka svake karakteristike (piksela) iz skupa podataka.
1. **Standardizacija**: Centriranje podataka oduzimanjem srednje vrednosti svake karakteristike (piksela) iz skupa podataka.
2. **Kovarijantna matrica**: Izračunavanje kovarijantne matrice standardizovanih podataka, koja hvata kako se karakteristike (pikseli) zajedno menjaju.
- Napomena da kovarijansa između dve varijable (piksela u ovom slučaju) ukazuje na to koliko se zajedno menjaju, tako da je ideja ovde da se otkrije koji piksela imaju tendenciju da se povećavaju ili smanjuju zajedno sa linearnom vezom.
- Napomena da kovarijansa između dve varijable (piksela u ovom slučaju) ukazuje na to koliko se zajedno menjaju, tako da je ideja ovde otkriti koji piksela imaju tendenciju da se povećavaju ili smanjuju zajedno sa linearnom vezom.
- Na primer, ako piksel 1 i piksel 2 imaju tendenciju da se zajedno povećavaju, kovarijansa između njih će biti pozitivna.
- Kovarijantna matrica će biti 10,000x10,000 matrica gde svaki unos predstavlja kovarijansu između dva piksela.
3. **Rešavanje sopstvene vrednosti**: Sopstvena vrednost koju treba rešiti je `C * v = λ * v` gde je C kovarijantna matrica, v sopstveni vektor, a λ sopstvena vrednost. Može se rešiti korišćenjem metoda kao što su:
3. **Rešavanje sopstvene vrednosti**: Sopstvena vrednost koju treba rešiti je `C * v = λ * v` gde je C kovarijantna matrica, v je sopstveni vektor, a λ je sopstvena vrednost. Može se rešiti korišćenjem metoda kao što su:
- **Dezintegracija sopstvenih vrednosti**: Izvršavanje dezintegracije sopstvenih vrednosti na kovarijantnoj matrici kako bi se dobile sopstvene vrednosti i sopstveni vektori.
- **Dezintegracija singularnih vrednosti (SVD)**: Alternativno, možete koristiti SVD za dezintegraciju matrice podataka u singularne vrednosti i vektore, što takođe može dati glavne komponente.
- **Dezintegracija singularnih vrednosti (SVD)**: Alternativno, možete koristiti SVD za dekompoziciju matrice podataka u singularne vrednosti i vektore, što takođe može dati glavne komponente.
4. **Odabir glavnih komponenti**: Sortiranje sopstvenih vrednosti u opadajućem redosledu i odabir vrhunskih K sopstvenih vektora koji odgovaraju najvećim sopstvenim vrednostima. Ovi sopstveni vektori predstavljaju pravce maksimalne varijanse u podacima.
> [!TIP]
> *Upotrebe u sajber bezbednosti:* Uobičajena upotreba PCA u bezbednosti je smanjenje karakteristika za otkrivanje anomalija. Na primer, sistem za otkrivanje upada sa 40+ mrežnih metrika (poput NSL-KDD karakteristika) može koristiti PCA da smanji na nekoliko komponenti, sumirajući podatke za vizualizaciju ili unošenje u algoritme klasterisanja. Analitičari mogu prikazati mrežni saobraćaj u prostoru prvih dve glavne komponente kako bi videli da li se napadi odvajaju od normalnog saobraćaja. PCA takođe može pomoći u eliminaciji redundantnih karakteristika (poput poslatih bajtova u odnosu na primljene bajtove ako su korelisani) kako bi se algoritmi detekcije učinili robusnijim i bržim.
> *Upotrebe u sajber bezbednosti:* Uobičajena upotreba PCA u bezbednosti je smanjenje karakteristika za otkrivanje anomalija. Na primer, sistem za otkrivanje upada sa 40+ mrežnih metrika (poput NSL-KDD karakteristika) može koristiti PCA da smanji na nekoliko komponenti, sumirajući podatke za vizualizaciju ili unošenje u algoritme klasterovanja. Analitičari mogu prikazati mrežni saobraćaj u prostoru prvih dve glavne komponente kako bi videli da li se napadi odvajaju od normalnog saobraćaja. PCA takođe može pomoći u eliminaciji redundantnih karakteristika (poput poslatih bajtova u odnosu na primljene bajtove ako su korelisani) kako bi se algoritmi detekcije učinili robusnijim i bržim.
#### Pretpostavke i ograničenja
PCA pretpostavlja da su **glavne ose varijanse značajne** to je linearna metoda, pa hvata linearne korelacije u podacima. To je nesupervizovana metoda jer koristi samo kovarijansu karakteristika. Prednosti PCA uključuju smanjenje šuma (komponente male varijanse često odgovaraju šumu) i dekorelaciju karakteristika. Efikasna je u računski za umereno visoke dimenzije i često je koristan korak predobrada za druge algoritme (da ublaži prokletstvo dimenzionalnosti). Jedno ograničenje je to što je PCA ograničen na linearne odnose neće uhvatiti složenu nelinearnu strukturu (dok autoenkoderi ili t-SNE mogu). Takođe, komponente PCA mogu biti teške za interpretaciju u smislu originalnih karakteristika (one su kombinacije originalnih karakteristika). U sajber bezbednosti, treba biti oprezan: napad koji uzrokuje samo suptilnu promenu u karakteristici male varijanse možda se neće pojaviti u vrhunskim PC-ima (pošto PCA prioritizuje varijansu, a ne nužno "zanimljivost").
PCA pretpostavlja da su **glavne ose varijanse značajne** to je linearna metoda, pa hvata linearne korelacije u podacima. To je nesupervizovana metoda jer koristi samo kovarijansu karakteristika. Prednosti PCA uključuju smanjenje šuma (komponente male varijanse često odgovaraju šumu) i dekorelaciju karakteristika. Efikasna je u računski umerenim dimenzijama i često je koristan korak predobrada za druge algoritme (da ublaži prokletstvo dimenzionalnosti). Jedno ograničenje je to što je PCA ograničen na linearne odnose neće uhvatiti složenu nelinearnu strukturu (dok autoenkoderi ili t-SNE mogu). Takođe, komponente PCA mogu biti teške za interpretaciju u smislu originalnih karakteristika (one su kombinacije originalnih karakteristika). U sajber bezbednosti, treba biti oprezan: napad koji uzrokuje samo suptilnu promenu u karakteristici male varijanse možda se neće pojaviti u vrhunskim PC-ima (pošto PCA prioritizuje varijansu, a ne nužno "zanimljivost").
<details>
<summary>Primer -- Smanjenje dimenzija mrežnih podataka
@ -231,7 +231,7 @@ Ovde smo uzeli ranije normalne klastere saobraćaja i proširili svaku tačku po
### Gaussian Mixture Models (GMM)
Gaussian Mixture Model pretpostavlja da su podaci generisani iz mešavine **several Gaussian (normal) distributions with unknown parameters**. U suštini, to je probabilistički model klasterovanja: pokušava da blago dodeli svaku tačku jednom od K Gaussian komponenti. Svaka Gaussian komponenta k ima vektor srednje vrednosti (μ_k), kovarijantnu matricu (Σ_k) i težinu mešanja (π_k) koja predstavlja koliko je taj klaster prisutan. Za razliku od K-Means koji vrši "tvrde" dodeljivanje, GMM daje svakoj tački verovatnoću pripadnosti svakom klasteru.
Gaussian Mixture Model pretpostavlja da su podaci generisani iz mešavine **several Gaussian (normal) distributions with unknown parameters**. U suštini, to je probabilistički model klasterisanja: pokušava da blago dodeli svaku tačku jednom od K Gaussian komponenti. Svaka Gaussian komponenta k ima vektor srednje vrednosti (μ_k), kovarijantnu matricu (Σ_k) i težinu mešanja (π_k) koja predstavlja koliko je taj klaster prisutan. Za razliku od K-Means koji vrši "tvrde" dodele, GMM daje svakoj tački verovatnoću pripadnosti svakom klasteru.
GMM prilagođavanje se obično vrši putem algoritma Expectation-Maximization (EM):
@ -252,20 +252,20 @@ gde:
- **Iterirajte** E i M korake dok ne dođe do konvergencije (parametri se stabilizuju ili poboljšanje verovatnoće je ispod praga).
Rezultat je skup Gaussian distribucija koje kolektivno modeliraju ukupnu distribuciju podataka. Možemo koristiti prilagođeni GMM za klasterovanje dodeljivanjem svake tačke Gaussian-u sa najvišom verovatnoćom, ili zadržati verovatnoće za nesigurnost. Takođe se može proceniti verovatnoća novih tačaka da vide da li se uklapaju u model (korisno za otkrivanje anomalija).
Rezultat je skup Gaussian distribucija koje kolektivno modeliraju ukupnu distribuciju podataka. Možemo koristiti prilagođeni GMM za klasterisanje dodeljivanjem svake tačke Gaussian-u sa najvišom verovatnoćom, ili zadržati verovatnoće za nesigurnost. Takođe se može proceniti verovatnoća novih tačaka da vide da li se uklapaju u model (korisno za otkrivanje anomalija).
> [!TIP]
> *Upotrebe u sajber bezbednosti:* GMM se može koristiti za otkrivanje anomalija modelovanjem distribucije normalnih podataka: svaka tačka sa vrlo niskom verovatnoćom pod naučenom mešavinom se označava kao anomalija. Na primer, mogli biste obučiti GMM na karakteristikama legitimnog mrežnog saobraćaja; napadna veza koja se ne sliči nijednom naučenom klasteru imala bi nisku verovatnoću. GMM-ovi se takođe koriste za klasterovanje aktivnosti gde klasteri mogu imati različite oblike npr., grupisanje korisnika prema profilima ponašanja, gde karakteristike svakog profila mogu biti slične Gaussian-u, ali sa sopstvenom strukturom varijanse. Drugi scenario: u otkrivanju phishing-a, legitimne karakteristike e-pošte mogu formirati jedan Gaussian klaster, poznati phishing drugi, a nove phishing kampanje mogu se pojaviti kao ili odvojeni Gaussian ili kao tačke sa niskom verovatnoćom u odnosu na postojeću mešavinu.
> *Upotrebe u sajber bezbednosti:* GMM se može koristiti za otkrivanje anomalija modelovanjem distribucije normalnih podataka: svaka tačka sa vrlo niskom verovatnoćom pod naučenom mešavinom se označava kao anomalija. Na primer, mogli biste obučiti GMM na karakteristikama legitimnog mrežnog saobraćaja; napadna veza koja se ne sliči nijednom naučenom klasteru imala bi nisku verovatnoću. GMM-ovi se takođe koriste za klasterisanje aktivnosti gde klasteri mogu imati različite oblike npr. grupisanje korisnika prema profilima ponašanja, gde karakteristike svakog profila mogu biti slične Gaussian-u, ali sa sopstvenom strukturom varijanse. Drugi scenario: u otkrivanju phishing-a, legitimne karakteristike e-pošte mogu formirati jedan Gaussian klaster, poznati phishing drugi, a nove phishing kampanje mogu se pojaviti kao ili odvojeni Gaussian ili kao tačke sa niskom verovatnoćom u odnosu na postojeću mešavinu.
#### Pretpostavke i Ograničenja
GMM je generalizacija K-Means koja uključuje kovarijansu, tako da klasteri mogu biti elipsoidni (ne samo sferni). Rukuje klasterima različitih veličina i oblika ako je kovarijansa puna. Mekano klasterovanje je prednost kada su granice klastera nejasne npr., u sajber bezbednosti, događaj može imati osobine više tipova napada; GMM može odražavati tu nesigurnost sa verovatnoćama. GMM takođe pruža procenu gustine verovatnoće podataka, korisnu za otkrivanje outliera (tačaka sa niskom verovatnoćom pod svim komponentama mešavine).
GMM je generalizacija K-Means koja uključuje kovarijansu, tako da klasteri mogu biti elipsoidni (ne samo sferni). Rukuje klasterima različitih veličina i oblika ako je kovarijansa puna. Mekano klasterisanje je prednost kada su granice klastera nejasne npr. u sajber bezbednosti, događaj može imati osobine više tipova napada; GMM može odražavati tu nesigurnost sa verovatnoćama. GMM takođe pruža procenu gustine verovatnoće podataka, korisnu za otkrivanje outliera (tačaka sa niskom verovatnoćom pod svim komponentama mešavine).
S druge strane, GMM zahteva da se specificira broj komponenti K (iako se mogu koristiti kriterijumi poput BIC/AIC za njegovu selekciju). EM ponekad može sporo konvergirati ili do lokalnog optimuma, tako da je inicijalizacija važna (često se EM pokreće više puta). Ako podaci zapravo ne prate mešavinu Gaussian-a, model može biti loše prilagođen. Takođe postoji rizik da jedan Gaussian smanji da pokrije samo outlier (iako regularizacija ili minimalne granice kovarijanse mogu to ublažiti).
<details>
<summary>Primer -- Mekano Klasterovanje & Anomalijske Ocene
<summary>Primer -- Mekano Klasterisanje & Anomalijske Ocene
</summary>
```python
from sklearn.mixture import GaussianMixture
@ -285,17 +285,16 @@ log_likelihood = gmm.score_samples(sample_attack)
print("Cluster membership probabilities for sample attack:", probs)
print("Log-likelihood of sample attack under GMM:", log_likelihood)
```
U ovom kodu, obučavamo GMM sa 3 Gaussiana na normalnom saobraćaju (pretpostavljajući da znamo 3 profila legitimnog saobraćaja). Srednje vrednosti i kovarijanse koje se ispisuju opisuju ove klastere (na primer, jedna srednja vrednost može biti oko [50,500] koja odgovara centru jednog klastera, itd.). Zatim testiramo sumnjivu vezu [duration=200, bytes=800]. predict_proba daje verovatnoću da ova tačka pripada svakom od 3 klastera očekivali bismo da su ove verovatnoće vrlo niske ili veoma iskrivljene, pošto [200,800] leži daleko od normalnih klastera. Ukupni score_samples (log-verovatnoća) se ispisuje; vrlo niska vrednost ukazuje na to da tačka ne odgovara modelu dobro, označavajući je kao anomaliju. U praksi, može se postaviti prag na log-verovatnoću (ili na maksimalnu verovatnoću) da se odluči da li je tačka dovoljno malo verovatna da se smatra malicioznom. GMM tako pruža principijelan način za detekciju anomalija i takođe daje meke klastere koji priznaju nesigurnost.
</details>
U ovom kodu, obučavamo GMM sa 3 Gaussiana na normalnom saobraćaju (pretpostavljajući da znamo 3 profila legitimnog saobraćaja). Srednje vrednosti i kovarijanse koje se ispisuju opisuju ove klastere (na primer, jedna srednja vrednost može biti oko [50,500] koja odgovara centru jednog klastera, itd.). Zatim testiramo sumnjivu vezu [duration=200, bytes=800]. predict_proba daje verovatnoću da ova tačka pripada svakom od 3 klastera očekivali bismo da su ove verovatnoće vrlo niske ili veoma iskrivljene, pošto [200,800] leži daleko od normalnih klastera. Ukupni score_samples (log-verovatnoća) se ispisuje; vrlo niska vrednost ukazuje na to da tačka ne odgovara modelu dobro, označavajući je kao anomaliju. U praksi, može se postaviti prag na log-verovatnoću (ili na maksimalnu verovatnoću) da se odluči da li je tačka dovoljno malo verovatna da se smatra malicioznom. GMM tako pruža principijelan način za otkrivanje anomalija i takođe daje meke klastere koji priznaju nesigurnost.
### Isolation Forest
**Isolation Forest** je ansambl algoritam za detekciju anomalija zasnovan na ideji nasumičnog izolovanja tačaka. Princip je da su anomalije retke i različite, pa ih je lakše izolovati nego normalne tačke. Isolation Forest gradi mnogo binarnih izolacionih stabala (nasumična odlučujuća stabla) koja nasumično dele podatke. Na svakom čvoru u stablu, nasumična karakteristika se bira i nasumična vrednost razdvajanja se bira između minimuma i maksimuma te karakteristike za podatke u tom čvoru. Ovo razdvajanje deli podatke na dve grane. Stablo se razvija sve dok svaka tačka nije izolovana u svom listu ili dok se ne dostigne maksimalna visina stabla.
**Isolation Forest** je algoritam za otkrivanje anomalija zasnovan na ideji nasumičnog izolovanja tačaka. Princip je da su anomalije retke i različite, pa ih je lakše izolovati nego normalne tačke. Isolation Forest gradi mnogo binarnih izolacionih stabala (nasumična odlučujuća stabla) koja nasumično dele podatke. Na svakom čvoru u stablu, nasumična karakteristika se bira i nasumična vrednost razdvajanja se bira između minimuma i maksimuma te karakteristike za podatke u tom čvoru. Ovo razdvajanje deli podatke na dve grane. Stablo se razvija sve dok svaka tačka nije izolovana u svom listu ili dok se ne dostigne maksimalna visina stabla.
Detekcija anomalija se vrši posmatranjem dužine puta svake tačke u ovim nasumičnim stablima broj razdvajanja potrebnih za izolaciju tačke. Intuitivno, anomalije (izuzeci) se obično brže izoluju jer je nasumično razdvajanje verovatnije da će odvojiti izuzetak (koji se nalazi u retkoj oblasti) nego normalnu tačku u gustoj grupi. Isolation Forest izračunava skor anomalije na osnovu prosečne dužine puta preko svih stabala: kraća prosečna dužina puta → više anomalno. Skorovi se obično normalizuju na [0,1] gde 1 znači vrlo verovatna anomalija.
Otkrivanje anomalija se vrši posmatranjem dužine puta svake tačke u ovim nasumičnim stablima broj razdvajanja potrebnih za izolovanje tačke. Intuitivno, anomalije (izuzeci) se obično brže izoluju jer je nasumično razdvajanje verovatnije da će odvojiti izuzetak (koji se nalazi u retkoj oblasti) nego normalnu tačku u gustoj grupi. Isolation Forest izračunava skor anomalije na osnovu prosečne dužine puta preko svih stabala: kraća prosečna dužina puta → više anomalno. Skorovi se obično normalizuju na [0,1] gde 1 znači vrlo verovatna anomalija.
> [!TIP]
> *Upotrebe u sajber bezbednosti:* Isolation Forests su uspešno korišćeni u detekciji upada i detekciji prevara. Na primer, obučite Isolation Forest na logovima mrežnog saobraćaja koji većinom sadrže normalno ponašanje; šuma će proizvesti kratke puteve za čudan saobraćaj (kao što je IP koji koristi nečuvenu portu ili neobičan obrazac veličine paketa), označavajući ga za inspekciju. Pošto ne zahteva označene napade, pogodna je za detekciju nepoznatih tipova napada. Takođe se može primeniti na podatke o prijavljivanju korisnika za detekciju preuzimanja naloga (anomalna vremena ili lokacije prijavljivanja se brzo izoluju). U jednom slučaju upotrebe, Isolation Forest može zaštititi preduzeće praćenjem sistemskih metrika i generisanjem upozorenja kada kombinacija metrika (CPU, mreža, promene fajlova) izgleda veoma drugačije (kratki putevi izolacije) od istorijskih obrazaca.
> *Upotrebe u sajber bezbednosti:* Isolation Forests su uspešno korišćeni u otkrivanju upada i prevara. Na primer, obučite Isolation Forest na logovima mrežnog saobraćaja koji većinom sadrže normalno ponašanje; šuma će proizvesti kratke puteve za čudan saobraćaj (kao što je IP koji koristi nečuvenu portu ili neobičan obrazac veličine paketa), označavajući ga za inspekciju. Pošto ne zahteva označene napade, pogodna je za otkrivanje nepoznatih tipova napada. Takođe se može primeniti na podatke o prijavljivanju korisnika za otkrivanje preuzimanja naloga (anomalna vremena ili lokacije prijavljivanja se brzo izoluju). U jednom slučaju upotrebe, Isolation Forest može zaštititi preduzeće praćenjem sistemskih metrika i generisanjem upozorenja kada kombinacija metrika (CPU, mreža, promene fajlova) izgleda veoma drugačije (kratki putevi izolacije) od istorijskih obrazaca.
#### Pretpostavke i Ograničenja
@ -304,7 +303,7 @@ Detekcija anomalija se vrši posmatranjem dužine puta svake tačke u ovim nasum
**Ograničenja**: Zbog svoje nasumične prirode, rezultati se mogu malo razlikovati između pokretanja (iako je to minorno sa dovoljno mnogo stabala). Ako podaci imaju mnogo irelevantnih karakteristika ili ako se anomalije ne razlikuju snažno u bilo kojoj karakteristici, izolacija možda neće biti efikasna (nasumična razdvajanja bi mogla izolovati normalne tačke slučajno međutim, prosečno uzimanje mnogih stabala ublažava ovo). Takođe, Isolation Forest obično pretpostavlja da su anomalije mala manjina (što je obično tačno u scenarijima sajber bezbednosti).
<details>
<summary>Primer -- Detekcija Izuzetaka u Mrežnim Logovima
<summary>Primer -- Otkrivanje Izuzetaka u Mrežnim Logovima
</summary>
Koristićemo raniji test skup podataka (koji sadrži normalne i neke tačke napada) i pokrenuti Isolation Forest da vidimo da li može da razdvoji napade. Pretpostavićemo da očekujemo ~15% podataka da bude anomalno (za demonstraciju).
@ -323,30 +322,30 @@ print("Isolation Forest predicted labels (first 20):", preds[:20])
print("Number of anomalies detected:", np.sum(preds == -1))
print("Example anomaly scores (lower means more anomalous):", anomaly_scores[:5])
```
U ovom kodu, instanciramo `IsolationForest` sa 100 stabala i postavljamo `contamination=0.15` (što znači da očekujemo oko 15% anomalija; model će postaviti svoj prag rezultata tako da ~15% tačaka bude označeno). Prilagođavamo ga na `X_test_if` koji sadrži mešavinu normalnih i napadnih tačaka (napomena: obično biste prilagodili na podacima za obuku, a zatim koristili predikciju na novim podacima, ali ovde, radi ilustracije, prilagođavamo i predviđamo na istom skupu kako bismo direktno posmatrali rezultate).
U ovom kodu, instanciramo `IsolationForest` sa 100 stabala i postavljamo `contamination=0.15` (što znači da očekujemo oko 15% anomalija; model će postaviti svoj prag ocene tako da ~15% tačaka bude označeno). Prilagođavamo ga na `X_test_if` koji sadrži mešavinu normalnih i napadnih tačaka (napomena: obično biste prilagodili na podacima za obuku, a zatim koristili predikciju na novim podacima, ali ovde, radi ilustracije, prilagođavamo i predviđamo na istom skupu kako bismo direktno posmatrali rezultate).
Izlaz prikazuje predviđene oznake za prvih 20 tačaka (gde -1 označava anomaliju). Takođe štampamo koliko je anomalija ukupno otkriveno i neke primerke anomalijskih rezultata. Očekivali bismo otprilike 18 od 120 tačaka da budu označene sa -1 (pošto je kontaminacija bila 15%). Ako su naših 20 uzoraka napada zaista najizolovaniji, većina njih bi trebala da se pojavi u tim -1 predikcijama. Anomalijski rezultat (odluka funkcije Isolation Forest-a) je viši za normalne tačke i niži (više negativan) za anomalije štampamo nekoliko vrednosti da bismo videli razdvajanje. U praksi, neko bi mogao da sortira podatke po rezultatu da vidi najistaknutije izuzetke i istraži ih. Isolation Forest tako pruža efikasan način da se pretražuju veliki neoznačeni bezbednosni podaci i izdvoje najnepravilnije instance za ljudsku analizu ili dalju automatsku proveru.
Izlaz prikazuje predviđene oznake za prvih 20 tačaka (gde -1 označava anomaliju). Takođe štampamo koliko je anomalija ukupno otkriveno i neke primerke ocena anomalija. Očekivali bismo otprilike 18 od 120 tačaka da budu označene kao -1 (pošto je kontaminacija bila 15%). Ako su naših 20 uzoraka napada zaista najizolovaniji, većina njih bi trebala da se pojavi u tim -1 predikcijama. Ocena anomalije (funkcija odluke Isolation Forest-a) je viša za normalne tačke i niža (više negativna) za anomalije štampamo nekoliko vrednosti da bismo videli razdvajanje. U praksi, neko bi mogao da sortira podatke po oceni da bi video najistaknutije izuzetke i istražio ih. Isolation Forest tako pruža efikasan način da se pretražuju veliki neoznačeni bezbednosni podaci i izdvoje najnepravilnije instance za ljudsku analizu ili dalju automatsku proveru.
### t-SNE (t-Distribuirano Stohastičko Uključivanje Suseda)
### t-SNE (t-Distribuirano Stohastičko Ugrađivanje Suseda)
**t-SNE** je nelinearna tehnika smanjenja dimenzionalnosti posebno dizajnirana za vizualizaciju podataka visoke dimenzionalnosti u 2 ili 3 dimenzije. Ona pretvara sličnosti između tačaka podataka u zajedničke verovatnoće i pokušava da sačuva strukturu lokalnih komšiluka u projekciji sa nižom dimenzionalnošću. Jednostavnije rečeno, t-SNE postavlja tačke u (recimo) 2D tako da slične tačke (u originalnom prostoru) završe blizu jedna druge, a neslične tačke daleko jedna od druge sa visokom verovatnoćom.
Algoritam ima dve glavne faze:
1. **Izračunavanje parnih afiniteta u prostoru visoke dimenzionalnosti:** Za svaki par tačaka, t-SNE izračunava verovatnoću da bi neko izabrao taj par kao komšije (to se radi centriranjem Gaussove distribucije na svakoj tački i merenjem udaljenosti parametar perplexity utiče na efektivan broj komšija koje se razmatraju).
2. **Izračunavanje parnih afiniteta u prostoru sa niskom dimenzionalnošću (npr. 2D):** U početku, tačke se nasumično postavljaju u 2D. t-SNE definiše sličnu verovatnoću za udaljenosti na ovoj mapi (koristeći Studentovu t-distribuciju, koja ima teže repove od Gaussove kako bi omogućila udaljenim tačkama više slobode).
3. **Gradientni spust:** t-SNE zatim iterativno pomera tačke u 2D kako bi minimizirao KullbackLeibler (KL) divergenciju između visoko-D afinitetske distribucije i nisko-D one. To uzrokuje da raspored u 2D odražava strukturu visoke dimenzionalnosti koliko god je to moguće tačke koje su bile blizu u originalnom prostoru će se privlačiti, a one daleko će se odbijati, sve dok se ne pronađe ravnoteža.
1. **Izračunavanje parnih afiniteta u visoko-dimenzionalnom prostoru:** Za svaki par tačaka, t-SNE izračunava verovatnoću da bi neko izabrao taj par kao komšije (to se radi centriranjem Gaussove distribucije na svakoj tački i merenjem udaljenosti parametar perplexity utiče na efektivan broj komšija koji se razmatraju).
2. **Izračunavanje parnih afiniteta u nisko-dimenzionalnom (npr. 2D) prostoru:** U početku, tačke se nasumično postavljaju u 2D. t-SNE definiše sličnu verovatnoću za udaljenosti na ovoj mapi (koristeći Studentovu t-distribuciju, koja ima teže repove od Gaussove kako bi omogućila udaljenim tačkama više slobode).
3. **Gradientni spust:** t-SNE zatim iterativno pomera tačke u 2D kako bi minimizovao KullbackLeibler (KL) divergenciju između visoko-D afinitetske distribucije i nisko-D. Ovo uzrokuje da raspored u 2D odražava visoko-D strukturu koliko god je to moguće tačke koje su bile blizu u originalnom prostoru će se privlačiti, a one daleko će se odbijati, dok se ne pronađe ravnoteža.
Rezultat je često vizuelno značajan dijagram raspršenja gde klasteri u podacima postaju očigledni.
> [!TIP]
> *Upotrebe u sajber bezbednosti:* t-SNE se često koristi za **vizualizaciju podataka visoke dimenzionalnosti za ljudsku analizu**. Na primer, u centru za operacije bezbednosti, analitičari bi mogli uzeti skup podataka o događajima sa desetinama karakteristika (brojevi portova, frekvencije, brojevi bajtova itd.) i koristiti t-SNE da proizvedu 2D dijagram. Napadi bi mogli formirati svoje klastere ili se odvojiti od normalnih podataka u ovom dijagramu, čineći ih lakšim za identifikaciju. Primena je bila na skupovima podataka o malveru da se vide grupisanja porodica malvera ili na podacima o mrežnim upadima gde se različite vrste napada jasno grupišu, usmeravajući dalju istragu. Suštinski, t-SNE pruža način da se vidi struktura u sajber podacima koja bi inače bila nejasna.
> *Upotrebe u sajber bezbednosti:* t-SNE se često koristi za **vizualizaciju podataka visoke dimenzionalnosti za ljudsku analizu**. Na primer, u centru za operacije bezbednosti, analitičari bi mogli uzeti skup podataka o događajima sa desetinama karakteristika (brojevi portova, frekvencije, brojevi bajtova itd.) i koristiti t-SNE da proizvedu 2D dijagram. Napadi bi mogli formirati svoje klastere ili se odvojiti od normalnih podataka u ovom dijagramu, čineći ih lakšim za identifikaciju. Primena je bila na skupovima podataka o malveru kako bi se videli grupisanja porodica malvera ili na podacima o mrežnim upadima gde se različite vrste napada jasno grupišu, usmeravajući dalju istragu. Suštinski, t-SNE pruža način da se vidi struktura u sajber podacima koja bi inače bila nejasna.
#### Pretpostavke i Ograničenja
t-SNE je odličan za vizuelno otkrivanje obrazaca. Može otkriti klastere, subklastere i izuzetke koje druge linearne metode (kao što je PCA) možda ne bi mogle. Koristi se u istraživanju sajber bezbednosti za vizualizaciju složenih podataka kao što su profili ponašanja malvera ili obrasci mrežnog saobraćaja. Pošto čuva lokalnu strukturu, dobar je za prikazivanje prirodnih grupisanja.
Međutim, t-SNE je računski zahtevniji (približno $O(n^2)$) pa može zahtevati uzorkovanje za veoma velike skupove podataka. Takođe ima hiperparametre (perplexity, brzina učenja, iteracije) koji mogu uticati na izlaz npr., različite vrednosti perplexity mogu otkriti klastere na različitim skalama. t-SNE dijagrami se ponekad mogu pogrešno interpretirati udaljenosti na mapi nisu direktno značajne globalno (fokusira se na lokalno komšiluko, ponekad klasteri mogu izgledati veštački dobro odvojeni). Takođe, t-SNE je uglavnom za vizualizaciju; ne pruža jednostavan način za projektovanje novih tačaka podataka bez ponovnog izračunavanja, i nije namenjen da se koristi kao predobrada za prediktivno modelovanje (UMAP je alternativa koja rešava neka od ovih problema bržom brzinom).
Međutim, t-SNE je računski zahtevniji (približno $O(n^2)$) pa može zahtevati uzorkovanje za veoma velike skupove podataka. Takođe ima hiperparametre (perplexity, brzina učenja, iteracije) koji mogu uticati na izlaz npr., različite vrednosti perplexity mogu otkriti klastere na različitim skalama. t-SNE dijagrami se ponekad mogu pogrešno interpretirati udaljenosti na mapi nisu direktno značajne globalno (fokusira se na lokalno komšiluko, ponekad klasteri mogu izgledati veštački dobro odvojeni). Takođe, t-SNE je uglavnom za vizualizaciju; ne pruža jednostavan način za projektovanje novih tačaka podataka bez ponovnog izračunavanja, i nije namenjen da se koristi kao predobrada za prediktivno modelovanje (UMAP je alternativa koja rešava neka od ovih pitanja bržom brzinom).
<details>
<summary>Primer -- Vizualizacija Mrežnih Veza