Adatbányászati módszerek alkalmazása a Robert Bosch számára Készítette: Tóth Zsolt Neptun kód: F23Y80 Témavezet : Dr. Kovács László Ipari konzulens: Gróf Richárd Miskolci Egyetem, 2010
1. fejezet Bevezetés 1.1. A dolgozat célja A dolgozatban a Robert Bosch cég hatvani üzemében alkalmazott optikai ellen rz berendezésekb l kapott adatok feldolgozására egy olyan módszert dolgozok ki, amelynek célja a gépek esetleges meghibásodásának el re jelzése. A dolgozatban bemutatom az el rejelzések készítéséhez alkalmazott módszereket. A dolgozat elején röviden áttekintem az elektronikai eszközök gyártásának folyamatát, az AOI 1 szerepét a gyártásban, az AOI-ASC 2 -t, valamint az implementált monitor alkalmazást. A problémakör ismertetése után bemutatom az alkalmazni kívánt matematikai módszereket. Részletesen elemzem a felhasznált statisztikai és adatbányászati módszerekkel az adathalmazt. A kapott eredmények megfelel vizsgálatához a mért adatokon kívül teszt adatok generálása is szükséges. A dolgozatban bemutatom a teszt adatok generálására szolgáló algoritmusokat. A teszt adatok segítségével alátámasztom az egyes algoritmusok helyességét. A dolgozat következ részében ismertetem a probléma megoldására kidolgozott eljárásokat. Elemzem az egyes módszereket és az elvárt, illetve a kapott eredményeket. A kapott eredmények mellet ismertetem az eredmény zikai jelentését is, bemutatom a levonható következtetéseket. A dolgozat végén összefoglalom az elért eredményeket. Összehasonlítom az elvárásokat és az elért eredményeket. Bemutatom a f alkalmazásokat, végül ismertetem a továbbfejlesztési lehet ségeket. 1 Automated Optical Inspection 2 AOI Safety Check 2
1.2. A RBHH bemutatása Az RBHH a Bosch csoport tagja. A Bosch csoport a világ 150 országában jelen van. Jelent s szerepl k az auto-elektronika, ipari kommunikáció és számos egyéb területen. 1.2.1. Az RBHH hatvani üzeme A hatvani üzemet 1998-ban alapították és napjainkra az autó-elektronikai gyártás egyik legnagyobb központjává vált. Jelenleg négy csarnokban folyik a gyártás és a gyárban egyszerre közel 1800 ember dolgozik. A f termékek: vezérl elektronikák, ABS, automataváltó-vezérl, sziréna, m szerfal, légzsák-vezérl, stb. A hatvani Bosch-ban gyártott termékeket a világ minden táján értékesítik és több mint 15 millió gépjárm be szerelték már be. Elektronikai gyártás folyamata A hatvani üzemben f ként elektronikai eszközök ( autó elektronika: ABS vezérl, m szerfal, váltó ) gyártásával foglalkoznak. Az elektronikai eszközök gyártása során az egyes áramköri elemeket a megfelel helyen helyezik el a panelen. Egy panel pedig több NYÁK 3 -ot is tartalmazhat. A gyártás során a termék számos fázison megy keresztül és számos különböz ellen rzési pont van. A gyártás folyamatát röviden a következ pontokba lehet összefoglalni: 1. Paszta nyomtatás 2. Felület szerelt elemek ( SM 4 ) beültetése 3. Újraömlesztéses hegesztés 4. Furat szerelt ( TH 5 ) elemek beültetése 5. Végs ellen rzések, min ség ellen rzés 6. Kész termék csomagolása A gyártás egyes lépései között számos különböz ellen rzést alkalmaznak. Ezek közül a jelent sebbek: 3 Nyomtatott Áramköri Lap 4 Surface Mounted 5 Through Hole 3
JTAG: A teszt során már a kész alkatrészt t k segítségével tesztelik. A t k az alkatrész egyes pontjain feszültséget ad, más pontokon pedig mér. A mért értéknek az elvárt tartományba kell esnie. Funkcionális teszt: A teszt során már a kész alkatrészt egy berendezés segítségével úgy tesztelik, mintha már a m köd rendszerben lenne, és a bemeneti teszt adatokra a vár eredményt kell kapnia, ha ett l eltér t tapasztal akkor a termék selejtes. AXI 6 : forrasztások ellen rzésére lehet alkalmazni. AOI: A pasztázás, a beültetés, és az újraömlesztéses forrasztás után lehet alkalmazni. 1.3. AOI és AOI-ASC Az elektronikai gyártás során, viszonylag hamar alkalmazott ellen rz eszköz az AOI berendezés. Az AOI berendezést a pasztázás után, a beültetés után, valamint az újraümlesztéses hegesztés után szokták alkalmazni. Mivel az AOI a jelen technológiák mellett is igen lassú és gyakran a gyártás sz k keresztmetszetét adja ezért el fordul, hogy csak forrasztás után vagy egyáltalán nem alkalmazzák. 1.3.1. AOI Az AOI berendezés egy számítógépet és egy vagy több kamerát tartalmaz, valamint a kamerát mozgató mechanikát. A számítógép vezérli a kamerát, vagy kamerákat és képeket készít. Az egyes képeket algoritmikus úton elemzi és a hibásnak vélt részeket megjeleníti a monitoron. Az operátor eldönti a kép alapján, hogy valós vagy pszeudo hibát jelzett a gép, szükség esetén nagyítóval megvizsgálja a jelzett területet. Az kamera egy fejben helyezkedik el, a fej a kamerát és a hozzá tartozó LED sort tartalmazza. A legjelent sebb AOI berendezést gyártó cég a Viscom. A dolgozatban az üzemben használt Viscom gépeken végzett adatokat használtam fel. 1.3.2. AOI-ASC Az AOI-ASC lényeg, hogy mint minden mér m szer az AOI berendezés is hitelesítést, ellen rzést igényel. Az AOI-ASC egy olyan program, amit a gép bizonyos id közönként lefuttat. A program az eredményét egy napló fájlba 6 Automated X-ray Inspection 4
adja meg, minden nap egy napló fájl keletkezik. Ez az állomány tartalmazza, az egyes mérések nevét, a kamerákat és a mért értékeket. Az egyes mérések hat különböz ellen rzést hajtanak végre, ezek közül a dolgozatban, csak a szürkeségi vizsgálat eredményeivel foglalkozom ( GVC 7 ), a többi ellen rzés eredménye vagy megfelelt vagy nem megfelelt lehet. 1.4. AOI-ASC Monitoring Nyári gyakorlatom során a fent említett napló fájlokat feldolgozó alkalmazás fejlesztés volt a feladatom. Ennek a munkának az elvégzése során merült fel az igény, az adatbányászati módszerek alkalmazására. Az AOI-ASC Monitoring egy olyan program rendszer melynek segítségével a gépekr l a napló fájlokat össze lehet gy jteni, fel lehet tölteni egy adatbázisba és az adatbázisban tárolt adatokat meg lehet jeleníteni. A program f célja, hogy grakusan ábrázolja a mérési eredményeket az id függvényében. Ezen felül képes arra, hogy táblázatos formában is megjelenítse az adatokat, valamint az egyes gépeken bekövetkezett gyelmeztetéseket is meg lehet tekinteni a segítségével. A GVC mérési eredmények megjelenítése során merült fel az ötlet, hogy a grakon mellett az adatsor statisztikai jellemz i is ki legyenek irtva. A statisztikai adatok után merült fel az ötlet, hogy a program el rejelzéseket készítsen az egyes adatsorokhoz. 1.5. Hiba el rejelzés A m szerek pontosságának ellen rzése során, a mért értékeknek megadott intervallumba kell esnie. Az intervallumon belül a berendezés megfelel en m ködik. Az intervallumon kívül es méréseket hibának nevezzük. A dolgozat célja, az intervallumból kilép értékek által keltett hibák el re jelzése. A hibákat a kiinduló adatokból, a burkoló görbékb l és az eltérés függvény értékeib l számított regressziós egyenesek segítségével jósolja meg a program, ezeket a módszereket részletesen ismertetem a 2. fejezetben. Mivel a regressziós függvény lineáris ezért egyszer en meg lehet határozni a hibák bekövetkezésének id pontját. Minden mérési beállításhoz az alábbi adatok tartoznak: Error min : Az az érték ami alatt ha mér az eszköz akkor hibát jelez és leáll. 7 Gray Value Check 5
W arning min : Az az érték ami alatt ha mér az eszköz akkor hiba bejegyzés keletkezik. W arning max : Az az érték ami felett ha mér az eszköz akkor hiba bejegyzés keletkezik. Error max : Az az érték ami felett ha mér az eszköz akkor hibát jelez és leáll. Egyszer egyenlet rendezés segítségével megkaptam, hogy a regressziós egyenes az y értéket x = y b m helyen veszi fel. Fontos kikötés hogy n 0, különben nullával való osztás is el fordulhat. Ha n = 0 akkor az x értékét végtelennek tekinthetjük. Ennek segítségével könnyen meg lehet határozni, azokat az x értékeket ahol regressziós egyenes gyelmeztetést vagy hibát generálna. Az egyes kamerák mérési eredményeire külön-külön végre hajtja az elemzést a program, ezeket táblázatos formában írja ki. A kiírt eredmények közül, csak a jöv re vonatkozó adatokat írja ki, a múltbéli adatok nem érdekesek a felhasználók szempontjából. A jöv re vonatkozó adatok közül célszer megkeresni a legkisebbet, a legnagyobbat. 6
2. fejezet Prognózis el állítási módszerei A regresszió analízis egy olyan statisztikai folyamat amelynek során az adathalmaz ismeretében keresünk az adatsorhoz legjobban illeszked regressziós függvényt. A regresszió számítás segítségével két valószín ségi változó közötti kapcsolatot lehet meghatározni. A változók közül az egyiket magyarázandó, a többit magyarázó változónak nevezzük. A regresszió számítás a magyarázó függvény szempontjából számos különböz lehet. A legegyszer bb regresszió a lineáris regresszió. A regressziós görbék halmazából a különböz szempontok alapján lehet kiválasztani az optimálisat. Az optimális regressziós függvény meghatározásához a legelterjedtebb eljárás a legkisebb négyzetek módszere. 2.1. Lineáris regresszió A lineáris regresszió esetén a magyarázandó y változót a magyarázó x változók segítségével az n f(x 1, x 2,..., x n ) = ŷ = β 0 + (β i x i ) egyenlet segítségével keressük. A probléma megoldása során csak egyváltozós lineáris regressziót alkalmaztam. Ebben az esetben az alábbi képletet kaptam f(x) = ŷ = mx + b A regressziós egyenes meghatározása során m és b értékeit úgy válasszuk meg, hogy a regressziós függvény és az y változó eltérése minimális legyen. Az m és b paraméterek meghatározására számos módszer létezik. A legismertebb ilyen módszer a legkisebb négyzetek módszere. 7 i=1
2.1.1. A legkisebb négyzetek módszere A módszer bevezeti a D = (y ŷ) 2 függvényt. A módszer célja, hogy az eredeti y és a kapott ŷ értékek különbségeinek a négyzetösszegét minimalizálja. A módszer segítségével meg lehet határozni az optimális m és b paramétereket. A paraméterek meghatározásához a D(m, b) függvényt minimalizálni kell. A minimalizálás eredménye az optimális m és b érték, ahol az y és az ŷ eltéréseinek négyzetösszege minimális. y D(m, b) = (y i ŷ i ) 2 = (y i mx i b) 2 min i=0 A legjobban illeszked függvény meghatározásához tehát egy kétváltozós függvényt minimalizálni. A minimalizálás lineáris regresszió esetén az alábbi eredményt adja: (xi x)(y i y) m = (xi x) 2 és y i=0 b = y mx Ennek ismeretében könnyen meg lehet határozni a regressziós egyenest. Az egyenes meghatározására az alábbi algoritmus írtam. function linear_regresion($x,$y){ $avgx = avg($x); $avgy = avg($y); $szamlalo = 0; $nevezo = 0; for($i = 0; $i < count($x); $i++){ $szamlalo += ($X[$i]-$avgX)*($Y[$i]-$avgY); $nevezo += pow($x[$i]-$avgx,2); } if($nevezo!= 0){ $m = $szamlalo/$nevezo; } else{ $m = 0; } $b = $avgy - ($m*$avgx); 8
$result = array(); for($i = 0; $i < count($x); $i++){ $result[$i] = $m*$x[$i]+$b; } return $result; } 2.1.2. A lineáris regresszió alkalmazása A regressziós egyenes, valamilyen x értéknél át fogja lépni megadott y értéket, ilyenkor hibát jelez a gép. A 1.5 részben ismertetett módon határozom, meg a hibák bekövetkezési idejét. Így viszonylag egyszer en meg lehet határozni a hibák bekövetkezésének idejét. Ennek a megoldásnak el nye, hogy egyszer, de pontatlan mert az adatsornak van valamilyen mérték szórása. Ezért az egyenes helyett egy sávot határozok meg. A sávot a szórás alapján adom meg, a sáv a sorra nézve a sor addigi értékeinek szórásával tér el a regressziós adott pontjától. Ezt az alkalmazási lehet séget a Scilab segítségével mutatom be. A Scilab-bal generáltam egy 100 elem vektort melynek értékei a [47, 53] intervallumból való egész számok közül kerültek ki (y = round(rand(1,100)*6+47). A vektorhoz létre hoztam az x tengely értékeit is (x = 1:100). A generált adatsorhoz kiszámítottam a regressziós egyenes együtthatóit a regress függvény használatával(coefs = regress(x,y)). A regress függvény az y tengely metszési pontját (coefs(1)) és a meredekséget (coefs(2)) adja vissza. Ezek ismeretében meghatároztam az illeszked egyenest (line = coefs(2)*x + coefs(1)). Az adatsor ismeretében meg tudtam határozni egy olyan vektort ami az adatsor addigi részének a szórásával egyenl. Erre az alábbi kódrészletet használtam. for i = (2:1:100) v(i) = variance(y(1:i)); end Az így kapott szórás segítségével meghatároztam a fels és az alsó burkoló görbéket amelyek a regressziós egyenest l a szórással térnek el. Ezen felül meghatároztam azokat a görbéket is amelyek a szórás kétszeresével térnek el. burkolou = v + line'; burkolol = line' - v; 9
burkolou2 = line' + 2*v; burkolol2 = line' - 2*v; Az így kapott vektorokat a plot függvény segítségével megjelenítettem. A kapott grakon eredménye a 2.1 ábrán látható, ahol a kék görbe a generált adatokat, a piros a regressziós egyenest, a zöld görbék az alsó és fels sávot, ami a szórásból adódik, a fekete görbék pedig a szórás kétszeresével kapott sávot jelölik. 2.1. ábra. A Scilab által kapott regressziós egyenes, és sáv grakonja 2.1.3. A lineáris regresszió problémája A lineáris regresszió könnyen és egyszer en alkalmazható a problémára. A képlet alapján egyszer en meg lehet határozni a regressziós egyenest, aminek 10
ismeretében, meg lehet adni, hogy várhatóan mikor fog hibázni a gép. A lineáris regresszió gyenge pontja, hogy érzékeny a széls séges ( outlier ) értékekre. Az outlier adatok hatása a regressziós függvényre annál nagyobb minél kisebb mintát veszünk, azaz hosszú adatsor esetén az outlier adatok hatása kevésbé érvényesül. Azaz egy mérési hiba, nagy mértékben befolyásolni tudja a regressziós egyenest. Ennek következtében az el rejelzés pontatlan lesz. Scilab példa Ezt a problémát a Scilab segítségével mutatom be[5]. A SciLab regress(x,y) függvénye vissza adja az m és a b értéket. A teszteléshez teszt adatokat generáltam a Scilab segítségével. x = 1:100; y = round(rand(100,1)*6-3)+50; Az így kapott adathalmazra illesztettem regressziós egyenest. Majd az egyik értéket (50) növeltem rendre 5,25,50,75 értékkel. Az így kapott eredményeket az alábbi táblázat foglalja magába. x 0 5 25 50 75 m 0, 0054845 0, 0054545 0, 0053345 0, 0051845 0, 0050345 b 49, 70303 49, 754545 49, 960606 50, 218182 50, 475758 2.1. táblázat. A Scilab eredmények táblázata Látható, hogy az outlier adatok, jelent s változást eredményezhetnek az optimális paraméter értékekben. A 2.1 táblázatban foglalt adatok alapján készítettem grakonokat. A grakonok eredményét a Megoldási javaslat A probléma megoldására a mérési értékekhez burkoló görbéket fogok bevezetni. A fels és alsó burkoló görbére külön meghatározom a regressziós egyenest, és ez alapján csinálom az el rejelzést. Célszer lehet az els és a fels burkoló görbe által meghatározott görbéket átlagolva egy új regressziós egyenest meghatározni. Az új regressziós egyenest ebben az esetben az alábbi. f f (x) = m f x + b f 11
2.2. ábra. A regressziós görbe outlier adatok esetén, ahol 1. grakon az eredeti adatsor 2. grakon az 5-tel való módosítás eredménye 3. grakon a 25-tel való módosítás eredménye 4. grakon az 50-nel való módosítás eredménye 5. grakon a 75-tel való módosítás eredménye 12
f a (x) = m a x + b a f e (x) = f f (x) + f a (x) = 1 ( (mf + m a )x + (b f + b a ) ) = m f + m a x + b f + b a 2 2 2 2 Az így kapott f e regressziós egyenest l jobb illeszkedést várok el mint az el z ekt l. 2.2. Burkoló görbék A feladat szempontjából fontos, hogy mi módon deniáljuk az adatsorhoz tartozó burkoló görbéket. A feladathoz különböz burkoló görbéket lehet deniálni. A feladat megoldása során összesen nyolc fajta burkoló görbét deniáltam. Ezeknek a burkoló görbéknek egy része csak annyiban tér el egymástól, hogy alsó vagy fels burkoló görbe. Az algoritmusokat az alábbi négy csoportba osztottam: 1. Lépcs s 2. Lépcs s Lineáris 3. Maximum Kiválasztásos 4. Maximum Kiválasztásos Lineáris Ezeket a burkoló görbéket két csoportba oszthatjuk. Egyrészt lehet lépcs s vagy maximum kiválasztásos, másrészt az értékeket vagy tartja, vagy lineárisan növeli. A következ kben részletesen bemutatom ezeket az algoritmusokat. 2.2.1. Lépcs s Ez a legegyszer bb algoritmus. A bemen tömbb l úgy képet egy új tömböt, hogy sorban végig olvassa az elemeit és ha az új érték nagyobb mint az el z akkor azt írja ki, különben az el z értéket tartja. Az alábbi kód az fels burkoló görbét határozza meg. Az alsó burkoló görbét úgy kapjuk meg, hogy a 12) sorban a relációs jelet megfordítjuk. 1) function lepcsos($input){ 2) $result = array(); 3) $result[0] = $input[0]; 4) $last = $input[0]; 5) for($i=0; $i<count($input);$i++){ 13
6) if($last < $input[$i]){ 7) $last = $input[$i]; 8) } 9) $result[$i] = $last; 10) } 11) return $result; 12) } Az algoritmussal készített burkoló görbék az alábbi ábrán láthatóak. 2.3. ábra. A lepcsos algoritmus eredménye El nye Az algoritmus el nye, hogy egyszer és gyors. Az algoritmus csak egyszer olvassa végig a tömb elemeit és csak egy segéd változót használ. Hátránya Az algoritmus hátránya, hogy ha a maximum a sorban el l áll, akkor torzítani fogja az értékeket. Túlságosan eltér a szigorúan monoton csökken sorozatok esetén, a kiinduló görbét l. Ugyanez igaz az alsó burkoló görbe esetén szigorú monoton növekv sorozatokra. A módszer hátránya, hogy sok törött vonalból állhat. Ez megnehezíti a görbe értelmezését, és a regressziós függvényt is befolyásolhatja. Célszer ezért egy olyan algoritmust bevezetni ami az egyes értékek közötti lineáris átmenetet is megenged. Ez az algoritmus a lepcsoslinearis algoritmus. 14
2.2.2. Lépcs s Lineáris Ez az algoritmus az el z algoritmus módosítása. Az algoritmus, két váltás, lépés között lineáris átmenetet valósít meg. Az algoritmussal kapott burkoló görbék láthatóak a 2.4 ábrán. El nye Az így kapott görbe, ez el z megoldáshoz képest sokkal szemléletesebb. A folytonos átmenetnek köszönhet en a regressziós egyenes meredekségét pontosabban meg lehet határozni. Hátránya Továbbra is gondot jelent a szigorúan monoton növekv és csökken sorozatok. Ez látható a 2.4 ábra jobb oldali grakonján, ahol az alsó burkoló görbe konstans értéket vesz fel a növekv szakaszon. A görbe azon a szakaszon rosszul illeszkedik az kiinduló görbére. Ezt a problémát el lehetne kerülni egy másodfokú burkoló görbe alkalmazásával. 2.4. ábra. A lepcsoslinearis algoritmus eredménye 2.2.3. Maximum Kiválasztásos A maximumkivalasztas algoritmus egy másodfokú függvényhez hasonló görbét illeszt a kiinduló görbére. Az algoritmus alapelve, hogy megkeresi a legnagyobb értéket és annak a pozíciója mentén két részre bontja a kapott tömböt. Az így kapott két tömbre meghívja a lepcsos algoritmust. Így 15
a két tömb egyike egy monoton növekv (csökken ) a másik egy monoton csökken (növekv ) sorozatot alkot majd. Ezeket a tömbök összef zve a burkoló görbét adják. Az algoritmust az alábbi módon adtam meg, eredménye a 2.5 ábrán látható. El nye Az algoritmus el nye, hogy az outlier értékekre kevésbé lesz érzékeny. További el nye, hogy a maximum érték, nem rontja el az egész burkoló görbét, csak lokálisan érvényes. Ez így kapott görbét l pontosabb becslést várok, mint az el z ekt l. Hátránya Az algoritmus hátránya, hogy minden pont között lépcs s átmenetet valósít meg. Ezen felül rosszul illeszkedik, a periodikus függvényekre. 2.5. ábra. A maximumkivalasztas algoritmus eredménye 2.2.4. Maximum Kiválasztásos Lineáris Ez az algoritmus az el z algoritmus módosítása úgy, hogy az egyek rész burkoló görbék lineáris átmenetet valósítsanak meg. Az algoritmus a széls érték megkeresése után a két tömbre a lepcsoslinearis függvényeket hívja meg. Az így kapott burkoló görbe a 2.6 ábrán látható. 16
El nye Ennek a görbének az el z algoritmus által adott görbéhez képest az az el nye, hogy jobban illeszkedik a görbe. A lineáris átmenetnek köszönhet en kevesebb az eltérés, ez f ként a jobb oldali ábrákon látható. Hátránya Az algoritmus hátránya, hogy továbbra sem ad jó közelítést a periodikus függvényekre. 2.6. ábra. A MaximumKivalasztasLinearis algoritmus eredménye 2.3. Dierencia függvény A burkoló görbék mellett egy másik megoldásként az adatok transzformációja is felmerült. Ebben az esetben a kiinduló adatokból minden lépésben kivonjuk az t megel z értékét. Így egy olyan adatsorhoz jutunk, ahol az egyes értékek, az el z értékt l való el jeles eltérés. Ezt a függvényt az alábbi kód valósítja meg. 1) function differences_cruve($arr){ 2) $result = array(); 3) if((!is_array($arr)) (count($arr) == 0)){ 4) return $result; 5) } 6) $arr = convertkeys($arr); 7) $result[0] = 0; 8) for($i = 1; $i < count($arr); $i++){ 17
9) $result[$i] = $arr[$i]-$arr[$i-1]; 10) } 11) return $result; 12) } Az így kapott adatsorra szintén lineáris függvényt illesztek, és így kapott regressziós görbe alapján, meg lehet mondani, hogy milyen irányba fog elromlani a gép. Ennek az el nye, az hogy bizonyos periodikus sorokra nulla meredekség egyenest ad. 2.4. Markov-modell alkalmazása A Markov-modellt a mesterséges intelligencia területén számos helyen használják[2][4], f ként a beszéd felismerés[3] és szövegbányászat területén. A Markov modell, azt állítja hogy a következ állapot csak a jelenbeli állapottól függ. Azaz a múltbéli állapotok nincsennek hatással a jöv beli állapotokra. Formálisan megfogalmazva, adott az S állapotok halmaza és t = 0, 1, 2,.... Azt mondjuk, hogy az η valószín ségi változó Markov láncot alkot ha P (S t+1 S t ) = P (S t+1 S t, S t 1,..., S 0 ) Ebb l kiindulva meg lehet határozni, hogy egy adott állapotból a rá következ id pillanatban mely állapotokba mehet át a rendszer. Ezt egy állapot átmeneti gráal lehet szemléltetni, ahol a csomópontok az egyes állapotok, az irányított élek a lehetséges állapot átmenetek, az élek súlya pedig az állapot átmenet valószín sége. Egy csomópontból kiinduló élek súlyainak összege 1, azaz minden lépésben történik állapot átmenet. A gráfot mátrixos formában is fel lehet írni, ilyenkor az állapot átviteli mátrixát kapjuk. Azt mondjuk legyen T S S = {p ij } átviteli mátrix, ahol p ij = P (S i S j ). 2.4.1. Az n-ed rend Markov modell Az el bb ismertettem az els rend Markov modellt[4]. Ennek a mintájára deniálható az n-ed rend Markov modell, ahol a S t+1 nem csak S t -t l hanem S t 1,..., S t n+1 állapotoktól is függ. Ebben az esetben az átviteli mérete S n + 1. Az n-ed rend Markov modell alkalmazásakor az n hosszúságú sorozatokat vizsgáljuk az adatsorban. Az n hosszúságú sorra számolja ki a következ elem bekövetkezési valószín ségét. Látható, hogy az n-ed rend Markov modell pontosabb becslést ad, de költségesebb mind a tárolása, mind a kezelése. 18
2.5. Minta illesztés A minta illesztés során megvizsgáljuk az utolsó n karaktert és azt vizsgáljuk az adatsorban, hogy van e benne olyan n-es sorozat ami megegyezik, vagy az eltérésük (távolságuk) kicsi, akkor az alapján lehet jósolni a következ mérési adatokat. A minta illesztéshez a távolság függvényt az alábbi módon deniáltam. n (x vege, x minta ) = x vege x minta A távolság függvény ismeretében meg könnyen meg lehet határozni, hogy az adatsornak mely részei milyen jól illeszkednek az adatsor utolsó n elemére. A minta illesztés algoritmus viszonylag egyszer, az adatsor végér l visszafele megnézi az összes n hosszúságú sorozatot és meghatározza az eltérést. i=0 function patternmatching_getdistances($arr,$n){ $result = array(); for($i = 0; $i < count($arr)-$n; $i++){ $result[$i] = 0; for($j = 0; $j < $n; $j++){ $result[$i] += abs($arr[$i+$j] - $arr[count($arr)-$n+$j]); } } return $result; } A távolságok segítségével ki lehet választani, hogy mely elem következhet a legnagyobb valószín séggel. Ehhez meg kell határozni, hogy melyik részre illeszkedik a legjobban a mintánk. Az illeszkedés jóságának meghatározásakor gyelembe kell venni a minta hosszát (n), a találat és a minta közötti távolságot az adatsorban, valamint a találat és a minta távolságát. A minta hosszával (n) egyenes arányban n a jósággal, mivel minél hosszabb sort illesztünk annál pontosabb lesz az el rejelzés. A távolság és az eltérés pedig fordított arányban van a találat jóságával. Ezek a feltételek alapján a jóságát az alábbi képlettel számoltam. n F (x minta, x talat ) = (poz(x minta ) poz(x talalat )) + ( (x minta, x talalat )) Így pontos illesztés esetén ( (x minta, x talalat ) = 0 ) a jóság függvény csak a minta és a találat távolságától függ. n F (x minta, x talat ) = (poz(x minta ) poz(x talalat )) 19
Így a legnagyobb jóság értéket a legközelebbi minta legjobban illeszked minta adja. A régebbi pontos illesztések bár jobban illeszkednek, mégis kisebb lesz a jóság értékük. 2.5.1. Minta illesztés súlyozással A minta illesztés során a minta és a találat távolság és a pozíciók különbsége azonos súllyal rendelkeztek. Ennek a tesztelés során az lett az eredménye, hogy pár esett l eltekintve, az újabb minta mindig jobban illeszkedett mint a régebbi. Ezért súlyok bevezetése mellett döntöttem. A súlyokat úgy vezettem be, hogy az összegük 1-et adjon ki, azaz W P oz = 1 W. Az így kapott jóság függvény pedig. F (x minta, x talat ) = n W P oz (poz(x minta ) poz(x talalat )) + W ( (x minta, x talalat )) 20
3. fejezet Eredmények A dolgozat ezen részében a dolgozat elkészítése közben elért eredményeket foglalom össze. Ismertetem az egyes módszerek el nyeit és hátrányait. Végül röviden összefoglalom az elért eredményeket és levonom a következtetéseket. 3.1. A kialakított rendszer A rendszer kialakítása a nyári gyakorlatom feladata volt. A gyakorlat során kialakítottam a kiinduló rendszert, a jóslást megvalósító függvényeket erre a rendszerre alkalmaztam. A rendszert PHP nyelven kellett implementálnom, adatbázisnak pedig MySQL adatbázist használtam. A PHP nyelv jelent sen meghatározta, hogy a további funkciókat is PHPban kell implementálnom. Az alap funkciókat támogatta a PHP és számos kiegészít függvény könyvtárat találtam hozzá az Interneten. A kiegészít könyvtárak közül a pchart könyvtárt használtam a grakonok elkészítéséhez. A rendszer az eredményeket egy egyszer weboldalon jeleníti meg, így egyszer en elérhet az összes felhasználó számára a hálózaton belül. A rendszer kimenete a 3.1 és a 3.2 ábrákon látható. Sajnos a PHP viszonylag kevés lehet séget nyújtott a statisztikai függvények terén. Az egyszer bb függvényeket támogatta ( átlag, szórás, stb.), de bizonyos függvényeket ( ferdeség, laposság, kovariancia, stb.) már nem voltak implementálva. Ezek a függvények az elemzés szempontjából fontosak voltak. A 3.2 ábrán látható táblázatban szerepelnek ezek a statisztikai adatok is. Ezért saját függvénykönyvtár implementálása mellett döntöttem. 21
3.1. ábra. Az AOI-ASC Monitoring kimenete 3.2. ábra. Az AOI-ASC Monitoring kimenete 3.2. Saját PHP statisztikai függvénykönyvtár A rendszer implementálása során számos statisztikai függvénykönyvtárt[6][7] megnéztem, de sajnos egyik sem nyújtotta a megfelel funkciókat. A saját függvénykönyvtár implementálása során részletesen dokumentáltam az egyes függvényeket. Az elkészített függvénykönyvtár így jól deniált és kell en b séges lett a feladat megoldásához. A könyvtár az alábbi függvényeket tartalmazza: Átlag Átlagtól való átlagos eltérés Szórás 22
Terjedelem Ferdeség Laposság Kovariancia Korreláció A felsorolt statisztikai függvényeket implementáltam és a MatLab-bal ellen riztem. A ferdeség és a laposság függvények kivételével mind helyes volt. A ferdeség és laposság függvények csak közelít értéket adnak. A statisztikai elemzés mellett a lineáris regressziós függvényt is implementáltam. A regressziós függvény implementálása után a deniált burkoló görbéket meghatározó függvényeket valósítottam meg. 3.3. Burkoló görbék vizsgálata A burkoló függvényeket a 2.2 részben mutattam be. A burkoló görbéket el állító algoritmust a regression.php állományban valósítottam meg. Mind a négy fajta burkoló görbéhez két-két függvény tartozik ( alsó és fels burkoló görbe ). A burkoló görbék meghatározása után meghatároztam a burkológörbékhez húzható regressziós egyeneseket. A regressziós egyenesek segítségével a 1.5 részben leírtak alapján határoztam meg a kitérések id pontját. A táblázatban bal oldat az egyes kamerák kódja látható (#0,#1,#2,#3). A táblázat fejlécében pedig az egyes burkoló görbék nevei: Normal - Az adatsor lepcsosu - A lepcsosalgoritmus által generált fels burkoló görbe. lepcsosl - A lepcsosalgoritmus által generált alsó burkoló görbe. lepcsoslinearisu - A lepcsoslinearisalgoritmus által generált fels burkoló görbe. lepcsoslinearisl - A lepcsoslinearisalgoritmus által generált alsó burkoló görbe. MaximumU - A maximumkivalasztasalgoritmus által generált fels burkoló görbe. 23
MaximumL - A maximumkivalasztasalgoritmus által generált alsó burkoló görbe. MaximumLinearisU - A maximumkivalasztaslinearisalgoritmus által generált fels burkoló görbe. MaximumLinearisL - A maximumkivalasztaslinearisalgoritmus által generált alsó burkoló görbe. 3.3. ábra. Az el rejelzések táblázata A táblázat celláiban két féle adat lehetséges. N/A - Nem lehet meghatározni az eltérés idejét, ennek oka az lehet, hogy a regressziós egyenes meredeksége zérus. Az ideális táblázat csak ilyen értékeket tartalmazna, mert az azt jelenti, hogy a gép a jelen adatok szerint soha nem fog hibát jelezni. szint => dátum - Megadja a regressziós egyenes által legközelebb átlépett szintet, majd a "=>" jellel elválasztva az átlépés idejét. Ez az id pont a becslése annak, hogy a gép mikor fog hibát jelezni. 3.3.1. Becslési táblázat kiértékelése A táblázatból könnyen kiolvasható az egyes gépek mérésénél a kamerák meghibásodásának lehetséges id pontja. A 3.3 ábrán szerepl táblázatot 2010.november. 03-04 közötti mérések adataiból kaptam. A becslés szerint a gép ezzel a beállítással az év végéig nagy valószín séggel jól fog m ködni. Továbbá azt is ki lehet olvasni a kiinduló adatsorból, hogy a #1-es kamera más irányba fog eltérni mint a többi kamera ezzel a beállítással. Elvileg 24
a hiba jelzésének id pontja 2011. augusztusában várható. A korrelációs adatokból kiolvasható, hogy a többi kamerával csak nagyon csekély mértékben korrelál ( rendre: 0, 31; 0, 25; 0, 25. Ez alátámasztja a táblázatból levont következtetés helyességét. Természetesen az el re jelzés nem feltétlen pontos, mert addig az id pontig számos módosítás történhet a berendezéssel ( karbantartás, kalibrálás, hiba szintek módosítása, stb.). 3.4. Továbbfejlesztési javaslat Az elkészült rendszer jelenleg nem használja fel a Markov modell nyújtotta lehet ségeket, valamint a minta illesztést. A rendszerbe implementálni kell majd ezeket a funkciókat is. A rendszer ezen felül számos apróbb esztétikai hibával terhelt. Az el re jelz funkciók csak magyar nyelven m ködnek megfelel en. Más nyelveken is a magyar feliratot írja ki a rendszer. Mivel a rendszer multinacionális környezetben kerül felhasználásra, ezért ezeket a funkciókat nagyon sürg sen implementálni kell. A hibák el re jelzésénél, be lehetne iktatni egy olyan funkciót ami más színnel jelöli a közeljöv ben bekövetkez hibákat. Például pirossal ami egy héten belül bekövetkezik, sárgával ami egy hónapon belül és nem jelölné külön az összes többit. Így a táblázat sokkal könnyebben átlátható lenne. A rendszer a GVC mérések eredményeinek kiértékelésén kívül az egyes gépek meghibásodásának a gyelésére is alkalmas. A becslések jelenleg csak a GVC adatokra m ködnek, ezért a közeljöv ben a gyelmeztetések monitorozásánál is be lehetne vezetni, így az egyes gépekhez egy összesít értékeket kaphatunk. A rendszert fontos volt a gyakorlat során gyorsan elkészíteni, ezért a forráskód számos helyen elavult, vagy már nem használt funkciókat is tartalmaz. Ezen felül az egyes függvények implementálásakor a gyorsaság volt a f szempont, ezért a függvények jelent s részét lehet még optimalizálni. Ezeket a kód refactoring-gal lehetne javítani. Ez csökkenthetné a várakozási id ket. 25
4. fejezet Összefoglalás A dolgozat ezen részében röviden összefoglalom az elért eredményeket. Az eredményekb l levonom a következtetéseimet. A dolgozatban ismertettem a RBHH hatvani üzemében alkalmazott AOI- ASC eljárást. Röviden bemutattam az ellen rz mérések adatait feldolgozó programot és az elemzési funkcióit. A dolgozat f célja a mérési adatokon végrehajtható prognózis el állítási eljárások vizsgálata és implementálása volt. A dolgozat 2. fejezetében részletesen ismertettem a felhasznált módszerek elméleti hátterét. Megvizsgáltam az alkalmazási és felhasználási lehet ségeket. Nagy hangsúlyt fektettem a lineáris regresszió alkalmazására. Ismertettem a lineáris regresszió elméleti hátterét, és a regressziós egyenes el állítására szolgáló módszereket. Ismertettem az els fokú lineáris regresszió problémáit, különös tekintettel az outlier adatokra. Az adatok mellé deniáltam négy különböz burkoló görbét, melyekre szintén meghatároztam a regressziós egyeneseket. A bevezetett burkoló görbéket részletesen bemutattam, elemeztem, ismertettem a generálásukhoz szükséges algoritmusokat. A burkoló görbék mellett ismertettem a regressziós egyeneshez tartozó szórásból adódó sávot. A dolgozat utolsó felében ismertettem az implementált algoritmusokat. Bemutattam az AOI-ASC Monitoring rendszert. A rendszerhez implementált saját statisztikai függvénykönyvtárat, összehasonlítva más PHP-s statisztikai függvénykönyvtárakkal. Majd ismertettem a kiinduló adatokból és a hozzá burkoló görbékb l kapott kapott el rejelzéseket összefoglaló táblázatot. A dolgozatban elkészített rendszer jelent sen csökkenti a felhasználók kötelezettségeit. Az automatikus gyelés segítségével könnyen nyomon lehet követni az egyes gépekhez tartozó beállításokkal mért értékeket, ez nagy mértékben megkönnyíti a munkát. Korábban a felhasználók csak a kimen 26
napló fájlt tudták manuálisan átvizsgálni, ami igen id igényes volt és számos összefüggés felderítésére nem volt lehet ség így. 27
Irodalomjegyzék [1] Dr. Bodon Ferenc: Adatbányászati Algoritmusok [2] Major Klára: Markov modellek alkalmazása a társadalomtudományi kutatásban [3] Vázsonyi Miklós: Nyelvdetektáció rejtett Markov modell alkalmazásával [4] http://www.comp.leeds.ac.uk/roger/hiddenmarkovmodels/html_dev/main.html [5] Modelling of data with Scilab http://www.woldata.se/modellingofdata.pdf [6] AJ PHP Statistical library - http://www.ajdesigner.com/php_code_statistics/mean.php [7] www.php.net statisztikia könyvtára 28
Tartalomjegyzék 1. Bevezetés 2 1.1. A dolgozat célja.......................... 2 1.2. A RBHH bemutatása....................... 3 1.2.1. Az RBHH hatvani üzeme................ 3 1.3. AOI és AOI-ASC......................... 4 1.3.1. AOI............................ 4 1.3.2. AOI-ASC......................... 4 1.4. AOI-ASC Monitoring....................... 5 1.5. Hiba el rejelzés.......................... 5 2. Prognózis el állítási módszerei 7 2.1. Lineáris regresszió........................ 7 2.1.1. A legkisebb négyzetek módszere............. 8 2.1.2. A lineáris regresszió alkalmazása............ 9 2.1.3. A lineáris regresszió problémája............. 10 2.2. Burkoló görbék.......................... 13 2.2.1. Lépcs s.......................... 13 2.2.2. Lépcs s Lineáris..................... 15 2.2.3. Maximum Kiválasztásos................. 15 2.2.4. Maximum Kiválasztásos Lineáris............ 16 2.3. Dierencia függvény....................... 17 2.4. Markov-modell alkalmazása................... 18 2.4.1. Az n-ed rend Markov modell.............. 18 2.5. Minta illesztés........................... 19 2.5.1. Minta illesztés súlyozással................ 20 3. Eredmények 21 3.1. A kialakított rendszer...................... 21 3.2. Saját PHP statisztikai függvénykönyvtár............ 22 29
3.3. Burkoló görbék vizsgálata.................... 23 3.3.1. Becslési táblázat kiértékelése.............. 24 3.4. Továbbfejlesztési javaslat..................... 25 4. Összefoglalás 26 30