Я не технический человек, который пытается реализовать классификацию изображений. В этой статье я столкнулся с алгоритмом ADA Boost, который был реализован после этапа «набор функций» для ключевых кадров видео. Может ли кто-нибудь объяснить простым языком, что делает ADA Boost и каковы его вход и выход? Может ли кто-нибудь указать мне код для того же?
Вход и выход AdaBoost?
Ответы (2)
Во-первых, было бы неплохо, если бы вы могли дать ссылку/назвать документ, на который вы ссылаетесь.
AdaBoost — это алгоритм метаклассификации, так как он объединяет несколько классификаторов, называемых слабыми учениками. Эти слабые ученики часто очень просты, например. они классифицируют данные только на основе одной функции и работают немного лучше, чем случайные.
При классификации изображений AdaBoost будет использовать в качестве входных данных набор изображений (с соответствующими метками, показывающими, к какому классу принадлежит каждый образец) и набор слабых учеников. Затем AdaBoost найдет слабого ученика с наименьшей частотой ошибок (т. е. с лучшими результатами) в данных. Всем правильно классифицированным образцам данных теперь присваивается меньший вес, поскольку они теперь менее важны, а образцам, классифицированным неправильно, присваивается более высокий вес. Теперь AdaBoost начнет новый раунд и выберет лучшего слабого ученика на основе новых взвешенных данных. Другими словами, он найдет нового слабого ученика, который лучше классифицирует образцы, которые ранее выбранные слабые ученики не смогли классифицировать.
Алгоритм будет продолжать выбирать этих слабых учеников в течение заданного количества итераций. Результат состоит из группы выбранных слабых учеников. Обученный классификатор теперь может классифицировать новые изображения на основе большинства голосов каждого слабого классификатора в группе (часто сами слабые классификаторы также взвешиваются на основе достигнутой ими частоты ошибок).
Возможно, вы захотите взглянуть на программное обеспечение, которое уже внедрило AdaBoost, например WEKA или ориентированный на компьютерное зрение OpenCV.
Adaboost берет несколько слабых классификаторов и объединяет их, чтобы сформировать сильный классификатор. Выходные данные представляют собой последовательность весов w_i
для слабых классификаторов, используемых в слагаемом для формирования единого взвешенного классификатора. Алгоритм дает много промежуточных результатов, но, возможно, наиболее важными являются сами веса.
Хотя изначально это не было задумано таким образом, Adaboost эквивалентен подгонке «прямой поэтапной» модели на тренировочном наборе с использованием слабых классификаторов на каждом шаге с использованием экспоненциальной функции потерь: L(y,f(x)) = exp(-y*f(x))
, где f(.)
— наш классификатор. С этой точки зрения некоторые аспекты алгоритма становятся более ясными. Экспоненциальная функция потерь часто используется для задач классификации по уважительной причине.