Обзор научной публикации: Темные знания, извлеченные из нейронной сети

Самый простой способ повысить эффективность почти любого алгоритма машинного обучения – обучить много различных моделей на одних и тех же данных, а затем усреднить их прогнозы. Но для этого требуется слишком много вычислений на этапе тестирования. Джефф Хинтон и его команда утверждают, что при извлечении знаний из данных нам не нужно беспокоиться о тестовых вычислениях. Оказывается, не сложно передать большую часть знаний в меньшую модель, которую легче использовать. Эти знания и называются «темными знаниями». Немного жуткое название, но достоинства подхода от этого не страдают.

Публикация, в которой исследуются «темные знания», содержит две основные части:

  • Компрессия моделей (model compression): передача знаний, извлеченных из ансамбля моделей, в одну меньшую модель, чтобы сократить тестовые вычисления.
  • Специализированные сети (specialist network): обучение моделей, специализирующихся на трудно различимых подмножествах классов, чтобы сократить время, необходимое для обучения ансамбля.

Компрессия громоздких моделей

После того, как громоздкая модель была обучена, мы можем передать знания в одну меньшую модель с помощью особого типа обучения, называемого «дистилляцией» (distillation). Эта же идея была представлена Каруана (Caruana) в 2006 году, хотя он и применял другой способ передачи знаний, который, как показал Хинтон, является частным случаем дистилляции.

Другими словами, для каждого элемента данных у нас есть распределение, спрогнозированное с помощью большого ансамбля. Мы обучаем меньшую сеть, используя выходное распределение в качестве «мягких целевых значений» (soft target) вместо реальных меток. Таким образом мы можем обучить малую модель делать обобщения так же, как это делает большая модель.

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

При работе с данными MNIST были получены на удивление хорошие результаты, даже в том случае, когда исключались некоторые цифры. Когда исследователи исключили все примеры цифры «3» на этапе передаточного обучения (transfer training), «дистиллированная» сеть правильно идентифицировала 98,6% троек в тестовом наборе, даже несмотря на то, что цифра «3» была для нее «мифической» цифрой, которую она никогда не «видела».

Обучение специализированных сетей для устранения неоднозначностей

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

Специализированная сеть оценивает два показателя: входит ли изображение в ее специализированное подмножество, и каковы относительные вероятности классов в специализированном подмножестве. Например, работая с изображениями ImageNet, мы можем создать одного «специалиста» для распознавания грибов, а другого – для распознавания спортивных машин.

Технические подробности можно найти непосредственно в публикации, а также на слайдах, где размещен представленный ниже пример.

Эксперимент с данными MNIST

Метод обратного распространения ошибки (vanilla backpropagation) в нейронной сети конфигурации 784 -> 800 -> 800 -> 10 с применением оптимизированных скрытых линейных нейронов (rectified linear hidden unit) при тестировании дает 146 ошибок.

Обучение нейронной сети конфигурации 784 -> 1200 -> 1200 -> 10 с применением отсева (dropout), ограничения весов (weight constraint) и джиттера (jitter) входных данных в итоге обеспечивает 67 ошибок.

Оказывается, данные усовершенствования можно передать значительно меньшей нейронной сети. Используя мягкие целевые значения, полученные от большой сети, и жесткие целевые значения, получим 74 ошибки для сети с конфигурацией 784 -> 800 -> 800 -> 10.

При передаточном обучении используется тот же обучающий набор данных, но без применения отсева и джиттера.

Это просто метод обратного распространения ошибки (с применением мягких целевых значений).

Мягкие целевые значения содержат почти все знания.

Большая сеть обучает метрику подобия (similarity metric) для обучающего набора цифр, несмотря на то, что она не является целевой функцией для обучения.

 

neural-net-knowledge-transfer

Добавить комментарий

Ваш e-mail не будет опубликован.

закрыть

Поделиться

Отправить на почту
закрыть

Вход

закрыть

Регистрация

+ =