Нейронные сети и машина Тьюринга

Искусственные нейронные сети, состоящие из связанных простых «аналоговых» элементов, и машина Тьюринга, в которой движется головка, записывающая символы на ленту, выглядят совершенно непохожими. И тем удивительнее, что между ними есть глубокая общность. Это и составляет «неисчерпаемую» мощность понятия алгоритма — не конкретной его формализации в виде машины Тьюринга, нормальных алгорифмов Маркова или еще каком-либо из десятков существующих вариантов, а некоторого абстрактного понятия алгоритма, вмещающего в себя все эти частные формализации. Какое место здесь отведено искусственным нейронным сетям?

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

Вспомним, что с помощью нейронов МакКаллока—Питтса можно реализовать любую формулу логики высказываний или любой конечный автомат. Теорема Колмогорова об аппроксимации непрерывной функции от многих переменных суперпозицией конечного числа функций от одной переменной была использована для доказательства возможности реализации любой непрерывной функции (аргументы которой принимают значения от 0 до 1) с помощью перцептрона. К сожалению, конечные автоматы, как и все остальное, имеют гораздо меньшую мощность, чем алгоритмы.

Несмотря на это, часто говорят, что ИНС по своей алгоритмической мощности эквивалентны машине Тьюринга. Утверждение об эквивалентности требует существенного уточнения: если речь идет об ИНС вместе с алгоритмом ее обучения, то факт эквивалентности банален, поскольку может быть обеспечен алгоритмом, добавляемым к ИНС. А доказательство того, что для каждого алгоритма можно построить эквивалентную ему (необучающуюся) ИНС, достаточно сложно найти в литературе.

Если внимательно приглядеться, то можно увидеть, что для эквивалентности ИНС и машин Тьюринга для первых нужно предусмотреть потенциально бесконечный пул нейронов (поскольку машина Тьюринга отличается от конечного автомата, в первую очередь, бесконечной лентой). Тогда, если мы пытаемся сразу построить ИНС, эквивалентную некоторой машине Тьюринга (например, воплощающей сортировку массивов любых размеров), такую ИНС потребуется сделать фактически бесконечной — как по числу нейронов, так и по заранее заданным связям между ними. Это не очень красиво. В худшем случае нам бы хотелось сделать ее не бесконечной, а неограниченной. Тогда в нее бы подключалось столько нейронов, сколько нужно для конкретного набора входных данных: этот набор всегда конечен, но его размер заранее не задан, поэтому, если делать фиксированную ИНС любого конечного размера, найдется такой набор данных, который она обработать не сможет. Разница между фактически бесконечной ИНС и неограниченной ИНС очень существенна: последняя конечна для любого случая. Однако для нее нужен механизм подключения нейронов (и установления с ними связей) в зависимости от объема входных данных. Если этого не сделать, то нейронные сети останутся конечными автоматами. Современные ИНС такой внутренней возможностью не обладают: их архитектура формируется внешним алгоритмом под конкретную задачу. Значит, проблема обучения ИНС тесно связана с проблемой их алгоритмической полноты!

Бесконечное число нейронов (для алгоритмической полноты) может быть заменено бесконечным числом состояния каждого нейрона. Неограниченная память формального нейрона может достигаться в предположении, что уровень текущей активности может представляться рациональным числом p/q, где p и q — натуральные числа. Неограниченное возрастание значений p и q при сохранении ограничения на значение их отношения создает возможность «хранения» в значении активности нейрона битовой строки неограниченной длины. Каждый нейрон тогда работает как машина с неограниченным стеком, что позволяет достичь алгоритмической полноты, но это выглядит слишком похоже на обычную машину Тьюринга.

Существуют свидетельства и того, что ИНС обладают неалгоритмическими возможностями (реализуют так называемые сверхтьюринговы вычисления). Этот математически строго доказанный результат может поразить воображение и заставить посвятить всю жизнь искусственным нейронным сетям. Однако при внимательном рассмотрении соответствующих доказательств обнаруживается, что «сверхтьюринговость» достигается, если величину активности нейрона считать вещественным числом, определяемым с бесконечной точностью. Если рациональному числу можно поставить бинарную строку конечной (но неограниченной) длины, то для точной записи произвольного вещественного числа потребуется бесконечная строка. При этом простое сложение двух вещественных чисел означало бы обработку бесконечно длинных бинарных строк, которая и приписывается нейрону.

Оба этих варианта (с рациональным и вещественным представлением уровня активности), хотя и представляют теоретический интерес, являются биологически и технически (и, вероятно, физически) нереализуемыми, поскольку требуют неограниченной или бесконечной точности воспроизведения сигналов нейронов. Никакой сигнал, в том числе и аналоговый, не может нести бесконечного количества информации. Представьте, что уровень активности некоторого нейрона — это число с бесконечным количеством знаков после запятой. Любой минимальный шум будет приводить к тому, что в этом числе неизменным останется лишь конечное количество начальных знаков, а бесконечное количество последующих знаков случайным образом изменится. Поскольку нейроны для достижения сверхтьюринговости должны использовать всю бесконечную цепочку знаков, любой шум приведет к полному изменению функционирования сети, что сделает ее применение просто невозможным. Так что и в области искусственного интеллекта следует очень внимательно рассматривать корректные математические выводы на предмет их физической осмысленности. Конечно, можно вспомнить упоминавшуюся гипотезу физика Пенроуза о том, что в нейронах могут происходить неалгоритмические процессы за счет каких-то неизвестных квантовых эффектов. Но это пока не более чем гипотеза, которую не удается использовать на практике.

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

Специалистам по ИНС проблема создания «универсальной ИНС» может показаться слишком надуманной и не имеющей «биологического аналога». Но здесь уместно вспомнить про теорию функциональных систем (ТФС) Петра Кузьмича Анохина. В данном контексте нас из ТФС интересует лишь то, что многие функции выполняются не фиксированными структурами мозга, а функциональными системами, динамически и избирательно организующимися из отдельных, не выбираемых заранее элементов. Каждая ИНС, напротив, обладает фиксированной архитектурой и выполняет определенную функцию.

Незамеченным следствием из ТФС Анохина является то, что мозг представляет своего рода «универсальную нейронную сеть», а значит, нужно думать, как изменить формализм ИНС, чтобы суметь с его помощью реализовать универсальную ИНС. По умолчанию полагается, что с использованием некоторых больших ансамблей нейронов это получится само собой. К сожалению, без конкретных механизмов управления связями между нейронами этого добиться будет не только сложно, но и вообще невозможно. Конечно, здесь мы не ответим на вопрос, что же это за механизмы должны быть. Но, по крайней мере, мы уточнили проблему «внутреннего» обучения ИНС: теория типа искусственных нейроглиальных сетей должна дать универсальную ИНС, для чего, возможно, придется не только ввести специальные глиальные клетки, но и уточнить модель формального нейрона.

Как уже говорилось, самим нейронным сетям приписывают способность распознавать в отличие от компьютера. Но ведь не любая ИНС выполняет распознавание, да и не любую задачу распознавания легко решить с их помощью. Представьте, вам дают пары чисел в качестве обучающей выборки: (3751, 1357), (4382, 2348), (7289, 2789), которые образуют некоторый класс. А потом просят «распознать», какие пары из перечисленных принадлежат этому же классу: (2384, 2023), (3891, 1389), (5261, 1093), … .

Мозг человека сформирует «алгоритм» связи между числами в правильных парах, причем сделает это очень быстро. А теперь попробуйте построить ИНС, которая сумела бы сделать хоть что-то похожее. Кто-то может назвать этот пример неудачным и сказать, что «распознавание» здесь выполняется на более высоком уровне, чем распознавание, скажем, лиц. Как будто эта отговорка решает проблему, и достаточно сказать, что сложные операции выполняются сложными нейронными сетями! И вряд ли можно утверждать, что распознавание лиц выполняется простой нейронной сетью. Очевидно, распознают не нейронные сети как таковые, а конкретные их архитектуры, воплощающие определенные процедуры. И нельзя думать, будто бы, взяв ИНС посложнее, можно заставить ее учиться чему угодно. Если это не будет «универсальная ИНС», то можно заранее предсказать, что она не сможет учиться произвольным процедурам, выявлять непредусмотренные заранее закономерности.

Как это ни странно прозвучит, мозг будет слишком негибким по сравнению с компьютерами, если он не будет обладать свойством, аналогичным УМТ, — уметь «виртуально исполнять» нейронную сеть (или просто алгоритм) по ее «описанию». Ведь в этом случае он будет уметь делать лишь то, что заложено в связях между его нейронами, изменением которых он сам как целое не управляет. Возможно, без этого нельзя будет достичь и эффекта самосознания. Итак, свойство УМТ фундаментально, и оно пока не реализуется для ИНС, которые оказываются лишь частным случаем алгоритмов. Создать универсальную ИНС, которая бы могла эмулировать любую конкретную ИНС по ее описанию, очень непросто, и с использованием классических формальных нейронов этого пока никому не удавалось. Конечно, эту задачу можно сильно облегчить, если усложнить нейроны и передаваемые ими сигналы. К примеру, можно ввести идентификаторы нейронов так, чтобы любой нейрон мог передавать информацию любому (не связанному с ним) нейрону по его идентификатору. И такие модификации ИНС действительно есть, однако они слишком приближены к обычным алгоритмам. Но стоит ли тогда их интенсивно исследовать, если это свойство уже давно реализовано в компьютерах?..

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

Все же ИНС как способ представления алгоритмов (алгоритмов в том самом обобщенном смысле, а не в качестве их какой-то конкретной архитектуры) обладает рядом уникальных особенностей. Бесспорное, хотя и не вполне уникальное преимущество ИНС заключается в удобстве перенесения на цифровые вычислители с массовой параллельностью, что позволяет создавать высокопроизводительные специализированные нейрокомпьютеры. В то же время распараллеливание алгоритмов, представленных в традиционной форме, — сама по себе нетривиальная задача. Но это, скорее, технический момент, поскольку в алгоритмическом плане (или в плане решения новых задач) такая параллельность дает немного. Для нейрокомпьютеров закономерным образом проявляется и то, что ИНС многих типов обучаются «внешним» алгоритмом. Как алгоритм обучения заложить в нейрокомпьютер? Нужно ли к нему подсоединять для этого обычный процессор? Интересной была бы разработка нейропроцессора для нейроглиальных сетей.

Последовательные сторонники «неалгоритмического» подхода рассматривают не цифровые, а аналоговые способы реализации ИНС. Например, еще полвека назад были популярны оптические вычисления, интерес к которым сохраняется и сейчас. Работу таких физических ИНС нельзя точно описать в форме алгоритма. Возможно, за этим кроются какие-то возможности, но пока эта неточность является недостатком не алгоритмов, а физических моделей ИНС. Можно провести такую параллель: передачу телевизионного сигнала аналоговым способом нельзя точно описать алгоритмически; но неточности описания будут связаны с шумами в аналоговом сигнале; невозможность точного предсказания этих шумов является сомнительным недостатком, ведь при передаче телевизионного сигнала цифровым способом ставится задача не имитации сигнала, как если бы он передавался аналоговым способом, а задача воспроизведения исходного сигнала без искажений. И именно последняя задача цифровой передачей решается гораздо лучше, чем аналоговой. В этом смысле сомнительно, что аналоговые процессы в мозгу следует воспроизводить аналоговыми системами. Возможно, цифровые системы с теми же задачами смогут справиться лучше, чем сам исходный аналоговый прототип — мозг. При этом и мозг часто старается использовать дискретные представления информации.

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

Однако такая устойчивость крайне важна по совсем иным соображениям. Дело в том, что обучение можно представить как поиск оптимальных алгоритмов решения каких-то задач. В обычном представлении алгоритмов как программного кода такой поиск осуществлять трудно. Представьте, что вы написали какую-то программу на традиционном языке программирования. А потом из нее случайным образом было удалено или заменено несколько символов. Что будет с этой программой? Скорее всего, она просто перестанет компилироваться или, если повезет, будет просто работать совсем по-другому. Малые изменения в программе приводят к большим изменениям в ее работе. Зная, как нужно изменить работу программы, сложно «угадать», как для этого нужно изменить саму программу.

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

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

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