Podejścia pod sieci neuronowe

Sztuczna inteligencja, inżynier danych, Big Data to w ostatnich czasach gorące buzzwordy. Przynęty na programistów i wszelkich amatorów nowych technologii. Nie bez powodu, i nie bez powodu też rośnie zainteresowanie w tym temacie.

Sam wydźwięk słów sztuczna inteligencja niesie ze sobą coś odległego, ciekawego, niespodziewanego. Dlatego od zawsze też wzbudzał we mnie zainteresowanie. Postanowiłem wziąć temat na klatę i zmierzyć się z problemem który wyda mi się interesujący. Przypadkiem trafiłem na stronę Narodowego Archiwum Cyfrowego, gdzie znajduje się prawie 220 tysięcy skanów archiwalnych zdjęć dostępnych dla każdego.

Każde zdjęcie ma swoją kategorię, także opis, datę i miejsce wydarzenia, ale również inne informacje. Uznałem, że to świetny materiał na data scraping, w połączeniu z machine learningiem.

Plażowicze podczas wypoczynku przy stolikach pod parasolami. Data: 1931-05

 
Za pomocą skryptu pobrałem po tysiąc zdjęć z dwóch wybranych kategorii. Rozdzieliłem je do osobnych folderów, na część do trenowania i testowania. Dlaczego tylko tysiąc? Uznałem, że to dobre wyzwanie, gdyż zwykle w realnych zbiorach nie są to ogromne ilości jak na Kaggle, a dość skromne, często wybrakowane zbiory. Za pomocą prostych komend w Kerasie rozszerzyłem zbiór do ośmiu tysięcy zdjęć.

Opierałem się na podobnej metodzie, jak przy klasycznym problemie rozróżniania psów od kotów. Powinno być proste, powinno działać dość dobrze. Mimo wszystko niestety architektury od natury nie udało mi się tak sprawnie rozdzielić. Najlepsze uzyskane wyniki były około 60-65%, czyli niewiele lepiej niż losowe strzelanie.

Jakie wnioski? Prawdopodobnie brakuje mi albo lepszego zbioru, albo powinienem lepiej dobrać parametry sieci. A najprawdopodobniej obydwa. Co jednak mnie ucieszyło – wszystko zadziałało i sporo się nauczyłem.