Update on Overleaf.

This commit is contained in:
micmac9 2021-10-06 13:32:40 +00:00 committed by node
parent ce741079b5
commit 018815f6d2
6 changed files with 35 additions and 35 deletions

View File

@ -20,7 +20,7 @@ Z tego powodu najpierw algorytmy zostaną porównane w~parach --- algorytm dzia
Następnie zostanie przebadane, jak dobrze te algorytmy skalują się wraz z~rozmiarem zbioru treningowego. Na rzeczywistych zbiorach danych, algorytmy będą trenowane, od najmniejszych rozmiarów wsadów próbek po cały zbiór danych. Zależnie od szybkości wzrastania czasu nauki będziemy mogli rozpoznać, który algorytmów z~pary lepiej się skaluje.
Drugą częścią eksperymentu będzie wytrenowane i~podane ewaluacji większa grupa algorytmów. Podobnie jak w~pierwszej części ustalone zostaną dokładność, miara F1 i~czas nauki. Na tej podstawie bedzie można określić, czy któraś grupa algorytmów (wsadowa czy strumieniowa) lepiej nadaje się do pewnych zadań.
Drugą częścią eksperymentu będzie wytrenowane i~podane ewaluacji większa grupa algorytmów. Podobnie jak w~pierwszej części ustalone zostaną dokładność, miara F1 i~czas nauki. Na tej podstawie będzie można określić, czy któraś grupa algorytmów (wsadowa czy strumieniowa) lepiej nadaje się do pewnych zadań.
\section{Wykorzystane technologie}
\subsection{Python}
@ -31,16 +31,16 @@ Do programowania użyta została aplikacja Jupyter Notebook\footnote{\url{https:
\subsection{Scikit-learn i~skmultiflow}
Scikit-learn\footnote{\url{https://scikit-learn.org/}} jest prostą biblioteką zawierającą implementacje wielu podstawowych algorytmów uczenia maszynowego oraz metod ich ewaluacji. Skupia się głównie na algorytmach wsadowych, ale daje dostęp także do algorytmów strumieniowych. Pozwala ona na zaimportowanie między innymi regresji logistycznej, maszyn wektorów nośnych i~drzew decyzyjnych.
Ze względu na brak wszystkich algorytmów w~bibliotece sklearn; zostanie użyta także skmultiflow\footnote{\url{https://scikit-multiflow.readthedocs.io/}}, zawierający potrzebną implementację algorytmu drzew Hoeffdinga. Warto zwrócić uwagę, że sposób nauki w~skmultiflow różnie się od implementacji w~sklearn. W~tej bibliotece znacznie bardziej skupiono się na strumiowym napływie danych - algorytmy są do nich lepiej przystosowane (przez metodę \emph{partial fit} akceptującą pojedyncze próbki).
Ze względu na brak wszystkich algorytmów w~bibliotece sklearn; zostanie użyta także skmultiflow\footnote{\url{https://scikit-multiflow.readthedocs.io/}}, zawierający potrzebną implementację algorytmu drzew Hoeffdinga. Warto zwrócić uwagę, że sposób nauki w~skmultiflow różnie się od implementacji w~sklearn. W~tej bibliotece znacznie bardziej skupiono się na strumieniowym napływie danych - algorytmy są do nich lepiej przystosowane (przez metodę \emph{partial fit} akceptującą pojedyncze próbki).
Ze względu na różnicę w~prędkościach różnych bibliotek, do zimportowania modeli zostały użyte tylko powyższe dwie biblioteki. Wykorzystanie różnych bibliotek dla różnych algorymtów mogłoby znacznie zaważyć na wiarygodności porównania.
Ze względu na różnicę w~prędkościach różnych bibliotek, do zaimportowania modeli zostały użyte tylko powyższe dwie biblioteki. Wykorzystanie różnych bibliotek dla różnych algorytmów mogłoby znacznie zaważyć na wiarygodności porównania.
\subsection{Pandas i~nltk}
Do obróbki i~przygotowania danych do treningu szczególnie wykorzystane zostały biblioteki pandas\footnote{\url{https://pandas.pydata.org/}} i~nltk\footnote{\url{https://www.nltk.org/}}.
Pandas jest biblioteką o wysokiej wydajności pozwalającą na szybką manipulację danymi i~ich prostą wizualizację. Pozwala na przygotowanie danych, dzięki łatwej możliwości edycji kolumn, co jest konieczne przy wybieraniu, tworzeniu i~usuwaniu wymaganych dla nauki cech próbek.
W zadaniach z~przetwarzania języka naturalnego przydatna jest biblioteka nltk (ang. \emph{Natural Language Toolkit}). Przy pomocy tzw. stop list, tokenizatorów i~narzędź do lematyzacji pozwala na odpowiednie przygotowanie danych tekstowych do nauki. Razem z~narzędziami do wektoryzacji z~biblioteki sklearn tworzy zespół narzędź, które pozwalają na przygotowanie --- od początku do końca --- tekstu do treningu.
W zadaniach z~przetwarzania języka naturalnego przydatna jest biblioteka nltk (ang. \emph{Natural Language Toolkit}). Przy pomocy tzw. stop list, tokenizatorów i~narzędzi do lematyzacji pozwala na odpowiednie przygotowanie danych tekstowych do nauki. Razem z~narzędziami do wektoryzacji z~biblioteki sklearn tworzy zespół narzędzi, które pozwalają na przygotowanie --- od początku do końca --- tekstu do treningu.
\section{Wybrane algorytmy}
@ -58,7 +58,7 @@ Do drugiej części eksperymentów zostały wybrane algorytmy:
\item regresja logistyczna ze stochastycznym spadkiem gradientu (oznaczenie w~tabelach SGD-LG),
\item maszyny wektorów nośnych (oznaczenie w~tabelach SVM),
\item maszyny wektorów nośnych ze stochastycznym spadkiem gradientu (oznaczenie w~tabelach SGD-SVM),
\item percepetron (oznaczenie w~tabelach PERC),
\item perceptron (oznaczenie w~tabelach PERC),
\item drzewa Hoeffdinga (oznaczenie w~tabelach HTC),
\item pasywno agresywno klasyfikator (oznaczenie w~tabelach PAAG).
\end{itemize}.
@ -108,7 +108,7 @@ Przed nauką kategorie zostały pogrupowane w~kilka mniejszych grup. Wcześniej
\subsubsection{Forest Coverage Dataset}
Zbiór danych \emph{Forest Coverage}\footnote{\url{https://archive.ics.uci.edu/ml/datasets/covertype}} (w tabelach w~skrócie opisywany jako Forest) zawiera 581012 próbek, obserwacji zebranych w~\emph{Roosevelt National Forest} w~Colorado.
Wśród cech znajdują się między innymi: nachylenie, typ gleby, dystans do wody czy dród. Przewidywaną wartością jest okrycie lasu - to znaczy takiego typu drzewa, który zajmuje większą część lasu (oznaczony jest numerem od 0 do 6).
Wśród cech znajdują się między innymi: nachylenie, typ gleby, dystans do wody czy dróg. Przewidywaną wartością jest okrycie lasu - to znaczy takiego typu drzewa, który zajmuje większą część lasu (oznaczony jest numerem od 0 do 6).
\subsubsection{Text reviews of German universities}
Kolejnym rzeczywistym zbiorem danych są tekstowe opinie na temat niemieckich uniwersytetów\footnote{\url{https://www.kaggle.com/longnguyen2306/germany-universities-reviews-and-recommendation}} (w skrócie będą oznaczane jako "Universities"). Zawiera on 221721 próbek danych. Zadaniem na tym zbiorze danych jest przewidzenie wartości ,,weiter empfehlung'' - wartości boolowskiej oznaczającej, czy student wystawiający opinię poleca uczelnię.
@ -264,7 +264,7 @@ Wyniki dokładności wszystkich algorytmów zostały przedstawione w~tabeli \ref
Ze względu na skuteczność predykcji (zarówno dokładności i miary F1) najlepsze wyniki w zadaniach z przetwarzania języka naturalnego (Irish News i Universities Reviews) odniosła regresja logistyczna w trybie wsadowym. Ten sam algorytm w trybie strumieniowym i maszyny wektorów nośnych w obu trybach osiągnęły bardzo zbliżone wyniki w tym zadaniu.
Podczas pracy na zbiorach Forest i Sklearn Gen (wygenerowanym sztucznie zbiorzez przez scikit-learn) najlepsze wyniki predykcji osiągnęły implementacje drzew decyzyjnych. Na zbiorze rzeczywistym wyraźnie lepsze wyniki osiągnęły wsadowy klasyfikator drzew decyzyjnych, natomiast na sztucznym zbiorze, nieco lepsze wyniki osiągnęły drzewa Hoeffdinga. Maszyny wektorów nośnych i regresja logistyczna osiągały podobne wyniki w obu trybach (zwykle nieco lepsze dla trybu wsadowego).
Podczas pracy na zbiorach Forest i Sklearn Gen (wygenerowanym sztucznie zbiorze przez scikit-learn) najlepsze wyniki predykcji osiągnęły implementacje drzew decyzyjnych. Na zbiorze rzeczywistym wyraźnie lepsze wyniki osiągnęły wsadowy klasyfikator drzew decyzyjnych, natomiast na sztucznym zbiorze, nieco lepsze wyniki osiągnęły drzewa Hoeffdinga. Maszyny wektorów nośnych i regresja logistyczna osiągały podobne wyniki w obu trybach (zwykle nieco lepsze dla trybu wsadowego).
Na wygenerowanym zbiorze SEA Gen wersje wsadowe regresji logistycznej i maszyn wektorów nośnych osiągnęły delikatnie lepsze wyniki; na zbiorze LED Gen wersje wsadowe gwarantowały lepszą predykcję. Algorytmy drzew decyzyjnych znacznie gorzej radziły sobie z tymi zadaniami (drzewa Hoeffdinga nie osiągnęły praktycznie żadnych istotnych rezultatów).
@ -279,7 +279,7 @@ Na rzeczywistych zbiorach danych znacznie lepsze wyniki osiągały strumiowe wer
Podczas treningu na sztucznych zbiorach danych taki stosunek znacznie się zmienił. Podczas nauki na zbiorach Sklearn Gen i SEA Gen, regresja logistyczna w trybie wsadowym uczyła się znacznie szybciej od jej wsadowej implementacji. Odwrotnie wyglądała sytuacja dla maszyn wektorów nośnych - tutaj implementacja strumieniowa uczyła się niemal 50 razy krócej od wsadowej dla zbioru wygenerowanego przez sklearn, i ponad 70 razy krócej dla zbioru SEA Gen.
Na zbiorze LED Gen strumieniowa regresja uczyła się szybciej od wersji wsadowej, natomiast implementacje maszyn wektorów nośnych osiągnęły niemal takie same wyniki.
Klasyfikator drzew decyzyjnych osiągnał najlepszy wynik dla zbioru danych Forest (w tym samym zbiorze, na którym osiągał najlepsze wyniki predykcji) i drugi najlepszy wynik dla zbioru LED Gen. W pozostałych przypadkach odnosił jedne z najgorszych wyników (zwłaszcza w porównaniu z algorytmami strumieniowymi).
Klasyfikator drzew decyzyjnych osiągnął najlepszy wynik dla zbioru danych Forest (w tym samym zbiorze, na którym osiągał najlepsze wyniki predykcji) i drugi najlepszy wynik dla zbioru LED Gen. W pozostałych przypadkach odnosił jedne z najgorszych wyników (zwłaszcza w porównaniu z algorytmami strumieniowymi).
@ -368,7 +368,7 @@ LED Gen & 7{,}321 & 6{,}973 & 4{,}021 & 4{,}113
W pierwszym eksperymencie, zbadano skalowalność algorytmów podczas nauki na rzeczywistych zbiorach danych. Algorytmy regresji logistycznej i maszyny wektorów nośnych zostały porównane w odniesieniu do swoich strumieniowych odpowiedników (takich, które używają stochastycznego spadku gradientu do odnalezienia najlepszych wag).
Można zauważyć, że tryb strumieniowy --- dla obu algorytmów ---skaluje się znacznie lepiej. Czas nauki w zależności od ilości próbek rośnie szybciej dla trybu wsadowego. Jest to szczególnie widoczne podczas testów na zbiorach danych związanych z przetwarzaniem języka naturalnego (Irish News i Universities).
Odwrotny trend zaobserwowano na zbiorze Forest, na którym porównano klasyczny klasyfikator drzew decyzyjnych i drzewa Hoeffdinga. Inkrementalna implementacja skalowała się tutaj znacznie gorzej. Powodem takiej różnicy jest tutaj potrzeba przęglądania drzewa przy potrzebie zmiany go po pewnej ilości próbek.
Odwrotny trend zaobserwowano na zbiorze Forest, na którym porównano klasyczny klasyfikator drzew decyzyjnych i drzewa Hoeffdinga. Inkrementalna implementacja skalowała się tutaj znacznie gorzej. Powodem takiej różnicy jest tutaj potrzeba przeglądania drzewa przy potrzebie zmiany go po pewnej ilości próbek.
Podczas kolejnego etapu porównano ze sobą algorytmy również w parach - w analogiczny sposób, jak w pierwszym etapie, sprawdzając umiejętność predykcji (dokładność i miara F1) oraz czas nauki, używając całych zbiorów danych. Umiejętność predykcji jest zbliżona dla obu trybów (dla obu algorytmów) algorytmów regresji logistycznej oraz maszyn wektorów nośnych. Wyniki często są delikatnie wyższe dla trybów wsadowych, co zgadza się z przypadkami opisywanymi w literaturze. Wynika to z niemal identycznego sposobu działania algorytmów w trybie wsadowym i strumieniowym, tej samej funkcji straty. Różnica w metodzie optymalizacji zdaje się nie sprawiać znacznej różnicy w skuteczności predykcji.
@ -378,7 +378,7 @@ Mniej zdecydowaną przewagę pokazuje tryb strumieniowy w regresji logistycznej.
Podczas testów dla algorytmów drzew decyzyjnych zauważono, że drzewa Hoeffdinga często nie radzą sobie z niektórymi zbiorami danych. Ich czas nauki jest znacznie dłuższy, a wyniki predykcji osiąga niższe od klasyfikatora drzew decyzyjnych. Warto jednak zwrócić uwagę, że drzewa Hoeffdinga pozwalają na douczanie (i przebudowywanie drzewa), co nie jest opcją dla klasyfikatora drzew decyzyjnych; stąd można znaleźć zastosowania, w których wykorzystanie ich jest optymalne.
Ostatnim etapem było porównanie wszystkich wcześniejszych algorytmów (dodając do badanych algorytmów pasywno agresywny klasyfikator i perceptron), tak aby sprawdzić, czy istnieją wzorce pozwalące stwierdzić, czy lepiej sprawują się algorytmy wsadowe czy strumieniowe.
Ostatnim etapem było porównanie wszystkich wcześniejszych algorytmów (dodając do badanych algorytmów pasywno agresywny klasyfikator i perceptron), tak aby sprawdzić, czy istnieją wzorce pozwalające stwierdzić, czy lepiej sprawują się algorytmy wsadowe czy strumieniowe.
Nowo badane algorytmy (perceptron i pasywno agresywny klasyfikator) odnosiły zwykle dosyć niskie bądź porównywalne z wsadowymi algorytmami wyniki. Czasowo jednak przedstawiały jedne z najlepszych rezultatów, co zgadza się z ukazywanym często w literaturze podejściem "szybciej ale gorzej".

View File

@ -36,20 +36,20 @@ Przykładami algorytmów reprezentujących uczenie nadzorowane są:
W uczeniu nienadzorowanym dostarczone dane są nieetykietowane, a~zadaniem algorytmów jest wyszukiwanie wzorców i~struktur wśród danych. Model próbuje się wyuczyć bez żadnej metody nadzorującej. Przykładowymi zadaniami takiego modelu mogą być analiza skupień czy analiza składowych głównych.
\subsubsection{Uczenie ze wzmacnianiem}
W uczeniu ze wzmacnianiem (w odróżnieniu od uczenia nadzorowanego i~nienadzorowanego) modelowi nie przygotowuje się danych. Zamiast tego, przygotowywane jest (potecjalnie złożone) środowisko, z~którego model automatycznie pobiera dane. Takie podejście oparte jest na metodzie prób i~błędów. Zadaniem programisty tworzącego model, jest utworzenie systemu nagród i~kar, na podstawie których model będzie podejmował decyzje (jego celem jest zmaksymalizowanie nagród). Poza tym człowiek nie daje żadnych wskazówek ani sugestii jak wykonać zadanie. To zadaniem modelu jest wymyślenie, jak wykonywać zadanie, aby otrzymywać jak największe nagrody; zaczynając od całkowicie losowych prób po bardzo złożone rozwiązania.
W uczeniu ze wzmacnianiem (w odróżnieniu od uczenia nadzorowanego i~nienadzorowanego) modelowi nie przygotowuje się danych. Zamiast tego, przygotowywane jest (potencjalnie złożone) środowisko, z~którego model automatycznie pobiera dane. Takie podejście oparte jest na metodzie prób i~błędów. Zadaniem programisty tworzącego model, jest utworzenie systemu nagród i~kar, na podstawie których model będzie podejmował decyzje (jego celem jest zmaksymalizowanie nagród). Poza tym człowiek nie daje żadnych wskazówek ani sugestii jak wykonać zadanie. To zadaniem modelu jest wymyślenie, jak wykonywać zadanie, aby otrzymywać jak największe nagrody; zaczynając od całkowicie losowych prób po bardzo złożone rozwiązania.
\subsubsection{Podział na uczenie wsadowe i strumieniowe}
Innym sposobem klasyfikacji algorytmów uczenia maszynowego jest podział na uczenie wsadowe i~strumieniowe.
Podczas trenowania wsadowego model uczony jest na wszystkich dostępnych w~danej chwili danych (ang. \emph{batch learning}). Zwykle trenowanie modelu w~taki sposób zajmuje dużo czasu i~pochłania olbrzymie ilości zasobów -- z~tego powodu takie modele są zwykle trenowane w trybie offline. W przypadku gdybyśmy chcieli przystosować model do nowych danych (np. przystosować do rozpoznawania nowego typu spamu), musielibyśmy wyuczyć nowy model, a~następnie umieścić go w systemie w miejsce starego.
Upraszczając możemy więc powiedziec, że przy uczeniu wsadowym, żeby douczyć model, należy go trenować w całości od nowa.
Upraszczając możemy więc powiedzieć, że przy uczeniu wsadowym, żeby douczyć model, należy go trenować w całości od nowa.
Przeciwnym podejściem do uczenia wsadowego jest uczenie strumieniowe (zwane także inkrementalnym). Algorytmy strumieniowe pozwalają na douczanie już wytrenowanego modelu, stąd znacznie częściej wykorzystywane są one podczas uczenia w trybie online.
W algorytmach strumieniowych model uczony jest na każdej próbce po kolei, a~wagi poszególnych cech uaktualniane są na każdym kroku. Pośrednim rozwiązaniem pomiędzy oboma trybami jest uczenie na mniejszych grupkach danych (ang. \emph{mini batches}), jednak z~powodu możliwości douczania takich modeli, rozwiązanie to może być zaliczane do trybu strumieniowego.
W algorytmach strumieniowych model uczony jest na każdej próbce po kolei, a~wagi poszczególnych cech uaktualniane są na każdym kroku. Pośrednim rozwiązaniem pomiędzy oboma trybami jest uczenie na mniejszych grupkach danych (ang. \emph{mini batches}), jednak z~powodu możliwości douczania takich modeli, rozwiązanie to może być zaliczane do trybu strumieniowego.
Uczenie strumieniowe doskonale nadaje sie do systemów, w~których dane dostarczane są w~sposób ciągły, a~ten musi adaptować się do zmieniającej się sytuacji. Dodatkową zaletą jest brak potrzeby przetrzymywania danych, z~których model już się nauczył. Algorytmy takie uczą się zwykle szybciej -- aktualizacja modelu następuje po każdej próbce.
Uczenie strumieniowe doskonale nadaje się do systemów, w~których dane dostarczane są w~sposób ciągły, a~ten musi adaptować się do zmieniającej się sytuacji. Dodatkową zaletą jest brak potrzeby przetrzymywania danych, z~których model już się nauczył. Algorytmy takie uczą się zwykle szybciej -- aktualizacja modelu następuje po każdej próbce.
Warto jednak zwrócić uwagę, że niektóre algorytmy uczenia maszynowego można zakwalifikować do jednego z dwóch trybów zależnie od użytej funkcji optymalizacji. Przykładowo regresja logistyczna działa w trybie strumieniowym, gdy użyty jest stochastyczny spadek gradientu, natomiast w trybie wsadowym używamy spadku gradientu (optymalizacji dla wszystkich próbek). Podobna sytuacja występuje w przypadku drzew Hoeffdinga, będących inkrementalną odmianą drzew decyzyjnych.
@ -96,7 +96,7 @@ Gini = \sum_{i=1}^J P(i) * (1 - P(i))
gdzie P(i) jest prawdopodobieństwem pewnej klasyfikacji i.
Większość algorytmów, przy pomocy których tworzone są drzewa decyzyjne, wykorzystuje strategię TDIFD \cite{drzewadecyzyjne}, czyli strategię ,,z~góry na dół'' (ang. \emph{top down induction of decision trees}), opartą na zasadzie ,,dziel i~rządź''. Taką strategię w~skrócie można opisać w dany sposób:
Większość algorytmów, przy pomocy których tworzone są drzewa decyzyjne, wykorzystuje strategię TDIDT \cite{drzewadecyzyjne}, czyli strategię ,,z~góry na dół'' (ang. \emph{top down induction of decision trees}), opartą na zasadzie ,,dziel i~rządź''. Taką strategię w~skrócie można opisać w dany sposób:
\begin{enumerate}
\item Na wejście przyjmij cały zbiór danych
\item Znajdź taki podział danych na podstawie atrybuty, która zmaksymalizuje przybraną miarę czystości
@ -117,7 +117,7 @@ Różne implementacje drzew decyzyjnych będą wykorzystywały inne metody znale
\subsubsection{Maszyny wektorów nośnych}
Algorytm SVM (ang. \emph{support vector machines}) jest wydajnym i~szybkim algorytmem używanym głównie do zadań klasyfikacji (ale także regresji). Oparty jest na odnajdywaniu hiperprzestrzeni, która najlepiej dzieliłaby dane na dwie (lub więcej) klasy.
Wektorami nośnymi nazywane są współrzedne pojedynczych obserwacji znajdujące się najbliżej hiperpłaszczyzny, których usunięcie spowodowałoby przesunięcie pozycji dzielącej dane hiperpłaszczyzny.
Wektorami nośnymi nazywane są współrzędne pojedynczych obserwacji znajdujące się najbliżej hiperpłaszczyzny, których usunięcie spowodowałoby przesunięcie pozycji dzielącej dane hiperpłaszczyzny.
W dwuwymiarowym modelu (czyli na przykład takim, w którym dane opisane są za pomocą tylko dwóch cech) możemy opisać hiperpłaszczyznę jako linię, która dzieli dane na dwie części. Im dalej od linii znajdowałyby się dane, tym pewniejsi możemy być, że dane zostały poprawnie sklasyfikowane. Celem algorytmów SVM jest znalezienie takiej hiperpłaszczyzny, która maksymalizuje odległość do najbliższej obserwacji danych z~każdej klasy.
@ -138,7 +138,7 @@ Sztuczny neuron jest matematyczną funkcją opartą na modelu biologicznego neur
Dla perceptronu (zwłaszcza wielowarstwowego) proces nauczania oparty najczęściej jest na metodzie wstecznej propagacji błędu.
\subsubsection{Drzewa Hoeffdinga}
Drzewa Hoeffdinga są inkrementalną implementacją algorytmu drzew decyzyjnych; zamiast używać do nauki wiele razy tych samych danych, algorytm korzysta z pojawiących się nowych przykładów. Są zdolne do nauki na olbrzymich ilości danych, zakładając, że ich dystrybucja nie zmienia się znacząco w czasie.
Drzewa Hoeffdinga są inkrementalną implementacją algorytmu drzew decyzyjnych; zamiast używać do nauki wiele razy tych samych danych, algorytm korzysta z pojawiających się nowych przykładów. Są zdolne do nauki na olbrzymich ilości danych, zakładając, że ich dystrybucja nie zmienia się znacząco w czasie.
Podobnie jak w rozwiązaniu wsadowym --- raz utworzony węzeł nie może już zostać zmieniony, nie wykazują więc odporności na tzw. \emph{concept drift}. Drzewa Hoeffdinga --- tak jak w klasycznych rozwiązaniach --- opierają algorytm swojej budowy na podziale atrybutów. W~odróżnieniu od algorytmu wsadowego zakładają, że nawet mała próbka wystarcza, aby wybrać odpowiednie atrybuty do podziału. \cite{Srimani2015PerformanceAO}
@ -191,7 +191,7 @@ Ocena krzyżowa (ang. \emph{cross validation}) polega na podziale zbiorów na $k
\subsubsection{Macierz pomyłek}
Macierz pomyłek (ang. \emph{confussion matrtix}) jest macierzą o~rozmiarze dwa na dwa używaną podczas klasyfikacji. Na jednej osi (zwykle poziomej) przedstawiona jest właściwa wartość próbek, a~na drugiej (pionowej) wartość przewidziana przez klasyfikator. Przykładowa macierz przedstawiona jest na rysunku \ref{fig:confus}.
Macierz pomyłek (ang. \emph{confusion matrix}) jest macierzą o~rozmiarze dwa na dwa używaną podczas klasyfikacji. Na jednej osi (zwykle poziomej) przedstawiona jest właściwa wartość próbek, a~na drugiej (pionowej) wartość przewidziana przez klasyfikator. Przykładowa macierz przedstawiona jest na rysunku \ref{fig:confus}.
\begin{figure}[H]
\caption[frog]{Macierz pomyłek \footnotemark}
@ -216,9 +216,9 @@ Accuracy = \frac {TP + TN}{TP + FP + TN + FN}
\end{displaymath}
\subsubsection{Precyzja}
Precyzja (ang. \emph{precission}) - za jej pomocą możemy sprawdzić ile spośród poprawnie przewidzianych pozytywnie klas w rzeczywistości jest pozytywne. Przedstawiamy ją wzorem:
Precyzja (ang. \emph{precision}) - za jej pomocą możemy sprawdzić ile spośród poprawnie przewidzianych pozytywnie klas w rzeczywistości jest pozytywne. Przedstawiamy ją wzorem:
\begin{displaymath}
Precission = \frac {TP} {TP + FP}
Precision = \frac {TP} {TP + FP}
\end{displaymath}
\subsubsection{Zwrot}
@ -231,7 +231,7 @@ Recall = \frac {TP} {TP + FN}
Miara ta przedstawia średnią harmoniczną precyzji i zwrotu. Istotne jest używanie tej metryki podczas badania niezbalansowanych zbiorów danych.
\begin{displaymath}
F1 score = \frac {2 * Precission * Recall} {Precission + Recall}
F1 score = \frac {2 * Precision * Recall} {Precision + Recall}
\end{displaymath}
\subsubsection{\emph{Log loss}}

View File

@ -2,9 +2,9 @@
Coraz częściej we współczesnym świecie wykorzystywane jest uczenie maszynowe, coraz częściej także pojawia się także potrzeba odnajdywania takich algorytmów, aby zadania zostały wykonywane z~najlepszymi rezultatami i~w jak najszybszy sposób.
W~tej pracy skupiono się na porównaniu algorytmów strumieniowych i~wsadowych, zbadano także różne tryby działania (metody optymalizacji) dla tych samych algorytmów. Najpierw zostały przedstawione algorytmy, które poźniej uczestniczyły w~testach. Następnie dokonano analizy istniejących już w~literaturze badań porównujących oba tryby. W pracach badawczych często można odnaleźć błędne bądź niewystarczające analizy; często także prace faworyzują jedną ze stron, stawiając tezy, według których jedna ze stron jest zdecydowanie pod pewnym względem lepsza.
W~tej pracy skupiono się na porównaniu algorytmów strumieniowych i~wsadowych, zbadano także różne tryby działania (metody optymalizacji) dla tych samych algorytmów. Najpierw zostały przedstawione algorytmy, które później uczestniczyły w~testach. Następnie dokonano analizy istniejących już w~literaturze badań porównujących oba tryby. W pracach badawczych często można odnaleźć błędne bądź niewystarczające analizy; często także prace faworyzują jedną ze stron, stawiając tezy, według których jedna ze stron jest zdecydowanie pod pewnym względem lepsza.
Z~tych powodów w~tej pracy dokonano badania porównującego algorytmy wsadowe i~strumieniowe. Jego celem nie było zanegowanie prawdziwości badań przedstawionych wcześniej przez inne zespoły badawcze, a~jedynie ich rozwinięcie.
W~szczegolności skupiono tutaj się na porównaniu algorytmów w parach --- algorytmów wsadowych i~jego strumieniowych odpowiedników. Wykazano --- w~odróżnieniu od częstego przekonania w~literaturze naukowej, skupiającego się na pokazaniu przewagi jednego z typów algorytmu --- że przewaga jednego z trybów w~kwestii umiejętności predykcji lub czasu nauki może zależeć w~dużej mierze od użytego zbioru danych. Pomimo tego, że często algorytmy inkrementalne są znacznie szybsze, a wsadowe uczą się delikatnie lepiej; można było zaobserwować, że nie jest to zawsze prawdziwą zasadą. Często sytuacja odwraca się, co pokazuje, że pozostało jeszcze wiele do zbadania i~odnalezienia, od czego dokładnie zależy przewaga algorytmów w~konkretnych sytuacjach.
W~szczególności skupiono tutaj się na porównaniu algorytmów w parach --- algorytmów wsadowych i~jego strumieniowych odpowiedników. Wykazano --- w~odróżnieniu od częstego przekonania w~literaturze naukowej, skupiającego się na pokazaniu przewagi jednego z typów algorytmu --- że przewaga jednego z trybów w~kwestii umiejętności predykcji lub czasu nauki może zależeć w~dużej mierze od użytego zbioru danych. Pomimo tego, że często algorytmy inkrementalne są znacznie szybsze, a wsadowe uczą się delikatnie lepiej; można było zaobserwować, że nie jest to zawsze prawdziwą zasadą. Często sytuacja odwraca się, co pokazuje, że pozostało jeszcze wiele do zbadania i~odnalezienia, od czego dokładnie zależy przewaga algorytmów w~konkretnych sytuacjach.

View File

@ -6,7 +6,7 @@ Wraz z~rozwojem uczenia maszynowego jako praktykowanej technologii znacznie wzro
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.
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 suplementują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.
@ -23,13 +23,13 @@ Przykładowo: model przewidujący pogodę może reagować w nieodpowiedni sposó
\section{Analiza literatury}
\subsection{Badanie skuteczność algorytmów przy wystąpowaniu \emph{concept driftu}}
\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}.
Artykuły dotyczące inkrementalnych metod uczenia maszynowego często zwracają szczególną uwagę na zalety nauki w takim trybie, natomiast artykuły oparte na wsadowych metodach opisują możliwość przystosowania się 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 znacznie szybciej retrenować wsadowe całe modele od nowa, zamiast douczać je inkrementalnie.
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 znacznie szybciej ponownie uczyć całe modele wsadowe od nowa, zamiast douczać je 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.
@ -40,12 +40,12 @@ 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 głęboka sieć przekonań (ang. \emph{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.
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 głęboka sieć przekonań (ang. \emph{deep belief network}), jednocześnie będą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ł znacznie słabsze 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.
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 spośród wszystkich badanych algorytmów; jednak dla zbiorów spoza tej dziedziny osiągał znacznie słabsze 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}.
Szerokie 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.
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óżnice 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.

View File

@ -7,15 +7,15 @@ W~tradycyjnych systemach uczenia maszynowego najczęściej trzeba dokonać wybor
Algorytmy strumieniowe często oceniane są jako skuteczniejsze, gdy w~danych występuje duży \emph{concept drift}. Nie wymagają one trenowania modelu od nowa, czym oszczędzają czas i~zasoby. Problemem takich porównań jest trudność wybrania odpowiedniego sprzętu do testów. Zbyt silne i~pojemne zasoby będą faworyzowały algorytmy wsadowe (wytrenowanie modelu od nowa potrwa bardzo krótko), natomiast w przeciwnym wypadku to algorytmy strumieniowe otrzymają nieuczciwą przewagę (wyuczenie wsadowego modelu będzie trwało zbyt długo). Z tego powodu testy takie można przeprowadzać tylko dla konkretnych sytuacji.
W tej pracy skupiono się na porównaniu strumieniowych i wsadowych algorytmów uczenia maszynowego, niezależnie od \emph{concept driftu} (brak porównania potrzeby retrenowania modelów wsadowych z ciągłym działaniem strumieniowych). Algorytmy zostały poddane testom na różnych typach danych (syntetycznych, tradycyjnych i NLP). Następnie za pomocą ustalonych metryk została porównanana ich szybkość i~skuteczność nauki.
W tej pracy skupiono się na porównaniu strumieniowych i wsadowych algorytmów uczenia maszynowego, niezależnie od \emph{concept driftu} (brak porównania potrzeby ponownej nauki modelów wsadowych z ciągłym działaniem strumieniowych). Algorytmy zostały poddane testom na różnych typach danych (syntetycznych, tradycyjnych i NLP). Następnie za pomocą ustalonych metryk została porównana ich szybkość i~skuteczność nauki.
\section{Cel i zakres pracy}
Celem niniejszej pracy jest porównanie strumieniowych i~wsadowych algorytmów uczenia maszynowego. Porównane zostało parę najczęściej używanych klasyfikatorów. Dla zwalidowania wyników użyte zostały różne rodzaje danych - zarówno rzeczywiste jak i syntetyczne.
Celem niniejszej pracy jest porównanie strumieniowych i~wsadowych algorytmów uczenia maszynowego. Porównane zostało parę najczęściej używanych klasyfikatorów. Do walidacji wyników użyte zostały różne rodzaje danych - zarówno rzeczywiste jak i syntetyczne.
Rozdział drugi zawiera podstawy teoretyczne niezbędne do zrozumienia porównywanych algorytmów. Zostały w~nim opisane różnice pomiędzy różnymi typami algorytmów, a~także przedstawione algorytmy użyte później w~eksperymentach.
Rodział trzeci dotyczy dokonanych eksperymentów i porównań przez inne osoby i~grupy badawcze. Zostały tutaj przedstawione najistotniejsze prace, a także pokazane zostały błędy w rozumowaniu podczas przeprowadzania eksperymentów.
Rozdział trzeci dotyczy dokonanych eksperymentów i porównań przez inne osoby i~grupy badawcze. Zostały tutaj przedstawione najistotniejsze prace, a także pokazane zostały błędy w rozumowaniu podczas przeprowadzania eksperymentów.
Rozdział czwarty zawiera opis przeprowadzanego eksperymentu w ramach tej pracy. Przedstawia on zastosowane technologie, implementację systemu porównującego oraz przebieg eksperymentów. Na końcu dokonano przedstawienia wyników w~formie wykresów oraz przedstawiono wnioski z~nich płynące.

View File

@ -8,7 +8,7 @@
% --- --- Numer albumu
% --- --- Płeć (M/K)
\firstAuthor{Michał Maciaszek}
\firstAlbum{444444}
\firstAlbum{460985}
\stsexFirstAuthor{M}
%\secondAuthor{Autor Drugi}