Szanowni Państwo (myślę, że ping @Obywatel Federacjii @Obywatel Federacji - bez prawa wyborczegoto dobry pomysł),
Jest mi ogromnie miło stanąć dziś tutaj, na Placu im. Patricii Waffla, i ogłosić coś, co z pełnym przekonaniem mogę nazwać największym pojedynczym projektem technologicznym, jaki kiedykolwiek powstał zarówno z inicjatywy Robingrenów, jak i całej Ligii Innowacji Strategicznych.
W ciągu ostatnich dni, a właściwie także nocy zbudowaliśmy coś, co jeszcze kilka tygodni temu brzmiałoby jak czyste science fiction. Projekt ten nosi nazwę mikroGRUcast. Jest to w pełni autorska, napisana praktycznie od zera sieć neuronowa typu GRU, której zadaniem jest prognozowanie pogody... w całym polskim mikroświecie!
Co istotne, nie mamy tu do czynienia z prostą zabawką opartą na losowym generowaniu temperatur, bo sam mikroGRUcast to pełnoprawny model, który w swoich obliczeniach uwzględnia przede wszystkim narrację i wcześniejszą charakterystykę regionu. Na obecnym etapie system potrafi przewidywać średnią oraz maksymalną temperaturę dla dowolnie wskazanego miasta. Dodatkowo rozumie on pory roku dzięki zastosowaniu sinusa i cosinusa dnia w roku, a także generuje podstawową interpretację warunków pogodowych, takich jak opady śniegu, deszczu czy zachmurzenie. Wszystkie dane wejściowe pochodzą z interaktywnej mapy Pollinu. Po krótkich rozmowach z przedstawicielami Muratyki udało się ustalić realne lokalizacje, na podstawie których do tej pory pozyskiwano dane pogodowe. Następnie, korzystając z historycznych danych rzeczywistych lokalizacji z ostatnich 15 lat, przygotowałem zestawy danych w formacie CSV, które posłużyły do wytrenowania modelu i wygenerowania prognoz.
Na obecnym etapie, głównie z myślą o bezpieczeństwie oraz rozsądnym tempie testów ograniczamy działanie systemu wyłącznie do terenów Muratyki. Trzy miasta testowe dostępne obecnie w mikroGRUcast, czyli Zwierzogród, Amparcz oraz Manowce, są już w pełni zaimplementowane, a model zna ich dokładne położenie na mapie Pollinu.
Teraz garść technikaliów, bo jest, to bardzo ważne. Sercem całego projektu jest sieć typu GRU (Gated Recurrent Unit). To architektura, która świetnie radzi sobie z długimi zależnościami czasowymi, a jednocześnie nie zapycha pamięci tak agresywnie, jak klasyczne RNN-y. Innymi słowy, model po prostu pamięta to, co powinien pamiętać i stara się zapominać to, co nie jest potrzebne. W obecnej wersji mikroGRUcast wykorzystujemy dwie warstwy GRU po 128 neuronów każda, z zastosowanym dropoutem na poziomie 20%, aby ograniczyć przeuczenie. Warstwa wyjściowa generuje od razu pełną prognozę siedmiodniową, czyli 7 dni pomnożone przez dwie wartości temperaturowe: temperaturę średnią oraz maksymalną. Sam model trenujemy z użyciem optymalizatora Adam, na batchach po 64 próbki, przez około 50-60 epok i co najważniejsze to faktycznie działa, bo same prognozy zaczynają wyglądać spójnie, logicznie i, co kluczowe, wiarygodnie. Dodatkowo, żeby wynik był jeszcze bliższy rzeczywistości, wprowadziłem niewielki szum gaussowski na etapie wyświetlania prognoz. We wcześniejszych testach zauważyłem bowiem, że model miał tendencję do nienaturalnie gładkich przebiegów, z idealnymi skokami co 0,1C. Po dodaniu szumu wartości zaczęły delikatnie drgać dokładnie tak, jak w prawdziwych prognozach pogody.
Już dziś działa strona meteo.robingren.pl, na którą każdy może wejść, wybrać jedno z trzech miast Muratyki i zobaczyć siedmiodniową prognozę pogody wygenerowaną bezpośrednio przez nasz model. Oczywiście to dopiero początek, bo jestem przekonany, że ten system będzie w przyszłości rozbudowywany zarówno pod względem obszaru działania, jak i samej jakości prognoz.
Chciałbym serdecznie podziękować wszystkim Robingrenom, a tak naprawdę każdej osobie, która w jakikolwiek sposób przyczyniła się do powstania tego projektu. To wspólna praca i wspólny efekt. Jeżeli ktoś chciałby wesprzeć dalszy rozwój mikroGRUcast, istnieje możliwość postawienia mi symbolicznej kawy poprzez MBP. A jeśli pojawią się pytania, to z przyjemnością spróbuję na nie odpowiedzieć. Najlepszym wsparciem będzie jednak to, by jak najwięcej osób dowiedziało się o istnieniu tego projektu.
Będę za to bardzo wdzięczny. Dziękuję!



