3.11. Как обучаются роботы?
3.11. Как обучаются роботы?
Учитывая вышесказанное, предлагаю остановиться на том, что на самом деле нас сейчас интересуют отнюдь не проблемы численного моделирования окружения. В принципе, возможностей поработать с окружением у нас будет предостаточно — но только в том случае, если не возникнет никаких трудностей с моделированием внутренних правил самой робототехнической системы. Поэтому перейдем к вопросу о том, как мы видим себе обучение нашего робота. Какие вообще процедуры обучения доступны вычислительному роботу? Возможно, ему будут предварительно заданы некие четкие правила вычислительного характера, как это обычно делается в нынешних системах на основе искусственных нейронных сетей (см. §1.5). Такие системы подразумевают наличие некоторого четко определенного набора вычислительных правил, в соответствии с которыми усиливаются или ослабляются связи между составляющими сеть «нейронами», посредством чего достигается улучшение качества общего функционирования системы согласно критериям (искусственным или естественным), задаваемым внешним окружением. Еще один тип систем обучения образуют так называемые «генетические алгоритмы» — нечто вроде естественного отбора (или, если хотите, «выживания наиболее приспособленных») среди различных алгоритмических процедур, выполняемых на одной вычислительной машине; посредством такого отбора выявляется наиболее эффективный в управлении системой алгоритм.
Следует пояснить, что упомянутые правила (что характерно для восходящей организации вообще) несколько отличаются от стандартных нисходящих вычислительных алгоритмов, действующих в соответствии с известными процедурами для отыскания точных решений математических проблем. Восходящие правила лишь направляют систему к некоему общему улучшению качества ее функционирования. Впрочем, это не мешает им оставаться целиком и полностью алгоритмическими — в смысле воспроизводимости на универсальном компьютере (машине Тьюринга).
В дополнение к четким правилам такого рода, в совокупность средств, с помощью которых наша робототехническая система будет модифицировать свою работу, могут быть включены и некоторые случайные элементы. Возможно, эти случайные составляющие будут вноситься посредством каких-нибудь физических процессов — например, такого квантовомеханического процесса, как распад ядер радиоактивных атомов. На практике при конструировании искусственных вычислительных устройств имеет место тенденция к введению какой-либо вычислительной процедуры, результат вычисления в которой является случайным по существу (иначе такой результат называют псевдослучайным), хотя на деле он полностью определяется детерминистским характером самого вычисления (см. §1.9). С описанным способом тесно связан другой, суть которого заключается в точном указании момента времени, в который производится вызов «случайной» величины, и введении затем этого момента времени в сложную вычислительную процедуру, которая и сама является, по существу, хаотической системой, вследствие чего малейшие изменения во времени дают эффективно непредсказуемые различия в результатах, а сами результаты становятся эффективно случайными. Хотя, строго говоря, наличие случайных компонентов и выводит рассматриваемые процедуры за рамки определения «операции машины Тьюринга», каких-то существенных изменений это за собой не влечет. В том, что касается функционирования нашего робота, случайным входным данным на практике оказываются эквивалентны псевдослучайные, а псевдослучайные входные данные ничуть не противоречат возможностям машины Тьюринга.
«Ну и что, что на практике случайные входные данные не отличаются от псевдослучайных? — заметит дотошный читатель. — Принципиальная-то разница между ними есть». На более раннем этапе нашего исследования (см., в частности, §§3.2-3.4) нас и в самом деле занимало то, чего математики могут достичь в принципе, вне зависимости от их практических возможностей. Более того, в определенных математических ситуациях проблему можно решить исключительно с помощью действительно случайных входных данных, никакие псевдослучайные заместители для этого не годятся. Подобные ситуации возникают, когда проблема подразумевает наличие некоего «состязательного» элемента, как часто бывает, например, в теории игр и криптографии. В некоторых видах «игр на двоих» оптимальная стратегия для каждого из игроков включает в себя, помимо прочего, и полностью случайную составляющую{46}. Любое сколько-нибудь последовательное пренебрежение одним из игроков необходимым для построения оптимальной стратегии элементом случайности позволяет другому игроку на протяжении достаточно длинной серии игр получить преимущество — по крайней мере, в принципе. Преимущество может быть достигнуто и в том случае, если противнику каким-то образом удалось составить достаточно достоверное представление о природе псевдослучайной (или иной) стратегии, используемой первым игроком вместо требуемой случайной. Аналогичным образом дело обстоит и в криптографии, где надежность кода напрямую зависит от того, насколько случайной является применяемая последовательность цифр. Если эта последовательность генерируется не истинно случайным образом, а посредством какого-либо псевдослучайного процесса, то, как и в случае с играми, этот процесс может в точности воспроизвести кто угодно, в том числе и потенциальный взломщик.
Поскольку случайность, как выясняется, представляет собой весьма ценное качество в таких состязательных ситуациях, то, на первый взгляд, можно предположить, что и в естественном отборе она должна играть не последнюю роль. Я даже уверен, что случайность и впрямь является во многих отношениях весьма важным фактором в процессе развития живых организмов. И все же, как мы убедимся несколько позднее в этой главе, одной лишь случайности оказывается недостаточно для того, чтобы вырваться из гёделевских сетей. И самые что ни на есть подлинно случайные элементы не помогут нашему роботу избежать ограничений, присущих вычислительным системам. Более того, у псевдослучайных процессов в этом смысле даже больше шансов, нежели у процессов чисто случайных (см. §3.22).
Допустим на некоторое время, что наш робот и в самом деле является, по существу, машиной Тьюринга (хотя и с конечной емкостью запоминающего устройства). Строго говоря, учитывая, что робот непрерывно взаимодействует со своим окружением, а это окружение, как мы предполагаем, также допускает численное моделирование, было бы правильнее принять за единую машину Тьюринга робота вместе с окружением. Однако в целях удобства изложения я все же предлагаю рассматривать отдельно робота, как собственно машину Тьюринга, и отдельно окружение, как источник информации, поступающей на входную часть ленты машины. Вообще-то такую аналогию нельзя считать вполне приемлемой по одной формальной причине — машина Тьюринга есть устройство фиксированное и по определению неспособное изменять свою структуру «по мере накопления опыта». Можно, конечно, попытаться изобрести способ, посредством которого машина Тьюринга сможет-таки изменить свою структуру, — например, заставить машину работать безостановочно, модифицируя структуру в процессе работы, для чего непрерывно подавать на ее вход информацию от окружения. К нашему разочарованию, этот способ не сработает, поскольку результат работы машины Тьюринга можно узнать только после того, как машина достигнет внутренней команды STOP (см. §2.1 и Приложение А, а также НРК, глава 2), после чего она не будет ничего считывать с входной части своей ленты до тех пор, пока мы не запустим ее снова. Когда же мы ее запустим, для продолжения работы ей придется возвратиться в исходное состояние, т.е. «обучиться» таким способом она ничему не сможет.
Впрочем, эту трудность можно обойти при помощи сложной технической модификации. Наша машина Тьюринга так и остается фиксированной, однако после каждого рабочего цикла, т.е. после достижения команды STOP, она дает на выходе два результата (формально кодируемые в виде одного-единственного числа). Первый результат определяет, каким в действительности будет ее последующее внешнее поведение, тогда как второй результат предназначен исключительно для внутреннего использования — в нем кодируется весь опыт, который машина получила от предыдущих контактов с окружением. В начале следующего цикла с входной части ее ленты сначала считывается «внутренняя» информация и только после нее все «внешние» данные, которыми машину снабжает окружение, включая и подробную реакцию упомянутого окружения на ее предшествующее поведение. Таким образом, все результаты обучения оказываются записанными на, скажем так, внутреннем участке ленты, который машина в каждом рабочем цикле считывает заново (и который с каждым циклом становится все длиннее и длиннее).