Simon Kozlov:
Сегодняшний концепт "хозяйке на заметку" называется model compression - http://arxiv.org/pdf/1312.6184.pdf
Оказывается, что хотя deep nets на многих задачах лучше, чем shallow nets (просто нейронные сети с несколькими полными уровнями)...
Но если shallow nets обучать не на реальных данных, а на "галюцинациях" deep net, они начинают работать лучше!
Настолько лучше, что сравниваются с некоторыми deep nets с тем же количеством параметров (разумеется, менее мощные, чем те, которые галлюцинируют)
То есть, работает концепт обучения "ученика" "учителем", где "учитель" - это другая сетка.
Работает это примерно так - "ученик" учится на датасете, где labels - это не настоящие лейблы, а то, что генерирует на этом датасете более мощный нетворк ("учитель")
В статье есть две таблички со сравнениями, вот главная.
Вот нижние три - это shallow nets, натренированые на "выхлопах".
Если народу интересно, могу рассказать домыслы почему так получается.
Valeriy Ischenko:
я их понял, так, что по точности они сопоставимы с теми моделями, на выходах которых обучаются: "although the small neural nets contained 1000 times fewer parameters, often they were just as accurate as the ensembles they were trained to mimic.".
рассказывай, конечно, что думаешь.
мне помнится, что схожие подходы я встречал не только для нейронных сетей.
но в голову как примеры приходят только stacking в вариациях, типа rulefit.
Simon Kozlov:
Да, примерно так.
И это может быть более точным, чем какая-то менее удачная архитектура deep net.
Sergey Kishchenko:
Я саму статью не читал, но вот этот пассаж меня натолкнул на мысли об оверфите.
Simon Kozlov:
Ну, единственное как мы умеем его мерять - это проверять на test data set.
И вот те shallow networks на нем выступают похоже.
Valeriy Ischenko:
вроде data leakage тут нет, хотя интересно попробовать out-of-sample предсказания использовать для обучения.
Simon Kozlov:
Там интересно. В одном случае input samples были ровно такие же, как для обучения изначальной deep network.
Только предсказания другие.
И стало лучше.
Во втором случае (CIFAR-10, т.е. много картинок) к изначальному датасету добавили много картинок из Flickr и тоже поставили лейблами то, что на них предсказала deep net.
Valeriy Ischenko:
надо дочитать статью)
Simon Kozlov:
В целом, обсуждается несколько моментов.
Во-первых, обучение на лейблах другой сети сколько-то решает mislabeling в изначальных данных.
Во-вторых, другая сеть может "отфильтровать" сложные для обучения районы, потому что сама на них плохо научилась.
В-третьих (и возможно самое важное), "учитель" обучался на голых 0/1 значениях корректного класса.
А "ученика" можно обучать на предсказаниях вероятности для каждого класса до logit.
И это типа больше информации.
Ну и общий вывод, что нейросети они не столько про мощность модели и финальное состояние, а в основном про собственно процесс обучения.
Т.е. самое важное - это эвристики, регуляризации и тд, что позволяет избежать overfitting и дать градиентному спуску найти что-то интересное.
Valeriy Ischenko:
вот это интересно. я думал они на 0\1 данных обучали (не дочитал ещё)
Simon Kozlov:
Нет, они обучали на конкретно вероятностях классов, которые выдает учитель.
Причем до logit.