Umělá inteligence | Programování

Strojové učení dokáže odhalit, kdo je autorem kódu

Programátoři mají podobně jako spisovatelé každý svůj odlišný styl psaní. Není ho bez dlouhé analýzy kódu jednoduché objevit, ale určité shodné znaky najít lze. A protože manuální hledání těchto prvků je zdlouhavé, výzkumníci z americké Drexel University vytvořili systém strojového učení, který je umí hledat sám.

Cílem podobného systému je deanonymizovat kódy, respektive jednodušeji zjišťovat, kde je jejich autorem. Jakmile je algoritmus vycvičen na vzorcích prací určitého člověka, dokáže na základě stanovených prvků poznat, jaké kódy tato osoba dále vytvořila.

Výzkumníci k testování použili kódy od 600 programátorů, kteří se účastnili každoroční programátorské soutěže Googlu Code Jam. Od každého jich měli osm. Algoritmus vytrénovali na jednom a jeho cílem bylo v celém vzorku poznat, jakých dalších sedm patřilo tomu konkrétnímu autorovi.

Výsledky byly solidní, byť ne perfektní. Systému se podařilo autora poznat v 83 procentech případů. To i tak stačí na to, aby algoritmus představoval skvělý nástroj pro policii, například při hledání autorů malwarů a jiných škodlivých programů, kteří se mnohdy snaží své autorství hodit na někoho jiného.

Stejně tak může být systém nápomocný při odhalování případů plagiátorství, protože dokáže rozpoznat rozdíl mezi náhodnou shodou a okopírováním stylu. Přeci jen, počítačové programy jsou chráněny autorským zákonem.

Je tu ale otázka ochrany soukromí a práva na anonymitu. Ne každý se chce ke svému programu nutně hlásit a nemusí to být jen kvůli kriminálním záměrům. Pomocí tohoto algoritmu jsou ale všichni programátoři potenciálně odhalitelní. Každé budoucí použití systému tak bude muset být pečlivě promyšleno.

Diskuze (9) Další článek: Zdá se, že na Měsíci kdysi mohly být podmínky vhodné pro život

Témata článku: , , , , , , , , , , , , , , , , , , ,