Недавно я прочитал, что рекуррентная нейронная сеть может аппроксимировать любой алгоритм.
Итак, мой вопрос: что это значит и можете ли вы дать мне ссылку, где это доказано?
references
rnn
user3726947
источник
источник
Ответы:
Задний план
Сначала мы должны перейти к некоторым понятиям из теории вычислений. Алгоритм представляет собой процедуру для вычисления функции. Учитывая ввод, алгоритм должен произвести правильный вывод за конечное число шагов и затем завершиться. Сказать, что функция вычислима, означает, что существует алгоритм для ее вычисления. Среди бесконечного множества всех функций большинство не вычислимы. Машины Тьюринга представляют собой математическую модель, которая формализует понятие вычислений. Существуют и другие эквивалентные модели, но машины Тьюринга являются стандартной «эталонной моделью». По тезису Черча-ТьюрингаЛюбой алгоритм может быть реализован машиной Тьюринга, и все вычисляемые функции могут быть вычислены таким образом. Любой конкретный экземпляр машины Тьюринга вычисляет только определенную функцию. Но существует специальный класс машин Тьюринга, называемых универсальными машинами Тьюринга, которые могут имитировать любую другую машину Тьюринга для любого входа. Они делают это, принимая описание моделируемой машины (и ее входные данные) как часть их собственного ввода. Следовательно, любой конкретный экземпляр универсальной машины Тьюринга может вычислять любую вычислимую функцию (т.е. может реализовывать любой алгоритм). Любая система, которая разделяет эту способность, называется полной Тьюринга, Один из способов доказать, что система Тьюринга завершена, - показать, что она может моделировать универсальную машину Тьюринга. Было показано, что многие системы являются полными по Тьюрингу (например, большинство языков программирования, некоторые клеточные автоматы и квантовая механика ).
Рекуррентные нейронные сети
Следующая статья показывает, что для любой вычислимой функции существует конечная рекуррентная нейронная сеть (RNN), которая может ее вычислить. Кроме того, существуют конечные RNN, которые являются полными по Тьюрингу и поэтому могут реализовывать любой алгоритм.
Они используют сети, содержащие конечное число периодически подключенных устройств, которые получают внешние входы в каждый момент времени. Состояние каждого блока задается взвешенной суммой его входов (плюс смещение), проходящих через нелинейную функцию активации. Функция активации - это насыщенная линейная функция, которая является кусочно-линейной аппроксимацией сигмоида. Веса и уклоны фиксированы, поэтому обучение не происходит.
Сеть выполняет преобразование из двоичной входной последовательности в двоичную выходную последовательность. В сеть есть два внешних входа, которые подаются на все устройства: «линия данных» и «линия проверки». Строка данных содержит входную последовательность нулей и единиц, а затем ноль после завершения входной последовательности. Строка проверки позволяет сети узнать, когда происходит последовательность ввода. Он содержит единицу для продолжительности входной последовательности, а затем ноль после ее завершения. Одна единица считается «единицей вывода». Он выводит нули для некоторой произвольной задержки, затем выходную последовательность нулей и единиц, а затем ноль после завершения выходной последовательности. Другая единица считается «единицей проверки», которая дает нам знать, когда происходит выходная последовательность.
Хотя эти RNN отображают двоичные входные последовательности в двоичные выходные последовательности, нас могут интересовать функции, определенные в различных других математических объектах (другие типы чисел, векторы, изображения, графики и т. Д.). Но для любой вычислимой функции эти другие типы объектов могут быть закодированы как двоичные последовательности (например, см. Здесь описание кодирования других объектов с использованием натуральных чисел, которые, в свою очередь, могут быть представлены в двоичном виде).
Результат
Они показывают, что для каждой вычислимой функции существует конечный RNN (в форме, описанной выше), который может ее вычислить. Они делают это, показывая, что можно использовать RNN, чтобы явно моделировать автомат с двумя стеками. Это еще одна модель, которая в вычислительном отношении эквивалентна машине Тьюринга. Любая вычислимая функция может быть вычислена машиной Тьюринга. Любая машина Тьюринга может быть смоделирована автоматом с двумя стопками. Любой автомат с двумя стеками может быть смоделирован RNN. Следовательно, любая вычислимая функция может быть вычислена с помощью RNN. Кроме того, поскольку некоторые машины Тьюринга универсальны, RNN, которые имитируют их, являются полными по Тьюрингу и поэтому могут реализовывать любой алгоритм. В частности, они показывают, что существуют полные RNN Тьюринга с 1058 или менее единиц.
Другие последствия
Интересным следствием результатов моделирования является то, что некоторые вопросы о поведении РНН неразрешимы. Это означает, что не существует алгоритма, который мог бы ответить на них для произвольных RNN (хотя они могут нести ответственность в случае конкретных RNN). Например, вопрос о том, принимает ли данная единица когда-либо значение 0, неразрешим; Если бы можно было ответить на этот вопрос в целом, можно было бы решить проблему остановки для машин Тьюринга, которая неразрешима.
Вычислительная мощность
В приведенном выше документе все параметры сети и состояния являются рациональными числами. Это важно, потому что это ограничивает мощность RNN и делает получающиеся сети более реалистичными. Причина в том, что рациональные числа являются вычислимыми числами , что означает, что существует алгоритм для их вычисления с произвольной точностью. Большинство действительных чисел неисчислимы и, следовательно, недоступны - даже самая мощная машина Тьюринга не может их представить, и многие люди сомневаются, что их можно даже представить в физическом мире. Когда мы имеем дело с «действительными числами» на цифровых компьютерах, мы получаем доступ к еще меньшему подмножеству (например, 64-разрядные числа с плавающей запятой ). Представление произвольных действительных чисел потребовало бы бесконечной информации.
В документе говорится, что предоставление сети доступа к действительным числам еще больше увеличит вычислительную мощность, помимо машин Тьюринга. Зигельман написал ряд других работ, исследующих эту способность «супер-Тьюринга». Однако важно отметить, что это математические модели, и результаты не означают, что такая машина действительно может существовать в физическом мире. Есть веские основания полагать, что это невозможно, хотя это открытый вопрос.
источник
Я думаю, это то, что вы ищете. Этот парень доказал, что многослойная или даже однослойная сеть с прямой связью может приближаться к любой функции, при условии, что в сети достаточно скрытых единиц.
Хорник К. (1991). Аппроксимационные возможности многослойных сетей прямой связи. Нейронные сети, 4 (2), 251-257.
источник