Knowledge distillation
Есть модель учителя и ученика, модель учителя должна обучиться на данных информативных на величину K, а потом увеличить информативность данных.
softmax
В чем суть? На примере многоклассовой классификации
Модель учитель обучается на таргете, при использовании модели учителя получается какой-то вектор вероятностей, модель ученик обучается приходить из x в такой же вектор вероятностей, то есть, если я правильно понял, этот вектор вероятностей становится таргетом для ученика. Более того, в случае нейронок, каждое промежуточное состояние ученика можно обучать на промежуточное состояние учителя.
Пример на пальцах.
Есть гора, на которую хз как забраться, учителю говорят, вон там вершина, ползи к ней, учитель крутой, идет и двигается к вершине, попутно растовляя флажки, а ученик не такой крутой, забирается на ту же вершину, идя по флажкам.
Регулируя температуру мы можем отфильтровать метки класса, которые нам не интересны.
Для чего это нужно?
Подход позволяет сначала обучить огромную модель, чтобы научиться решать задачу, а потом дистилировать ее в гораздо более маленькую модель, чтобы она работала гораздо быстрее, практически без потерь качества и гораздо выгоднее вычислительно.
То есть, дистиляция это не способ обучить модель с нуля, а способ эксплуатации модели, которая уже хорошо обучена.
В оригинальной статье было предложено обучить несколько учителей на разных доменах, а затем их всех дистилировать в одного ученики, и затем ученик на все датасете показывал качество лучше, чем любой учитель.