Po użyciu OpenCV dla boosting Próbuję zaimplementować własną wersję algorytmu Adaboost
(sprawdź here, here i the original paper dla niektórych odniesień).Wybór parametrów w adaboost
Czytając cały materiał, wymyśliłem kilka pytań dotyczących implementacji algorytmu.
1) Nie jest dla mnie jasne, w jaki sposób przypisuje się ciężary a_t każdego słabego ucznia.
We wszystkich źródłach wskazałem, że jest to a_t = k * ln((1-e_t)/e_t)
, gdzie k jest dodatnią stałą i e_t wskaźnikiem błędu danego słabego ucznia.
Na stronie 7 tego source mówi, że ta konkretna wartość minimalizuje pewną wypukłą funkcję różniczkowalną, ale naprawdę nie rozumiem tego fragmentu.
Czy ktoś może mi to wyjaśnić?
2) Mam pewne wątpliwości dotyczące procedury aktualizacji wagi próbek szkoleniowych.
Oczywiście należy to zrobić w taki sposób, aby zagwarantować, że pozostaną one rozkładem prawdopodobieństwa. Wszystkie odniesienia do przyjęcia tego wyboru:
D_ {t + 1} (I) = D_ {t} (I), * e^(- a_t y_i h_t (X_i))/Z_t (gdzie Z_t jest współczynnik normalizacji wybrany tak, że D_ {t + 1} jest rozkładem).
- Ale dlaczego jest szczególny dobór aktualizacji wagi multiplikatywnego z wykładniczym stopy błędu popełnionego przez danego słabego ucznia?
- Czy są dostępne inne aktualizacje? A jeśli tak, to czy istnieje dowód, że ta aktualizacja gwarantuje jakąś optymalność procesu uczenia się?
Mam nadzieję, że to odpowiednie miejsce, aby opublikować to pytanie, jeśli nie, proszę przekierować mnie!
Z góry dziękujemy za wszelką pomoc, jaką możesz zapewnić.
Czy znasz w ogóle optymalizację wypukłą? Jeśli nie, wyjaśnienie tego fragmentu zajmie trochę czasu (kurs kolegium z optymalizacji trwa semestr) – AlexK
Tak, inny schemat aktualizacji wagi jest możliwy, jeśli wybierzesz inną funkcję celu (wyszukaj "funkcję celu" w książce optymalizacji wypukłej) . Dla innego schematu aktualizacji wagi google "LogitBoost", dla przewodnika dotyczącego optymalizacji wypukłej zobacz http://www.stanford.edu/~boyd/cvxbook/ – AlexK
@AlexK - Jestem zaznajomiony z optymalizacją wypukłą, ale nadal potrzebowałbym wyjaśnienia. Możesz mi pomóc? – Matteo