Dzięki Machine Learning wiemy, gdzie powstaną nowe lasy
Co roku z powierzchni Ziemi znika obszar leśny większy niż Polska. Lasy nieprzypadkowo są nazywane “zielonymi płucami” naszej planety, a instytucje na całym świecie próbują znaleźć dobre rozwiązanie problemu wylesienia. My, uzbrojeni w uczenie maszynowe, postanowiliśmy w tym pomóc. Tak zrodził się pomysł na dział machine learning w SoftwareMill.
Zarówno zapobieganie wylesianiu, jak i promocja odtwarzania obszarów leśnych, wpływają bezpośrednio na złagodzenie zmian klimatycznych. Na fakt, że pokrywa leśna zmniejsza się mają wpływ zasadniczo dwa czynniki:
- naturalne procesy biologiczne, w tym również katastrofy naturalne,
- bezpośrednia działalność człowieka, w tym agrobiznes.
Nie każdy zdaje sobie sprawę, ale rolnictwo i przemiany z nim związane, to zarówno jeden z głównych czynników deforestacji, jak i szansa na upatrywanie w tych procesach ratunku dla lasów. Około 0,9 miliarda hektarów ziemi na całym świecie, kiedyś wykorzystywanych do celów rolniczych, nadawałoby się do ponownego zalesienia, ale takie obszary należy najpierw zidentyfikować. Wyzwanie polega na tym, jak szybko i efektywnie kosztowo zidentyfikować miejsca, w których nowy las może rosnąć.
Zwykle odbywa się to w formie badań terenowych, które polegają po prostu na jeżdżeniu po okolicy, czy wertowaniu masy zdjęć lotniczych lub satelitarnych. Jest to kosztowne i czasochłonne. A co by było, gdybyśmy skorzystali z uczenia maszynowego? Czy możemy ten problem rozwiązać lepiej?
Z pasji do uczenia maszynowego i geografii
Dzięki postępom w uczeniu maszynowym, możemy bez problemu wykorzystać predykcyjną moc sztucznej inteligencji, aby tworzyć lepsze modele procesów środowiskowych oparte na danych. Taki pomysł zaproponował rok temu na jednym z naszych firmowych spotkań Maciej Adamiak, Machine Learning Engineer, obecnie już prezes naszej nowej spółki ML-owej - ReasonField Lab.
To, że dział Machine Learning, obecnie kluczowy dla SoftwareMill obszar działania, zrodził się z pasji i spontanicznie, nie jest u nas niczym nadzwyczajnym. Często podczas codziennej pracy, samokształcenia czy nawet rozmów formułują się ciekawe pomysły i problemy, z których nierzadko tworzymy oddolne inicjatywy. W przypadku Machine Learning, Maciej, również absolwent Wydziału Nauk Geograficznych UŁ, zidentyfikował istotny dla jednostek naukowych obszar, w którym możemy się sprawdzić, jako partner posiadający kompetencje i umiejętności potrzebne do pozyskiwania i analizy danych. Pomysł padł na podatny grunt. W firmie bez problemu znaleźli się inżynierowie Scala, którzy chcieli podjąć wyzwanie i wejść w uczenie maszynowe.
Model uczenia maszynowego do klasyfikacji odłogów
Nim przejdziemy do technicznych aspektów, ktoś może zapyta czym są odłogi. Są to grunty porolne pozostawione bez ingerencji człowieka przez wiele lat, które początkowo zarastają roślinnością, a następnie różnymi gatunkami krzewów i drzew. Takie obszary to miejsca, które można ponownie zalesić. Problem w tym, by je zidentyfikować sprawnie i efektywnie.
My postanowiliśmy spojrzeć na ten problem badawczy z perspektywy uczenia maszynowego. Chcieliśmy “uzbroić” komputer w wiedzę geografa. A dokładnie nauczyć maszynę pewnego wycinka kompetencji profesjonalnego badacza i zaprojektować sieć neuronową do wykrywania odłogów.
Mając do dyspozycji szeroko dostępne multispektralne obrazy satelitarne z projektów takich jak: Landsat i Sentinel, użyliśmy deep learning, a w szczególności konwolucyjnych sieci neuronowych (CNN), które umożliwiły szybką i skuteczną analizę wielu klas problemów związanych z oceną gruntów. Problemy badawcze sformułowaliśmy w porozumieniu z naukowcami z Uniwersytetu Łódzkiego, a z drugiej strony za stworzenie modelu sieci neuronowych odpowiedzialni byliśmy my - specjaliści od uczenia maszynowego i programowania.
Efekty naszej pracy zostały opublikowane w dwóch artykułach naukowych w czasopiśmie Land oraz Remote Sensing:
- “Detecting Land Abandonment in Łódź Voivodeship Using Convolutional Neural Networks”
- Impairing Land Registry: Social, Demographic, and Economic Determinants of Forest Classification Errors
Jak technicznie zaprojektowaliśmy tę sieć neuronową? Nasza sieć generuje prawdopodobieństwo klasyfikacyjne dla obecności odłogów i wykorzystuje do tego dane obrazowania wielospektralnego uzyskane za pomocą Sentinel Hub. Zarówno do trenowania sieci, jak i do walidacji modelu wykorzystaliśmy obrazy z obszaru województwa łódzkiego w centralnej Polsce. W celu przygotowania danych do trenowania sieci skorzystaliśmy z ortofotomap z 2009 dostępnych w WMS (Web Map Service) witryny Geoportal oraz specjalistycznej wiedzy naukowców z UŁ.
Korzystając z wyników klasyfikacji i statystyki Getis – Ord Gi*, przygotowaliśmy progową mapę cieplną. Analiza tej mapy pozwoliła nam zidentyfikować czynniki wpływające na powstawanie odłogów, a poprzez interpretację wyników klasyfikacji wybranego modelu zidentyfikować wspólne trendy. Dodatkowo przeprowadziliśmy porównawcze badanie terenowe na dwóch wybranych zimnych i gorących punktach. Badanie, wraz z bardzo dokładnymi wynikami walidacji modelu, potwierdziło, że deep learning jest skutecznym narzędziem do automatycznego wykrywania porzucania gruntów.
Takie działania na polu naukowym, to przykład jednego z wielu zastosowań Machine Learning i sieci neuronowych w obszarze teledetekcji. Możliwości są nieskończone. Uczenie maszynowe daje możliwość wyszukiwania skomplikowanych wzorców, niedostępnych dla tradycyjnych metod statystycznych. Dodatkowo, raz wyuczony model maszynowy potrafi znacznie zwielokrotnić efektywność pracy zespołu badawczego.
Oddolne inicjatywy i zaangażowanie
Od momentu rozpoczęcia prac nad pierwszym projektem uczenia maszynowego, adresującym problem zanikających obszarów leśnych minął rok. W tym czasie nasz dział Machine Learning rozwinął się do 4-osobowego zespołu inżynierów uczenia maszynowego, dorobił się własnej spółki, opublikował 2 publikacje naukowe, oraz rozpoczął kilka projektów komercyjnych.
Praca inżyniera uczenia maszynowego w SoftwareMill to, prócz pracy projektowej, w dużej mierze ciągła nauka i szkolenie swoich umiejętności. Doskonałym poligonem doświadczalnym dla uczenia maszynowego jest przetwarzanie obrazu, czyli dyscyplina zwana Computer Vision (CV). W tym się obecnie specjalizujemy, szczególnie w analizie treści zdjęć satelitarnych.
W przyszłości nie zamykamy się na wąską specjalizację Computer Vision, a każdy, kto dołącza do zespołu Machine Learning, ma swoje indywidualne preferencje co do kierunku w jakim chce się rozwijać. Świętym Graalem dla każdego programisty jest ciekawy projekt, dlatego ogromny nacisk kładziemy na oddolne inicjatywy, naukę, rozwój i wzajemną pomoc. Wiemy z doświadczenia, że takie działania jak wchodzenie w nowe obszary i specjalizacje, jeśli są tworzone oddolnie przez ludzi, to potem te osoby z pasją dzielą się zdobytą wiedzą i mają satysfakcję z codziennej pracy. Buduje to niesamowicie siłę każdej organizacji u jej podstaw.
Ważnym aspektem działania SoftwareMill są regularne spotkania. W trakcie takich spotkań omawiamy wiele istotnych kwestii z życia firmy, podejmujemy decyzje w sposób transparentny, uczymy się od siebie nawzajem. W taki sam sposób działa zespół Machine Learning. Korzystamy w praktyce z kilku regularnych formatów spotkań, na które przygotowujemy opracowania konkretnych tematów. Czasami są to teoretyczne zagadnienia, czasami ciekawe przypadki z projektów komercyjnych. To świetna forma nauki i systematyzowania wiedzy dla nas samych, gdyż nie ma lepszego sposobu na dogłębne zrozumienie jakiegoś zagadnienia niż wytłumaczenie go innej osobie tak, by je zrozumiała.
Ciekawą formuła spotkania, o której warto tu wspomnieć, choćby dlatego, że pozwala wspólnie i w angażujący sposób zgłębić trudne zagadnienia, jest nasze autorskie “20 minutes papers”, oparte na wspaniałym 2 minutes papers, ale my czytamy wolniej :) Jak to działa? Przygotowujemy listę zagadek, pytań albo sytą całkę do policzenia i wspólnie rozkładamy je na czynniki pierwsze, nawzajem argumentując swoje podejścia do rozwiązania problemu. Spotkanie trwa 20 minut i jest dość intensywne.
Uczenie maszynowe a inżynierskie podejście
SoftwareMill jest firmą, której główną przewagą jest to, że się dobrze znamy na tym, co robimy, przede wszystkim dobrze się znamy na stronie technologicznej. Często ludzie znają nas dlatego, że czytali artykuł z naszego bloga, który pomógł im rozwiązać jakiś problem. Inżynierskim podejściem dzielimy się nie tylko między sobą, czy z klientem, ale właśnie na blogu firmowym (tu znajdziecie treści ML-owe), czy biorąc udział w konferencjach i meetupach skierowanych do globalnej społeczności IT, ostatnio niestety jedynie online.
Poza dynamicznie prącym do przodu teamem Machine Learning, budujemy oddolnie podobną strukturę skupiającą naszych inżynierów wokół technologii blockchain. Gdy rekrutujemy programistów, najważniejsze jest to, by od pierwszego dnia pracy u nas czuli, że ich głos liczy się tak samo i że mogą faktycznie wpływać na to w jakich obszarach działa firma. Jest to może nietypowe podejście, ale jak widać często owocuje ciekawymi inicjatywami.
MakeAnImpact - miej wpływ!
Artykuł powstał w ramach akcji #MakeAnImpact promującej projekty IT, które mają wpływ na otaczający nas świat. Skierowana jest do do społeczności IT.