msc-michal-maciaszek/Podstawy_teoretyczne.tex
2021-05-24 06:09:36 +00:00

73 lines
6.7 KiB
TeX

\chapter{Podstawy teoretyczne}
\section{Uczenie maszynowe i jego rodzaje}
\subsection{O uczeniu maszynowym}
Jedną z definicji, dobrze oddającą charakter uczenia maszynowego możemy znaleźć w pracy "An overview of Machine Learning and its Applications": "Machine learning, by its definition, is a field of computer science that evolved from studying pattern recognition and computational learning theory in artificial intelligence. It is the learning and building of algorithms that can learn from and make predictions on data sets."\cite{Overview}
Uczenie maszynowe (ang. machine learning) to jednym z najważniejszych współcześnie działów informatyki. Wykorzystuje ono dostarczane dane empiryczne do tworzenia modeli predykcyjnych. Modele uczenia maszynowego stają się integralną częścią otaczającego nas świata, są wykorzystywane w coraz szerszej gamie aplikacji. Wraz ze wzrostem użytku uczenia maszynowego, wzrasta potrzeba tworzenia coraz lepiej działających i szybciej uczących się modeli.
\subsubsection{Podział na uczenie nadzorowane, nienadzorowane i ze wzmacnianiem}
Algorytmy uczenia maszynowego możemy wyróżnić według różnych kryteriów. Jednym ze sposobów jest dzielenie biorąc pod uwagę rodzaj wykorzystywanych danych i informacji, jakie są w nich zawarte. Biorąc pod uwagę to kryterium możemy wyszczególnić trzy typy:
\subsubsection{Uczenie nadzorowane}
W uczeniu nadzorowanym dane treningowe składają się z par - wejściowego obiektu uczącego (wektora X) i pożądanej odpowiedzi (etykiety) Y. Celem nauki jest znalezienie takiej reguły, która odpowiednio mapuje wejścia do wyjść.
Y = f(X)
Na podstawie takiej funkcji mapującej, kiedy otrzymamy nowe dane jesteśmy w stanie przewidzieć ich etykietę.
Typowymi problemami dla uczenia nadzorowanego są:
\begin{itemize}
\item regresja - przewidywana odpowiedź (etykieta) przedstawiana jest za pomocą liczby rzeczywistej. Przykładowym zadaniem regresji może być np. przewidywanie ceny akcji na giełdzie (za wektor cech przyjmując ceny pozostałych akcji), przewidywana odpowiedź
\item klasyfikacja - przewidywana jest klasa danego obiektu w postaci wartości dyskretnej. Typowym zadaniem klasyfikacji jest wykrywanie spamu.
\end{itemize}
Przykładami algorytmów reprezentujących uczenie nadzorowane są:
\begin{itemize}
\item regresja logistyczna,
\item drzewa decyzyjne,
\item regresja liniowa,
\item maszyna wektorów nośnych.
\end{itemize}
\subsubsection{Uczenie nienadzorowane}
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.
\subsubsection{Podział na uczenie wsadowe i strumieniowe}
Innym sposobem klasyfikacji algorytmów uczenia maszynowego jest podział na uczenie wsadowe i strumieniowe.
Podczas trenowania wsadowe model uczony jest na wszystkich dostępnych w danej chwili danych (ang. 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), musimy wyczuć nowy model, a następnie umieścić go w systemie w miejsce starego.
W dużym skrócie możemy więc powiedziec, ż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ą w 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. 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.
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 straty. 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.
\subsection{Wsadowe algorytmy uczenia maszynowego}
\subsubsection{Regresja logistyczna}
Regresja logistyczna jest jedną z metod statystycznych, skupiającą się na analizie niezależnych zmiennych. Za pomocą funkcji sigmoidalnej (logistycznej), model oblicza prawdopodobieństwo, że próbka należy do jednej z klas. Trening modelu, polega na wyznaczeniu sigmoidy, która najlepiej odzwierciedlałaby dane. Regresja logistyczna zwykle jest głównie używana analizy zmiennych, które determinują wynik znajdujący się na skali dychotomicznej, ale może być także używana do rozwiązywania problemów wieloklasowych.
% Z założenia funkcja logistyczna może być trenowana zarówno w trybie wsadowym i strumieniowym.
\subsubsection{Drzewa decyzyjne}
% Podobnie do modelu regresji logistycznej, drzewa decyzyjne wykorzystywane są zarówno w trybie wsadowym jak i strumieniowym. Ze wzg