Petr Pilný

Nerozumíte počítačům? Já občas také ne...

OriTas v roce 2021

OriTas v aktuální verzi – obrovský balík kódu, u kterého se celkem divím, že ještě drží pohromadě.

Už několik let (si) slibuji, že OriTas je s vývojem u konce, ale jsou věci, co člověku nedají spát. Je tomu pár/hodně měsíců, co jsem tak trochu tiše záviděl jednomu z mých přátel, že využívá moderní AI učení a říkal si, že by to bylo super, kdybych to alespoň nějak dokázal využít. Ale času není nikdy zrovna dost a tak jsem si to jen uložil do myšlenkového šuplíku ke zpracování za dlouhých zimních večerů. A že byly letos díky několika uzavírkám všeho dlouhé docela dost!

Myšlenkové šuplíky mám rád, vždy do nich ukládám a občas se přeci jen najde něco, co se z nich dostane zpět na světlo světa. A jedním z nejvíce na tom/na nich profitujících projektů je právě OriTas. Kdysi z šuplíku vzešly genetické algoritmy, které ale na kinetickou analýzu nejsou zrovna ideální. Následoval další obrovský kus kódu – mapování. To stavělo z části na zkušenostech z genetiky a z části na dalších vlastních nápadech. Na rozdíl od genetiky je mapování sice pomalejší, ale plně funkční metodou kinetické analýzy (a také celkem bezproblémovou).

Naměřená data, poměrně složitá na vyhodnocení – a tím nemyslím jen z pohledu počítače. Ještě důležitější roli hraje ten, co vyhodnocení provádí.

No a tak jsem letos za těch dlouhých zimních večerů sáhnul do šuplíků potřetí. Rozhodl jsem se OriTas prostě a jednoduše naučit poznávat a analyzovat píky tak, aby po spočtení několika základních parametrů dokázal určit alespoň přibližně základní parametry – aktivační energii, předexponenciální faktor a parametr modelu (JMA). Úkol to není snadný, chtěl jsem, aby to dělal pro jednu křivku a ne pro celou sadu a byl tak lepší než mapování. Chtěl jsem, aby byl rychlejší než mapování a optimálně i rychlejší než genetika při minimálně srovnatelných výsledcích. A samozřejmě jsem chtěl, aby byl naprosto bez zásahu uživatele.

Největší překážkou je hned první úkol – fungovat pro jednu rychlost ohřevu. Teoretické křivky mají totiž jednu nepříjemnou vlastnost – vždy nabízejí nekonečně stejně dobrých řešení, ze kterých bez měření další rychlosti ohřevu nelze vybrat to správné. Zde jsem ale využil zkušeností z mapování a především genetiky. Reálná data totiž nejsou tak dokonalá a právě tyhle metody sice nefungují dokonale na simulacích, ale na reálných datech nabízejí použitelné výsledky.

Nápad byl na světě a protože OriTas už vše potřebné (simulace, vyhodnocení parametrů píku) umí, stačilo ho trochu násilně přinutit, aby začal počítat databáze hodnot pro celkem široké hodnoty parametrů. Na začátku se ne zcela dařilo dosahovat ani malé části cílů, ale tak nějak jsem tušil, že by to mohlo přeci jen fungovat. Největší problém byl vyřešit rychlost práce se soubory, naštěstí doby jedno-jádrových procesorů, malého množství operační paměti a pomalých disků jsou pryč. A tak jsem si pro testování napočítal databáze tvaru píku pro 12 rychlostí ohřevu a více než 80000 kombinací tří výše uvedených parametrů. Výsledkem je databáze se zhruba 1000000 řešení, která dává OriTasu naději, že „zná vše“. Ve skutečnosti zná celkem dobře vše v určeném rozmezí parametrů (které lze libovolně upravit s podmínkou, že je třeba vše znovu napočítat).

Jistě se teď nabízí otázka, v čem to je výhodné. Výpočet databáze pro jednu rychlost ohřevu aktuálně trvá několik hodin, 12 rychlostí ohřevu a máme tu celý den – tedy lépe řečeno spíš týden, pro kompletní data raději dva týdny. Měsíc je jistota. V praxi nepoužitelné. Ale…

AI maps – 972973 řádků testu ve 12 sloupcích. A několik stovek MB operační paměti. Cílem je zhruba dvojnásobná velikost.

Načtení databáze téhle velikosti trvá zhruba 10 sekund. Pouhých 10 sekund. Ve finální velikosti to bude třeba 30 sekund. Otestování načtených dat pak trvá několik desítek až stovek milisekund na jednu rychlost ohřevu. A to je tedy aktuální výsledek. Mám k dispozici z části otestovanou funkci, která využije předem investovaný (nemalý) výpočetní čas pro rychlé a bezzásahové určení parametrů procesu. Nabízí navíc možnost i výsledky zpracovat podobně jako mapování i pro více rychlostí, ale je otázkou, zda tam něco takového zapracuji (bylo by to už o dost pracnější, ani tohle nebylo otázkou jen několika večerů). Minimálně export získaných dat už ale funguje nyní a jsem si jistý, že takhle rozsáhla databáze tvaru píku(ů) jen tak někde neexistuje.

Způsobů dalšího využití není málo – dost mých metod potřebuje nástřel, kde začít hledat, třeba i již zmíněná genetika, nabízí se i použití jako samostatné metody. A pokud by tahle cesta vedla ke zdokonalení ostatních metod, bude to pro mě jednoznačný úspěch – tím spíš, že by se vlastně provedla sama na pozadí, než si vyberete, který projekt vůbec otevřete. Nemluvě o získaných zkušenostech se zpracováním už celkem velkých dat. Pro letošek se tedy můžete těšit na tučnou aktualizaci, která nikterak nenaruší základní funkce OriTasu, místy ho uhladí a místy zdokonalí (můžete se těšit i na přidání základních klávesových zkratek, po těch letech…).

U tlačítek Search (Line #1-8) jsou vidět nalezené výsledky – Friedman určil aktivační energii na 127+/-10kJ, na to, že jsme na startu, tak nejsme daleko.

Jak vidíte na obrázcích kolem, tak se zdá, že to celkem spolehlivě funguje. Docela dost času zabralo vyškrtání několika parametrů a zvýšení váhy jiných. Výsledek na tom dost záleží, aktuálně jsem nastavil jako nejpodstatnější parametr maximum píku. I tady mne ale čeká ještě docela dost pokusování. Každopádně pokud srovnám nalezené výsledky ostatních metod pro aktivační energii, dostanu následující tabulku.

MetodaKissingerOzawaFriedmanOza-ChenOza-ChenIITakhorComb. KAGen.Map.AI
Ea [kJ]138,4137,9127,9+/-10,3128,8+/-2,5141,8145,1113,4138,2129,2123,0
Srovnání výsledků nalezených aktivačních energií z různých metod.

Že je nalezený výsledek použitelný alespoň jako nástřel potvrzuje i proložení naměřených dat simulací dle nalezených parametrů.

Ani nalezený výsledek není daleko (jedná se o docela komplikovaný proces). Pokud bych měl tohle jako nástřel k dalším metodám…

Tak jak bývá zvykem, před koncem roku dorazí letošní update OriTasu. Pokud nové funkce nepotřebujete, nikterak se vás nedotkne. Ale třeba vás zaujme další díl mé kuchařky „vaříme kinetickou analýzu jinak“. Kdo se u dnešní novinky dočetl až sem, tak před ním smekám. Pokud vše půjde správným směrem, určitě se ještě do konce roku ozvu s dalším novinkovým článkem.

Dovětek: Samozřejmě takhle vytvořený algoritmus má k AI hodně daleko, ale přemýšlení nad AI mě dovedlo alespoň k takovému cíli. To jen potvrzuje to, že pokud se dostanete k informacím, které normálně nesledujete, může to občas prospět nečekaně i vaší práci/zálibě.

OriTas v roce 2021

Napsat komentář

Přesunout se na začátek