Využití metod umělé inteligence v technické diagnostice – Deep Learning

Obrázek 1: Vibrodiagnostický model: a) pohled zleva – umístění snímače a směry os, b) přední pohled – znázorněné pozice 1 a2 Obrázek 1: Vibrodiagnostický model: a) pohled zleva – umístění snímače a směry os, b) přední pohled – znázorněné pozice 1 a2

Článek se zabývá možností využití metod umělé inteligence pro klasifikaci stavu (poruch) stroje na základě obrazových dat. Konkrétně se jedná o metodu Deep Learning, zpracovanou ve volně dostupném prostředí Python a knihoven Keras a TensorFlow. Výsledky jsou porovnány s dříve publikovanými metodami [1][2] na známém datasetu za účelem posouzení vhodnosti nasazení této metody pro řešení složitějších problémů.

Úvod

Současná technická praxe v oboru technické diagnostiky se s rozšiřující digitalizací potýká s problémem nadměrného množství dat, která je nutno zpracovat v relativně krátké době. Tuto výzvu je tedy nutné řešit pomocí účinných metod umělé inteligence, jež nahradí (lidské) experty, kterých v praxi spíše ubývá než naopak. Tento článek představuje další metodu, která dokáže vhodně klasifikovat stavy či poruchy stroje na základě historických, ale dostatečně popsaných dat. V minulých článcích [1][2] byla představena metoda klasifikace pomocí známých klasifikátorů, kdy bylo ovšem nutné předzpracovat data a extrahovat ukazatele neboli prediktory, jež nějakým způsobem rozlišují jednotlivé poruchy. To znamená, že je nutná jistá znalost nebo zkušenost, které prediktory jsou vhodné a které nikoli. Metoda představená v tomto článku předkládá data pouze v nezpracované podobě, tzn. bez jakékoli znalosti problematiky a nutnosti předzpracování. Data jsou předkládána formou grafů a umělá inteligence vyhodnocuje tato obrazová data. Je to totéž, jako by zkušený expert, který má dlouholeté zkušenosti, zhlédl graf a s jistou mírou pravděpodobnosti určil, o jakou závadu se jedná. Zde použitá metoda se nazývá Deep Learning a využívá umělé neuronové sítě; jedná se o neuronovou síť využívající několik skrytých vrstev. Základem je využití konvoluční neuronové sítě (CNN), která pracuje vhodně s obrazovými daty, a to tak, že zpracovává malé segmenty z celého obrazu a segmentuje si je na menší časti. Následují další vrstvy, jako například Pooling vrstvy, které snižují počet vstupů pro další zpracování. Vnitřní struktura neuronové sítě je volitelná a záleží na požadovaných vlastnostech; její volba také ovlivňuje náročnost výpočtu. To, co je však jasné, je vstupní a výstupní vrstva. Vstupní vrstva obsahuje tolik vstupů, kolik má pixelů vstupní obrázek, případně velikost vstupních dat, i když nejsou obrazového charakteru, a výstupní vrstva má tolik výstupů, kolik stavů/tříd/poruch chceme klasifikovat. Z toho je patrné, že výpočetní náročnost této metody je mnohem vyšší než klasifikace dat pomocí klasifikátorů popsaných dříve, protože zde existuje nutnost extrahovat prediktory automaticky a až poté provést „jednoduchou“ klasifikaci.

Metody Deep Learningu se běžně používají k rozpoznání/klasifikaci obrazových dat například v lékařství nebo ve strojovém vidění (autonomní automobily a podobně), jejich uplatnění je však univerzální a lze je úspěšně aplikovat do dalších odvětví technické praxe

Zdroj dat (dataset)

Zdrojem dat jsou naměřené hodnoty ze dvou akcelerometrů ADXL335, které měří vibrace diagnostického modelu, kde byly simulovány poruchy rotačních strojů, a to konkrétně statická a dynamická nevývaha ve dvou různých úrovních. Schéma modelu a umístění snímačů je na obrázku 1. Závady byly simulovány umístěním závaží do kotoučů, jak je znázorněno na obrázku 2. Pro každý vzorek dat bylo sejmuto 1000 vzorků rychlostí 2 kHz, pro obrazový vstup bylo použito pouze prvních 500 vzorků.

2Obrázek 2: Znázornění umístění závaží: a) bezporuchový stav, b) statická navývaha, c) dynamická navývaha

Sledované kategorie/třídy nebo stavy byly následující:

  • třída 1 „OK“ – z obou kotoučů jsou odstraněna závaží, jedná se o bezporuchový stav;
  • třída 2 „ST1“ – statická nevývaha 1, do obou disků jsou umístěna závaží o hmotnosti 2,5 gramu dle obr. 2b;
  • třída 3 „DYN1“ – dynamická nevývaha 1, do obou disků jsou umístěna závaží o hmotnosti 2,5 gramu dle obr. 2c;
  • třída 4 „ST2“ – statická nevývaha 2, do obou disků jsou umístěna závaží o hmotnosti 3,7 gramu dle obr. 2b;
  • třída 5 „DYN2“ – dynamická nevývaha 2, do obou disků jsou umístěna závaží o hmotnosti 3,7 gramu dle obr. 2c.

Zpracování dat

Nyní následuje příprava dat, která budou předkládána do procesu učení. Oproti metodám, kde je nutno vytvořit prediktory, tzn. mít znalost problematiky a vědět, jaké prediktory vystihují podstatu problému, zde provedeme pouze normalizaci dat do určité konstantní obrazové podoby, tedy aby vstupní data měla stejný počet vstupních pixelů, a to jak data určená pro učení, tak data budoucí, jež se budou vyhodnocovat. V následujícím příkladu byly provedeny dva experimenty (dvě různé sady obrázků) a budou porovnány jejich výsledky.

Z minulých experimentů popsaných v [1][2] neměla klasifikace problém rozpoznat závady, pokud měla k dispozici zdroje dat z obou míst (1 a 2) a z obou os, a dosahovala úspěšnosti 100 %, proto byl proveden druhý experiment, kdy byla poskytnuta data pouze z místa 2, to znamená údaje pouze z jednoho snímače. Pak dosahovala úspěšnost „pouze“ 91 %. Podobně byl zvolen přístup i v tomto případě.

Experiment 1 – Data z obou snímačů

Byla předkládána data z obou míst (obou snímačů) a jednalo se o časové průběhy zrychlení, příklad předkládaných obrazových dat pro jedno měření je na obr. 3.

3Obrázek 3: Ukázka předkládaného grafického vstupu pro experiment 1 – rozměr je 1040 × 260 pixelů (pozice 1 osa X, pozice 1 osa Y, pozice 2 osa X a pozice 2 osa Y)

Experiment 2 – Data z jednoho snímače

Byla předkládána data pouze z jednoho snímače a opět se jednalo o časové průběhy zrychlení, příklad je na obr. 4. Vzhledem k tomu, že vibrace se kvůli rozdílné tuhosti pozice 1 a pozice 2 budou projevovat odlišně, byla vyhodnocena každá pozice zvlášť.

obr4Obrázek 4: Ukázka předkládaného grafického vstupu pro experiment 2 – rozměr je 520 × 260 pixelů (jedna pozice 1 nebo 2, osa X a Y)

Proces trénování sítě

Postup pro práci s metodou Deep Learning je následující. Nejdříve je nutno definovat model sítě (topologii sítě), tzn. pořadí, druh a počet vrstev neuronové sítě. Následně tento model natrénovat, což pro síť znamená nalezení několika parametrů (tzv. vah). V tomto případě se jednalo o počet 311 502 021 (pro pozice 1 a 2). Toto číslo je zbytečně vysoké a je dáno neoptimálním nastavením jednotlivých vrstev; přidáváním dalších vhodně nastavených vrstev by bylo možné redukovat výstupní parametry z každé vrstvy a tím dosáhnout nižšího počtu nastavitelných parametrů. V tomto experimentu byla síť sestavena spíše minimalisticky než optimálně a vzhledem k dobrým výsledkům s experimentem 1 ji nebylo nutné více optimalizovat. Nicméně je nutné podotknout, že počet vrstev a neuronů by měl být co nejnižší, jinak se může síť začít chovat jako paměť, tzn. sice se perfektně naučila předkládaná data, ale o to horší je na nových (neznámých) datech.

Jako programové prostředí bylo zvoleno prostředí Python 3.x [5] a knihovny Keras [3] a TensorFlow [4], a to zejména díky vhodným licenčním podmínkám, což v tomto případě znamená, že oba použité nástroje je možné zdarma šířit a používat i pro komerční použití (Keras – MIT licence, TensorFlow – Apache License 2.0 a Python – OSI-approved open source license).

Konkrétní topologie sítě použitá u obou experimentů byla následující:

  • layers.experimental.preprocessing.Rescaling(1./255, input_shape=(img_height, img_width, 3));
  • layers.Conv2D(16, 3, padding='same', activation='relu');
  • layers.MaxPooling2D();
  • layers.Flatten();
  • layers.Dense(128, activation='relu');
  • layers.Dense(num_classes).

Jedná se tedy o vstupní vrstvu, která upraví jednotlivé pixely na matici 0–1, následuje konvoluční vrstva, dále aplikace MaxPooling, poté úprava výstupu pomocí vrstvy Flatten (převod na 1D objekt) a potom přijdou na řadu plně propojené dvě vrstvy Dense, kdy výstupů je stejný počet jako počet klasifikačních tříd, což je v tomto případě 5. Grafické znázornění struktury sítě je na obr. 5.

obr5Obrázek 5: Grafické znázornění topologie použité sítě

Po vytvoření modelu nastává proces učení, který je náročný na výpočetní výkon; je tedy časově náročný, avšak plně automatizovaný. Umělá inteligence se učí (trénuje), což znamená, že nastavuje 311 502 021 parametrů (69 223 621 u experimentu 2) tak, aby úspěšnost klasifikace byla co nejvyšší. Uživatel zadává počet „pokusů“, při nichž dochází k dosahování lepších výsledků. Pokud se výsledek již nelepší nebo byl dosažen stanovený limit pokusů, dojde k zastavení procesu učení a výsledkem je parametr „accuracy“, což je maximální dosažená úspěšnost predikce a samozřejmě naučený model, který lze používat k predikci nových neznámých dat. Vlastní predikce již není výpočetně ani časově náročná.

Poté následuje proces ověření, což znamená otestovat naučený model na nových (pro UI neznámých) datech a ověřit si skutečnou přesnost predikce. K tomuto účelu je vhodná tzv. klasifikační matice (confusion matrix), jež nám ukazuje nejen dosaženou přesnost predikce, ale i které třídy jsou při predikci navzájem zaměňovány. Například pokud by se jednalo o rozpoznávání textu, pak by zřejmě docházelo k záměně znaků „O“ a „0“.

Vyhodnocení

Z dříve provedených metod klasifikace [1][2] byly výsledky následující. Pokud do systému vstupovala všechna data, tzn. osy X a Y z míst 1 i 2, byla úspěšnost klasifikace 100 %, a pokud do systému vstupovala data pouze z pozice 1, dosahovala klasifikace úspěšnosti 91 %; při datech z pozice 2 to bylo 100 % (nově provedený vypočet).

Podobná úspěšnost byla očekávána i při metodě Deep Learning. Konkrétní výsledky jsou v tab. 1 a na obr. 6 a 7 jsou klasifikační matice, a to pro data pouze z pozice P2 (obr. 6) a pouze z pozice P1 (obr. 7); pro obě pozice by vypadala stejně jako P2, tzn. 100% úspěšnost. Klasifikační matice zobrazuje nejen celkovou míru úspěšnosti klasifikace (predikce), ale co je důležité, umožňuje lokalizovat, které třídy umělá inteligence zaměňuje mezi sebou. Na ose Y s názvem „True class“ jsou skutečně předkládány třídy a na ose X s názvem „Predicted class“ jsou výsledky predikce; v ideálním případě by měly být hodnoty pouze na diagonále, jak je tomu u pozice P2 (obr. 7), avšak u P1 na obr. 6 je patrné, kolikrát a které třídy (v tomto případě poruchy) byly zaměňovány, tzn. hodnoty mimo diagonálu jsou špatně predikovány.

Tabulka 1: Porovnání úspěšnosti klasifikace

Vstupní data (M – místa)

Deep Learning

Metody z [1][2]

P1 a P2

100 %

100 %

P1

82 %

91 %

P2

100 %

100 %

obr6Obrázek 6: Výsledná klasifikační matice pro experiment 1 – pozici 1 („samples“ je počet vzorků použitých pro ověření, „acc“ je celková úspěšnost klasifikace)

obr7Obrázek 7: Výsledná klasifikační matice pro experiment 1 – pozici 2 („samples“ je počet vzorků použitých pro ověření, „acc“ je celková úspěšnost klasifikace)

Závěr

Tento příspěvek měl za cíl představit metodu Deep Learning s konkrétním použitím v technické diagnostice při úkolu rozpoznat stavy stroje na základě grafických dat a zároveň sloužil jako porovnání metody s dříve testovanou metodou klasifikace u známého datasetu.

Výsledná úspěšnost v tabulce 1 a na obr. 6 a 7 je vysoká a potvrdila schopnosti této metody pro řešení zadaného úkolu; bude tedy dále testována v úkolech rozpoznávání stavu stroje v praxi. Nutno však podotknout, že testovací data byla pořízena v laboratoři a mají charakter ideálních průběhů; takto ideální hodnoty nelze očekávat u měření v praxi, kde hlavním nedostatkem je malé množství dat obsahujících záznamy při poruše, protože cílem je samozřejmě mít poruch co nejméně.

Výhodou metody Deep Learning a využití konvolučních neuronových sítí je nejen schopnost učit se, ale také extrahovat prediktory a poté provést klasifikaci, to znamená, že je lze využít i v situacích, kde nejsou známy expertní podrobnosti problematiky. Tato skutečnost však může být problematická v situaci, kdy není známo, co je hlavním ukazatelem (prediktorem) klasifikační třídy (stavu stroje), a tudíž není jasné, jak případnou nízkou úspěšnost vylepšit (není známo, co ji způsobuje). U metod popsaných dříve [1][2] a vycházejících z tradičních klasifikátorů je sice nutná určitá znalost problematiky a také i složitější předzpracování dat při tvorbě prediktoru, nicméně je jasné, co jsou důležité ukazatele; dle potřeb lze pak přidávat další, které více vystihují daný stav (poruchu).

Další možností je metody kombinovat, tzn. předzpracovávat vstupní data (například FFT) a předkládat data i s dalšími ukazateli stavu stroje, což by mohlo dále zvyšovat míru úspěšnosti klasifikace u problémů, které v počáteční fázi nevykazují dobré výsledky.

Poděkování

Publikované výsledky byly dosaženy s podporou projektu TAČR č. FW01010485 – Automatické kontroly vyhrazených technologických zařízení s využitím strojového učení.

Použitá literatura

  • ZUTH, D.; MARADA, T. Utilization of Machine Learning in Vibrodiagnostics. Advances in Intelligent Systems and Computing, 2018, č. 2017, s. 271-278. ISSN: 2194-5357.
  • ZUTH, D. Ukázka využití strojového učení ve vibrodiagnostice. Řízení&údržba průmyslového podniku, 2018, č. 4, s. 14-16. ISSN: 1803-4535.
  • Keras: the Python deep learning API. Keras: the Python deep learning API [online]. [cit. 17.05.2021]. Dostupné z: https://keras.io/
  • TensorFlow. TensorFlow [online]. [cit. 17.05.2021]. Dostupné z: https://www.tensorflow.org/
  • Welcome to Python.org. Welcome to Python.org [online]. Copyright ©2001 [cit. 17.05.2021]. Dostupné z: https://www.python.org/
Řízení a údržba průmyslového podniku

Časopis Řízení a údržba průmyslového podniku již přes 10 let patří mezi neodmyslitelný zdroj informací v oblasti průmyslové údržby a diagnostiky. Část obsahu je z pera licenčních autorů Plant Engineering z USA.

www.udrzbapodniku.cz