Совместное усиление
CoBoost — это алгоритм полуконтролируемого обучения, предложенный Коллинзом и Сингером в 1999 году. Первоначальное применение этого алгоритма заключалось в задаче классификации именованных объектов с использованием очень слабых обучающихся. [1] Его можно использовать для выполнения полуконтролируемого обучения в случаях, когда существует избыточность функций.
Это можно рассматривать как комбинацию совместного обучения и повышения квалификации . Каждый пример доступен в двух представлениях (подразделах набора функций), а повышение применяется итеративно поочередно, при этом в каждом представлении используются прогнозируемые метки, созданные в альтернативном представлении на предыдущей итерации. CoBoosting не является допустимым алгоритмом повышения с точки зрения обучения PAC .
Мотивация
[ редактировать ]CoBoosting был попыткой Коллинза и Сингера улучшить предыдущие попытки использовать избыточность функций для обучения классификаторов полуконтролируемым способом. CoTraining, плодотворная работа Блюма и Митчелла, оказалась мощной основой для обучения классификаторов на небольшом количестве исходных примеров путем итеративного введения правил в список решений. Преимущество CoBoosting to CoTraining заключается в том, что он обобщает шаблон CoTraining, чтобы его можно было использовать с любым классификатором. CoBoosting достигает этой цели, заимствуя концепции из AdaBoost .
И в CoTrain, и в CoBoost наборы примеров обучения и тестирования должны соответствовать двум свойствам. Во-первых, пространство признаков примеров можно разделить на два пространства признаков (или представления), так что каждое представление будет достаточно выразительным для классификации. Формально существуют две функции и такой, что для всех примеров , . Хотя это ограничение и идеально, на самом деле оно слишком сильное из-за шума и других факторов, и вместо этого оба алгоритма стремятся максимизировать согласие между двумя функциями. Второе свойство заключается в том, что эти две точки зрения не должны сильно коррелировать.
Алгоритм
[ редактировать ]Вход: ,
Инициализировать: .
Для и для :
Установите псевдометки:
Установите виртуальное распространение:
где
Найдите слабую гипотезу это минимизирует расширенную ошибку обучения.
Выберите значение для это минимизирует расширенную ошибку обучения.
Обновите значение текущего сильного беспорогового классификатора:
Окончательный результат сильного классификатора:
Настройка АдаБуста
[ редактировать ]CoBoosting основан на алгоритме AdaBoost , который дает CoBoosting возможность обобщения, поскольку AdaBoost можно использовать в сочетании со многими другими алгоритмами обучения. Это построение предполагает задачу классификации двух классов, хотя ее можно адаптировать для классификации нескольких классов. В среде AdaBoost слабые классификаторы генерируются последовательно, а также распределяются по примерам в обучающем наборе. Каждому слабому классификатору присваивается вес, а окончательный сильный классификатор определяется как знак суммы слабых классификаторов, взвешенных по присвоенному им весу. (Обозначения см. на странице AdaBoost в Википедии). В рамках AdaBoost Шапир и Сингер показали, что ошибка обучения ограничена следующим уравнением:
Где – нормирующий коэффициент для распределения . Решение для в уравнении для мы получаем:
Где — это признак, выбранный в текущей слабой гипотезе. Определены три уравнения, описывающие сумму распределений, для которых текущая гипотеза выбрала правильную или неправильную метку. Обратите внимание, что классификатор может воздержаться от выбора метки для примера, в котором предоставленная метка равна 0. Две метки выбираются со значениями -1 или 1.
Шапире и Зингер показали, что ценность можно минимизировать (и, следовательно, ошибку обучения), выбрав быть следующим:
Предоставление доверительных значений для текущего гипотетического классификатора на основе количества правильно классифицированных и неправильно классифицированных примеров, взвешенных по распределению по примерам. Это уравнение можно сгладить, чтобы компенсировать случаи, когда слишком мал. Получение из этого уравнения получаем:
Таким образом, ошибка обучения минимизируется за счет выбора слабой гипотезы на каждой итерации, которая минимизирует предыдущее уравнение.
AdaBoost с двумя представлениями
[ редактировать ]CoBoosting расширяет эту структуру в случае, когда у вас есть помеченный обучающий набор (примеры из ) и немаркированный обучающий набор (из ), а также удовлетворять условиям избыточности признаков в виде . Алгоритм обучает два классификатора так же, как AdaBoost , который согласовывает правильные метки помеченных обучающих наборов и максимизирует согласие между двумя классификаторами в неразмеченном обучающем наборе. Последний классификатор является знаком суммы двух сильных классификаторов. Ограниченная ошибка обучения в CoBoost расширяется следующим образом: является продолжением :
Где представляет собой суммирование весов гипотез по их доверительным значениям для вид (j = 1 или 2). является признаком . На каждой итерации CoBoost оба классификатора обновляются итеративно. Если это сильный выход классификатора для посмотреть до итерации мы можем установить псевдометки для j -го обновления:
В котором выбирает другое представление вместо обновляемого в данный момент. разбивается на две так, что . Где
Распределение по примерам для каждого просмотра на итерации определяется следующим образом:
В какой момент можно переписать как
Это идентично уравнению в AdaBoost. Таким образом, тот же процесс можно использовать для обновления значений как в AdaBoost, используя и . Чередуя это, минимизируем и таким образом минимизируется жадным образом.
Ссылки
[ редактировать ]Сноски
[ редактировать ]- ^ Майкл Коллинз и Йорам Сингер, Неконтролируемые модели для классификации именованных объектов. Материалы совместной конференции SIGDAT 1999 г. по эмпирическим методам обработки естественного языка и очень большим корпорациям, стр. 100–110, 1999.