Проблема

Ваша модель слишком велика и не может позволить себе ее на периферийном устройстве. Трудно получить аналогичную производительность от меньшей модели, обучая ее с нуля.

Решение

Извлечение знаний

При извлечении знаний вы обучаете меньшую модель на основе изучения большей модели.
Ниже показано, как использовать большую модель (часто называемую моделью учителя) для меньшего модель (студенческая модель).

Что у нас есть: предварительно обученная модель учителя, данные
Что нам нужно сделать: обучить модель ученика

Как

Вперед передайте данные из модели учителя и модели ученика. Для обратного распространения цель, которую мы используем, учитывает:

  • Функция потерь учащихся:отклонение прогноза учащихся от истинного положения дел.
  • Функция потерь при дистилляции: отклонение от мягких целей модели учителя. Мягкие мишени создаются фактором (называемым температурой, T).

Мягкая цель:

Модель учителя: Softmax(Предсказание[модель учителя] / T)

Модель учащегося: Softmax (прогноз [модель учащегося] / T)

Потери при дистилляции:отклонение/разницамежду мягкими целями модели ученика и учителя.

Пример

В примере от keras.io модель ученика обучается с использованием доли (0,1) потерь от наземной истины и другой части (0,9) потерь от мягких целей модели учителя. Дивергенция KL используется в качестве потерь при перегонке между мягкими целями.

Бумага Хинтона и др.

Поделитесь своим замечательным отзывом.