Затем Rich Caruana с Lei Jimmy Ba развили эту тему в работе:
Do Deep Nets Really Need to be Deep?
https://arxiv.org/abs/1312.6184
Здесь большая глубокая нейросеть заменяется на неглубокую с сохранением качества. Цель не в сокращении размера как таковом, а в попытке разобраться, так ли нужна глубина.
Model compression даёт интересное наблюдение: нельзя выучить маленькую модель с качеством как у большой, обучая её на тех же данных. Но маленькая модель в принципе способна выучить более точную функцию, и мы знаем, что функция эта не слишком сложна. Просто текущие алгоритмы оптимизации этого не позволяют. Для такого обучения почему-то требуется промежуточная сложная модель.
Соответственно этим авторы и занимаются в работе, показывая, что можно обучить неглубокие модели такого же качества, как и глубокие.
Снова используются данные, размеченные сложной моделью, transfer set (иногда это те же самые данные, на которых модель обучалась, иногда дополнительный датасет). Модель-ученик учится предсказывать логиты модели-учителя — выходы сети _ДО_ софтмакса, ибо на софтмаксе теряется много информации. Например, активации [10.0, 20.0, 30.0] и [-10.0, 0.0, 10.0] дают одинаковый результат после софтмакса, но они по сути существенно разные. Идея в том, что в этих числах закодированы тонкие взаимоотношения между классами, которые отсутствуют в разреженных hard labels, и эту информацию можно использовать для обучения ученика. Задача обучения сводится к задаче L2-регрессии на предсказание логитов.
В итоге на TIMIT и на CIFAR-10 смогли обучить неглубокие модели, приближающиеся по качеству к продвинутым моделям (CNN и ансамбль CNN) и обгоняющие DNN. Снова получилось, что имитирующие модели (они называют их mimic models) получаются более точными, чем если бы изначально были обучены на оригинальных данных.
В общем интересная история, неглубокую модель текущими методами оптимизации хорошо обучить с нуля не получается. Только через model compression (доразметку неразмеченного датасета) и/или качественную модель-учителя (считайте, дистилляцию).
Есть хорошее выступление Каруаны по данной теме:
https://www.youtube.com/watch?v=NedWl0lZw2E
Do Deep Nets Really Need to be Deep?
https://arxiv.org/abs/1312.6184
Здесь большая глубокая нейросеть заменяется на неглубокую с сохранением качества. Цель не в сокращении размера как таковом, а в попытке разобраться, так ли нужна глубина.
Model compression даёт интересное наблюдение: нельзя выучить маленькую модель с качеством как у большой, обучая её на тех же данных. Но маленькая модель в принципе способна выучить более точную функцию, и мы знаем, что функция эта не слишком сложна. Просто текущие алгоритмы оптимизации этого не позволяют. Для такого обучения почему-то требуется промежуточная сложная модель.
Соответственно этим авторы и занимаются в работе, показывая, что можно обучить неглубокие модели такого же качества, как и глубокие.
Снова используются данные, размеченные сложной моделью, transfer set (иногда это те же самые данные, на которых модель обучалась, иногда дополнительный датасет). Модель-ученик учится предсказывать логиты модели-учителя — выходы сети _ДО_ софтмакса, ибо на софтмаксе теряется много информации. Например, активации [10.0, 20.0, 30.0] и [-10.0, 0.0, 10.0] дают одинаковый результат после софтмакса, но они по сути существенно разные. Идея в том, что в этих числах закодированы тонкие взаимоотношения между классами, которые отсутствуют в разреженных hard labels, и эту информацию можно использовать для обучения ученика. Задача обучения сводится к задаче L2-регрессии на предсказание логитов.
В итоге на TIMIT и на CIFAR-10 смогли обучить неглубокие модели, приближающиеся по качеству к продвинутым моделям (CNN и ансамбль CNN) и обгоняющие DNN. Снова получилось, что имитирующие модели (они называют их mimic models) получаются более точными, чем если бы изначально были обучены на оригинальных данных.
В общем интересная история, неглубокую модель текущими методами оптимизации хорошо обучить с нуля не получается. Только через model compression (доразметку неразмеченного датасета) и/или качественную модель-учителя (считайте, дистилляцию).
Есть хорошее выступление Каруаны по данной теме:
https://www.youtube.com/watch?v=NedWl0lZw2E