AnalitykaCDOProgramowaniePolecane tematy
Praktyczne zastosowanie algorytmów numeryczno-genetycznych do przewidywania przyszłości “biznesowej”
Skokowy rozwój mocy obliczeniowych w ostatnich latach zachęca naukowców do tworzenia olbrzymich struktur informatycznych wspierających algorytmy sztucznej inteligencji i podobnych rozwiązań. Bardzo rozbudowane sieci neuronowe rozwiązują coraz trudniejsze zadania i coraz częściej pokonują człowieka w grach strategicznych zmierzając do modelowania militarnej i cybernetycznej konfrontacji mocarstw. Tymczasem w biznesie często zmagamy się z prozaicznymi problemami logistycznymi czy predykcyjnymi w krótkim okresie np. jednego roku, miesiąca czy nawet tygodnia. Oto jak mogą wesprzeć je algorytmy numeryczno-genetyczne.
Stojąc przed zadaniem wyznaczania poziomu sprzedaży usług turystycznych zbadałem możliwości klasycznych metod wygładzania wykładniczego wspieranych kilkoma, różnymi metodami doboru współczynników równań. Sama idea wygładzania wykładniczego opiera się o takie opisanie równaniami matematycznymi posiadania danych historycznych, aby były one zadowalająco dobre przy przewidywaniu sprzedaży w przyszłości. Idea dość prosta, jednak jej największym problemem jest znalezienie takich współczynników równań (x,y,z), które spełnia nasze oczekiwania.
Wyobraźmy sobie kilkuletnią, przypominającą wznoszącą się sinusoidę, krzywą sprzedaży wycieczek turystycznych w wielu miejscach, jednak istotnie zniekształconą wieloma czynnikami. Większość klientów spędza wakacje w okresie letnim lub w sezonie narciarskim, jednak mnóstwo czynników zakłóca ten model. Pogoda, długie weekendy, konflikty polityczne i wiele innych, z roku na rok zmienia istotnie koniunkturę w poszczególnych miesiącach utrudniając kontraktowanie miejsc hotelowych i biletów lotniczych na poszczególnych kierunkach. Istnieje wiele algorytmów poszukujących optymalnego rozwiązania (czyli najlepszych współczynników x,y,z równań). Mając do dyspozycji blisko 1000 szeregów danych historycznych postanowiłem przetestować kilka z istniejących metod oraz skonfrontować z nimi swój algorytm genetyczny.
Wyobraźmy sobie kilkuletnią, przypominającą wznoszącą się sinusoidę, krzywą sprzedaży wycieczek turystycznych w wielu miejscach, jednak istotnie zniekształconą wieloma czynnikami. Większość klientów spędza wakacje w okresie letnim lub w sezonie narciarskim, jednak mnóstwo czynników zakłóca ten model. Utrudnia to kontraktowanie miejsc hotelowych i biletów lotniczych na poszczególnych kierunkach. Istnieje wiele algorytmów poszukujących optymalnego rozwiązania (czyli najlepszych współczynników x,y,z równań). Mając do dyspozycji blisko 1000 szeregów danych historycznych postanowiłem przetestować kilka z istniejących metod oraz skonfrontować z nimi swój algorytm genetyczny.
Algorytmy genetyczne to rodzina modeli symulujących model doboru naturalnego abstrakcyjnej populacji organizmów. Założenie podstawowe zaczerpnięte z teorii ewolucji mówi, że organizmy z pokolenia na pokolenie mutują, a częściej przeżywają lepiej dopasowane do otoczenia i to właśnie te osobniki mają więcej potomstwa, przez co wzmacniają cechy pożądane w danym środowisku. Pamiętajmy przy tym, że same organizmy nie muszą mieć żadnych zdolności intelektualnych, a cały mechanizm dotyczy zarówno najprostszych jednokomórkowców, jak i gatunków bardzo złożonych.
Teoria doboru naturalnego wykorzystana w biznesie
Sprawny model genetyczny w postaci programu komputerowego jest dość prosty i składa się zaledwie z kilkudziesięciu linii kodu i kilku dużych tablic liczb. Przyjmijmy, że aby wyszukać najlepsze trzy współczynniki x, y i z zakładamy programowo trzy niezależne populacje X, Y i Z cyfrowych muszek owocówek. W każdej hodowli stawiamy w trójkącie trzy różne, ale podobne pożywki. Muszki pozornie chaotycznie siadają na poszczególnych pożywkach, a my rejestrujemy standaryzowane statystyki częstotliwości korzystania z poszczególnych odżywek jako współczynniki x, y i z. Współczynniki te wstawiamy do naszego modelu i na danych kontrolnych sprawdzamy poprawność.
Muszki “zgadujące” dobrze mutujemy lekko poprzez małe dawki promieniowania, a pozostałe mutujemy mocno lub uśmiercamy dawkami większymi. Osobom wrażliwym przypominam, że wszytko odbywa się w postaci programu komputowego. W ten sposób częściej rozmnażają się osobniki “odgadujące” lepiej pożądane współczynniki równań. Cyfrowe populacje muszek mogą liczyć dziesiątki tysięcy osobników a w ciągu sekundy możemy weryfikować setki lub tysiące pokoleń. Do modelu wprowadzono też “wypadki losowe” symulujące drapieżniki polujące na muszki oraz „łut szczęścia”, pozwalające przeżyć nielicznym “źle” zgadującym osobnikom.
Skąd e-muszki “wiedzą” jakie współczynniki są lepsze? W modelu początkowy losowy układ można podzielić na dwie części, gdzie jedna jest “lepsza” od drugiej. Jest to element uczenia bez nadzoru, dzięki naszemu programowi, który pełni rolę nadzorcy i porównuje wyniki z danymi kontrolnymi. W wielowymiarowej przestrzeni zdarzeń występuje jakaś statystyczna, ale nie przyczynowa, zależność (większa zbieżność wypadkowych wektorów wszystkich cech muszek i ich poszczególnych pożywek), której nie potrafimy zdefiniować. Preferując tę grupę pozwalamy w kolejnych pokoleniach wektory te do siebie przysuwać bliżej (zmniejszać kąt pomiędzy nimi) poprawiając trafność przewidywania.
Taki stosunkowo prosty model – na 8-wątkowym procesorze – w ciągu kilku sekund znajduje rozwiązania nie gorsze niż powszechnie stosowane algorytmy gradientowe i inne, w tym algorytm Newtona. Prostota obliczeniowa takich metod jest szczególnie przydatna, gdy nasze aproksymacje wykonujemy często i dla dużej liczby obiektów, np. do przewidywania dobowej aktywności wszystkich użytkowników sieci czy jakiego dużego serwisu webowego. Równie dobrze możemy go wykorzystać do przewidywania ruchu w dużych centrach handlowych, czy do wyliczania sprzedaży bardzo dużego asortymentu FMCG w cyklach tygodniowych.
Wykorzystanie elementów uczenia bez nadzoru
Ciekawostką jest fakt, że komputerowe algorytmy genetyczne są jedynym pośrednim dowodem na sensowność teorii doboru naturalnego (brak artefaktów form pośrednich między gatunkami), ale już nie samej ewolucji, bo przeczyłyby obserwowanej przez fizyków molekularnych zasadzie, że materia dąży od form złożonych do równomiernie rozproszonych w kosmosie form prostych. Skąd w takim razie nasze e-muszki “wiedzą” jakie współczynniki są lepsze? W modelu początkowy losowy układ można podzielić na dwie części, gdzie jedna jest “lepsza” od drugiej. Jest to element uczenia bez nadzoru, dzięki naszemu programowi, który pełni rolę nadzorcy i porównuje wyniki z danymi kontrolnymi. W wielowymiarowej przestrzeni zdarzeń występuje jakaś statystyczna, ale nie przyczynowa, zależność (większa zbieżność wypadkowych wektorów wszystkich cech muszek i ich poszczególnych pożywek), której nie potrafimy zdefiniować. Preferując tę grupę pozwalamy w kolejnych pokoleniach wektory te do siebie przysuwać bliżej (zmniejszać kąt pomiędzy nimi) poprawiając trafność przewidywania. Sam problem jest na tyle ciekawy, że inspiruje do namysłu nad samym pojęciem inteligencji i to nie tylko sztucznej.
Paweł Klimczewski, ekspert badań rynku mediów, budowy modeli predykcyjnych, systemów telemetrycznych, współautor metodologii badań telemetrycznych TV i czytelnictwa prasy; socjolog, elektronik, programista.