Autor tekstu eksperckiego: Radosław Milenkowicz
W klasycznym podejściu rozwiązywania problemów uczenia maszynowego na etapie doboru algorytmu decydujemy się na jeden, który najlepiej wypada na tle innych ze względu na wskaźnik, jaki wybraliśmy, by móc porównywać jakość rozwiązania. Ograniczenie to związane z wykorzystaniem pojedynczego modelu bądź algorytmu można obejść, wykorzystując uczenie ensembli (ang. Ensemble learning). Uczenie to polega na wykorzystaniu większej ilości modeli, niekoniecznie tego samego typu, do rozwiązania problemu. Zastosowanie takiego uczenia pozwala uzyskać lepszą jakość niżeli skorzystanie z pojedynczego modelu.
W celu zrozumienia ensembli musimy przedstawić różnice między silnym modelem (ang. Strong learner) a słabym modelem (ang. Weak learner). Silne modele osiągają dobrą i zadowalającą jakość rozwiązania. Celem rozwiązania problemu uczenia maszynowego, który przed nami stoi, jest stworzenie takiego silnego modelu i wyszkolenie go do takiego stopnia, aby z dużą pewnością zwracał poprawne predykcje.
Słabe modele radzą sobie minimalnie lepiej niż losowe zgadywanie, wykonuje się specjalny zabieg, by nie obarczać ich możliwością poprawnego generalizowania problemu (de facto stworzenia z nich silnego modelu) poprzez zmniejszenie ich możliwości uczenia. Stosuje się w tym celu modele nieposiadające za dużej ilości parametrów i przyjmujące tylko fragment danych wejściowych. Z reguły jest to pojedynczy parametr oraz pojedyncza dana wejściowa (z całego zestawu danych wejściowych). W ten sposób słaby model nie jest w stanie dobrze rozwiązywać problemu.
Zagadnienie słabego modelu rodzi pytanie w naszych głowach, w jakim celu stosować taki model? Czy mamy potrzebę tworzenia takiego modelu, jeżeli wiemy, iż on radzi sobie niewiele lepiej niż zgadywanie? Nie lepiej po prostu stworzyć silny model skoro taki jest nasz cel?
Na pytania te, bardzo zresztą słuszne, pozwoli nam odpowiedzieć zrozumienie dwóch kwestii: modeli ensembli oraz kosztu przygotowania modelu. Ze względu na jakość dążymy, by nasz model był silny; cechował się dobrą jakością predykcji, jednakże wytworzenie takiego modelu jest kosztowne, jeżeli chodzi o czas, szczególnie gdy problem, z którym się borykamy, jest skomplikowany. Uproszczone słabe modele uczą się bardzo szybko (i zarazem bardzo słabo) przez niewielką liczbę parametrów, zapewniając słabą jakość predykcji.
Pomóc zrozumieć nam stosowanie takiego wybiegu pozwoli analogia. Możemy sobie wyobrazić, że słabe modele to politycy głosujący nad jakąś ustawą. Dla uproszczenia załóżmy, że nie mogą wstrzymać się od głosu, jedynie mogą głosować tak lub nie. Przypomina to problem klasyfikacji binarnej, gdzie też występuje problem, w którym ostatecznie model zwraca predykcje 0 – nie/klasa 0 lub 1 – tak/klasa 1. Politycy w naszej analogi można przyrównać do słabych modeli, które nie lepiej radzą sobie od losowego zgadywania, jaka powinna być decyzja podczas głosowania. Jak dobrze wiemy, ustrój demokratyczny opiera się na zasadzie wyboru większościowego i mamy nadzieję, że ten wybór jest poprawny. Podobnie w przypadku stosowania ensembli liczymy, iż politycy (słabe modele) potrafią stworzyć silny rząd (silny model) i poprawnie dokonywać wyborów (predykcji) w kwestiach ważnych dla państwa (problem uczenia maszynowego).
Na pytanie, czy zbiór słabych modeli jest w stanie stworzyć silny model odpowiada nam przykład ensembla, jakim boosting. Wykorzystuje on słabe modele, by ostatecznie stworzyć silny model. Polega to na sekwencyjnym ustawieniu słabych modeli oraz doważaniu predykcji na podstawie oceny poprawności predykcji; błędnie zaklasyfikowane obserwacje mają wyższą wagę od poprawnie zaklasyfikowanych obserwacji. Powoduje to, że model stara się nauczyć rozpoznawać trudne wzorce.
Kolejnym ensemblem jest bagging. Jest to ensemble, który również bazuje na wykorzystaniu idei słabego modelu. W baggingu wyróżniamy jednak słabsze modele (w zamyśle słabsze od silnych) zamiast słabych; w przypadku słabych modeli mamy na myśli modele o bardzo ograniczonych możliwościach uczenia się, które przypomnijmy mają niewiele parametrów. W porównaniu do słabych modeli, słabsze modele w baggingu mają większe możliwości, jeżeli chodzi o uczenie się, jednakże nie kwalifikują się one jako silne, które rozumiemy jako końcowy model osiągający zadowalające wyniki na predykcji. Bagging, w odróżnieniu od sekwencyjnego boostingu, jest ensemblem równoległym.
Bagging to skrót od bootstrap aggregating, aby zrozumieć na czym on polega, musimy zrozumieć osobno dwie składowe tego meta-algorytmu: bootstrapping i agregacja.
Bootstrapping to po angielsku ładowanie początkowe; uruchomienie, w przypadku baggingu jest to procedura doboru danych, polegająca na podziale danych wejściowych na podzbiory dla każdego z algorytmu należącego do tego ensembla.. Celem takiego zachowania jest nauczenie każdego z modelu składającego się na algorytm baggingu innych charakterystyk zbioru danych. Dane wchodzące do każdego z modeli są różne i mogą zawierać powtórzenia, by zwiększyć nacisk na niektóre obserwacje. Agregacja polega na końcowym zagregowaniu (np. średnią) wyników modeli i stworzeniu końcowej predykcji.
Po omówieniu ensembli, takich jak boosting i bagging, możemy zrozumieć ich rozwinięcia: gradient boosting, las losowy. Oba te ensemble mają za bazowy model drzewa decyzyjne oraz korzystają z odpowiadających im ensembli: gradient boosting – boosting, las losowy – bagging. Wykorzystują one opisane wyżej mechanizmy do tworzenia ensembli na bazie drzew decyzyjnych. Dodatkowymi charakterystykami są możliwość wykorzystywania różniczkowalnej funkcji straty w gradient boostingu oraz wykorzystania bootstrappingu w doborze cech dla danego drzewa w losowym lesie. Wzbogacenie ensembli boostingu i baggingu poprzez wymienione elementy pozwoliło gradient boostingowi i losowemu lasowi osiągać wysoką jakość i dużą popularność wśród społeczności data science.
Po zrozumieniu ensembli i umiejscowienia w nich modeli słabych należałoby zadać sobie pytanie: czy jest możliwe stworzenie ensembli złożonych z modeli silnych? Czy skoro wiele słabych modeli potrafi stworzyć silny model, to czy to samo można powiedzieć o silnych modelach?
Jesteśmy w stanie stworzyć oraz wytrenować wiele silnych modeli i na podstawie wyznaczonej przez nas metryki stwierdzić, który jest najlepszy, ale wcale nie jesteśmy ograniczeni do decyzji i wyboru tylko jednego z nich. Możemy wziąć pod uwagę predykcję kilku z nich, aby to zrobić, możemy wykorzystać do tego metody wyboru ensembli: statycznej lub dynamicznej. Każda z tych metod agreguje wyniki grupy algorytmów do końcowej predykcji, różnią się między sobą metodą wyboru algorytmów do grupy dokonującej predykcji.
Statyczna metoda wyboru ensembli (ang. static ensemble selection) polega na wyszkoleniu paru algorytmów, a następnie wyboru kilku najlepszych modeli, które będą stanowić ensemble. Końcowy wynik predykcji to wypadkowa wyników wybranych przez nas modeli. Dynamiczna metoda wyboru ensembli (ang. Dynamic ensemble selection) to wzbogacenie metody statycznej poprzez zmianę momentu wyboru algorytmów, które składają się na ensemble. Tak jak w przypadku statycznego wyboru trenujemy kilka modeli, na podstawie których zostanie wyłoniony ensemble. Dokonuje się to podczas predykcji na podczęści zbioru treningowego, wybierane jest kilka najlepszych modeli dla tego podzbioru, a następnie agreguje się wynik dla interesującej nas obserwacji. Stąd nazwa dynamiczny wybór ensembli, sam skład ensembla jest tworzony ze względu na obserwację, na której dokonujemy predykcji i jej sąsiedztwa.
Skuteczne budowanie modeli ensembli pozwala na możliwe polepszenie jakości rozwiązania, które chcemy dostarczyć. Każdy z modeli, szczególnie w metodzie boostingu i wyboru ensembli radzi sobie lepiej na innej podczęści danych. Oznacza to, że każdy z modeli jest w stanie „pokryć” inny fragment przestrzeni, skąd pochodzą nasze obserwacje. Wadą takiego rozwiązania jest czas, który musimy przeznaczyć na trenowanie ensembli. Oczywiście skorzystanie z ensembli nie gwarantuje lepszego modelu, aczkolwiek jest to kierunek warty zbadania.
Źródła:
https://en.wikipedia.org/wiki/Ensemble_learning
https://en.wikipedia.org/wiki/Gradient_boosting
https://machinelearningmastery.com/strong-learners-vs-weak-learners-for-ensemble-learning/
Ko, A.H., Sabourin, R. and Britto Jr, A.S., 2008. From dynamic classifier selection to dynamic ensemble selection. Pattern recognition, 41(5), pp.1718-1731.
Digital Fingerprints S.A. ul. Gliwicka 2, 40-079 Katowice. KRS: 0000543443, Sąd Rejonowy Katowice-Wschód, VIII Wydział Gospodarczy, Kapitał zakładowy: 4 528 828,76 zł – opłacony w całości, NIP: 525-260-93-29
Biuro Informacji Kredytowej S.A., ul. Zygmunta Modzelewskiego 77a, 02-679 Warszawa. Numer KRS: 0000110015, Sąd Rejonowy m.st. Warszawy, XIII Wydział Gospodarczy, kapitał zakładowy 15.550.000 zł opłacony w całości, NIP: 951-177-86-33, REGON: 012845863.
Biuro Informacji Gospodarczej InfoMonitor S.A., ul. Zygmunta Modzelewskiego 77a, 02-679 Warszawa. Numer KRS: 0000201192, Sąd Rejonowy m.st. Warszawy, XIII Wydział Gospodarczy, kapitał zakładowy 7.105.000 zł opłacony w całości, NIP: 526-274-43-07, REGON: 015625240.