Абсолютно все нейросети, которые нас окружают, обучены с помощью одного и того же алгоритма – алгоритма обратного распространения ошибки (англ. back-propagation). Его изобрели еще в 80-х годах прошлого века ученые Дэвид Румельхарт, Джеффри Хинтон (ныне нобелевский лауреат) и Рональд Уильямс.
Идея back-propagation в том, что мы сначала «прогоняем» входные данные вперёд по сети (forward pass), получаем предсказания и вычисляем их ошибку, а затем прогоняем сигнал ошибки назад по сети (backward pass), чтобы вычислить градиенты и обновить веса. Это работает хорошо и надежно, но есть нюансы, из-за которых ученые уже много лет пытаются найти этому подходу альтернативу.
Во-первых, высокое потребление памяти. Чтобы посчитать, как изменять веса, алгоритму нужно сохранить все промежуточные результаты. Получается довольно прожорливо. Во-вторых, последовательная природа вычислений. Обновления происходят поэтапно – сначала последний слой, затем предыдущий и так далее. Это значит, что нельзя обновлять все части сети одновременно, то есть обучение сложно распараллелить. Это снижает скорость работы. Если хотите больше знать о том, как работают современные нейросети, то приходите к нам в тг-канал Data Secrets. Вот здесь мы как раз выпускали большое иллюстрированное объяснение алгоритма back-propagation, здесь разбирали его на примере, а вот тут делали подборку качественных бесплатных ресурсов для базового понимания LLM.
А еще мы (а мы – это команда действующих ML-инженеров) каждый день делимся вот такими понятными разборами ключевых свежих статей и отборными новостями. Так что заглядывайте: нас уже 56 тысяч и наше сообщество всегда радо новым специалистам и энтузиастам
За 40 лет, конечно, появилось уже много исследований с изучением возможных альтернатив обратному распространению, но ни одно так и не получило большой популярности (либо медленно, либо менее качественно). Возможно, новый подход Оксфорда имеет шанс это исправить: в статье заявлено, что их метод NoProp не уступает back-prop по качеству обучения, но при этом памяти использует до двух раз меньше.
Разберемся с идеей. В целом метод похож на то, как работают диффузионные нейросети, лежащие в основе современных систем генерации картинок или видео. Каждый слой сети представляется в виде отдельного блока, который должен "расшумлять" некоторую исходную информацию в сторону выходного сигнала сети.
Более конкретная схема представлена на картинке ниже. – это входные данные. – начальный вектор случайного шума. Получается, что, основываясь на входных данных, каждый слой сети постепенно меняет вектор шума так, чтобы он стал похож на нужное выходное значение (таргет).
Самое важное здесь, что мы вообще отходим от идеи цепочки прямого/обратного прохода: за счет этого слои учатся не последовательно, а одновременно и независимо. Каждый слой просто учится смотреть на шум и очищать его, насколько это возможно. А чтобы все обучилось правильно и затем работало в связке, во время обучения можно контролировать меру зашумления таргета (ведь когда мы учим сеть, истинные выходные значения нам известны).
Что касается результатов – они многообещающие. Все основные эксперименты ученые проводили на задаче классификации изображений на канонических датасетах MNIST, CIFAR-10 и CIFAR-100. На MNIST подход выбивает точность около 99.5%. Это примерно столько же, сколько у классического backprop. На CIFAR-10 и CIFAR-100 результаты также очень близки к обычной бэкпроп-обученной сети. На CIFAR-10 точность ~79–80%, на CIFAR-100 ~45–46%.
Это гораздо более высокая точность по сравнению с другими «back-propagation-free» методами (Forward-Forward, Difference Target Propagation, Forward Gradient). Кроме того, на замерах памяти NoProp использует заметно меньше ресурсов, чем классический бэкпроп – в некоторых экспериментах почти вдвое. Это ожидаемо, ведь нам не нужно хранить активации всех слоёв для обратного прохода.
Статью полностью можно прочитать здесь. Внутри много зубодробительной математики, но для любителей покопаться в формулах – самое то.
Источник новости: habr.com