WIKT 2017 - 12th Workshop on Intelligent and Knowledge oriented Technologies 2017
WIKT challenge 2017
V posledných rokov ľudstvo zdokonalilo rozličné stroje tak, že dokážu nahradiť prácu človeka, prípadne ju dokonca prekonať. Toto prináša množstvo výhod, avšak tiež hrozbu zneužitia strojov. Rozličné automatizované generátory napríklad dokážu napodobniť rukopis človeka, jeho gestá či správanie, čo môže viesť k rozličným formám zneužitia a získania neoprávneného prístupu.
V prvej WIKT challenge sa preto zaoberáme automatickým rozpoznávaním rukou písaných znakov od strojovo generovaných napodobenín. Cieľom je nájdenie riešenia, ktoré pomocou algoritmov strojového učenia dokáže rozlíšiť pôvodcu písaného textu. Táto úloha bola inšpirovaná najme faktom, že v súčasnosti existuje len málo voľne dostupných datasetov umožňujúcich trénovanie a testovanie algoritmov rozpoznávajúcich automatizované generátory. Pre WIKT challenge 2017 sme preto pripravili nový dataset a prichádzame s jednoduchou úlohou binárnej klasifikácie, kde je hľadanou premennou informácia či bol určitý znak napísaný človekom alebo vygenerovaný automaticky.
- Jakub Ševcech, FIIT STU - hlavný organizátor
- Ondrej Kaššák, FIIT STU
- František Babič, FEI TUKE
V prípade akýchkoľvek otázok kontaktujte organizátorov na adrese: jakub.sevcech at stuba.sk
Riešená úloha pozostáva z binárnej klasifikácie pôvodcu písaného znaku (nie rozpoznania samotného znaku). Na jednej strane máme množinu pozorovaní (znakov) vytvorených človekom, na druhej strane zmiešanú množinu pozorovaní pochádzajúcich z niekoľkých rozlične sofistikovaných generátorov. Úlohou je natrénovať model schopný odlíšiť tieto dve množiny.
K dispozícii je trénovacia množina 100 000 pozorovaní označkovaných ich skutočnou triedou (človek - 0 alebo generátor - 1), validačná množina 20 000 označkovaných pozorovaní a testovacia množina 20 000 pozorovaní bez značky. Cieľom je správne označkovať testovaciu množinu.
Obe triedy (0,1) sú z pohľadu početnosti pozorovaní vyvážené, pozorovania v automatizovane generovanej triede však pochádzajú z viacerých generátorov a pomer ich početností nemusí byť vzájomne rovnaký.
Dátová sada bola vytvorená automatizovanou extrakciou čŕt z datasetu MNIST. Pôvodný dataset obsahuje čiernobiele obrázky rukou písaných znakov s rozmerom 28x28 pixelov, kde je každý pixel reprezentovaný číslom v intervale 0-255 predstavujúcim odtieň čiernej farby. Dimenzia pôvodnej dátovej sady (28x28 = 784 numerických atribútov pre každé pozorovanie) bola redukovaná na 32 latentných čŕt pomocou metódy na extrakciu čŕt a redukciu dimenzionality založenej na hlbokých neurónových sieťach. Trénovacie dáta, validačné dáta, testovacie dáta, ako aj generátory falošných údajov sú založené na dátovej sade po redukcii dimenzionality. Vizualizáciu pôvodných údajov ako aj ich redukovanej podoby je možné vidieť ako obrázky nižšie.
Pôvodné obrázky s rozmerom 28x28 pixelov:
Redukované pozorovania na 32 čŕt vizualizované ako obrázok:
Pre potreby vizualizácie poskytujeme dekóder, ktorý umožňuje aproximatívnu transformáciu 32 rozmerného vektora do pôvodného 784 vektora. Toto umožňuje vizualizovať pozorovania v podobe čitateľnej pre človeka. Poskytujeme tiež ukážkový príklad v jazyku Python, pomocou ktorého je možné tieto pozorovania vizualizovať. Na spustenie tejto ukážky je potrebné použiť Python 3.5, Jupyter a knižnice TensorFlow (verzia 1.1.0) a Keras (verzia 2.0.8)
Na stiahnutie sú k dispozícii (TU):
- Trénovacia dátová sada (x_train.csv)
- Značky trénovacej dátovej sady (y_train.csv)
- Validačná dátová sada (x_validation.csv)
- Značky validačnej dátovej sady (y_validation.csv)
- Testovacia dátová sada (x_test.csv)
- Dekóder (decoder.json & decoder.h5)
- Ukážka použitia dekódera (Pouzitie dekoderu.ipynb)
- Ukážka súboru s riešením na odovzdanie (ukážka obsahuje predikcie náhodným klasifikátorom) (sample_prediction.csv)
Pre prihlásenie sa do challenge je potrebné vyplniť google formulár, súčasťou ktorého je aj odovzdanie súboru s riešením. Vyplnenie a odoslanie je možné najneskôr do dátumu uvedeného v harmonograme. Riešenie je možné odosielať opakovane (vyplnením nového formuláru) až do uvedeného dátumu. Pre každý tím akceptujeme naviac (prvých) 5 odovzdaní. Jednotlivé odovzdania odlíšte poradovým číslom (otázka 3 vo formulári) postupne od 1 po 5.
Súbory s riešením budú vyhodnocované automaticky, preto treba dodržať požadovaný formát (ako v ukážke - sample_prediction.csv) kedy pre každé pozorovanie z testovacej množiny so zachovaním poradia zapíšete do súboru s riešením na samostatný riadok predikovanú značku triedy (0 pre pozorovania vytvorené človekom alebo 1 pre pozorovania vytvorené niektorým generátorom).
Riešenie účastníkov budú posudzované a zoradené z hľadiska F1 metriky, pre lepšiu ilustráciu však budú zverejnené tiež:
- Precision
- Recall
- Accuracy
- F1
Pre vyhodnocovanie používame micro verzie týchto metrík. Keďže sú ale triedy vyvážené, tak ich výsledky sú rovnaké ako pri použití ich makro verzií.
Október 22 | Začiatok challenge, zverejnenie dát |
November 26 | Koniec zasielania riešení, po tomto dátume nebudú riešenia vyhodnotené |
November 27 | Zverejnenie výsledkov a poradia tímov |
November 27 | Oslovenie víťazných tímov s prípravou krátkej prezentácie riešenia na WIKT |
November 30 | WIKT 2017, prezentácia víťazných riešení |
Pre priebežné porovnanie riešení účastníkov poskytujeme výsledky baseline riešení na trénovacej vzorke vypočítaných za použitia verejne dostupných klasifikačných algoritmov strojového učenia z Scikit-learn knižnice jazyka Python. Baseline riešenia boli vyhodnotené na dátach po redukcii dimenzionality (32 čŕt bez ďalšieho predspracovania) a bez optimalizácie hyperparametrov daných klasifikačných algoritmov (použité boli len prednastavené parametre). Nasledujúca tabuľka uvádza výsledky použitých baseline riešení na validačnej vzorke:
Poradie | Algoritmus | F1 | Precision | Recall | Accuracy |
1 | SVM | 0.939 | 0.944 | 0.939 | 0.939 |
2 | Random Forest | 0.836 | 0.853 | 0.837 | 0.837 |
3 | kNN | 0.789 | 0.850 | 0.797 | 0.797 |
4 | Decision Trees | 0.777 | 0.777 | 0.777 | 0.777 |
5 | Naive Bayes | 0.588 | 0.684 | 0.622 | 0.622 |
6 | Logistic regression | 0.580 | 0.593 | 0.586 | 0.586 |
7 | Random | 0.502 | 0.502 | 0.501 | 0.501 |