Előadást letölteni
Az előadás letöltése folymat van. Kérjük, várjon
1
Machine Learning, Hálózatelemzés
BIG DATA Kazi Sándor Machine Learning, Hálózatelemzés 2014.
2
Data Science & ML Data Science, Gépi tanulás alapok,
3
Data Science – BIG Data Mintavételezés, mintavételezés, mintavételezés… Sokszor nem jó ötlet a teljes adatsorral dolgozni A túl kis mintával viszont rosszul is járhatunk Data Science ismeret kellhet az architektúratervezéshez is: A hatékonyan felhasználható tárolás fontos kérdés Szintén fontos, hogy mit érdemes egyáltalán tárolni Lehet, hogy aggregátumot is, lehet, hogy csak azt… Szükség lehet a tárolt adatok újrastruktúrálására is Szükséges kompromisszumokat kötni (nem lehet „mindent”) Megnő a „feltáró BI” szerepe is „A Data Understandinget jobb minél előbb megkezdeni” Ha jól tudjuk, mit fogunk az adatokkal csinálni, sokat segíthet … de legalább a skálázódás nem a mi dolgunk.
4
Machine learning – DATA SCIENCE
Forrás: Schutt, O’Neil Doing Data Science (O’Reilly Media)
5
Machine learning – Alapok
Input adatok Modell Lehetséges célok: A modell vizsgálata: problématér feltérképezése, kirívó események A modell használata: előrejelzés, vezérlés, … Kapcsolódó területek: Statisztika Mesterséges intelligencia Optimalizáció Négy nagy részhalmaz: Felügyelt tanulás (Supervised Learning) Nem felügyelt tanulás (Unsupervised Learning) Félig felügyelt tanulás (Semi-Supervised Learning) Megerősítéses tanulás (Reinforcement Learning)
6
Machine Learning – Felügyelt Tanulás
Magyarázó változók X Célváltozó(k) Y Bevezető … … Tanításra nem használt minta (validáció, fs, …) Partícionálás Ismert a célváltozó Modelltanítás f(X)Y Mérés … ??? … Modell alkalmazása Ismeretlen a célváltozó Felhasználás
7
Machine learning – Use case-ek
Osztályozás Felügyelt tanulás, a célváltozó kategorikus Regresszió Felügyelt tanulás, a célváltozó folytonos Klaszterezés Nem felügyelt tanulás, cél: homogén csoportokba sorolás Gyakori minták, rendellenes értékek, csalásfelderítés, … Döntéstámogatás, ajánló rendszerek, asszociációs szabályok, … On-line tanulás és akcióválasztás, vezérlés, … (Dimenziócsökkentés, főkomponensanalízis, …) (Statisztikai próbák, rétegzett mintavételezés, …)
8
Machine learning – Algoritmusok
Osztályozás Neurális hálózat (MLP) k legközelebbi szomszéd (k-NN) Döntési fák, véletlen erdők … Regresszió Lineáris regresszió Regressziós döntési fák Klaszterezés Nem felügyelt tanulás, cél: homogén csoportokba sorolás Hierarchikus k-means és k-medoid
9
Data Science – BIG Data előtt
Programozás Matlab Python – SciKit Learn csomag, pandas csomag R Java (Weka) … Vizuális eszközök SPSS Modeler (Clementine) SAS Enterprise Miner, SAS Guide RapidMiner Studio/Server Oracle Miner Knime
10
Mahout
11
Mahout – Mi a Mahout? “The Apache Mahout project’s goal is to build a sclable machine learning library.” Skálázható Gépi tanulási könyvtár 2014. április előtt Eleinte főleg MapReduce implementációk Probléma: jellemzően iteratív algoritmusok 2014. áprilistól Új MapReduce implementációk nem jöhetnek Helyette Spark integráció a kívánatos irány Többféle platform: egygépes környezet, MapReduce, Spark, …
12
Spark MLLib Machine Learning Library
13
Spark – Emlékeztető “Spark has an advanced DAG execution engine that supports cyclic data flow and in-memory computing.” DAG végrehajtó motor globális belső állapot kezelése Ciklikus adatfolyam iteratív algoritmusok is In-memory RDD, perzisztálás NEM MapReduce: csak errőforráskezelő kell neki, futhat: YARN fölött EC2-n (Amazon) Mesos fölött (Apache) … Többféle programozási nyelven API: Java, Scala, Python… MLLib: gépi tanulási csomag a Spark keretrendszerében GraphX: gráf API a Spark felett
14
Mahout és MLLib – Eszköztár
Csoport Algoritmus Mahout MLLib Statisztika Összegzés, Korreláció, Rétegzett mintavételezés - Igen Osztályozás, Regresszió Lineáris modellek (SVM, linreg, logreg) Local (logreg.) Döntési fa Naïve Bayes MR Random Forest Neurális háló (MLP) Local Klaszterezés K-means Local+MR Spektrális klaszterezés Ajánló rendszerek Kollaboratív szűrés Local ill. Local+MR Dimenzó-csökkentés PCA SVD Lánczos-módszer
15
Hálózatelemzés
16
Hálózatelemzés – Általános
Hálózatelemzés, gráfelemzés… gyakorlatilag ugyanaz. Entitásokat és azok kapcsolatát leíró struktúra: Gráf (csúcsok, élek) és címkék (súlyok, stb.) Lehet statikus gráf vagy időben változó Input adatok Modell Hálózatelemzés célja: A modell vizsgálata, ezáltal Hálózat vizsgálata Hálózat változásának vizsgálata A struktúra feletti modell használata: előrejelzés, vezérlés, … Google Pregel
17
BSP Bulk Synchronous Parallel
18
Bulk Synchronous Parallel
Node 𝒊 Node 𝒊+𝟏 Node 𝒊+𝟐 Node 𝒊+𝟑 𝒕 Superstep Worker Master Worker Worker Messages Synchronization Superstep Worker Master Worker Worker Messages + HeartBeat üzenetek („élek” + státusz) Synchronization Superstep Worker Master Worker Worker Messages Synchronization Az üzenetek csak a következő Superstepben válnak elérhetővé!
19
Számítás, üzenetküldés
BSP – csomópont Egy fizikai node-on több virtuális node is futhat egymás után Gráffeldolgozásnál tipikus A végrehajtásnak vége, ha egyszerre mindenki megállásra szavaz Ha folyton üzeneteket küldünk, akkor sosem áll le a végrehajtás… a Superstep számra érdemes lehet limitet tenni Megállásra szavazás Nem érkezett üzenet Számítás, üzenetküldés Aktív Inaktív Üzenet érkezett
20
BSP – SSSP SSSP: Single Source Shortest Path
nincs negatív összsúlyú kör (nincs is értelme) (kb. Bellman-Ford algoritmus) Vertex-Centric (a „csúcsok” számolnak, az „éleken” megy üzenet ) Példa: irányított gráf éllistája (SSSP A-ból) B nyilvánvalóan sosem küld üzenetet… A: {B: 6, C: 2, E: 2} B: - C: {B: 3, D: 1} D: {B: 1} E: {C: 1, F: 1} F: {D: 0} Algoritmus: mindenütt nyilvántartjuk az oda vezető legrövidebb út hosszát (init: végtelen) ha kisebb érték érkezik, átírjuk ha az érték változik, minden élen üzenet aki nem üzen, megállásra szavaz
21
BSP – SSSP Superstep: 1. SSSP: Single Source Shortest Path
nincs negatív összsúlyú kör (nincs is értelme) (kb. Bellman-Ford algoritmus) Vertex-Centric (a „csúcsok” számolnak, az „éleken” megy üzenet ) Példa: irányított gráf éllistája (SSSP A-ból) B nyilvánvalóan sosem küld üzenetet… A: {B: 6, C: 2, E: 2} B: - C: {B: 3, D: 1} D: {B: 1} E: {C: 1, F: 1} F: {D: 0} Superstep: 1. Kiinduló állapot: Végállapot: Fogadott üzenetek: Küldött üzenetek: Algoritmus: mindenütt nyilvántartjuk az oda vezető legrövidebb út hosszát (init: végtelen) ha kisebb érték érkezik, átírjuk ha az érték változik, minden élen üzenet aki nem üzen, megállásra szavaz A B C D E F ∞ A B C D E F ∞ A: {0} A: {B: 6, C: 2, E: 2}
22
BSP – SSSP Superstep: 2. SSSP: Single Source Shortest Path
nincs negatív összsúlyú kör (nincs is értelme) (kb. Bellman-Ford algoritmus) Vertex-Centric (a „csúcsok” számolnak, az „éleken” megy üzenet ) Példa: irányított gráf éllistája (SSSP A-ból) B nyilvánvalóan sosem küld üzenetet… A: {B: 6, C: 2, E: 2} B: - C: {B: 3, D: 1} D: {B: 1} E: {C: 1, F: 1} F: {D: 0} Superstep: 2. Kiinduló állapot: Végállapot: Fogadott üzenetek: Küldött üzenetek: A B C D E F ∞ A B C D E F 6 2 ∞ B: {6} C: {2} E: {2} C: {B: 5, D: 3} E: {C: 3, F: 3}
23
BSP – SSSP Superstep: 3. SSSP: Single Source Shortest Path
nincs negatív összsúlyú kör (nincs is értelme) (kb. Bellman-Ford algoritmus) Vertex-Centric (a „csúcsok” számolnak, az „éleken” megy üzenet ) Példa: irányított gráf éllistája (SSSP A-ból) B nyilvánvalóan sosem küld üzenetet… A: {B: 6, C: 2, E: 2} B: - C: {B: 3, D: 1} D: {B: 1} E: {C: 1, F: 1} F: {D: 0} Superstep: 3. Kiinduló állapot: Végállapot: Fogadott üzenetek: Küldött üzenetek: A B C D E F 6 2 ∞ A B C D E F 5 2 3 B: {5} C: {3} D: {3} F: {3} D: {B: 4} F: {D: 3}
24
BSP – SSSP Superstep: 4. SSSP: Single Source Shortest Path
nincs negatív összsúlyú kör (nincs is értelme) (kb. Bellman-Ford algoritmus) Vertex-Centric (a „csúcsok” számolnak, az „éleken” megy üzenet ) Példa: irányított gráf éllistája (SSSP A-ból) B nyilvánvalóan sosem küld üzenetet… A: {B: 6, C: 2, E: 2} B: - C: {B: 3, D: 1} D: {B: 1} E: {C: 1, F: 1} F: {D: 0} Superstep: 4. Kiinduló állapot: Végállapot: Fogadott üzenetek: Küldött üzenetek: A B C D E F 5 2 3 A B C D E F 4 2 3 mindenki megállásra szavazott… B: {4} D: {3}
25
SSSP – Pregel (C++)
26
PageRank – Pregel (C++)
27
GraphLab PowerGraph és GraphChi
28
GraphLab – PowerGraph C++ alapú open-source Gráfelemző szoftver
Másra is használható, de erre készült A memóriában fut TCP/IP hálózatot használ Vertex-centrikus, de nem BSP Szinkron módban hasonlít a BSP-re Aszinkron módban FIFO ütemezőt használ Hatványeloszlás… GAS-pattern
29
GraphLab – GraphChi Tulajdonképpen egy egygépes PowerGraph Aszinkron
Diszk-alapú Csúszóablakos hozzáférés Ritka eset, hogy nem sorfolytonosan olvassuk a diszket Mikor van rá szükség? Szeretnénk a PowerGraph eszköztárát használni Nincs PowerGraph-hoz klaszterünk Nem fér el a memóriában a gráf De egy-egy csúcs, és a hozzá tartozó információk elférnek
Hasonló előadás
© 2024 SlidePlayer.hu Inc.
All rights reserved.