Вход и выход AdaBoost?

Я не технический человек, который пытается реализовать классификацию изображений. В этой статье я столкнулся с алгоритмом ADA Boost, который был реализован после этапа «набор функций» для ключевых кадров видео. Может ли кто-нибудь объяснить простым языком, что делает ADA Boost и каковы его вход и выход? Может ли кто-нибудь указать мне код для того же?


person Pen Watson    schedule 06.04.2012    source источник


Ответы (2)


Во-первых, было бы неплохо, если бы вы могли дать ссылку/назвать документ, на который вы ссылаетесь.

AdaBoost — это алгоритм метаклассификации, так как он объединяет несколько классификаторов, называемых слабыми учениками. Эти слабые ученики часто очень просты, например. они классифицируют данные только на основе одной функции и работают немного лучше, чем случайные.

При классификации изображений AdaBoost будет использовать в качестве входных данных набор изображений (с соответствующими метками, показывающими, к какому классу принадлежит каждый образец) и набор слабых учеников. Затем AdaBoost найдет слабого ученика с наименьшей частотой ошибок (т. е. с лучшими результатами) в данных. Всем правильно классифицированным образцам данных теперь присваивается меньший вес, поскольку они теперь менее важны, а образцам, классифицированным неправильно, присваивается более высокий вес. Теперь AdaBoost начнет новый раунд и выберет лучшего слабого ученика на основе новых взвешенных данных. Другими словами, он найдет нового слабого ученика, который лучше классифицирует образцы, которые ранее выбранные слабые ученики не смогли классифицировать.

Алгоритм будет продолжать выбирать этих слабых учеников в течение заданного количества итераций. Результат состоит из группы выбранных слабых учеников. Обученный классификатор теперь может классифицировать новые изображения на основе большинства голосов каждого слабого классификатора в группе (часто сами слабые классификаторы также взвешиваются на основе достигнутой ими частоты ошибок).

Возможно, вы захотите взглянуть на программное обеспечение, которое уже внедрило AdaBoost, например WEKA или ориентированный на компьютерное зрение OpenCV.

person Sicco    schedule 11.04.2012
comment
И что выдает классификатор? Например, нейронная сеть, использующая сигмовидную функцию и обученная распознавать 2 класса (0 и 1), выводит значение от 0 до 1, которое показывает относительную вероятность того, что обнаруженный контекст принадлежит одному из этих классов. Но что выведет алгоритм Adaboost для того же примера? - person supermus; 06.06.2013
comment
@supermus AdaBoost можно использовать для классификации или регрессии. Результатом в случае классификации является один класс из фиксированного набора классов. В случае регрессии AdaBoost может вывести любое число. - person Sicco; 06.06.2013

Adaboost берет несколько слабых классификаторов и объединяет их, чтобы сформировать сильный классификатор. Выходные данные представляют собой последовательность весов w_i для слабых классификаторов, используемых в слагаемом для формирования единого взвешенного классификатора. Алгоритм дает много промежуточных результатов, но, возможно, наиболее важными являются сами веса.

Хотя изначально это не было задумано таким образом, Adaboost эквивалентен подгонке «прямой поэтапной» модели на тренировочном наборе с использованием слабых классификаторов на каждом шаге с использованием экспоненциальной функции потерь: L(y,f(x)) = exp(-y*f(x)), где f(.) — наш классификатор. С этой точки зрения некоторые аспекты алгоритма становятся более ясными. Экспоненциальная функция потерь часто используется для задач классификации по уважительной причине.

person Charles Pehlivanian    schedule 04.12.2013