mihaild, благодарю!
Статью Маккаллока и Питца я, к сожалению, ниасилил - там все очень странное.
(подробности)
Видимо, имеется в виду
http://www.raai.org/library/books/mccul ... ulloch.pdf, формулировки вроде бы строгие, но какая-то своя терминология, в которой надо разбираться.
Почитал, но не помогло.
Вообще я уже знаю, что есть нейронные сети с циклами и без циклов. Если сеть без циклов, то там мне все понятно. В главе II там как раз описываются сети без циклов и, насколько я понял, там просто устанавливается соответствие между булевыми функциями и нейронными сетями. Это все понятно, но эмуляция расчета булевой функции, по-моему, решительно неинтересна и отношения к полноте по Тьюрингу не имеет.
А вот в главе III про сети с циклами я уже ничего не понимаю. Я не вижу там соответствующего утверждения. Вижу теорему 10, в ней вижу утверждение о вычислимости
. Но
- это предикат задаваемый нейросетью, а изначально неизвестно, могут ли нейросети выразить все вычислимые предикаты. Кроме того, я не знаю, верно ли, что из вычислимости предикатов вида
для произвольного
следует полнота по Тьюрингу - я такого не читал нигде
(и вообще там в тексте часто происходит syntax error - индекс
вечно исчезает, а вычислимые числа - это какое-то нечто)
Есть еще скажем такой
http://binds.cs.umass.edu/papers/1992_S ... n_COLT.pdf результат - линейные рекуррентные нейросети с рациональными весами способны вычислить любую вычислимую функцию (получают на вход сначала вход МТ, потом нули; выдают сначала нули, потом ответ, потом опять нули).
Еще читаю, но правдоподобно, кроме того, автор рассматривает и другие варианты.
В целом, ситуация для меня представляется такой:
1. Самые простые нейросети (с целыми весами, с функцией Хэвисайда в качестве активационной, потенциально с циклами) равносильны конечным машинам в смысле Минского и "распознают" только регулярные языки
Минский Вычисления. Конечные и бесконечные машины, 2.6. писал(а):
Теорема. Никакая фиксированная машина с конечным числом состояний не может перемнодать пары двоичных чисел с произвольно большим числом разрядов
Минский Вычисления. Конечные и бесконечные машины, 3.5. писал(а):
Очевидно, что всякая нейронная сеть рассмотренного нами вида является конечной машиной
2. Для увеличения вычислительной силы надо усложнять нейросеть: добавлять бесконечные ленты, усложнять активационную функцию нейронов (во 2-й статье до
), давать возможность динамически увеличивать число нейронов, давать возможность вычислять/различать действительные числа и т.п.. Причем усложнения эти обычно нетривиальны (например, надо не просто дать нейросети бесконечную ленту для записи, еще надо поработать над тем, как оттуда читать и как туда что-то писать)
(про входы, выходы и остановку)
Нейросеть, в отличие от МТ, не может ходить по ленте туда-сюда, "обычно она ходит только в одну сторону", нейросеть работает без остановки, так что непонятно, когда она "остановилась" в смысле МТ, а когда - "зациклилась"
3. Утверждение о полноте по Тьюрингу для нейросетей не особо тривиально, его пока нет в учебной литературе, оно разное для разных классов сетей.
4. В данном случае возможность манипуляции с неограниченным количеством информации берется из работы с рациональными числами - автор кодирует двоичные последовательности
рациональными числами вида
, а потом, видимо, передает их с помощью передаточной функции
(таблица)
У автора статьи есть хорошая табличка:
Интересно, как обстоит дело в "реальных" нейросетях? На компутере-то мы можем в нейронную сеть вмонтировать в качестве весов настоящие рациональные числа, а вот делается ли так в нейросетях, которые успешно используются на практике (в AlphaZero например), в нейросетевых процессорах, в обычных мозгах? (про обычные мозги вопрос, конечно, риторический).