Это функция f(x) = sin(x):

В стандартном глубоком обучении у нас обычно есть некоторая основная гипотеза, которую мы хотим аппроксимировать с помощью нейронной сети. Вот что здесь делает эта красная серия линий. На языке нейронных сетей он принимает один вход, пропускает его через два промежуточных плотных слоя с 8 нейронами в каждом и функцией активации ReLU и сопоставляет его с одним выходом.

Это довольно простой пример использования нейронных сетей. На самом деле мы бы никогда не использовали такую ​​сложную функцию только для аппроксимации sin(x).

Нейронные сети используются для аппроксимации функций, которые мы недостаточно хорошо понимаем и для которых не можем легко писать программы. Рассмотрите возможность написания программы, которая принимает на вход изображение числа от 0 до 9 и выводит это число. Например, напишите программу, которая принимает это изображение числа 7:

и выводит 7.

Это классическая проблема MNIST, проблема, которая в основном была решена с появлением глубоких нейронных сетей.

Дело в том, что такую ​​функцию непросто запрограммировать явно. Функция sin(x), например, может быть вычислена до произвольной длины с помощью следующего разложения Тейлора:

Но как бы вы написали программу, которая берет изображение и выводит число, которое оно представляет? Это типы проблем, которые призваны решать глубокие нейронные сети.

Глобальные минимумы

Проблема, возникающая при работе с нейронными сетями, — это проблема «глобального минимума». Это проблема, возникающая со все более сложными нейронными сетями, поскольку количество переменных, описывающих функцию, увеличивает пространство возможных гипотез, гипотеза пробел, также увеличивается в размере. Даже с такой простой задачей, как MNIST, вам потребуется довольно большой многослойный персептрон (MLP), чтобы хорошо классифицировать рукописные цифры, что приводит к большему пространству гипотез.

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

Многие люди предполагают, что если мы находим глобальный минимум в пространстве гипотез, мы нашли оптимальное отображение, описывающее процесс генерации данных. Например, если у нас есть глобальный минимум в MLP, который также имеет нулевую ошибку обобщения в задаче классификации рукописных цифр, то это будет представлять отображение, которое люди имеют для рукописных цифр (которое в этом случае является распределением, генерирующим данные). ). С этой точкой зрения есть несколько проблем.

Давайте возьмем приведенный выше пример аппроксимации sin(x). MLP довольно хорошо аппроксимирует его, но функция sin(x) — это функция, которая повторяется бесконечно! Базовая функция f: x -> sin(x) даже не находится в пространстве гипотез MLP, поэтому глобальный минимум и близко не соответствует представлению базовой функции, генерирующей данные. Очевидно, что мы никогда не стали бы обучать MLP, если бы действительно хотели получить функцию, соответствующую sin(x). Но это только потому, что мы понимаем отображение из x в sin(x).

Проблема

При попытке подогнать функцию, которая менее понятна, например, классификацию рукописных цифр, проблема выбора подходящего пространства гипотез становится гораздо более серьезной проблемой. Применение MLP или архитектуры на основе свертки к MNIST, прямо скажем, произвольно. Не поймите меня неправильно; это работает, и работает хорошо. Однако очень маловероятно, что эти архитектуры будут способны даже представить, как люди думают о тех же типах проблем. И на самом деле функция может быть намного проще, чем мы ожидаем.

Это относится и к MNIST, что, по общему признанию, является простой проблемой. Возьмем современное приложение: генерация текста, в котором модель Transformer практически доминировала. Недавние достижения в Chat-GPT отражают растущие возможности этих моделей, и то, что они могут сделать, просто потрясающе. Однако маловероятно, что, получив задание предсказать следующее слово по некоторому тексту, люди пройдут через вычисление 175 миллиардов параметров, чтобы вывести вероятности для всего английского языка (у людей около 86 миллиардов нейронов).

Возможно, если мы хотим создать по-настоящему интеллектуальные системы, нам нужно начать иначе думать о том, как мы находим наши гипотезы.