После использования OpenCV для boosting Я пытаюсь реализовать свою собственную версию Adaboost
алгоритма (проверить here, here и the original paper для некоторых ссылок).Выбор параметров в AdaBoost
Прочитав весь материал, у меня возникли некоторые вопросы относительно реализации алгоритма.
1) Мне непонятно, как назначаются веса a_t каждого слабого ученика.
Во всех источниках я указал, что выбор a_t = k * ln((1-e_t)/e_t)
, k - положительная постоянная, а e_t - частота ошибок конкретного слабого учащегося.
На странице 7 этого source говорится, что это конкретное значение минимизирует некоторую выпуклую дифференцируемую функцию, но я действительно не понимаю этот проход.
Может ли кто-нибудь объяснить это мне?
2) У меня есть некоторые сомнения относительно процедуры обновления веса образцов обучения.
Очевидно, что это должно быть сделано таким образом, чтобы гарантировать, что они остаются распределением вероятности. Все ссылки принять этот выбор:
D_ {т + 1} (я) = D_ {т} (я) * е^(- a_t y_i h_t (X_i))/Z_t (где Z_t является a коэффициент нормировки, выбранный таким образом, что D_ {t + 1} является распределением).
- Но почему конкретный выбор обновления веса мультипликативного с экспонентом коэффициента ошибок сделана конкретным слабым учеником?
- Возможны ли какие-либо другие обновления? И если да, то есть ли доказательство того, что это обновление гарантирует некоторую оптимальность учебного процесса?
Надеюсь, это подходящее место для размещения этого вопроса, если нет, пожалуйста, перенаправьте меня!
Заранее благодарим за любую помощь, которую вы можете предоставить.
Вы знакомы с выпуклой оптимизацией вообще? Если нет, объяснение этого отрывка займет некоторое время (курс колледжа по оптимизации занимает семестр) – AlexK
Да, другая схема обновления веса возможна, если вы выберете другую целевую функцию (посмотрите «целевую функцию» в выпуклой книге оптимизации) , Для другой схемы обновления веса google «LogitBoost», для руководства по выпуклой оптимизации см. Http://www.stanford.edu/~boyd/cvxbook/ – AlexK
@AlexK - Я знаком с выпуклой оптимизацией, но все равно мне понадобится объяснения. Вы можете мне помочь? – Matteo