adatbányászati módszerek alkalmazása a robert bosch számára · 1. fejezet bevezetés 1.1. a...
TRANSCRIPT
Adatbányászati módszerekalkalmazá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 optikaiellen®rz® berendezésekb®l kapott adatok feldolgozására egy olyan módsz-ert dolgozok ki, amelynek célja a gépek esetleges meghibásodásának el®rejelzése. A dolgozatban bemutatom az el®rejelzések készítéséhez alkalmazottmódszereket. A dolgozat elején röviden áttekintem az elektronikai eszközökgyártásának folyamatát, az AOI1 szerepét a gyártásban, az AOI-ASC2-t,valamint az implementált monitor alkalmazást.
A problémakör ismertetése után bemutatom az alkalmazni kívánt matem-atikai módszereket. Részletesen elemzem a felhasznált statisztikai és adat-bá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. Adolgozatban 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 ki-dolgozott eljárásokat. Elemzem az egyes módszereket és az elvárt, illetve akapott 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ítomaz 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.
1Automated Optical Inspection2AOI Safety Check
2
1.2. A RBHH bemutatása
Az RBHH a Bosch csoport tagja. A Bosch csoport a világ 150 országábanjelen van. Jelent®s szerepl®k az auto-elektronika, ipari kommunikáció ésszámos egyéb területen.
1.2.1. Az RBHH hatvani üzeme
A hatvani üzemet 1998-ban alapították és napjainkra az autó-elektronikaigyártás egyik legnagyobb központjává vált. Jelenleg négy csarnokban folyika gyártás és a gyárban egyszerre közel 1800 ember dolgozik. A f® ter-mékek: vezérl® elektronikák, ABS, automataváltó-vezérl®, sziréna, m¶szer-fal, légzsák-vezérl®, stb. A hatvani Bosch-ban gyártott termékeket a világminden táján értékesítik és több mint 15 millió gépjárm¶be szerelték márbe.
Elektronikai gyártás folyamata
A hatvani üzemben f®ként elektronikai eszközök ( autó elektronika: ABSvezérl®, m¶szerfal, váltó ) gyártásával foglalkoznak. Az elektronikai eszközökgyártása során az egyes áramköri elemeket a megfelel® helyen helyezik el apanelen. Egy panel pedig több NYÁK3-ot is tartalmazhat. A gyártás sorána termék számos fázison megy keresztül és számos különböz® ellen®rzési pontvan. A gyártás folyamatát röviden a következ® pontokba lehet összefoglalni:
1. Paszta nyomtatás
2. Felület szerelt elemek ( SM4 ) beültetése
3. Újraömlesztéses hegesztés
4. Furat szerelt ( TH5 ) 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:
3Nyomtatott Áramköri Lap4Surface Mounted5Through 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 pedigmé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éssegítségével úgy tesztelik, mintha már a m¶köd® rendszerben lenne, ésa bemeneti teszt adatokra a vár eredményt kell kapnia, ha ett®l eltér®ttapasztal akkor a termék selejtes.
• AXI6: 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ánlehet alkalmazni.
1.3. AOI és AOI-ASC
Az elektronikai gyártás során, viszonylag hamar alkalmazott ellen®rz® es-zköz az AOI berendezés. Az AOI berendezést a pasztázás után, a beültetésután, valamint az újraümlesztéses hegesztés után szokták alkalmazni. Mivelaz AOI a jelen technológiák mellett is igen lassú és gyakran a gyártás sz¶kkeresztmetszetét adja ezért el®fordul, hogy csak forrasztás után vagy egyál-talá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öntia kép alapján, hogy valós vagy pszeudo hibát jelzett a gép, szükség eseténnagyítóval megvizsgálja a jelzett területet. Az kamera egy fejben helyezkedikel, 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 dolgozatbanaz ü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 ishitelesítést, ellen®rzést igényel. Az AOI-ASC egy olyan program, amit a gépbizonyos id®közönként lefuttat. A program az eredményét egy napló fájlba
6Automated 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ésekhat különböz® ellen®rzést hajtanak végre, ezek közül a dolgozatban, csak aszürkeségi vizsgálat eredményeivel foglalkozom ( GVC7 ), a többi ellen®rzéseredmé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ásfejlesztés volt a feladatom. Ennek a munkának az elvégzése során merült felaz igény, az adatbányászati módszerek alkalmazására. Az AOI-ASC Moni-toring 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 adat-bázisban tárolt adatokat meg lehet jeleníteni.
A program f® célja, hogy gra�kusan ábrázolja a mérési eredményeket azid® függvényében. Ezen felül képes arra, hogy táblázatos formában is megje-lenítse az adatokat, valamint az egyes gépeken bekövetkezett �gyelmeztetéseketis 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, hogya gra�kon mellett az adatsor statisztikai jellemz®i is ki legyenek irtva. Astatisztikai adatok után merült fel az ötlet, hogy a program el®rejelzéseketké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 megadottintervallumba kell esnie. Az intervallumon belül a berendezés megfelel®enm¶ködik. Az intervallumon kívül es® méréseket hibának nevezzük. A dolgo-zat célja, az intervallumból kilép® értékek által keltett hibák el®re jelzése. Ahibá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 pro-gram, ezeket a módszereket részletesen ismertetem a 2. fejezetben. Mivela regressziós függvény lineáris ezért egyszer¶en meg lehet határozni a hibákbekövetkezésének id®pontját. Minden mérési beállításhoz az alábbi adatoktartoznak:
• Errormin: Az az érték ami alatt ha mér az eszköz akkor hibát jelez ésleáll.
7Gray Value Check
5
• Warningmin: Az az érték ami alatt ha mér az eszköz akkor hiba bej-egyzés keletkezik.
• Warningmax: Az az érték ami felett ha mér az eszköz akkor hibabejegyzés keletkezik.
• Errormax: 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ósegyenes az y értéket
x =y − bm
helyen veszi fel. Fontos kikötés hogy n 6= 0, különben nullával való osztás isel®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ékeketahol regressziós egyenes �gyelmeztetést vagy hibát generálna. Az egyeskamerák mérési eredményeire külön-külön végre hajtja az elemzést a pro-gram, ezeket táblázatos formában írja ki. A kiírt eredmények közül, csaka jöv®re vonatkozó adatokat írja ki, a múltbéli adatok nem érdekesek a fel-használók szempontjából. A jöv®re vonatkozó adatok közül célszer¶ megk-eresni 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 adathal-maz ismeretében keresünk az adatsorhoz legjobban illeszked® regressziós füg-gvényt. A regresszió számítás segítségével két valószín¶ségi változó közöttikapcsolatot 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ön-bö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 lehetkiválasztani az optimálisat. Az optimális regressziós függvény meghatározásáhoza 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ál-tozók segítségével az
f(x1, x2, . . . , xn) = y = β0 +n∑
i=1
(βixi)
egyenlet segítségével keressük. A probléma megoldása során csak egyváltozóslineáris regressziót alkalmaztam. Ebben az esetben az alábbi képletet kaptam
f(x) = y = mx+ b
A regressziós egyenes meghatározása során m és b értékeit úgy válasszukmeg, 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 legis-mertebb ilyen módszer a legkisebb négyzetek módszere.
7
2.1.1. A legkisebb négyzetek módszere
A módszer bevezeti a D = (y − y)2 függvényt. A módszer célja, hogyaz eredeti y és a kapott y értékek különbségeinek a négyzetösszegét mini-malizálja. A módszer segítségével meg lehet határozni az optimális m és bparamétereket. A paraméterek meghatározásához a D(m, b) függvényt min-imalizálni kell. A minimalizálás eredménye az optimális m és b érték, aholaz y és az y eltéréseinek négyzetösszege minimális.
D(m, b) =
|y|∑i=0
(yi − yi)2 =
|y|∑i=0
(yi −mxi − b)2 → min
A legjobban illeszked® függvény meghatározásához tehát egy kétváltozósfüggvényt minimalizálni. A minimalizálás lineáris regresszió esetén az alábbieredményt adja:
m =
∑(xi − x)(yi − y)∑
(xi − x)2
ésb = 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, mega hibák bekövetkezési idejét. Így viszonylag egyszer¶en meg lehet határoznia hibák bekövetkezésének idejét.
Ennek a megoldásnak el®nye, hogy egyszer¶, de pontatlan mert az adat-sornak van valamilyen mérték¶ szórása. Ezért az egyenes helyett egy sávothatározok meg. A sávot a szórás alapján adom meg, a sáv a sorra nézve asor 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. AScilab-bal generáltam egy 100 elem¶ vektort melynek értékei a [47, 53] inter-vallumbó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 gen-erált adatsorhoz kiszámítottam a regressziós egyenes együtthatóit a regressfüggvény használatával(coefs = regress(x,y)). A regress függvény azy tengely metszési pontját (coefs(1)) és a meredekséget (coefs(2)) adjavissza. 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észletethaszná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ülmeghatároztam azokat a görbéket is amelyek a szórás kétszeresével térnekel.
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 gra�kon eredménye a 2.1 ábrán látható, ahol a kék görbe a generáltadatokat, 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 kapottsávot jelölik.
2.1. ábra. A Scilab által kapott regressziós egyenes, és sáv gra�konja
2.1.3. A lineáris regresszió problémája
A lineáris regresszió könnyen és egyszer¶en alkalmazható a problémára. Aké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. Alineá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 nagy-obb minél kisebb mintát veszünk, azaz hosszú adatsor esetén az outlier ada-tok hatása kevésbé érvényesül. Azaz egy mérési hiba, nagy mértékben be-folyásolni tudja a regressziós egyenest. Ennek következtében az el®rejelzéspontatlan 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 gen-erá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ényeketaz alábbi táblázat foglalja magába.
x 0 5 25 50 75m 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 azoptimális paraméter értékekben. A 2.1 táblázatban foglalt adatok alapjánkészítettem gra�konokat. A gra�konok 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 egyenestmeghatározni. Az új regressziós egyenest ebben az esetben az alábbi.
ff (x) = mfx+ bf
11
2.2. ábra. A regressziós görbe outlier adatok esetén, ahol 1. gra�kon az
eredeti adatsor 2. gra�kon az 5-tel való módosítás eredménye 3. gra�kon a
25-tel való módosítás eredménye 4. gra�kon az 50-nel való módosítás ered-
ménye 5. gra�kon a 75-tel való módosítás eredménye
12
fa(x) = max+ ba
fe(x) =ff (x) + fa(x)
2=
1
2
((mf +ma)x+ (bf + ba)
)=mf +ma
2x+
bf + ba2
Az így kapott fe regressziós egyenest®l jobb illeszkedést várok el mint azel®z®ekt®l.
2.2. Burkoló görbék
A feladat szempontjából fontos, hogy mi módon de�niáljuk az adatsorhoztartozó burkoló görbéket. A feladathoz különböz® burkoló görbéket lehetde�niálni. A feladat megoldása során összesen nyolc fajta burkoló görbétde�niáltam. Ezeknek a burkoló görbéknek egy része csak annyiban tér elegymástól, hogy alsó vagy fels® burkoló görbe. Az algoritmusokat az alábbiné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épc-s®s vagy maximum kiválasztásos, másrészt az értékeket vagy tartja, vagylineárisan növeli. A következ®kben részletesen bemutatom ezeket az algorit-musokat.
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, hogya 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 egyszerolvassa 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ítanifogja az értékeket. Túlságosan eltér a szigorúan monoton csökken® sorozatokeseté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 agö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étpontosabban meg lehet határozni.
Hátránya
Továbbra is gondot jelent a szigorúan monoton növekv® és csökken® soroza-tok. Ez látható a 2.4 ábra jobb oldali gra�konján, ahol az alsó burkoló görbekonstans értéket vesz fel a növekv® szakaszon. A görbe azon a szakaszonrosszul illeszkedik az kiinduló görbére.
Ezt a problémát el lehetne kerülni egy másodfokú burkoló görbe alka-lmazá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ör-bét illeszt a kiinduló görbére. Az algoritmus alapelve, hogy megkeresi alegnagyobb értéket és annak a pozíciója mentén két részre bontja a kapotttö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 monotoncsökken® (növekv®) sorozatot alkot majd. Ezeket a tömbök összef¶zve aburkoló görbét adják.
Az algoritmust az alábbi módon adtam meg, eredménye a 2.5 ábránlátható.
El®nye
Az algoritmus el®nye, hogy az outlier értékekre kevésbé lesz érzékeny. Továbbiel®nye, hogy a maximum érték, nem rontja el az egész burkoló görbét, csaklokálisan érvényes. Ez így kapott görbét®l pontosabb becslést várok, mint azel®z®ekt®l.
Hátránya
Az algoritmus hátránya, hogy minden pont között lépcs®s átmenetet valósítmeg. 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észburkoló 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ívjameg. 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 azel®nye, hogy jobban illeszkedik a görbe. A lineáris átmenetnek köszönhet®enkevesebb 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 periodikusfüggvényekre.
2.6. ábra. A MaximumKivalasztasLinearis algoritmus eredménye
2.3. Di�erencia 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ésbenkivonjuk az ®t megel®z® értékét. Így egy olyan adatsorhoz jutunk, ahol azegyes értékek, az el®z® értékt®l való el®jeles eltérés. Ezt a függvényt az alábbikó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 kapottregressziós görbe alapján, meg lehet mondani, hogy milyen irányba fog el-romlani a gép. Ennek az el®nye, az hogy bizonyos periodikus sorokra nullameredekség¶ egyenest ad.
2.4. Markov-modell alkalmazása
AMarkov-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 ést = 0, 1, 2, . . . . Azt mondjuk, hogy az η valószín¶ségi változó Markov láncotalkot ha
P (St+1|St) = P (St+1|St, St−1, . . . , S0)
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 ál-lapotok, az irányított élek a lehetséges állapot átmenetek, az élek súlya pedigaz á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átrixosformában is fel lehet írni, ilyenkor az állapot átviteli mátrixát kapjuk. Aztmondjuk legyen T |S|×|S| = {pij} átviteli mátrix, ahol pij = P (Si|Sj).
2.4.1. Az n-ed rend¶ Markov modell
Az el®bb ismertettem az els® rend¶ Markov modellt[4]. Ennek a mintájárade�niálható az n-ed rend¶ Markov modell, ahol a St+1 nem csak St-t®l hanemSt−1, . . . , St−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 akö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, minda kezelése.
18
2.5. Minta illesztés
A minta illesztés során megvizsgáljuk az utolsó n karaktert és azt vizsgáljukaz adatsorban, hogy van e benne olyan n-es sorozat ami megegyezik, vagyaz 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ódonde�niáltam.
∆(xvege, xminta) =
n∑i=0
|xvege − xminta|
A távolság függvény ismeretében meg könnyen meg lehet határozni, hogyaz 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 visszafelemegnézi az összes n hosszúságú sorozatot és meghatározza az eltérést.
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övetkezheta legnagyobb valószín¶séggel. Ehhez meg kell határozni, hogy melyik részreilleszkedik 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ávol-ságot az adatsorban, valamint a találat és a minta távolságát. A mintahosszával (n) egyenes arányban n® a jósággal, mivel minél hosszabb sortillesztünk annál pontosabb lesz az el®rejelzés. A távolság és az eltérés pedigfordított arányban van a találat jóságával. Ezek a feltételek alapján a jóságátaz alábbi képlettel számoltam.
F (xminta, xtalat) =n
(poz(xminta)− poz(xtalalat)) + (∆(xminta, xtalalat))
Így pontos illesztés esetén ( ∆(xminta, xtalalat) = 0 ) a jóság függvénycsak a minta és a találat távolságától függ.
F (xminta, xtalat) =n
(poz(xminta)− poz(xtalalat))
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égiskisebb 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önb-sége azonos súllyal rendelkeztek. Ennek a tesztelés során az lett az ered-ménye, hogy pár esett®l eltekintve, az újabb minta mindig jobban illeszkedettmint a régebbi. Ezért súlyok bevezetése mellett döntöttem. A súlyokat úgyvezettem be, hogy az összegük 1-et adjon ki, azaz WPoz = 1 −W∆. Az ígykapott jóság függvény pedig.
F (xminta, xtalat) =n
WPoz(poz(xminta)− poz(xtalalat)) +W∆(∆(xminta, xtalalat))
20
3. fejezet
Eredmények
A dolgozat ezen részében a dolgozat elkészítése közben elért eredményeketfoglalom össze. Ismertetem az egyes módszerek el®nyeit és hátrányait. Végülrö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ánkialakítottam a kiinduló rendszert, a jóslást megvalósító függvényeket erre arendszerre 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 PHP-ban kell implementálnom. Az alap funkciókat támogatta a PHP és számoskiegé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 gra�konok elkészítéséhez.A rendszer az eredményeket egy egyszer¶ weboldalon jeleníti meg, így egysz-er¶en elérhet® az összes felhasználó számára a hálózaton belül. A rendszerkimenete 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üg-gvé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 nemvoltak implementálva. Ezek a függvények az elemzés szempontjából fontosakvoltak. A 3.2 ábrán látható táblázatban szerepelnek ezek a statisztikai ada-tok 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átfüggvénykönyvtár implementálása során részletesen dokumentáltam az egyesfüggvényeket. Az elkészített függvénykönyvtár így jól de�niált és kell®enb®séges lett a feladat megoldásához. A könyvtár az alábbi függvényekettartalmazza:
• Á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-balellen®riztem. A ferdeség és a laposság függvények kivételével mind helyesvolt. 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 imple-mentáltam. A regressziós függvény implementálása után a de�niá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 ané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ör-békhez húzható regressziós egyeneseket. A regressziós egyenesek segítségévela 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 ál-tal generált fels® burkoló görbe.
• MaximumLinearisL - A maximumKivalasztasLinearisalgoritmus általgenerá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 csakilyen értékeket tartalmazna, mert az azt jelenti, hogy a gép a jelenadatok 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. Ezaz 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ákmeghibásodásának lehetséges id®pontja. A 3.3 ábrán szerepl® táblázatot2010.november. 03-04 közötti mérések adataiból kaptam. A becslés szerinta 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 kam-era 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ósadatokból kiolvasható, hogy a többi kamerával csak nagyon csekély mérték-ben korrelál ( rendre: 0, 31; 0, 25; 0, 25. Ez alátámasztja a táblázatból levontkövetkeztetés helyességét. Természetesen az el®re jelzés nem feltétlen pon-tos, 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újtottalehet®ségeket, valamint a minta illesztést. A rendszerbe implementálni kellmajd ezeket a funkciókat is. A rendszer ezen felül számos apróbb esztétikaihibával terhelt. Az el®re jelz® funkciók csak magyar nyelven m¶ködnekmegfelel®en. Más nyelveken is a magyar feliratot írja ki a rendszer. Mivela rendszer multinacionális környezetben kerül felhasználásra, ezért ezeket afunkció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ásszínnel jelöli a közeljöv®ben bekövetkez® hibákat. Például pirossal ami egyhé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 egyesgépek meghibásodásának a �gyelésére is alkalmas. A becslések jelenleg csaka GVC adatokra m¶ködnek, ezért a közeljöv®ben a �gyelmeztetések moni-torozásánál is be lehetne vezetni, így az egyes gépekhez egy összesít® értékeketkaphatunk.
A rendszert fontos volt a gyakorlat során gyorsan elkészíteni, ezért aforráskód számos helyen elavult, vagy már nem használt funkciókat is tar-talmaz. Ezen felül az egyes függvények implementálásakor a gyorsaság volta 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ásiid®ket.
25
4. fejezet
Összefoglalás
A dolgozat ezen részében röviden összefoglalom az elért eredményeket. Azeredmé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 feldol-gozó programot és az elemzési funkcióit. A dolgozat f® célja a mérési ada-tokon végrehajtható prognózis el®állítási eljárások vizsgálata és implemen-tálása volt. A dolgozat 2. fejezetében részletesen ismertettem a felhasználtmódszerek elméleti hátterét. Megvizsgáltam az alkalmazási és felhasználásilehet®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 egyenesel®á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é de�niáltam négy különböz® burkoló görbét, melyekreszintén meghatároztam a regressziós egyeneseket. A bevezetett burkoló gör-béket részletesen bemutattam, elemeztem, ismertettem a generálásukhozszükséges algoritmusokat. A burkoló görbék mellett ismertettem a regressz-ió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 implemen-tált saját statisztikai függvénykönyvtárat, összehasonlítva más PHP-s statisztikaifü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ókkötelezettségeit. Az automatikus �gyelés segítségével könnyen nyomon lehetkövetni az egyes gépekhez tartozó beállításokkal mért értékeket, ez nagymé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ányikutatá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.wol�data.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 21.1. A dolgozat célja . . . . . . . . . . . . . . . . . . . . . . . . . . 21.2. A RBHH bemutatása . . . . . . . . . . . . . . . . . . . . . . . 3
1.2.1. Az RBHH hatvani üzeme . . . . . . . . . . . . . . . . 31.3. AOI és AOI-ASC . . . . . . . . . . . . . . . . . . . . . . . . . 4
1.3.1. AOI . . . . . . . . . . . . . . . . . . . . . . . . . . . . 41.3.2. AOI-ASC . . . . . . . . . . . . . . . . . . . . . . . . . 4
1.4. AOI-ASC Monitoring . . . . . . . . . . . . . . . . . . . . . . . 51.5. Hiba el®rejelzés . . . . . . . . . . . . . . . . . . . . . . . . . . 5
2. Prognózis el®állítási módszerei 72.1. Lineáris regresszió . . . . . . . . . . . . . . . . . . . . . . . . 7
2.1.1. A legkisebb négyzetek módszere . . . . . . . . . . . . . 82.1.2. A lineáris regresszió alkalmazása . . . . . . . . . . . . 92.1.3. A lineáris regresszió problémája . . . . . . . . . . . . . 10
2.2. Burkoló görbék . . . . . . . . . . . . . . . . . . . . . . . . . . 132.2.1. Lépcs®s . . . . . . . . . . . . . . . . . . . . . . . . . . 132.2.2. Lépcs®s Lineáris . . . . . . . . . . . . . . . . . . . . . 152.2.3. Maximum Kiválasztásos . . . . . . . . . . . . . . . . . 152.2.4. Maximum Kiválasztásos Lineáris . . . . . . . . . . . . 16
2.3. Di�erencia függvény . . . . . . . . . . . . . . . . . . . . . . . 172.4. Markov-modell alkalmazása . . . . . . . . . . . . . . . . . . . 18
2.4.1. Az n-ed rend¶ Markov modell . . . . . . . . . . . . . . 182.5. Minta illesztés . . . . . . . . . . . . . . . . . . . . . . . . . . . 19
2.5.1. Minta illesztés súlyozással . . . . . . . . . . . . . . . . 20
3. Eredmények 213.1. A kialakított rendszer . . . . . . . . . . . . . . . . . . . . . . 213.2. Saját PHP statisztikai függvénykönyvtár . . . . . . . . . . . . 22
29
3.3. Burkoló görbék vizsgálata . . . . . . . . . . . . . . . . . . . . 233.3.1. Becslési táblázat kiértékelése . . . . . . . . . . . . . . 24
3.4. Továbbfejlesztési javaslat . . . . . . . . . . . . . . . . . . . . . 25
4. Összefoglalás 26
30