AI : Technologie, Aplikacje i Wyzwania : Wybór hiperparametru

W sieci neuronowej istnieją różne parametry, które musimy zdefiniować przed treningiem. Mają charakter statyczny i nie są wyuczone podczas treningu. Są to tak zwane hiperparametry. Te parametry to szybkość uczenia się, wielkość partii, pęd i liczba epok. Istnieją również inne hiperparametry, które są związane z architekturą sieci. Te parametry to liczba ukrytych warstw, dropout, inicjalizacja wagi i funkcja aktywacji.

  • Szybkość uczenia się: Określa rozmiar kroku, który należy przesunąć podczas każdej iteracji treningu. Określa prędkość, z jaką sieć może się uczyć. Niższy wskaźnik uczenia się sprawia, że ​​nauka sieci zajmuje więcej czasu, ale sprawia, że ​​uczenie się sieci przebiega płynnie. Większa szybkość uczenia się przyspiesza uczenie się, ale czasami sieci nie są w stanie osiągnąć zbieżności ze względu na duży rozmiar kroku. Użyliśmy 0,0001 jako początkowej szybkości uczenia się. Zmniejszyło się to po 50 epokach o połowę.
  • Rozmiar wsadu: Jest to liczba próbek używanych przez sieć w jednej iteracji. Po każdej iteracji sieć aktualizuje swoje parametry. Zależy to również od dostępnej pamięci GPU. Użyliśmy partii 8.
  • Momentum: Jest to parametr o wartości od 0 do 1. Służy do regulowania kierunku uczenia się w kierunku stałego gradientu. Odbywa się to poprzez uwzględnienie bieżącej średniej wartości gradientu zamiast bieżącej wartości. Użyliśmy wartości 0,9.
  • Liczba epok: Epoka jest zdefiniowana jako liczba iteracji wymaganych do przejścia ze wszystkimi danymi uczącymi. Liczba epok określa, ile razy przesłaliśmy nasze kompletne dane do sieci w celu uczenia się. Ustawiliśmy ten parametr na 300.
  • Dropout Rate: Dropout to technika losowego usuwania niektórych sygnałów wyjściowych neuronów podczas treningu. Zwiększa moc generalizacji sieci. Dropout rate określa, jaki procent wyjścia neuronowego z poprzedniej warstwy należy zignorować. Zastosowaliśmy wskaźnik porzucania wynoszący 30%.
  • Inicjalizacja wagi: Jest to technika inicjowania wszystkich wag sieci na początku treningu. Wykorzystaliśmy do tego dystrybucję równomierną.
  • Funkcja aktywacji: jest to nieliniowa transformacja zastosowana do wyjścia warstw. Wprowadza nieliniowość do sieci. Użyliśmy ReLU po każdej warstwie normalizacji partii. W warstwie wyjściowej sieci zastosowano funkcję aktywacji sigmoidalnej.

Wzmocnienie gradientu

W przypadku regresji i klasyfikacji danych tabelarycznych na czynniki, bardzo popularną metodą stało się wzmacnianie gradientu, czasami nazywane maszynami wzmacniającymi gradient (GBM) lub drzewami regresji wzmocnionej gradientem (GBRT). Jak sama nazwa wskazuje, zwiększanie gradientu to forma wzmocnienia za pomocą gradientu. Przypomnijmy, że w programie ADABOOST zaczynamy od jednej hipotezy h1 i wzmacniamy ją sekwencją hipotez, które zwracają szczególną uwagę na przykłady, w których poprzednie się myliły. W zwiększaniu gradientu dodajemy również nowe hipotezy wzmacniające, które zwracają uwagę nie na konkretne przykłady, ale na gradient między prawidłowymi odpowiedziami a odpowiedziami podanymi przez poprzednie hipotezy. Podobnie jak w innych algorytmach, które wykorzystywały gradient gradientu, zaczynamy od różniczkowalnej funkcji straty; możemy użyć błędu kwadratowego do regresji lub straty logarytmicznej do klasyfikacji. Podobnie jak w ADABOOST, budujemy drzewo decyzyjne. Użyliśmy gradientu, aby zminimalizować parametry modelu – obliczamy stratę i aktualizujemy parametry w kierunku mniejszej straty. Przy zwiększaniu gradientu nie aktualizujemy parametrów istniejącego modelu, aktualizujemy parametry następnego drzewa – ale musimy to zrobić w taki sposób, aby zmniejszyć straty, przesuwając się w odpowiednim kierunku wzdłuż gradientu. Podobnie jak w modelach, które widzieliśmy, regularyzacja może pomóc w zapobieganiu nadmiernemu dopasowaniu. Może to przybrać formę ograniczenia liczby drzew lub ich wielkości (pod względem głębokości lub liczby węzłów). Może pochodzić z szybkości uczenia się, α która mówi o tym, jak daleko można się poruszać wzdłuż kierunku gradientu; wartości w zakresie od 0,1 do 0,3 są powszechne, a im mniejsza szybkość uczenia się, tym więcej drzew będziemy potrzebować w zespole. Gradient boosting jest zaimplementowany w popularnym pakiecie XGBOOST (eXtreme Gradient Boosting), który jest rutynowo wykorzystywany zarówno do zastosowań na dużą skalę w przemyśle (dla problemów z miliardami przykładów), jak i przez zwycięzców konkursów data science (w 2015 roku używane przez każdą drużynę z pierwszej dziesiątki KDDCup). XGBOOST wykonuje zwiększanie gradientu za pomocą przycinania i regularyzacji, a także dba o wydajność, starannie organizując pamięć, aby uniknąć chybień w pamięci podręcznej i umożliwiając równoległe obliczenia na wielu komputerach.

AI : Technologie, Aplikacje i Wyzwania :Projektowanie architektury sieci

Ponieważ nie ma dostępnego zbioru danych, nie jest również dostępna wstępnie przeszkolona masa z cechami drogi na zdjęciach lotniczych. Aby temu zaradzić, zaprojektowaliśmy własną architekturę sieci neuronowej. Stworzyliśmy sieć neuronową opartą na architekturze koder-dekoder UNet. UNet okazał się bardzo przydatny w przypadku małych zestawów danych i treningu od podstaw bez wstępnie przeszkolonej wagi. Nasza sieć składa się z kodera i dekodera. Zastosowaliśmy wieloskalowe bloki kodera i dekodera. W każdym bloku enkodera zastosowaliśmy sekwencję warstw splotu, normalizacji wsadowej, ReLU i próbkowania w dół. Max pooling jako warstwa próbkowania w dół została wykorzystana do zmniejszenia rozmiaru danych wejściowych, a także do tworzenia funkcji o wielu skalach. W blokach dekodera zastosowaliśmy warstwę upsamplingu i sekwencję konwolucji, normalizację wsadową i warstwy ReLU. Użyliśmy pominięć połączeń między koderem a dekoderem, aby wykorzystać funkcje wcześniejszych warstw. Pomiń połączenie rozwiązuje również problem znikającego gradientu. Zapewnia alternatywną ścieżkę dla przepływu gradientowego. Na rysunku pokazano architekturę sieci opartą na UNet.

Wzmacnianie

Najpopularniejszą metodą zespołową jest boosting. Aby zrozumieć, jak to działa, musimy najpierw wprowadzić ideę ważonego zestawu treningowego, w którym każdy przykład ma powiązaną wagę wj ≥ 0, która opisuje, ile przykład powinien liczyć podczas treningu. Na przykład, jeśli jeden przykład miał wagę 3, a wszystkie inne przykłady miały wagę 1, byłoby to równoważne posiadaniu 3 kopii jednego przykładu w zestawie uczącym. Wzmacnianie zaczyna się od równych wag wj=1 dla wszystkich przykładów. Z tego zbioru treningowego generuje pierwszą hipotezę, h1. Ogólnie h1 zaklasyfikuje niektóre przykłady treningowe poprawnie, a niektóre niepoprawnie. Chcielibyśmy, aby następna hipoteza działała lepiej na błędnie sklasyfikowanych przykładach, więc zwiększamy ich wagi, jednocześnie zmniejszając wagi poprawnie sklasyfikowanych przykładów. Z tego nowego ważonego zestawu treningowego generujemy hipotezę h2. Proces trwa w ten sposób do momentu wygenerowania K hipotez, gdzie K jest danymi wejściowymi do algorytmu wzmacniającego. Przykłady, które są trudne do sklasyfikowania, będą miały coraz większe wagi, dopóki algorytm nie zostanie zmuszony do stworzenia hipotezy, która klasyfikuje je poprawnie. Zauważ, że jest to algorytm zachłanny w tym sensie, że się nie cofa; raz wybrał hipotezę, nigdy nie cofnie tego wyboru; raczej doda nowe hipotezy. Jest to również algorytm sekwencyjny, więc nie możemy obliczyć wszystkich hipotez równolegle, jak w przypadku workowania. Ostateczny zespół pozwala na głosowanie każdej hipotezy, tak jak w przypadku zbierania głosów, z tą różnicą, że każda hipoteza otrzymuje ważoną liczbę głosów – hipotezy, które wypadły lepiej w swoich ważonych zestawach treningowych, otrzymują większą wagę głosów. Dla regresji lub klasyfikacji binarnej mamy

gdzie zi jest wagą i-tej hipotezy. (To ważenie hipotez różni się od ważenia przykładów). Rysunek pokazuje, jak algorytm działa koncepcyjnie.

Istnieje wiele wariantów podstawowego pomysłu na wzmocnienie, z różnymi sposobami dostosowania przykładowych wag i łączenia hipotez. Wszystkie warianty podzielają ogólną ideę, że trudne przykłady nabierają większej wagi, gdy przechodzimy od jednej hipotezy do następnej. Podobnie jak bayesowskie metody uczenia, przypisują one również większą wagę dokładniejszym hipotezom. Jeden konkretny algorytm, zwany ADABOOST, pokazano.

Jest zwykle stosowany z drzewami decyzyjnymi jako hipotezy składowe; często drzewa mają ograniczony rozmiar. ADABOOST ma bardzo ważną właściwość: jeśli wejściowy algorytm uczący L jest słabym algorytmem uczącym — co oznacza, że ​​L zawsze zwraca hipotezę z dokładnością w zbiorze uczącym, która jest nieco lepsza niż zgadywanie losowe (czyli 50%+ε dla wartości logicznych klasyfikacja)- wtedy ADABOOST zwróci hipotezę, która doskonale klasyfikuje dane treningowe dla dużych wystarczy K. W ten sposób algorytm zwiększa dokładność oryginalnego algorytmu uczenia na danych uczących. Innymi słowy, wzmacnianie może przezwyciężyć wszelkie odchylenia w modelu podstawowym, o ile model podstawowy ε jest lepszy niż zgadywanie losowe. (W naszym pseudokodzie przestajemy generować hipotezy, jeśli otrzymamy taką, która jest gorsza niż losowa.) Ten wynik obowiązuje bez względu na to, jak niewyrażalna jest oryginalna przestrzeń hipotez i jak złożona jest funkcja nauczycieli. Dokładne wzory wag (z error/(1-error, itp.) są wybrane, aby ułatwić udowodnienie tej własności . Oczywiście ta własność nie gwarantuje dokładności wcześniejszych niewidzialne przykłady. Zobaczmy, jak dobrze zwiększanie wpływa na dane restauracji. Jako przestrzeń pierwotną hipotezy wybierzemy klasę pniaków decyzyjnych, które są drzewami decyzyjnymi z tylko jednym testem, u podstawy. Dolna krzywa na rysunku (a) pokazuje, że niewzmocnione kikuty decyzyjne nie są zbyt skuteczne dla tego zestawu danych, osiągając wydajność przewidywania tylko 81% na 100 przykładach treningowych. Po zastosowaniu wzmocnienia (przy K=5) wydajność jest lepsza, osiągając 93% po 100 przykładach .

Ciekawa rzecz dzieje się wraz ze wzrostem rozmiaru zespołu K. Rysunek (b) przedstawia wydajność zbioru uczącego (na 100 przykładach) jako funkcję K. Zauważ, że błąd osiąga zero, gdy K wynosi 20; to znaczy kombinacja ważona większością 20 pniaków decyzyjnych wystarcza, aby dokładnie dopasować 100 przykładów – to jest punkt interpolacji. W miarę dodawania kolejnych kikutów do zespołu, błąd pozostaje na poziomie zerowym. Wykres pokazuje również, że wydajność zestawu testowego nadal rośnie długo po tym, jak błąd zestawu uczącego osiągnął zero. Przy K = 20 wydajność testu wynosi 0,95 (lub błąd 0,05), a wydajność wzrasta do 0,98 dopiero przy K = 137, po czym stopniowo spada do 0,95. To odkrycie, które jest dość solidne w różnych zestawach danych i przestrzeniach hipotez, było zaskoczeniem, gdy po raz pierwszy zostało zauważone. Brzytwa Ockhama mówi nam, aby nie czynić hipotez bardziej złożonymi niż to konieczne, ale wykres mówi nam, że przewidywania poprawiają się, gdy hipoteza zespołowa staje się bardziej złożona! Proponowano w tym celu różne wyjaśnienia. Jednym z poglądów jest to, że wzmacnianie przybliża uczenie bayesowskie, które można wykazać, że jest optymalnym algorytmem uczenia się, a przybliżenie poprawia się wraz z dodawaniem większej liczby hipotez. Innym możliwym wyjaśnieniem jest to, że dodanie kolejnych hipotez pozwala zespołowi na większą pewność rozróżnienia między pozytywnymi i negatywnymi przykładami, co pomaga mu w klasyfikowaniu nowych przykładów

AI : Technologie, Aplikacje i Wyzwania : Przygotowanie i wstępne przetwarzanie zbioru danych

W przypadku klasy dróg ze zdjęciami lotniczymi VHR nie ma dostępnego zbioru danych publicznych. Aby rozwiązać ten problem, ręcznie stworzyliśmy treningowy zestaw danych. W tym celu wykorzystaliśmy 200 zdjęć danych lotniczych z różnych lokalizacji badawczych. Każdy obraz ma 4000×3000 pikseli. Użyliśmy czerwonych, zielonych, niebieskich (RGB) pasm obrazów. Te obrazy zostały ręcznie opatrzone adnotacjami. Istotne wyzwania na tym etapie to:

  • Wybór obrazów do zbioru danych jest trudnym zadaniem. Musimy zawrzeć jak najwięcej zdjęć z różnymi lokalizacjami, warunkami oświetlenia, warunkami geograficznymi. To jest ważnew celu zapewnienia uogólnionego rozwoju modelu.
  • Musimy również upewnić się, że wybrane obrazy powinny posiadać cechy dróg co najmniej 20% całkowitej powierzchni.

Nasz rozmiar obrazu jest ogromny i nie jest łatwo zmieścić tak duży obraz w pamięci GPU. Zasoby GPU są w większości ograniczone i skąpe. Po selekcji obrazów i wygenerowaniu podstawowej prawdy podzieliliśmy te pary obrazów na łaty o wymiarach 128×128 pikseli. Wygenerowano łącznie 7000 losowych łatek. Z tych łatek 4200 łatek zostało wykorzystanych do uczenia sieci neuronowej. Łącznie 1400 łatek zostało użytych do walidacji podczas szkolenia, a pozostałe 1400 łatek zostało użytych do testów.

Układanie

Podczas gdy tworzenie worków łączy wiele modeli podstawowych tej samej klasy modelu przeszkolonych na różnych danych, technika uogólniania stosowego (lub układania w skrócie) łączy wiele podstawowych modeli uogólniania stosowego z różnych klas modeli przeszkolonych na tych samych danych. Załóżmy na przykład, że otrzymaliśmy zestaw danych restauracji, którego pierwszy wiersz pokazano tutaj:

x1=Tak, Nie, Nie, Tak, Trochę, $$$, Nie, Tak, Francuski, 0-10;y1=Tak

Dzielimy dane na zestawy szkoleniowe, walidacyjne i testowe i używamy zestawu szkoleniowego do trenowania, powiedzmy, trzech oddzielnych modeli podstawowych — modelu SVM, modelu regresji logistycznej i modelu drzewa decyzyjnego. W następnym kroku pobieramy zestaw danych walidacyjnych i rozszerzamy każdy wiersz o prognozy wykonane z trzech modeli podstawowych, dając nam wiersze, które wyglądają tak (gdzie prognozy są pogrubione):

x2=Tak, Nie, Nie, Tak, Pełny, $, Nie, Nie, Tajski, 30-60, Tak, Nie, Nie; y2=Nie

Używamy tego zestawu walidacyjnego do trenowania nowego modelu zespołowego, powiedzmy modelu regresji logistycznej (ale nie musi to być jedna z podstawowych klas modelu). Model zespołowy może wykorzystywać prognozy i oryginalne dane według własnego uznania. Może nauczyć się średniej ważonej modeli podstawowych, na przykład, że prognozy powinny być ważone w proporcji 50%:30%:20%. Lub może nauczyć się nieliniowych interakcji między danymi a przewidywaniami, być może bardziej ufając modelowi SVM, gdy czas oczekiwania jest długi. Wykorzystaliśmy te same dane szkoleniowe do trenowania każdego z modeli podstawowych, a następnie wykorzystaliśmy przetrzymywane dane walidacyjne (plus prognozy) do trenowania modelu zespołowego. W razie potrzeby można również zastosować walidację krzyżową. Metoda ta nazywana jest „układaniem w stos”, ponieważ można ją traktować jako warstwę modeli podstawowych z ułożonym nad nią modelem zespołowym, operującą na danych wyjściowych modeli podstawowych. W rzeczywistości możliwe jest ułożenie wielu warstw, z których każda działa na wyjściu poprzedniej warstwy. Układanie w stosy zmniejsza stronniczość i zwykle prowadzi do wydajności, która jest lepsza niż którykolwiek z indywidualnych modeli podstawowych. Stacking jest często używany przez zwycięskie zespoły w konkursach analizy danych (takich jak Kaggle i KDD Cup), ponieważ poszczególne osoby mogą pracować niezależnie, każdy z nich udoskonala swój własny model podstawowy, a następnie łączy się, aby zbudować ostateczny model ułożony w stos.

AI : Technologie, Aplikacje i Wyzwania : Studium przypadku

W tym studium przypadku wzięliśmy pod uwagę istotny problem ekstrakcji dróg ze zdjęć lotniczych. Zdjęcia lotnicze o bardzo wysokiej rozdzielczości mogą być od czasu do czasu wykorzystywane do mapowania sieci dróg. Ręczna digitalizacja jest bardzo żmudnym zadaniem i niezbyt nadaje się do zdjęć lotniczych, ponieważ ilość danych i częstotliwość ich pozyskiwania są bardzo wysokie. Głębokie uczenie odgrywa znaczącą rolę w zadaniach automatycznego wyodrębniania w takim scenariuszu.

Cel

Aby wyodrębnić sieć dróg ze zdjęć lotniczych o bardzo wysokiej rozdzielczości przy użyciu głębokiego uczenia.

Losowe lasy

Niestety, zbieranie drzew decyzyjnych często kończy się uzyskaniem K drzew, które są silnie skorelowane. Jeśli istnieje jeden atrybut o bardzo wysokim zysku informacyjnym, prawdopodobnie będzie to korzeń większości drzew. Model lasu losowego jest formą workowania drzew decyzyjnych, w której podejmujemy dodatkowe kroki, aby zespół K drzew był bardziej zróżnicowany, aby zmniejszyć wariancję. Lasy losowe mogą służyć do klasyfikacji lub regresji. Kluczową ideą jest losowe zmienianie wyborów atrybutów (a nie przykładów szkoleniowych). W każdym punkcie podziału podczas konstruowania drzewa wybieramy losową próbkę atrybutów, a następnie obliczamy, który z nich daje największy przyrost informacji. Jeśli istnieje n atrybutów, powszechnym domyślnym wyborem jest to, że każdy podział losowo wybiera √n atrybutów do rozważenia w przypadku problemów z klasyfikacją lub n/3 w przypadku problemów z regresją. Kolejnym ulepszeniem jest wykorzystanie losowości przy wyborze wartości punktu podziału: dla każdego wybranego atrybutu losowo pobieramy kilka kandydujących wartości z jednolitego rozkładu w zakresie atrybutu. Następnie wybieramy wartość, która ma największy zysk informacyjny. To sprawia, że ​​bardziej prawdopodobne jest, że każde drzewo w lesie będzie inne. Drzewa zbudowane w ten sposób nazywane są drzewami ekstremalnie losowymi (ExtraTrees). Tworzenie losowych lasów jest efektywne. Można by pomyśleć, że utworzenie zbioru K drzew zajęłoby K razy dłużej, ale nie jest tak źle, z trzech powodów: (a) każdy punkt podziału działa szybciej, ponieważ rozważamy mniej atrybutów, (b) możemy pominąć krok przycinania dla każdego pojedynczego drzewa, ponieważ zespół jako całość zmniejsza przeciążenie, oraz (c) jeśli mamy dostępne K komputerów, możemy zbudować wszystkie drzewa równolegle. Na przykład Adele Cutler informuje, że w przypadku problemu ze 100 atrybutami, jeśli mamy tylko trzy procesory, możemy wyhodować las z K=100 drzew w mniej więcej tym samym czasie, jaki zajmuje utworzenie pojedynczego drzewa decyzyjnego na jednym procesorze. Wszystkie hiperparametry losowych lasów mogą być trenowane przez walidację krzyżową: liczba drzew K, liczba przykładów użytych przez każde drzewo N (często wyrażona jako procent pełnego zbioru danych), liczba atrybutów użytych przy każdym podziale punkt (często wyrażony jako funkcja całkowitej liczby atrybutów, np. √n) oraz liczba próbowanych losowych punktów podziału, jeśli używamy ExtraTrees. Zamiast zwykłej strategii walidacji krzyżowej, moglibyśmy zmierzyć błąd out-of-bag: średni błąd w każdym przykładzie, używając tylko drzew, których zestaw przykładów nie zawierał tego konkretnego przykładu. Ostrzegano nas, że bardziej złożone modele mogą być podatne na nadmierne dopasowanie, i zaobserwowaliśmy, że jest to prawdą w przypadku drzew decyzyjnych, gdzie okazało się, że przycinanie jest odpowiedzią na zapobieganie nadmiernemu dopasowaniu. Lasy losowe to złożone, nieprzycinane modele. Są jednak odporne na overfitting. W miarę zwiększania wydajności przez dodawanie większej liczby drzew do lasu, mają one tendencję do poprawy wskaźnika błędów zestawu walidacji. Krzywa zazwyczaj wygląda jak na rysunku 19.9(b), a nie (a). Breiman (2001) podaje matematyczny dowód, że (w prawie wszystkich przypadkach) w miarę dodawania kolejnych drzew do lasu, błąd się zbiega; nie rośnie. Jednym ze sposobów myślenia o tym jest to, że losowy wybór atrybutów daje różne drzewa, zmniejszając w ten sposób wariancję, ale ponieważ nie musimy przycinać drzew, mogą one pokryć całą przestrzeń wejściową w wyższej rozdzielczości. Pewna liczba drzew może obejmować unikalne przypadki, które pojawiają się w danych tylko kilka razy, a ich głosy mogą okazać się decydujące, ale mogą zostać przegłosowane, gdy nie mają zastosowania. To powiedziawszy, losowe lasy nie są całkowicie odporne na nadmierne dopasowanie. Chociaż błąd nie może wzrosnąć w limicie, nie oznacza to, że błąd zejdzie do zera. Lasy losowe są bardzo skuteczne w wielu różnych problemach z aplikacjami. W konkursach nauki danych Kaggle były one najpopularniejszym podejściem do wygrywania zespołów w latach 2011-2014 i pozostają powszechnym podejściem do dziś (chociaż głębokie uczenie i zwiększanie gradientu stały się jeszcze bardziej powszechne wśród ostatnich zwycięzców). Szczególnym faworytem był pakiet randomForest w R. W finansach losowe lasy zostały wykorzystane do przewidywania niewypłacalności kart kredytowych, przewidywania dochodów gospodarstw domowych i wyceny opcji. Zastosowania mechaniczne obejmują diagnostykę usterek maszyn i teledetekcję. Zastosowania bioinformatyczne i medyczne obejmują retinopatię cukrzycową, ekspresję genów na mikromacierzach, analizę ekspresji białek w widmie masowym, odkrywanie biomarkerów i przewidywanie interakcji białko-białko.

AI : Technologie, Aplikacje i Wyzwania : Śledzenie obiektów

Szottka  wykorzystuje metody oparte na cząstkach do długoterminowego śledzenia pojazdów z wykorzystaniem danych lotniczych. Fang  zaproponował sieć Recurrent Autoregressive Network (RAN), która łączyła informacje o wyglądzie i ruchu do śledzenia obiektów. Kim użył dwuliniowego LSTM do śledzenia wielu obiektów. Henschel zaproponował modelowanie problemu śledzenia jako problemu etykietowania grafów ważonych. Połączyli dwa detektory w problemie śledzenia. W tabeli pokazano szczegóły publicznie dostępnego zbioru danych do śledzenia obiektów.

Bagging

W baggingu generujemy K różnych zestawów szkoleniowych przez próbkowanie z zastąpieniem z oryginalnego zestawu szkoleniowego Bagging. Oznacza to, że losowo wybieramy N przykładów ze zbioru treningowego, ale każdy z tych wyborów może być przykładem, który wybraliśmy wcześniej. Następnie uruchamiamy nasz algorytm uczenia maszynowego na N przykładach, aby uzyskać hipotezę. Powtarzamy ten proces K razy, otrzymując K różnych hipotez. Następnie, poproszeni o przewidzenie wartości nowego wejścia, agregujemy przewidywania ze wszystkich hipotez K. W przypadku problemów z klasyfikacją oznacza to oddanie większości głosów (głos większościowy za klasyfikacją binarną). W przypadku problemów z regresją ostateczny wynik to średnia:

Bagging ma tendencję do zmniejszania wariancji i jest standardowym podejściem w przypadku ograniczonych danych lub gdy model bazowy jest postrzegany jako przesadny. Bagging można zastosować do dowolnej klasy modelu, ale najczęściej stosuje się go w przypadku drzew decyzyjnych. Jest to właściwe, ponieważ drzewa decyzyjne są niestabilne: nieco inny zestaw przykładów może prowadzić do zupełnie innego drzewa. Bagging wygładza tę rozbieżność. Jeśli masz dostęp do wielu komputerów, pakowanie jest wydajne, ponieważ hipotezy można obliczyć równolegle.