Учимся лучше учиться с меньшей моделью

В традиционном машинном обучении для достижения современной производительности (SOTA) мы часто обучаем серию ансамблевых моделей для борьбы со слабыми сторонами одной модели. Однако достижение производительности SOTA часто связано с большими вычислениями с использованием больших моделей с миллионами параметров. Модели SOTA, такие как VGG16 / 19, ResNet50, имеют 138+ миллионов и 23+ миллионов параметров соответственно. Развертывание этих моделей на периферии невозможно.

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

Ниже приведены некоторые доступные методы сжатия моделей, но они не ограничиваются следующими.

  • Обрезка и квантование
  • Факторизация низкого ранга
  • Поиск нейронной архитектуры (NAS)
  • Кистилляция знаний

В этом посте основное внимание будет уделено дистилляции знаний, предложенной [1], ссылки ссылка [2] предоставляют отличный обзор списка методов сжатия моделей, перечисленных выше.

Кистилляция знаний

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

Большая и малая модель

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

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

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

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

Пример ниже показывает, что при выполнении логического вывода на заданном изображении «оленя» и результатах после softmax Рис. 2. Чтобы получить прогноз, мы берем argmax максимальной оценки вероятностей класса, что дает нам 60% -ный шанс быть правильным.

Однако, учитывая приведенный выше рисунок 2 (в целях иллюстрации), мы знаем, что «лошадь» очень похожа на «оленя» по сравнению с «кораблем». Следовательно, во время вывода мы имеем 60% правильности и 39% неверности. Мы не можем винить сеть в предсказании «лошади», поскольку существует некоторое пространственное сходство между «оленем» и «лошадью». Если в сети предоставлена ​​такая информация, как «Я думаю, что 60% этого изображения - олень и 39% - лошадь», например [олень: 0,6, лошадь: 0,39, корабль: 0,01], то в сети предоставляется гораздо больше информации (высокая энтропия). Использование вероятностей класса в качестве целевого класса дает гораздо больше информации, чем просто использование необработанной цели.

Дистилляция

Учитель сообщает ученику о предполагаемых вероятностях класса как «S часто встречающихся задачах». Эти наборы данных также известны как «набор передачи» с целевым значением вероятности класса, предоставленным учителем, как показано на рис. 2. Процесс дистилляции происходит путем введения гиперпараметра T (температура) в функцию softmax, так что модель учителя может создать подходящий мягкий набор целей передаточного набора для модели ученика.

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

Модель обучения учителя и ученика

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

Loss1 (потеря перекрестной энтропии с мягкими целями)

Loss1 - это потеря кросс-энтропии (CE) двух температур softmax для учителя q и p учащегося с умножением температуры T ›1. параметром веса альфа.

Loss2 (потеря перекрестной энтропии с твердыми целями)

Loss2 - это потеря кросс-энтропии (CE) правильных меток и жестких целей студента с T = 1. Loss2 уделяет мало внимания (1 - альфа) жестким целям (student_pred), созданным моделью учащегося, чтобы соответствовать мягким целям q из модель учителя.

Целью модели студента будут потери при перегонке, которые являются суммой потерь1 и потерь2.

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

Полученные результаты

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

В следующей таблице 1 представлены результаты из статьи [1], в которой показана эффективность использования модели учителя, ученика и дистиллированной модели, обученной на наборе данных MNIST с 60 000 учебных примеров. Вся модель представляет собой двухслойную нейронную сеть с 1200, 800 и 800 нейронами для учителя, ученика и дистиллированной модели соответственно. При использовании дистиллированной модели по сравнению с моделью ученика, ошибки теста сопоставимы между учителем и дистиллированной моделью с температурой, установленной на 20. Однако при использовании только модели ученика с жесткими целями она плохо обобщается.

Эксперименты по распознаванию речи

Следующая таблица 2 является еще одним результатом работы [1]. Громоздкая модель представляет собой речевую модель, состоящую из 85 миллионов параметров, которые обучаются на 2000 часах разговорных данных на английском языке с примерно 700 миллионами обучающих примеров. Первая строка в таблице 2 представляет собой базовую (громоздкую) модель, обученную на 100% обучающих примеров, что дает точность 58,9%. Вторая строка обучается только с 3% обучающих примеров, что приводит к серьезному переобучению, и, наконец, третья строка представляет собой ту же речевую модель, обученную с теми же 3% обучающих примеров с мягкими целями, которые достигли точности 57%, используя только 3% данных обучения.

Заключение

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

Согласно данным Statista [3], общее количество установленных устройств, подключенных к Интернету вещей (IoT), к 2025 году прогнозируется на уровне 21,5 миллиарда. При огромном количестве периферийных устройств выполнение вычислений на периферийных устройствах становится затруднительным. постоянно растущая проблема, связанная с умением периферийных устройств. Обобщение знаний позволяет нам выполнять сжатие модели, не влияя на производительность периферийных устройств.

Ссылки

[1] Хинтон, Джеффри, Ориол Виньялс и Джефф Дин. «Получение знаний в нейронной сети. Препринт arXiv arXiv: 1503.02531 (2015). »

[2] Обзор методов сжатия моделей для глубокого обучения в космосе

[3] Количество подключенных устройств IoT в мире