AI CONSULTING

История ансамблевого классификатора, приобретенного Facebook

Наряду с некоторыми идеями для разработки собственного классификатора ансамбля

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

Во-первых, позвольте мне рассказать вам, как эта история началась. Я был руководителем группы машинного обучения в начинающей компании, работающей над умным гаджетом. Гаджет был предназначен для распознавания жестов рук по сигналам мышц. Гаджет имел восемь датчиков, которые располагались на предплечье и записывали мышечные сигналы. Мы были на ранней стадии, и продукт еще не был готов. Наш прототип много раз удивлял своей функциональностью по записи данных. Кроме того, мы не были уверены в возможных жестах, на которые следовало направить атаки. Тем не менее, нам нужно было разработать механизм распознавания жестов с самого начала, так как здесь и там были демонстрации.

- Базовый классификатор не обязательно должен быть слабым классификатором.

Рекомендуется строить модель на основе большого объема данных. Однако для нас было очевидно, что качество данных, записываемых прототипом, оставляет желать лучшего. К тому же варианты использования еще не были исправлены. Таким образом, наши усилия по сбору большого объема данных с помощью прототипа могут быть потрачены впустую.

Итак, я решил разработать базовый классификатор, который не нуждался в таком большом количестве данных, но все же имел посредственную производительность. Я ввел векторный классификатор в качестве базового классификатора, который использовал косинусное сходство для оценки принадлежности к классу. Векторный классификатор был для нас лучше, чем слабый классификатор (немного лучше, чем случайный классификатор), но все же он был далек от приемлемого классификатора. Это был первый шаг к созданию ансамблевого метода, который живет много лет спустя под управлением Facebook.

- Базовые классификаторы должны быть построены по одному и тому же алгоритму.

Классификатор ансамбля предназначен для объединения или агрегирования нескольких классификаторов независимо от их типов или алгоритмов. Также рекомендуется, чтобы базовые классификаторы были независимыми друг от друга.

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

Наличие схожих базовых классификаторов также дало мне возможность лучше понять, а затем контролировать метод ансамбля, поскольку поведение базового классификатора широко изучалось в процессе. Следующий вопрос заключался в том, как мы должны агрегировать базовые классификаторы.

Предложение. Вы должны использовать тот же алгоритм для базовых классификаторов. Это дает вам больше шансов контролировать развитие вашего классификатора ансамбля.

- Стратегия агрегирования базовых классификаторов должна быть хорошо продумана.

Существуют различные классические стратегии агрегирования базовых классификаторов, которые кратко перечислены ниже. После этого обзора я объясню, какую стратегию мы использовали.

  • Стратегия 1. Механизм внимания. Алгоритм изучает базовые классификаторы адаптивным способом, используя механизмы преувеличения или внимания. Это означает, что алгоритм уделяет больше внимания областям, в которых базовые классификаторы не работают. Это помогает снизить систематическую ошибку прогноза. Эти методы часто называют Boosting.
  • Стратегия 2: разделение данных. Алгоритм изучает базовые классификаторы параллельно без взаимодействия. Каждый базовый классификатор изучается на случайно сгенерированном наборе данных, который существовал в наборе обучающих данных. Это помогает уменьшить дисперсию прогноза. Эти методы часто называют упаковкой в ​​мешки.
  • Стратегия 3. Составление моделей. Алгоритм изучает базовые классификаторы параллельно без взаимодействия. Каждый базовый классификатор изучается на всем наборе обучающих данных. Затем он объединяет результаты базовых классификаторов, обучая метамодель, которая берет предварительные результаты и создает окончательный прогноз.

Здесь я хочу описать, как мы выбираем стратегию для агрегирования результатов базовых классификаторов.

В задачах машинного обучения существует компромисс между отклонением и дисперсией. У нас это тоже было. Однако мы решили решить эту проблему иначе, чем это предлагается в учебниках. Мы представили две модели: модель популяции и персонализированную модель. Популяционная модель была нацелена на то, чтобы безупречно работать для большой группы людей, но не для всех. Эта модель была изучена с использованием обучающего набора данных. Персонализированная модель была предназначена для небольшой группы пользователей, поэтому популяционная модель работала нормально. Эта модель была изучена с использованием данных человека, записанных в каждом сеансе использования.

Короче говоря, мы хотели, чтобы гаджет работал безупречно для большой группы людей, а не для всех. Мы решили улучшить систематическую ошибку, уделяя гораздо меньше внимания дисперсии модели населения. Следовательно, стратегия 2, направленная на сокращение дисперсии, не могла быть выбором.

У нас была еще одна проблема. Пользователи могут носить гаджет в различных формах в зависимости от ориентации и поворота. Таким образом, базовые классификаторы необходимо настраивать каждый раз, когда пользователи носят гаджет. Мы потратили много времени и энергии на разработку алгоритма, который мог бы эффективно настраивать базовые классификаторы, что выходит за рамки этой статьи. В алгоритмах усиления базовые классификаторы проектируются по последовательной схеме, которая создает взаимозависимости и, следовательно, сложности. Следовательно, стратегия 1 тоже не могла быть выбором.

Предложение. Хорошая стратегия создания сильного классификатора - это агрегирование большого количества простых базовых классификаторов, обученных с использованием одного и того же алгоритма, но с разными наборами данных и / или гиперпараметрами, с использованием подхода наложения моделей.

Как вы можете догадаться, мы выбрали стратегию наложения моделей. Разработанная нами метамодель представляла собой комбинацию вероятностного классификатора и механизма голосования. Мы работали с данными временных рядов, длина которых не была фиксированной. Например, один жест может занять одну секунду, а другой жест - две секунды. Таким образом, вы можете добавить в этот список большое количество настроек гиперпараметров. Стратегия наложения моделей с большим количеством гибких базовых классификаторов элегантно решила нашу проблему.

Последние слова

Короче говоря, философия ансамблевых методов заключается в использовании «мудрости взвешенных масс экспертов». Мне нравится это выражение, которое цитируется из класса искусственного интеллекта, преподаваемого профессором Патриком Уинстоном в MIT OpenCourseWare.

В промышленности у вас часто бывает много неизвестного, но вас постоянно просят предоставлять результаты. Этого не произойдет, если применить методы, на изучение и настройку которых уходит много времени. Кроме того, вы всегда хотите разработать классификатор, который можно будет усовершенствовать в будущем. Методы ансамбля могут быть правильным подходом.

Было бы прекрасно разработать обобщенный метод, позволяющий решать различные проблемы. Однако, возможно, вам не удастся придумать такой метод. Тем не менее, если вы решите проблему отрасли с помощью ансамблевого подхода, вы никогда не пожалеете об этом.

Спасибо за прочтение!

Если вам понравился этот пост и вы хотите меня поддержать…

  • Подписывайтесь на меня на Medium!
  • Посмотрите мои книги на Amazon!
  • Станьте участником Medium!
  • Присоединяйтесь к Linkedin!
  • Подписывайтесь на меня в Twitter!