Объяснение Алгоритмов AdaBoost нетехническим людям

Я пытался понять алгоритм AdaBoost без большого успеха. Я борюсь с пониманием статьи Viola Jones об Обнаружении Поверхности как пример.

Можно ли объяснить AdaBoost в терминах неспециалистов и представить ли хорошие примеры того, когда он используется?

11
задан dole doug 16 August 2013 в 17:15
поделиться

2 ответа

AdaBoost использует ряд учебных образцов изображений (таких как лица), чтобы выбрать ряд хороших "особенностей"/"классификаторов". Для распознавания лиц классификатор, как правило, представляет собой прямоугольник из пикселей, который имеет определенное среднее значение цвета и относительный размер. AdaBoost посмотрит на ряд классификаторов и выяснит, какой из них является лучшим предсказателем лица на основе выборочных изображений. После того, как он выбрал лучший классификатор, он будет продолжать искать другой и другой до тех пор, пока не будет достигнут некоторый порог, и эти классификаторы, объединенные вместе, обеспечат конечный результат.

Этой частью вы, возможно, не захотите делиться с нетехническими людьми :), но она все равно интересна. Существует несколько математических хитростей, которые делают AdaBoost быстрым для распознавания лиц, например, возможность сложить все цветовые значения изображения и сохранить их в 2-х мерном массиве так, чтобы значение в любой позиции было суммой всех пикселей вверх и влево от этой позиции. Этот массив можно использовать для очень быстрого вычисления среднего значения цвета любого прямоугольника внутри изображения, вычитая значение, найденное в левом верхнем углу, из значения, найденного в правом нижнем углу, и деля его на количество пикселей в прямоугольнике. Используя этот трюк, вы можете быстро просканировать всё изображение в поисках прямоугольников различных относительных размеров, которые соответствуют или близки к определённому цвету.

Надеюсь, это поможет.

9
ответ дан 3 December 2019 в 04:32
поделиться

Adaboost - это алгоритм, сочетающий классификаторы с низкой производительностью, иначе говоря, слабые ученики, в более крупный классификатор с гораздо более высокой производительностью.

Как это работает? Очень упрощенно:

  1. Обучите слабого ученика.
  2. Добавьте его в набор уже обученных слабых учеников (с оптимальным весом).
  3. Увеличьте важность выборок, которые все еще не классифицированы.
  4. Перейдите к 1.

За кулисами существует обширная и подробная теория, но интуиция такова: пусть каждый «тупой» классификатор сосредоточится на ошибках, которые предыдущие не смогли исправить.

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

В Виоле и Джонсе каждый тип слабого ученика связан с одной из 4 или 5 различных функций Хаара, которые могут быть у вас.

12
ответ дан 3 December 2019 в 04:32
поделиться
Другие вопросы по тегам:

Похожие вопросы: