Почему глубокие сети лучше


Почему глубокие нейронные сети лучше, хотя мы давно знаем, что все, что может вычислить глубокая сеть, может быть вычислено и мелкой сетью? У физика Макса Тегмарка и математика Дэвида Ролника есть причины для нас.

Одна из фундаментальных ошибок, которую часто делают новички в области нейронных сетей, связана с теоремой Колмогорова. Этот и другие результаты доказывают, что вам нужен только очень простой тип функции для аппроксимации любой функции. Это приводит к выводу, что двухуровневой сети достаточно для реализации любой произвольной функции. Обратите внимание, что это должно быть два слоя, потому что одного слоя недостаточно. Недостаточно одного слоя — причина того, что работа над нейронными сетями прекратилась, потому что Мински и Паперт доказали, что перцептроны, то есть однослойные сети, не могут изучать различные простые вещи, такие как функция XOR. В то время у нас не было хорошего алгоритма обучения для многослойных сетей, и поэтому обычно считалось, что тот факт, что однослойные сети не могут работать, заставил все предприятие перестать работать. Конечно, теперь мы знаем, что это не так, и многоуровневые сети действительно очень хорошо обучаются.
У отказа от нейронных сетей из-за того, что однослойных сетей недостаточно, есть злой двойник — вывод из теоремы представления о том, что двух слоев достаточно. Это часто заставляет новичков использовать небольшое количество слоев на том основании, что их достаточно, и все, что n-уровневая сеть может изучить, может сделать двухуровневая сеть. Это может быть правдой, но это еще не все.
В новой статье Тегмарк и Ролник продолжают исследование проблемы, почему глубокие нейронные сети так хороши.
Хорошо известно, что нейронные сети являются универсальными аппроксиматорами, но более глубокие сети, как правило, намного эффективнее мелких. Мы пролили свет на это, доказав, что общее количество нейронов m, необходимое для аппроксимации естественных классов многомерных многочленов от n переменных, растет только линейно с n для глубоких нейронных сетей, но растет экспоненциально, когда разрешен только один скрытый слой. Мы также предоставляем доказательства того, что когда количество скрытых слоев увеличивается с 1 до k, требования нейронов растут экспоненциально не с n, а с n 1 / k, предполагая, что минимальное количество слоев, необходимых для вычислительной управляемости, растет только логарифмически с n.
Так что, если вы ограничиваетесь мелкими сетями, вам понадобится много нейронов, но если вы сложите их в глубокие слои, вы можете обойтись гораздо меньшим количеством нейронов. Разница огромная. Возвращаясь к примеру того же общего процесса из более ранней статьи, мы имеем:
Например, глубокая нейронная сеть может умножить 32 числа, используя 4n = 160 нейронов, в то время как мелкая требует 2 32 = 4, 294, 967, 296 нейронов.
Что здесь происходит?
Ответ очень прост, но его трудно найти среди всей представленной математики. Это связано с наблюдением, что если вам нужно вычислить xn, вам понадобится n умножений, если вы используете однослойный подход. Однако, если вы используете многоуровневый подход, вы можете использовать результаты каждого слоя, чтобы ускорить следующий. Например, если вам нужно вычислить x8, то для однослойной сети вам потребуется 7 умножений:
х * х * х * х * х * х * х * х
Используя многоуровневую сеть, вы можете выполнять эту работу, используя гораздо меньше вариантов:
Слой 1 2 3
(x * x) -> x2 -> (x2 * x2) -> x4 -> (x4 * x4) -> x8

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


Добавить комментарий