Hidasi Balázs Gravity R&D BMETMIT ML@Bp, 212. február 2. Budapest
Tartalom Bevezetés Idősorok Idősorosztályozás Az alap ShiftTree algoritmus Felépítés Címkézés Tanulás Futási idő Modellek értelmezése Előnyök, hátrányok Kiegészítések Nyesés Többszörös modellezés Heurisztikák a tanulásban StreamShiftTree Futási idő csökkentés Konfidenciák Online tanulás Modellek kombinálása Néhány eredmény Merre tovább?
Idősorok Félig strukturált adatok Idő szerinti rendezettség Egy vagy több változó Idősorszerű adatok Több időtengely Jelen tárgyalásban: Egy idő tengely Egy vagy több változó Változók egyenletes mintavétele
Motiváció Olcsó szenzorok elterjedése Jelentős mennyiségű idősor jellegű adat Előtérbe kerülő alkalmazási területek Nyomkövetés Hangfelismerés Gesztusfelismerés Diagnosztika Stb.
Idősorokhoz kapcsolódó feladatok Előrejelzés Klaszterezés Szakaszok felismerése Osztályozás Stb.
Idősorok osztályozása Klasszikus osztályozás, idősor bementtel Ismert címkéjű példányokkal tanítás Tanítás Modell Ismeretlen címkéjű pontok felcímkézése Modell Osztályozás
Idősorosztályozó módszerek Klasszikus módszerek Változó(k) értékei függetlenek Nem használja ki a struktúrát Nem tudja kezelni az eltérő hosszakat Példány alapú módszerek (1NN (knn)) Valamilyen mérték használatával Nincs tanulás Nagyon lassú az osztályozás Indexelés Alacsony általánosító képesség Nem kell sok tanítóminta Rejtett Markov modellek (HMM) Kell ismeret a problémáról (nem domain független) Állapotátmenet mátrix, alap struktúra definiálása Tanuláshoz sok minta kell
Célok Modell alapú megoldás Nagyobb általánosító képesség Címkézés gyors Viszont: több tanítóminta kell Értelmezhető modell Leírás az osztályokról Bizalom az algoritmussal szemben Kellő pontosság Domain függetlenség Szakértői tudás beépíthetősége
Általános koncepció Nem idősor specifikus Idősor Más félig strukturált adat Gráfok Kurzor (szem) Dinamikus attribútumok Két kérdés Hova nézzünk? Mit nézzünk? Operátor családok EyeShifter Operator(s) (ESO) F(x) ConditionBuilder Operator(s) (CBO) Modell: egyszerű operátorok / szabályok sorozata Elágazások lehetségesek
Koncepció alkalmazása idősorokra Dinamikus attribútumok idősorokhoz EyeShifter Operator (ESO): Hova nézzünk? A szemet az időtengely mentén mozgatja Az idősor egy meghatározott pontjához Pl.: Következő lokális minimum, 1 egységgel előre, etc. Megj.: a hely függ(het) a teljes operátor sorozattól ConditionBuilder Operator (CBO): Mit nézzünk? F(x) Kiszámolja az attribútum értéket Pl.: Változó értéke, Ugrás hossza, etc. Súlyozott átlag Bináris döntési fa, mint alap modell Jól együttműködik a dinamikus attribútumok rendszerével A gyökértől a levelekig tartó operátor sorozatok
Egy csomópont felépítése Θ ESO j V E változón Θ CBO k V C változón CV Child L I CV < TV? H Child R
Néhány példa operátor ESO Következő lokális maximum Globális minimum Vissza 25 egységgel Legközelebbi szélsőértékre CBO Pontbeli érték Pont körüli súlyozott átlag Ugrás hossza Értékek átlaga az átugrott tartományban
Címkézés. szint ESOMax CBOSimple Felt: 2,28 1. szint Levél 1. szint ESONext(25) CBOSimple Felt:,21982 2. szint 2. szint Levél Levél 15
Címkézés. szint ESOMax CBOSimple Felt: 2,28 1. szint Levél 1. szint ESONext(25) CBOSimple Felt:,21982 2. szint 2. szint Levél Levél 15
Címkézés. szint ESOMax CBOSimple Felt: 2,28 Érték: 1,89136 1. szint Levél 1. szint ESONext(25) CBOSimple Felt:,21982 Érték: 2,15333 2. szint 2. szint Levél Levél Érték: 2,97557 15
Címkézés. szint ESOMax CBOSimple Felt: 2,28 Érték: 1,89136 1. szint Levél 1. szint ESONext(25) CBOSimple Felt:,21982 Érték: 2,15333 2. szint 2. szint Levél Levél Érték: 2,97557 15
Címkézés. szint ESOMax CBOSimple Felt: 2,28 1. szint Levél 1. szint ESONext(25) CBOSimple Felt:,21982 2. szint 2. szint Levél Levél 15
Címkézés. szint ESOMax CBOSimple Felt: 2,28 1. szint Levél 1. szint ESONext(25) CBOSimple Felt:,21982 2. szint 2. szint Levél Levél 15
Címkézés. szint ESOMax CBOSimple Felt: 2,28 1. szint Levél 1. szint ESONext(25) CBOSimple Felt:,21982 Érték:,953538 2. szint 2. szint Levél Levél Érték: 1,32432 15
Címkézés. szint ESOMax CBOSimple Felt: 2,28 1. szint Levél 1. szint ESONext(25) CBOSimple Felt:,21982 Érték:,953538 2. szint 2. szint Levél Levél Érték: 1,32432 15
Címkézés. szint ESOMax CBOSimple Felt: 2,28 1. szint Levél 1. szint ESONext(25) CBOSimple Felt:,21982 2. szint 2. szint Levél Levél 15
Címkézés. szint ESOMax CBOSimple Felt: 2,28 1. szint Levél 1. szint ESONext(25) CBOSimple Felt:,21982 2. szint 2. szint Levél Levél 15
Modell tanulás. Operátor halmazok definiálása (ESO, CBO).. Üres gyökér csomópont felvétele, az összes tanítóminta hozzárendelése a gyökérhez. Minden mintánál a szem beállítása az idősor elejére. Gyökér berakása a kifejtési sorba. 1. A következő üres csomópont vétele a kifejtési sorból. 1.A. Ha teljesül a leállási feltétel, az aktuális csomópont legyen levél. GOTO 1. 1.B. Egyébként a csomópontba kerülő tanítóminták két részre bontása a legjobban szeparáló dinamikus attribútum szerint. (Csomópont tanulás.) 2. A kiválasztott ESO szerint a szem beállítása a tanítómintákon. 3. Két gyermek csomópont létrehozása, a mintahalmazok hozzárendelése, csomópontok hozzá vétele a kifejtési sorhoz. GOTO 1.
Csomópont tanulás Kiindulási állapot Szem az idősor elején Előre definiált ESO halmaz Lehetséges szem pozíciók
F(x) Csomópont tanulás Előre definiált CBO halmaz Elérhető dinamikus attribútumok A lehetséges szem pozíciók körül Minden ESOCBO kombináció Választunk egy Attribútumot Küszöbértéket Ami minimalizálja a gyermek csomópontokban az osztályok eloszlásának entrópiáinak az összegét
Csomópont tanulás Legjobb vágás kiválasztása Szem mozgatása Elérhető pozíciók megváltoznak! Minták kétfelé osztása Gyermek csomópontok létrehozása Homogén csomópont esetén leállás
Csomópont tanulás Definiált operátorok Szemtologató ES ESONextMax Ugrás a következő lokális maximumhoz ESONext1 Ugrás 1 hellyel előre ESOMax CB CBOSimple CBSimple Ugrás a maximumhoz Pontbeli érték visszaadása ShiftTree Feltételállító F(x) Eddigi legjobb vágás a csomópontban ESO: ESONextMax ESONext1 ESOMax CBO: CBOSimple Feltétel:,739969,7739,332858,3993 1,2775 Döntő Jelen beállításnál a legjobb vágási feltétel: Jelen beállításnál a legjobb jóság érték: Eddigi legjobb jóságérték: Eddigi legjobb rendezés:,739969,7739,332858,369887,3993 2,48622,77183 1,16155 1,2775,98578,983634,85777,6131 1,32624 Inf,98578,983634,85777 Inf 2 M
Csomópont tanulás Definiált operátorok Szemtologató ES ESONextMax Ugrás a következő lokális maximumhoz ESONext1 Ugrás 1 hellyel előre ESOMax CB CBOSimple CBSimple Ugrás a maximumhoz Pontbeli érték visszaadása ShiftTree Feltételállító F(x) Eddigi legjobb vágás a csomópontban ESO: ESONextMax ESONext1 ESOMax CBO: CBOSimple Feltétel:,739969,7739,332858,3993 1,2775 Döntő Jelen beállításnál a legjobb vágási feltétel: Jelen beállításnál a legjobb jóság érték: Eddigi legjobb jóságérték: Eddigi legjobb rendezés:,739969,7739,332858,369887,3993 2,48622,77183 1,16155 1,2775,98578,983634,85777,6131 1,32624 Inf,98578,983634,85777 Inf 2 M
Csomópont tanulás Definiált operátorok Szemtologató ES ESONextMax Ugrás a következő lokális maximumhoz ESONext1 Ugrás 1 hellyel előre ESOMax CB CBOSimple CBSimple Ugrás a maximumhoz Pontbeli érték visszaadása ShiftTree Feltételállító F(x) Eddigi legjobb vágás a csomópontban ESO: ESONextMax ESONext1 ESOMax CBO: CBOSimple Feltétel:,739969,7739,332858,3993 1,2775 Döntő Jelen beállításnál a legjobb vágási feltétel: Jelen beállításnál a legjobb jóság érték: Eddigi legjobb jóságérték: Eddigi legjobb rendezés:,739969,7739,332858,369887,3993 2,48622,77183 1,16155 1,2775,98578,983634,85777,6131 1,32624 Inf,98578,983634,85777 Inf 2 M
Csomópont tanulás Definiált operátorok Szemtologató ES ESONextMax Ugrás a következő lokális maximumhoz ESONext1 Ugrás 1 hellyel előre ESOMax CB CBOSimple CBSimple Ugrás a maximumhoz Pontbeli érték visszaadása ShiftTree Feltételállító F(x) Eddigi legjobb vágás a csomópontban ESO: ESONextMax ESONext1 ESOMax CBO: CBOSimple Feltétel:,739969,7739,332858,3993 1,2775 Döntő Jelen beállításnál a legjobb vágási feltétel: Jelen beállításnál a legjobb jóság érték: Eddigi legjobb jóságérték: Eddigi legjobb rendezés:,739969,7739,332858,369887,3993 2,48622,77183 1,16155 1,2775,98578,983634,85777,6131 1,32624 Inf,98578,983634,85777 Inf 2 M
Csomópont tanulás Definiált operátorok Szemtologató ES ESONextMax Ugrás a következő lokális maximumhoz ESONext1 Ugrás 1 hellyel előre ESOMax CB CBOSimple CBSimple Ugrás a maximumhoz Pontbeli érték visszaadása ShiftTree Feltételállító F(x) Eddigi legjobb vágás a csomópontban ESO: ESONextMax ESONext1 ESOMax CBO: CBOSimple Feltétel:,739969,7739,332858,3993 1,2775 Döntő Jelen beállításnál a legjobb vágási feltétel: Jelen beállításnál a legjobb jóság érték: Eddigi legjobb jóságérték: Eddigi legjobb rendezés:,739969,7739,332858,369887,3993 2,48622,77183 1,16155 1,2775,98578,983634,85777,6131 1,32624 Inf,98578,983634,85777 Inf 2 M
Csomópont tanulás Definiált operátorok Szemtologató ES ESONextMax Ugrás a következő lokális maximumhoz ESONext1 Ugrás 1 hellyel előre ESOMax CB CBOSimple CBSimple Ugrás a maximumhoz Pontbeli érték visszaadása ShiftTree Feltételállító F(x) Eddigi legjobb vágás a csomópontban ESO: ESONextMax ESONext1 ESOMax CBO: CBOSimple Feltétel:,739969,7739,332858,3993 1,2775 Döntő Jelen beállításnál a legjobb vágási feltétel: Jelen beállításnál a legjobb jóság érték: Eddigi legjobb jóságérték: Eddigi legjobb rendezés:,739969,7739,332858,369887,3993 2,48622,77183 1,16155 1,2775,98578,983634,85777,6131 1,32624 Inf,98578,983634,85777 Inf 2 M
Csomópont tanulás Definiált operátorok Szemtologató ES ESONextMax Ugrás a következő lokális maximumhoz ESONext1 Ugrás 1 hellyel előre ESOMax CB CBOSimple CBSimple Ugrás a maximumhoz Pontbeli érték visszaadása ShiftTree Feltételállító F(x) Eddigi legjobb vágás a csomópontban ESO: ESONextMax ESONext1 ESOMax CBO: CBOSimple Feltétel:,739969,7739,332858,3993 1,2775 Döntő Jelen beállításnál a legjobb vágási feltétel: Jelen beállításnál a legjobb jóság érték: Eddigi legjobb jóságérték: Eddigi legjobb rendezés:,739969,7739,332858,369887,3993 2,48622,77183 1,16155 1,2775,98578,983634,85777,6131 1,32624 Inf,98578,983634,85777 Inf 2 M
Csomópont tanulás Definiált operátorok Szemtologató ES ESONextMax Ugrás a következő lokális maximumhoz ESONext1 Ugrás 1 hellyel előre ESOMax CB CBOSimple CBSimple Ugrás a maximumhoz Pontbeli érték visszaadása ShiftTree Feltételállító F(x) Eddigi legjobb vágás a csomópontban ESO: ESONextMax ESONext1 ESOMax CBO: CBOSimple Feltétel:,739969,7739,332858,3993 1,2775 Döntő Jelen beállításnál a legjobb vágási feltétel: Jelen beállításnál a legjobb jóság érték: Eddigi legjobb jóságérték: Eddigi legjobb rendezés:,739969,7739,369887,3993 2,48622,77183 1,16155 1,2775,983634,85777,6131 1,32624 Inf,98578,983634,85777 Inf 2 M
Csomópont tanulás Definiált operátorok Szemtologató ES ESONextMax Ugrás a következő lokális maximumhoz ESONext1 Ugrás 1 hellyel előre ESOMax CB CBOSimple CBSimple Ugrás a maximumhoz Pontbeli érték visszaadása ShiftTree Feltételállító F(x) Eddigi legjobb vágás a csomópontban ESO: ESONextMax ESONext1 ESOMax CBO: CBOSimple Feltétel:,739969,7739,332858,3993 1,2775 Döntő Jelen beállításnál a legjobb vágási feltétel: Jelen beállításnál a legjobb jóság érték: Eddigi legjobb jóságérték: Eddigi legjobb rendezés:,739969,7739,369887,3993 2,48622,77183 1,16155 1,2775,983634,85777,6131 1,32624 Inf,98578,983634,85777 Inf 2 M
Csomópont tanulás Definiált operátorok Szemtologató ES ESONextMax Ugrás a következő lokális maximumhoz ESONext1 Ugrás 1 hellyel előre ESOMax CB CBOSimple CBSimple Ugrás a maximumhoz Pontbeli érték visszaadása ShiftTree Feltételállító F(x) Eddigi legjobb vágás a csomópontban ESO: ESONextMax ESONext1 ESOMax CBO: CBOSimple Feltétel:,739969,7739,332858,3993 1,2775 Döntő Jelen beállításnál a legjobb vágási feltétel: Jelen beállításnál a legjobb jóság érték: Eddigi legjobb jóságérték: Eddigi legjobb rendezés:,739969,7739,369887,3993 2,48622,77183 1,16155 1,2775,983634,85777,6131 1,32624 Inf,98578,983634,85777 Inf 2 M
Csomópont tanulás Definiált operátorok Szemtologató ES ESONextMax Ugrás a következő lokális maximumhoz ESONext1 Ugrás 1 hellyel előre ESOMax CB CBOSimple CBSimple Ugrás a maximumhoz Pontbeli érték visszaadása ShiftTree Feltételállító F(x) Eddigi legjobb vágás a csomópontban ESO: ESONextMax ESONext1 ESOMax CBO: CBOSimple Feltétel:,739969,7739,332858,3993 1,2775 Döntő Jelen beállításnál a legjobb vágási feltétel: Jelen beállításnál a legjobb jóság érték: Eddigi legjobb jóságérték: Eddigi legjobb rendezés:,739969,7739,369887,3993 2,48622,77183 1,2775,983634,85777,6131 Inf,983634,85777 Inf 2 M
Csomópont tanulás Definiált operátorok Szemtologató ES ESONextMax Ugrás a következő lokális maximumhoz ESONext1 Ugrás 1 hellyel előre ESOMax CB CBOSimple CBSimple Ugrás a maximumhoz Pontbeli érték visszaadása ShiftTree Feltételállító F(x) Eddigi legjobb vágás a csomópontban ESO: ESONextMax ESONext1 ESOMax CBO: CBOSimple Feltétel:,739969,7739,3993 1,2775 Döntő Jelen beállításnál a legjobb vágási feltétel: Jelen beállításnál a legjobb jóság érték: Eddigi legjobb jóságérték: Eddigi legjobb rendezés:,739969,7739,369887,3993 2,48622,77183 1,2775,983634,85777,6131 Inf,983634,85777 Inf 2 M
Csomópont tanulás Definiált operátorok Szemtologató ES ESONextMax Ugrás a következő lokális maximumhoz ESONext1 Ugrás 1 hellyel előre ESOMax CB CBOSimple CBSimple Ugrás a maximumhoz Pontbeli érték visszaadása ShiftTree Feltételállító F(x) Eddigi legjobb vágás a csomópontban ESO: ESONextMax ESONext1 CBO: CBOSimple Feltétel:,739969,7739,3993 Döntő Jelen beállításnál a legjobb vágási feltétel: Jelen beállításnál a legjobb jóság érték: Eddigi legjobb jóságérték: Eddigi legjobb rendezés:,739969,7739,369887,3993 2,48622,77183 1,2775,983634,85777,6131 Inf,983634,85777 Inf 2 M
Csomópont tanulás Definiált operátorok Szemtologató ES ESONextMax Ugrás a következő lokális maximumhoz ESONext1 Ugrás 1 hellyel előre ESOMax CB CBOSimple CBSimple Ugrás a maximumhoz Pontbeli érték visszaadása ShiftTree Feltételállító F(x) Eddigi legjobb vágás a csomópontban ESO: ESONextMax ESONext1 CBO: CBOSimple Feltétel:,739969,7739,3993 Döntő Jelen beállításnál a legjobb vágási feltétel: Jelen beállításnál a legjobb jóság érték: Eddigi legjobb jóságérték: Eddigi legjobb rendezés:,739969,7739,369887,3993 2,48622,77183,85777,6131 Inf,85777 Inf 2 M
Csomópont tanulás Definiált operátorok Szemtologató ES ESONextMax Ugrás a következő lokális maximumhoz ESONext1 Ugrás 1 hellyel előre ESOMax CB CBOSimple CBSimple Ugrás a maximumhoz Pontbeli érték visszaadása ShiftTree Feltételállító F(x) Eddigi legjobb vágás a csomópontban ESO: ESONextMax ESONext1 CBO: CBOSimple Feltétel:,739969,7739,3993 Döntő Jelen beállításnál a legjobb vágási feltétel: Jelen beállításnál a legjobb jóság érték: Eddigi legjobb jóságérték: Eddigi legjobb rendezés:,739969,7739,369887,3993 2,48622,77183,85777,6131 Inf,85777 Inf 2 M
Csomópont tanulás Definiált operátorok Szemtologató ES ESONextMax Ugrás a következő lokális maximumhoz ESONext1 Ugrás 1 hellyel előre ESOMax CB CBOSimple CBSimple Ugrás a maximumhoz Pontbeli érték visszaadása ShiftTree Feltételállító F(x) Eddigi legjobb vágás a csomópontban ESO: ESONextMax ESONext1 CBO: CBOSimple Feltétel:,739969,7739,3993 Döntő Jelen beállításnál a legjobb vágási feltétel: Jelen beállításnál a legjobb jóság érték: Eddigi legjobb jóságérték: Eddigi legjobb rendezés:,739969,7739,369887,3993 2,48622,77183,85777,6131 Inf,85777 Inf 2 M
Csomópont tanulás Definiált operátorok Szemtologató ES ESONextMax Ugrás a következő lokális maximumhoz ESONext1 Ugrás 1 hellyel előre ESOMax CB CBOSimple CBSimple Ugrás a maximumhoz Pontbeli érték visszaadása ShiftTree Feltételállító F(x) Eddigi legjobb vágás a csomópontban ESO: ESONextMax ESONext1 CBO: CBOSimple Feltétel:,739969,7739,3993 Döntő Jelen beállításnál a legjobb vágási feltétel: Jelen beállításnál a legjobb jóság érték: Eddigi legjobb jóságérték: Eddigi legjobb rendezés:,739969,7739,369887,3993 2,48622,77183,85777,6131 Inf,85777 Inf 2 M
Csomópont tanulás Definiált operátorok Szemtologató ES ESONextMax Ugrás a következő lokális maximumhoz ESONext1 Ugrás 1 hellyel előre ESOMax CB CBOSimple CBSimple Ugrás a maximumhoz Pontbeli érték visszaadása ShiftTree Feltételállító F(x) Eddigi legjobb vágás a csomópontban ESO: ESONextMax ESONext1 CBO: CBOSimple Feltétel:,739969,7739,3993 Döntő Jelen beállításnál a legjobb vágási feltétel: Jelen beállításnál a legjobb jóság érték: Eddigi legjobb jóságérték: Eddigi legjobb rendezés:,739969,7739,369887,3993 2,48622,77183,85777,6131 Inf,85777 Inf 2 M
Csomópont tanulás Definiált operátorok Szemtologató ES ESONextMax Ugrás a következő lokális maximumhoz ESONext1 Ugrás 1 hellyel előre ESOMax CB CBOSimple CBSimple Ugrás a maximumhoz Pontbeli érték visszaadása ShiftTree Feltételállító F(x) Eddigi legjobb vágás a csomópontban ESO: ESONextMax ESONext1 CBO: CBOSimple Feltétel:,739969,7739,3993 Döntő Jelen beállításnál a legjobb vágási feltétel: Jelen beállításnál a legjobb jóság érték: Eddigi legjobb jóságérték: Eddigi legjobb rendezés:,739969,7739,369887,3993 2,48622,77183,85777,6131 Inf,85777 Inf 2 M
Csomópont tanulás Definiált operátorok Szemtologató ES ESONextMax Ugrás a következő lokális maximumhoz ESONext1 Ugrás 1 hellyel előre ESOMax CB CBOSimple CBSimple Ugrás a maximumhoz Pontbeli érték visszaadása ShiftTree Feltételállító F(x) Eddigi legjobb vágás a csomópontban ESO: ESONextMax ESONext1 CBO: CBOSimple Feltétel:,739969,7739,3993 Döntő Jelen beállításnál a legjobb vágási feltétel: Jelen beállításnál a legjobb jóság érték: Eddigi legjobb jóságérték: Eddigi legjobb rendezés:,739969,7739,369887,3993 2,48622,77183,85777,6131 Inf,85777 Inf 2 M
Csomópont tanulás Definiált operátorok Szemtologató ES ESONextMax Ugrás a következő lokális maximumhoz ESONext1 Ugrás 1 hellyel előre ESOMax CB CBOSimple CBSimple Ugrás a maximumhoz Pontbeli érték visszaadása ShiftTree Feltételállító F(x) Döntő M Eddigi legjobb vágás a csomópontban ESO: ESONextMax ESONext1 CBO: CBOSimple Feltétel:,739969,7739,3993 Jelen beállításnál a legjobb vágási feltétel: Jelen beállításnál a legjobb jóság érték: Eddigi legjobb jóságérték: Eddigi legjobb rendezés: Inf,7739,369887,3993 2,48622,77183,6131 Inf 2
Csomópont tanulás Definiált operátorok Szemtologató ES ESONextMax Ugrás a következő lokális maximumhoz ESONext1 Ugrás 1 hellyel előre ESOMax CB CBOSimple CBSimple Ugrás a maximumhoz Pontbeli érték visszaadása ShiftTree Feltételállító F(x) Döntő M Eddigi legjobb vágás a csomópontban ESO: ESONextMax ESONext1 CBO: CBOSimple Feltétel:,7739,3993 Jelen beállításnál a legjobb vágási feltétel: Jelen beállításnál a legjobb jóság érték: Eddigi legjobb jóságérték: Eddigi legjobb rendezés: Inf,7739,369887,3993 2,48622,77183,6131 Inf 2
Csomópont tanulás Definiált operátorok Szemtologató ES ESONextMax Ugrás a következő lokális maximumhoz ESONext1 Ugrás 1 hellyel előre ESOMax CB CBOSimple CBSimple Ugrás a maximumhoz Pontbeli érték visszaadása ShiftTree Feltételállító F(x) Döntő M Eddigi legjobb vágás a csomópontban ESO: ESONextMax CBO: CBOSimple Feltétel:,7739 Jelen beállításnál a legjobb vágási feltétel: Jelen beállításnál a legjobb jóság érték: Eddigi legjobb jóságérték: Eddigi legjobb rendezés: Inf,7739,369887,3993 2,48622,77183,6131 Inf 2
Csomópont tanulás Definiált operátorok Szemtologató ES ESONextMax Ugrás a következő lokális maximumhoz ESONext1 Ugrás 1 hellyel előre ESOMax CB CBOSimple CBSimple Ugrás a maximumhoz Pontbeli érték visszaadása ShiftTree Feltételállító F(x) Döntő M Eddigi legjobb vágás a csomópontban ESO: ESONextMax CBO: CBOSimple Feltétel:,7739 Jelen beállításnál a legjobb vágási feltétel: Jelen beállításnál a legjobb jóság érték: Eddigi legjobb jóságérték: Eddigi legjobb rendezés: Inf,7739,369887 2,48622 Inf 2
Csomópont tanulás Definiált operátorok Szemtologató ES ESONextMax Ugrás a következő lokális maximumhoz ESONext1 Ugrás 1 hellyel előre ESOMax CB CBOSimple CBSimple Ugrás a maximumhoz Pontbeli érték visszaadása ShiftTree Feltételállító F(x) Döntő M Eddigi legjobb vágás a csomópontban ESO: ESONextMax CBO: CBOSimple Feltétel:,7739 Jelen beállításnál a legjobb vágási feltétel: Jelen beállításnál a legjobb jóság érték: Eddigi legjobb jóságérték: Eddigi legjobb rendezés: Inf,7739,369887 2,48622 Inf 2
Csomópont tanulás Definiált operátorok Szemtologató ES ESONextMax Ugrás a következő lokális maximumhoz ESONext1 Ugrás 1 hellyel előre ESOMax CB CBOSimple CBSimple Ugrás a maximumhoz Pontbeli érték visszaadása ShiftTree Feltételállító F(x) Döntő M Eddigi legjobb vágás a csomópontban ESO: ESONextMax CBO: CBOSimple Feltétel:,7739 Jelen beállításnál a legjobb vágási feltétel: Jelen beállításnál a legjobb jóság érték: Eddigi legjobb jóságérték: Eddigi legjobb rendezés: Inf,7739,369887 2,48622 Inf 2
Csomópont tanulás Definiált operátorok Szemtologató ES ESONextMax Ugrás a következő lokális maximumhoz ESONext1 Ugrás 1 hellyel előre ESOMax CB CBOSimple CBSimple Ugrás a maximumhoz Pontbeli érték visszaadása ShiftTree Feltételállító F(x) Döntő M Eddigi legjobb vágás a csomópontban ESO: ESONextMax CBO: CBOSimple Feltétel:,7739 Jelen beállításnál a legjobb vágási feltétel: Jelen beállításnál a legjobb jóság érték: Eddigi legjobb jóságérték: Eddigi legjobb rendezés:,7739,369887 2,48622 2
Csomópont tanulás Definiált operátorok Szemtologató ES ESONextMax Ugrás a következő lokális maximumhoz ESONext1 Ugrás 1 hellyel előre ESOMax CB CBOSimple CBSimple Ugrás a maximumhoz Pontbeli érték visszaadása ShiftTree Feltételállító F(x) Döntő M Eddigi legjobb vágás a csomópontban ESO: ESONextMax CBO: CBOSimple Feltétel:,7739 Jelen beállításnál a legjobb vágási feltétel: Jelen beállításnál a legjobb jóság érték: Eddigi legjobb jóságérték: Eddigi legjobb rendezés:,7739,369887 2,48622 2
Csomópont tanulás Definiált operátorok Szemtologató ES ESONextMax Ugrás a következő lokális maximumhoz ESONext1 Ugrás 1 hellyel előre ESOMax CB CBOSimple CBSimple Ugrás a maximumhoz Pontbeli érték visszaadása ShiftTree Feltételállító F(x) Döntő M Eddigi legjobb vágás a csomópontban ESO: CBO: Feltétel: Jelen beállításnál a legjobb vágási feltétel: Jelen beállításnál a legjobb jóság érték: Eddigi legjobb jóságérték: Eddigi legjobb rendezés:,7739,369887 2,48622 2
Futási idő elmélet Címkézés: Operátorfüggően lineáris az idősor hosszában Lineáris a modell szintjeinek számában Tanítás: Csomópontonként A rendezés miatt N*logN a csomópont mintáinak számában Operátorfüggően lineáris az idősor hosszában Lehetséges dinamikus attribútumok számában lineáris függés Összességében Függ a kialakult struktúrától Függ a tanítópontok aktuális eloszlásától
Futási idő gyakorlat Címkézés: nagyon gyors Tanítás: viszonylag gyors A hossztól való függés nem mutatható ki Nagyban függ a probléma nehézségétől Függ a definiált operátoroktól Lineárisan skálázódik Idő (s) 2 18 16 14 12 1 8 6 4 2 Tanítóhalmaz mérete Min of 2 Max of 2 Mean of 2
Modell értelmezés Operátor függő! Az adatok megértésében is segít Pl.: CBF adatsor 3 osztály: Cylinder, Bell, Funnel Cylinder a globális maximumban különbözik a másik kettőtől Znormalizált adatsor Bell és Funnel közti különbség: vissza 25 egységet + zajszűrés (súlyozott átlag) Melyik oldalon van a csúcs
Előnyök Modell alapúság előnyei Értelmezhető Domain független Szakértői tudás bevihető az operátorokon keresztül
Hátrányok Alap operátorkészlet (és paramétereik) definiálása nem triviális Túl sok operátor esetén belassulhat a tanulás Modell alapúság hátrányai
Többváltozós idősorok kezelése Az alap algoritmus működik többváltozóson Változók értékeiből származtathatunk CBE (Condition Builder Extension) A CBOk által számolt származtatott értékeket kombinálja Pl.: Átlagolás VVO (Virtual Variable operátor) Az egyes változókból származtat virtuális változókat Pl.: 2. és 3. változó különbsége
Nyesés Utó vagy előnyesés Bizonyos ágak levágása Kipróbált módszerek: Szignifikancia alapú Komplexitáshibaarány Egyszerű nyesés A validációs halmazra legjobban illeszkedő részfa Szintszám limit Csomópontszám limit Mintaszám limit Bármilyen nyesés csak ront a hatékonyságon
Többszörös modellezés (MM) Több optimális attribútum esetén Az összeset kiválasztjuk, az összes szerint vágunk Többszörös fát építünk De csak ott sokszorozunk, ahol kell, nem az egész fát Címkézés Többségi szavazás Vagy legjobb illeszkedés kiválasztása validációs halmazzal Lassú, memóriaigényes Korlátozás kell a maximális elágazás és/vagy modellszámra Javulás az eredményekben, de rossz a tradeoff Az 1. optimális (25öt előre) 1. szint ESOPrev(25) CBOSimple Feltétel2 1. szint ESONext(25) CBOSimple Feltétel1 2. szint 2. szint Levél Levél Ez is optimális (25öt vissza) 2. szint 2. szint Levél Levél
Heurisztikák a tanításban Vágási határtól legyenek a az attribútum értékek minél távolabb Operátorok eltérő működési tartománya Normalizálás Átlagolás a negatív példák miatt nem jó SM+ A határhoz legközelebbi pontok távolsága SM++ Az összes pont távolsága a határtól SM3+ SM+ és SM++ aránya Az MMnél jobb eredmények SM+ a leghatékonyabb Nem jelentős a számítási igény növekedés Kombinálható az MMmel Mely vágásokat dobjuk el MM használata itt már nem jelent javulást a4 a5 a3 a2 a1 A B H = A / B a8 a6a 7 a9 B a1 H = SUM(ai) / B
ShiftForest: Modellek kombinálása Több modell kombinálása a pontosság növelése végett Értelmezhetőség általában elveszik Kivéve, ha értelmes a modellek metszete Boosting Iteratív módszer: Miden tanítómintához súly rendelése Tanítás Tanítóhalmazon (súlyozott) hiba mérése Modellsúly kiszámítása Hibásan osztályozott minták súlyának növelése Problémák: Kell nyesés, különben a tanítási hiba nulla Kisebb adatsorokon nem feltétlenül működik (tökéletesen illeszkedő fa) XV módszer Véletlenszerű felosztása a tanítóhalmaznak Első részen tanítás Másodikon pontosság mérés A modell súly a becsült pontosság érték
Futási idő csökkentése Tanítás során attribútum választás Célfüggvény minimalizálása Célfüggvény tulajdonságai Adott rendezés mellett minimumok csak az egybefüggő intervallumok szélén lehetnek Minimum előre meghatározható Nem léphetünk ki minimumnál, de Ha eléri, akkor csak 22 helyet kell vizsgálni a további rendezéseknél Jelentősen csökken a célfüggvény értékének meghatározásának száma Futási idő átlagosan 22,33%kal csökkent Pl.: FordB 3636 tanítóminta: 214,94s 173,52s (19,27%) Pl.: CBF 3 tanítóminta:,246s,145s (41,18%) Pl.: Beef 3 tanítóminta,574s,517s (9,9%) NI Célfüggvény érték
Konfidenciák Mennyire biztos a modellünk a kimenetben Levél (csomópont) konfidencia Pl. többségi osztály aránya a levélben (nyesés!) Útvonal konfidencia Osztályozási útvonalon a konfidenciák (súlyozott) összegzése Egyfajta dinamikus nyesési eljárás
Online tanulás Konfidenciák bevezetésével válik lehetővé Teljes modellépítés helyett a modell kisméretű megváltoztatása Konfidencia frissítés az egyes csomópontokban felhasználói visszajelzés alapján Útvonal konfidencia, mint dinamikus nyesés Arányok változásával változik a nyesés Pontosság 75.% 74.% 73.% 72.% 71.% 7.% 69.% 68.% 67.% 66.% 1 2 3 4 5 6 7 8 Iterációszám
StreamShiftTree Egy érdekes kiegészítés adatfolyamokban bizonyos jelek felismerésére Idősorokon tanított ShiftTree modellt használ a felismerésre Időablakos megoldás A stream változójának értékei alapján frissül, hogy éppen hol vagyunk a fában Visszafele ugrásokat nem támogatja Elkeni a feldolgozáshoz szükséges számítási igényt Főbb problémák Alapjel elkülönítése az egyes osztályoktól
StreamShiftTreepélda Attribútum előállítása Ugorj a következő lokális maximumra (ESONextMax(1)), és vedd a 2 sugarú környezet átlagát (CBOAVG(2)) Collector 5 hosszú FIFO sor 21 23 43 Activator 2 3 Beérkezett érték: 4 23 1 Előző érték: 42 31 Előző előtti érték: 23 1 azt nézi, hogy az előző beérkezett érték lokális maximume Bemenet:
StreamShiftTreepélda Attribútum előállítása Ugorj a következő lokális maximumra (ESONextMax(1)), és vedd a 2 sugarú környezet átlagát (CBOAVG(2)) Collector 5 hosszú FIFO sor 21 23 43 Activator 2 3 Beérkezett érték: 4 23 1 Előző érték: 42 31 Előző előtti érték: 23 1 azt nézi, hogy az előző beérkezett érték lokális maximume Bemenet:
StreamShiftTreepélda Attribútum előállítása Ugorj a következő lokális maximumra (ESONextMax(1)), és vedd a 2 sugarú környezet átlagát (CBOAVG(2)) Collector 5 hosszú FIFO sor 21 23 43 Activator 2 3 Beérkezett érték: 4 23 Előző érték: 42 31 Előző előtti érték: 23 1 azt nézi, hogy az előző beérkezett érték lokális maximume Bemenet:
StreamShiftTreepélda Attribútum előállítása Ugorj a következő lokális maximumra (ESONextMax(1)), és vedd a 2 sugarú környezet átlagát (CBOAVG(2)) Collector 5 hosszú FIFO sor 21 23 43 Activator 2 3 Beérkezett érték: 42 3 Előző érték: 42 3 Előző előtti érték: 23 1 azt nézi, hogy az előző beérkezett érték lokális maximume Bemenet:
StreamShiftTreepélda Attribútum előállítása Ugorj a következő lokális maximumra (ESONextMax(1)), és vedd a 2 sugarú környezet átlagát (CBOAVG(2)) Collector 5 hosszú FIFO sor 21 23 43 Activator 2 3 Beérkezett érték: 42 Előző érték: 43 Előző előtti érték: 23 azt nézi, hogy az előző beérkezett érték lokális maximume Bemenet:
StreamShiftTreepélda Attribútum előállítása Ugorj a következő lokális maximumra (ESONextMax(1)), és vedd a 2 sugarú környezet átlagát (CBOAVG(2)) Collector 5 hosszú FIFO sor 2 3 4 Activator 2 3 Beérkezett érték: 2 Előző érték: 4 Előző előtti érték: 3 azt nézi, hogy az előző beérkezett érték lokális maximume Bemenet:
StreamShiftTreepélda Attribútum előállítása Ugorj a következő lokális maximumra (ESONextMax(1)), és vedd a 2 sugarú környezet átlagát (CBOAVG(2)) Collector 5 hosszú FIFO sor 2 3 4 Activator 2 3 Beérkezett érték: 2 Aktiválás Előző érték: 4 Előző előtti érték: 3 azt nézi, hogy az előző beérkezett érték lokális maximume Bemenet:
StreamShiftTreepélda Attribútum előállítása Ugorj a következő lokális maximumra (ESONextMax(1)), és vedd a 2 sugarú környezet átlagát (CBOAVG(2)) Collector 5 hosszú FIFO sor 2 3 4 Activator 2 3 Beérkezett érték: 2 Előző érték: 4 Előző előtti érték: 3 azt nézi, hogy az előző beérkezett érték lokális maximume Bemenet:
StreamShiftTreepélda Attribútum előállítása Ugorj a következő lokális maximumra (ESONextMax(1)), és vedd a 2 sugarú környezet átlagát (CBOAVG(2)) Collector 5 hosszú FIFO sor 2 3 4 Activator 2 3 Beérkezett érték: 2 Előző érték: 4 Előző előtti érték: 3 azt nézi, hogy az előző beérkezett érték lokális maximume Bemenet:
StreamShiftTreepélda Attribútum előállítása Ugorj a következő lokális maximumra (ESONextMax(1)), és vedd a 2 sugarú környezet átlagát (CBOAVG(2)) Collector 5 hosszú FIFO sor 2 3 4 Activator Beérkezett érték: 2 Attribútum érték kiszámítása 2 3 Eredmény: 2,8 Előző érték: 4 Előző előtti érték: 3 azt nézi, hogy az előző beérkezett érték lokális maximume Bemenet:
Teszteléshez használt adatok UCR Time Series Database 2 adatsor Különböző területekről A nagy részük kis méretű Time Series Classification Challenge 27 2 adatsor Különböző területekről Csak vak tesztekhez Ford Classification Challenge 28 2 nagy méretű adatsor Többváltozós adatok EEG jelek Hangfelismerés Gesztusfelismerés
ShiftTreeeredmények Nincs optimalizálás Alap operátorkészlet használata minden problémánál Ford és UCR adatok Kisebb adatsorokon nem hatékony 1.% 9.% 8.% 7.% 6.% 5.% 4.% 3.% 2.% 1.% 74.67% 81.29% 73.33% 92.94% 94.97% 96.52% 64.93% 69.11% 83.19%.% Smaller UCR sets (15) Larger UCR sets (5) Ford (largest) sets (2) 1NN Eucledian 1NN DTW ShiftTree
ShiftForesteredmények Jelentős növekedés az alap algoritmushoz képest 1.% 9.% 8.% 7.% 74.67% 81.29% 73.33% 85.93% 92.94% 94.97% 96.52% 97.77% 64.93% 69.11% 88.87% 83.19% 6.% 5.% 4.% 3.% 2.% 1.%.% Smaller UCR sets (15) Larger UCR sets (5) Ford (largest) sets (2) 1NN Eucledian 1NN DTW ShiftTree ShiftForest
Vak tesztek Time Series Challenge 27 2 adatsorán Mintha részt vett volna a versenyben Egyegy futtatás a ShiftTreevel és a ShiftForesttel Pontszám a helyezés alapján egyegy problémánál Eredmény: 13 beadott megoldással (kombinált módszerek) összevetve ShiftTree 8., ShiftForest 6. helyen De az első helyek száma a ShiftTreenél és a ShiftForestnél a legmagasabb A kisebb adatsorokon teljesítenek rosszul
Algoritmus megbízhatósága 1.% Yoga 8.% Pontosság 6.% 4.% 2.%.% % 1% 2% 3% 4% 5% 6% 7% 8% 9% 1% Becsült pontosság Min Tanítóhalmaz mérete Becsült pontosság Max Becsült pontosság Átlag Tényleges pontosság Min Tényleges pontosság Max Tényleges pontosság Átlag 1.% 8.% FordB Pontosság 6.% 4.% 2.%.% % 1% 2% 3% 4% 5% 6% 7% 8% 9% 1% Tanítóhalmaz mérete Becsült pontosság Min Becsült pontosság Max Becsült pontosság Átlag Tényleges pontosság Min Tényleges pontosság Max Tényleges pontosság Átlag
A ShiftTreetörténete Egyetemi feladat + hobbi projekt 28 (februártól) Május: első verzió és néhány teszt Október: alap modell, kiterjedt tesztek December: MM, nyesés, többváltozós 29 Alkalmazási kísérletek (EEG adatokon) Stream kiterjesztés kidolgozása Egyéb kísérletek Vak tesztek 21 Heurisztikus tanítás ShiftForest Kísérleti módszerek Új, fejlettebb implementáció Futási idő csökkentő eljárások 211 (áprilisig) Konfidenciák Online tanulás
Nyitott kérdések Hogyan lehet tovább javítani a tanításon? Inner boosting Súlyozott MM Valószínűségi modellek MMnél Hogyan lehet egy adatsorhoz jó operátorkészletet definiálni?
Kutatási irányok Tanítás fejlesztése Az alapelv kiterjesztése Gráfok Többdimenziós idősorok (képek, videók) Más félig strukturált adatok Más modell használata Neurális háló szerű megoldás Alkalmazás
Köszönöm a figyelmet! További ShiftTreevel kapcsolatos kutatási anyagok az oldalamon: http://www.hidasi.eu