\chapter{Porównania modeli w literaturze}

\section{Wstęp}
\subsection{Cele porównania}
Wraz z~rozwojem uczenia maszynowego jako praktykowanej technologii znacznie wzrosło zapotrzebowanie na badania sprawdzające skuteczność rozwiązań w tej dziedzinie. Wybór odpowiednich algorytmów do konkretnych zadań jest kluczowy dla osiągania jak najlepszych wyników (zdolności do szybkiego uczenia się i dokładnego przewidywania). 

Celem tej pracy jest porównanie dwóch trybów uczenia się: wsadowego i~strumieniowego. Z tego powodu należy wpierw przeanalizować inne badania i~źródła naukowe, aby odnaleźć czy znajdują się w nich błędy, które mogłyby na przykład podważyć skuteczność badań. Część oficjalnych opracowań korzysta z nieodpowiednich metodyk, źle klasyfikuje algorytmy, bądź po prostu niewystarczająco dokładnie je analizuje (brak różnych typów danych, zbyt mała liczba algorytmów, porównywanie algorytmów różnego typu). Z tego powodu poniżej zostaną przedstawione opracowania znalezione w~naukowej literaturze, zawierające błędy, których uniknięcie w~tej pracy, pozwoli na uzyskanie bardziej wiarygodnych wyników.

Warto zwrócić uwagę, że przedstawione błędy nie podważają prawdziwości prac czy ich istotności przy badaniu algorytmów. Znalezione problemy mają na celu stworzenie takiego badania, które sumplementując pozostałe, stworzy szerszy i~bardziej wiarygodny obraz na porównanie trybów strumieniowych i~wsadowych.

\subsection{Concept drift}
Część z opracowań przy swoich badaniach stara się uwzględnić tzw. \emph{concept drift} i~sprawdzić pewną odporność algorytmów na jego obecność. Analiza takiej metodyki znajdzie się przy sprawdzaniu konkretnych badań, tutaj jednak zostanie opisane czym \emph{concept drift} jest.

Tworzenie modelu można określić jako zmapowanie funkcji $f$ przy pomocy danych wejściowych $X$, aby przewidzieć wynik wyjściowych $Y$.

\[Y = f(X)\]

Często zakładane jest, że takie mapowanie jest statyczne. Znaczy to, że raz wyuczone z pewnych danych jest prawdziwe (i~skuteczne) dla danych, które pojawią się w~przyszłości, a~związek pomiędzy danymi wejściowymi i~wyjściowymi nie będzie się zmieniał.

W niektórych przypadkach może następować wyraźna (mniej lub bardziej) wyraźna zmiana w relacji danych wejściowych i~wejściowych. Zmiany takie należy wykrywać i~w odpowiedni sposób aktualizować model, aby ciągle był w stanie poprawnie dokonywać predykcji.

Przykładowo: model przewidujący pogodę może reagować w nieodpowiedni sposób, niezależnie od tego, jak dobrze nauczył się mapować pogodę przy pomocy prądów powietrza, poprzedniej temperatury i~innych właściwości. Po kilku latach może być on zupełnie bezużyteczny, bo nie uwzględni on zmian klimatycznych, istotnie wpływających na pogodę, które mogą sprawić, że ciepły prąd wcześniej oznaczał letni deszcz, a za parę lat może oznaczać suszę.

\section{Analiza literatury}

\subsection{Badanie skuteczność algorytmów przy wystąpowaniu \emph{concept driftu}}

Artykuły dotyczące inkrementalnych metod uczenia maszynowego czesto zwracają szczególną uwagę na zalety nauki w takim trybie, natomiast artykuły oparte na wsadowych metodach opisują możliwość przystosowania sie do danych napływających w trybie strumieniowym. Nie ma jednak wystarczającej ilości opracowań, porównujących te metody. Do tego problemu nawiązuje praca ,,Batch-Incremental versus Instance-Incremental Learning in Dynamic and Evolving Data'' \cite{inproceedings}.

Autorzy tej pracy porównują skuteczność i~czas nauki kilku klasyfikatorów --- między innymi wykorzystując klasyfikator Bayesa, drzewa Hoeffdinga, regresję logistyczną, maszyny wektorów nośnych czy algorytm k-najbliższych sąsiadów. Dbając o~wiarygodność wyników i uniwersalność w różnych poddziedzinach uczenia maszynowego, dokonują oni treningów na kilku różnych zbiorach: rzeczywistych i syntetycznych. Wśród zbiorów danych brak jednak zadań z przetwarzania języka naturalnego (NLP --- ang. \emph{Natural Language Processing}).

W artykule przy tworzeniu metodyki do porównania algorytmów poświęcono dużą uwagę do \emph{concept driftu} w~danych. Algorytmy wsadowe uczone są na pewnym oknie danych (określonej ilości próbek). Rozmiar okna dobierany jest na podstawie precyzji, czasie nauki i~kosztu obliczeniowego --- dla różnych danych może mieć inny rozmiar. Warto jednak zwrócić uwagę, że dobór okna może być w~istotny sposób zależny od używanego sprzętu badawczego. Duże rozmiary okna mogą być odrzucane ze względu na duży nakład czasowy pomimo osiągania znacznie lepszych wyników jakościowych. Wraz z~polepszaniem się technologii dopuszczalny rozmiar okna może się zmieniać, z czasem stawiając algorytmy inkrementalne w znacznie gorszej sytuacji --- nieskończenie szybki procesor może woleć retrenować wsadowe całe modele od nowa, zamiast douczać inkrementalnie.

Autorzy w~podsumowaniu, wnioskują, że algorytmy inkrementalne osiągają podobne wyniki do swoich wsadowych odpowiedników; robiąc to jednak szybciej i~z mniejszą ilością zasobów. Wcześniej szczegółowo opisane jest porówananie wsadowych Drzew Decyzyjnych i Drzew Hoeffdinga --- zależnie od typu danych, jedne lub drugie działają znacznie oszczędniej zużywając zasoby. Brak jednak takich bezpośrednich porównań dla innych algorytmów: nie wiadomo z jakim klasyfikatorem używany jest Stochastyczny Spadek Gradientu, nie można więc go porównać z wsadową regresją logistyczną czy maszyną wektorów nośnych.

DO DOKOŃCZENIA! TODO: \cite{conceptdrift}


\subsection{Porównania algorytmów niezależnie od concept driftu}
Dobrą metodologię porównania algorytmów obu trybów przedstawiono w ,,An Investigation on Online versus Batch
Learning in Predicting User Behaviour``\cite{comparision}

Porównano tutaj 5 wsadowych algorytmów i 3 najpopularniejsze strumieniowe algorytmy, sprawdzając ich złożoność czasową i zdolność predykcji. Treningu i predykcji dokonano na dwa sposoby: powszechnie używany algorytm k-fold (używając 5 ,,złożeń``) oraz używając nowego podejścia przypominającego działanie w trybie strumieniowym (podobna metoda pomiaru podziału nauka/predykcja zostanie użyta w późniejszych eksperymentach). 

W tej pracy wykazano, że algorytmy strumieniowe uczą się znacznie szybciej i często osiągają podobne rezultaty w przypadku predykcji (w tej dziedzinie przoduje Deep belief network, jednocześnie bedąc zdecydowanie najwolniejszym ze wszystkich badanych algorytmów). Badania zostały jednak przeprowadzone tylko na jednym zbiorze danych, ciężko więc o wnioskowanie, czy takie wyniki będą prawdziwe dla innych typów danych.

Inną pracą, w której porównywano algorytmy wsadowe i strumieniowe jest \emph{,,Single-Pass Online Learning: Performance, Voting Schemes and Online Feature Selection''}\cite{comp}. Poruszono tutaj istotną kwestię \emph{simple-pass}, występującą często podczas nauki w trybie inkrementalnym - każda próbka wykorzystywana jest tylko raz (nie przechowujemy jej do późniejszej nauki). 

Skupiono się głównie na dostosowaniu algorytmu ,,Winnow'' tak, aby wykazać, że nawet działając w trybie \emph{single pass}, może on przewyższyć wynikami algorytmy wsadowe. Dla zbiorów związanych z przetwarzaniem języka naturalnego odnosił on zdecydowanie najlepsze wyniki sposród wszystkich badanych algorytmów; jednak dla zbiorów spoza tej dziedziny osiągał niekompetetywne wyniki. Jest to szczególnie istotne i zwraca uwagę na użycie różnych zbiorów danych przed wyciągnięciem wniosków na temat działania algorytmu.

Obrębne porównanie różnych algorytmów uczenia maszynowego zostało dokonane w "A Comparison of Prediction Accuracy, Complexity, and Training Time of Thirty-three Old and New Classification Algorithms"\cite{Lim2004ACO}. 

Zostało tutaj wykorzystane trzydzieści trzy algorytmów do nauki na trzydziestu dwóch zbiorach danych. Nie zostały jednak przebadane algorytmy strumieniowe (praca ich nie dotyczy). Podczas analizy wyników zauważono, że często róznice w trafności predykcji są statystycznie nieistotne. O wiele większą uwagę należałoby w takich przypadkach przyłożyć do czasu nauki poszczególnych modeli. Z~powodu takiego podejścia praca ta przytaczana jest w tym miejscu --- szczególne zwracanie uwagi na czas treningu zostanie wykorzystane podczas kolejnych eksperymentów.