355 500 произведений, 25 200 авторов.

Электронная библиотека книг » Даглас Хофштадтер » ГЕДЕЛЬ, ЭШЕР, БАХ: эта бесконечная гирлянда » Текст книги (страница 51)
ГЕДЕЛЬ, ЭШЕР, БАХ: эта бесконечная гирлянда
  • Текст добавлен: 6 октября 2016, 04:15

Текст книги "ГЕДЕЛЬ, ЭШЕР, БАХ: эта бесконечная гирлянда"


Автор книги: Даглас Хофштадтер


Жанры:

   

Философия

,

сообщить о нарушении

Текущая страница: 51 (всего у книги 64 страниц)

Какую программу можно назвать оригинальной?

Проблема компьютера, превосходящего своего программиста, связана с вопросом «оригинальности» в ИИ. Что, если программа ИИ выдвинет идею или план игры, которые никогда не приходили в голову ее создателю? Кому тогда будет принадлежать честь? Существуют несколько интересных примеров, когда именно это и происходило; некоторые примеры касаются весьма тривиального уровня, некоторые – уровня довольно глубокого. Один из самых известных случаев произошел с программой Е. Гелернтера, созданной для доказательства теорем элементарной Эвклидовой геометрии. В один прекрасный день эта программа нашла блестящее и оригинальное доказательство одной из основных теорем геометрии, так называемой «pons asinorum» или «ослиный мост».

Эта теорема утверждает, что углы, прилегающие к основанию равнобедренного треугольника, равны между собой. Стандартное доказательство проводится с помощью высоты, делящей треугольник на две симметричные половины. Элегантный метод, найденный программой (см. рис. 114), не пользуется никакими дополнительными построениями.


Рис. 114. Доказательство Pons Asinorum (найденное Паппусом (ок. 300 г. до н. э.) и программой Гелернтера (ок. 1960 г. н. э.).) Требуется доказать, что углы, прилегающие к основанию равнобедренного треугольника, равны между собой. Решение: поскольку треугольник равнобедренный, АР и АР' – равной длины. Следовательно, треугольники РАР' и Р'АР конгруэнтны (сторона-сторона-сторона). Из этого вытекает, что соответствующие углы равны. В частности, углы, прилегающие к основанию, равны.

Вместо этого программа рассмотрела данный треугольник и его зеркальное отображение как два различных треугольника Доказав, что они конгруэнтны, она показала, что углы у основания соответствуют друг другу в этой конгруэнтности – что и требовалось доказать.

Это блестящее доказательство восхитило как создателя программы, так и многих других, некоторые даже увидели в этом признак гениальности. Не умаляя этого достижения, заметим, что в 300 году до н. э. геометр Паппус нашел также и это доказательство. Так или иначе, открытым остается вопрос: «Чья это заслуга?» Можно ли назвать это разумным поведением? Или же доказательство находилось глубоко внутри человека (Гелернтера), и компьютер только извлек его на поверхность? Последний вопрос подходит очень близко к цели. Его можно вывернуть наизнанку. Было ли доказательство спрятано глубоко в программе, или же оно лежало на поверхности? Насколько легко понять, почему программа сделала именно то, что она сделала? Может ли ее открытие быть приписано какому-то простому механизму, или простой комбинации механизмов программы? Или же имело место некое сложное взаимодействие, которое, будучи объяснено, не станет от этого менее достойным восхищения?

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

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

Кто сочиняет компьютерную музыку?

Различие между автором и мета-автором становится особенно заметно в случае компьютерной музыки. По-видимому, во время акта сочинительства программа может иметь различные уровни автономии. Один из уровней проиллюстрирован на примере пьесы, мета-автор которой – Макс Матьюс, работающий в лабораториях компании «Белл». Он ввел в компьютер ноты двух маршей – «Когда Джонни идет, маршируя, домой» и «Британские гренадеры» – и попросил его создать новую пьесу которая начиналась бы с «Джонни» и постепенно переходила в «Гренадеров». В середине получившейся пьесы «Джонни», действительно, полностью исчезает, и мы слышим только «Гренадеров». После чего процесс начинает идти в обратном направлении, и пьеса заканчивается мелодией «Джонни» , как и в начале. По словам Матьюса, это:

тошнотворное музыкальное переживание, которое, тем не менее, не лишено интереса – в особенности, в области ритмического превращения «Гренадеры» написаны в темпе 2/4, в тональности фа мажор, а «Джонни» – в темпе 6/8 в тональности ми минор. Переход от 2/4 к 6/8 легко заметен, при этом такой переход был бы очень трудной задачей для музыканта-человека. Модуляция из фа мажора в ми минор, включающая замену двух нот гаммы, режет ухо – более плавный переход, без сомнения был бы лучшим решением.[71]71
  М. Mathews and L. Rosier, «A Graphical Language for Computer Sounds» в сборнике H. von Foerster and J. W. Beauchamp eds, «Music by Computers», стр. 96.


[Закрыть]

Получившаяся пьеса довольно забавна, хотя местами довольно помпезна и запутана.

Сочиняет ли музыку сам компьютер? Подобных вопросов лучше не задавать – однако их трудно полностью игнорировать. Ответить на них нелегко. Алгоритмы здесь четко определены, просты и понятны. Сложных и запутанных вычислений, самообучающихся программ и случайных процессов здесь нет – машина функционирует совершенно механически и прямолинейно. Однако результатом является последовательность звуков, не запланированных композитором во всех деталях, хотя общая структура произведения полностью и точно определена. Поэтому композитор часто бывает удивлен – и приятно удивлен – конкретным воплощением своих идей. Именно в этом смысле можно сказать, что компьютер сочиняет музыку. Мы называем этот процесс алгоритмической композицией и снова подчеркиваем тот факт, что алгоритмы здесь просты и прозрачны.[72]72
  Там же, стр. 106.


[Закрыть]

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

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

Именно такой тип двусмысленности возник в этой книге, сначала в «Акростиконтрапунктусе» и позже в обсуждении Геделевой строки G (и ее родственников). Мы дали разбивальным записям следующую интерпретацию «Меня нельзя воспроизвести на патефоне X», интерпретацией недоказуемого суждения было «Меня нельзя доказать в формальной системе X» Возьмем последнее предложение. Где еще вы встречали суждение с местоимением «я», прочитав которое, вы автоматически предположили, что «я» относится не к человеку, произносящему это предложение, но к самому предложению? Я думаю, таких случаев очень немного. Слово «я» когда оно появляется, например, в Шекспировском сонете, относится не к четырнадцатистрочной поэтической форме, напечатанной на странице, а к существу из плоти и крови, стоящему за этими строчками.

Как далеко мы обычно заходим, пытаясь определить, к кому относится «я» в предложении? Мне кажется, что ответ заключается в том, что мы пытаемся найти мыслящее существо, которому можно приписать авторство данных строк. Но что такое «мыслящее существо»? Нечто такое, с чем мы можем с легкостью сравнить самих себя. Есть ли характер у Вайзенбаумовой программы «Доктор»? И если да, то чей это характер? Недавно на страницах журнала «Science» появился спор на эту тему.

Это возвращает нас к вопросу о том, кто же на самом деле сочиняет компьютерную музыку. В большинстве случаев, за подобными программами стоит человеческий разум, и компьютер используется, с большей или меньшей изобретательностью, как инструмент для воплощения человеческих идей. Программа, которая это исполняет, на нас совсем не похожа. Это простой и бесхитростный набор команд не обладающий гибкостью, пониманием того, что он делает, или самосознанием. Если когда-нибудь люди создадут программы с этими свойствами, и эти программы начнут сочинять музыкальные произведения, тогда мне кажется, наступит время разделить наше восхищение между программистом, создавшим такую замечательную программу, и самой программой обладающей музыкальным вкусом. Я думаю, что это случится только тогда, когда внутренняя структура программ будет основываться на чем-то, напоминающем «символы» в нашем мозгу и их пусковые механизмы, которые отвечают за сложное понятие значения. Подобная внутренняя структура наделила бы программу такими свойствами, с которыми мы могли бы до определенной степени идентифицировать себя. Но до тех пор мне не кажется правильным говорить «Эта пьеса была написана компьютером».

Доказательство теорем и упрощение программ

Вернемся теперь к истории ИИ. Одним из ранних шагов в этом направлении была попытка создания программы, способной доказывать теоремы. Концептуально это то же самое, что создание программы, способной искать деривацию MU в системе MIU – с той разницей, что формальные системы здесь часто были сложнее, чем система MIU. Это были версии исчисления предикатов, представляющего собой расширенный – с использованием кванторов – вариант исчисления высказываний. В действительности большинство правил исчисления предикатов содержится в ТТЧ. Трюк при написании такой программы заключается в том, чтобы снабдить ее чувством направления, чтобы программа не блуждала по всему пространству возможностей, а следовала лишь по «важным» тропинкам, которые, в соответствии с некими разумными критериями могут привести к нужной строчке.

В этой книге мы не рассматривали подобные вопросы подробно. В самом деле, как мы можем сказать, когда продвигаемся в направлении теоремы, а когда наши поиски – пустая трата времени? Этот вопрос я попытался проиллюстрировать на примере головоломки MU. Разумеется, окончательный ответ на него дать невозможно. Именно в этом – суть Ограничительных Теорем, поскольку если бы мы всегда знали, в каком направлении идти, то могли бы построить алгоритм для доказательства любой теоремы, – а это противоречит Теореме Чёрча. Такого алгоритма не существует. (Предоставляю читателю догадаться, почему это следует из Теоремы Чёрча.) Однако это не означает, что невозможно развить интуитивное чувство того, какие дороги ведут к цели и какие уводят в сторону. Лучшие программы обладают сложной эвристикой, позволяющей им делать заключения в исчислении предикатов так же быстро, как это делают способные люди.

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

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


Рис. 115. Бесконечное дерево подзадач Зенона, чтобы добраться от А до Б.

Еще один пример бесконечной рекурсии в упрощении проблем можно найти в Диалоге «Маленький Гармонический Лабиринт», когда Ахилл хотел исполнения своего Нетипового Желания. Это должно было быть отложено до тех пор, пока не было получено разрешение Мета-Гения, но чтобы получить разрешение на дачу разрешения, Мета-Гений должна была говорить с Мета-Мета Гением и так далее. Несмотря на бесконечность стека задач, желание Ахилла было все же исполнено. Упрощение задач в конце концов победило!

Хотя я над ним и подсмеиваюсь, упрощение задач является могучим инструментом для превращения сложных конечных целей в более простые местные задачи. Эта техника отлично работает в некоторых ситуациях, таких, например как шахматные эндшпили, где расчет вариантов часто неэффективен, даже когда мы рассчитываем вперед на огромное (15 или более) количество шагов. Это объясняется тем, что чистый расчет вариантов не основан на планировании, вместо поиска определенной цели он просто исследует огромное количество возможных альтернатив. Конечная цель позволяет нам выработать стратегию для ее достижения, а это совершенно иная техника, чем механический расчет вариантов. Разумеется, в технике расчета желательность или нежелательность данного варианта измеряется функцией оценки, которая косвенно включает многие цели, основная из которых – не получить мата. Но это слишком неявно. У хороших шахматистов, играющих против программ, основанных на расчете вариантов обычно складывается впечатление, что те весьма слабы в составлении планов и разработке стратегии.

Шанди и кость

У нас нет гарантии того, что метод упрощения задач сработает в каждом отдельном случае. Во многих ситуациях он терпит фиаско. Рассмотрим, например, следующую простую задачу. Представьте себе, что вы – собака, и что хозяин только что перекинул вашу любимую кость через забор в соседний двор. Кость видно сквозь щели в заборе, она лежит на траве, и у вас текут слюнки. На расстоянии приблизительно пятнадцати метров от кости вы видите открытую калитку в заборе. Что вы сделаете? Некоторые собаки просто подбегают к забору поближе к кости и начинают лаять. Другие собаки бросаются к калитке (удаляясь при этом от цели) и бегут прямо к лакомому кусочку. Можно сказать, что и те, и другие применяют технику упрощения задачи, разница в том, что они представляют задачу по-разному. Лающая собака видит подзадачи в том, чтобы (1) подбежать к забору, (2) попасть на ту сторону и (3) подбежать к кости, но вторая подзадача оказывается слишком трудной, и собака начинает лаять. Для другой собаки подзадачи заключаются в том, чтобы (1) подбежать к калитке, (2) пробежать сквозь нее и (3) подбежать к кости. Обратите внимание, что все зависит от того, как вы представляете себе «пространство проблемы» – то есть от того, что кажется вам упрощением задачи (движением к цели) и что – усложнением задачи (движением от цели).

Изменение пространства задачи

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

В повседневной жизни мы постоянно сталкиваемся с необходимостью решать задачи, подобные проблеме собаки и кости. Предположим, как-то вечером я решаю съездить на машине к товарищу, живущему на расстоянии 100 км. на юг; при этом я нахожусь на работе, куда утром приехал на велосипеде. Прежде, чем я окажусь в машине, направляющейся на юг, я должен буду совершить множество кажущихся ошибочными шагов в «неправильном» направлении. Я должен буду выйти из кабинета, направляясь при этом на восток; пройти по коридору к выходу из здания, сначала на север, затем на запад. После этого я поеду домой на велосипеде, поворачивая во всех четырех направлениях. Там, после серии коротких передвижений, я, наконец, попаду в машину. Разумеется, это не означает, что я поеду прямо на юг – мой маршрут может включать повороты на север, восток или запад, чтобы как можно быстрее добраться до шоссе. Это совершенно не кажется мне парадоксальным или забавным; пространство, в котором физическое отступление воспринимается как движение к цели, так глубоко встроено в мой мозг, что я не вижу никакой иронии в том, что мне приходится двигаться на север, чтобы попасть на юг. Дороги, коридоры и так далее действуют как каналы, которые я покорно принимаю как данное; таким образом, моя интерпретация ситуации частично навязывается мне сверху. Но собаке, стоящей перед забором, гораздо труднее это сделать – особенно если прямо перед ее носом лежит аппетитная кость. На самом деле, когда пространство проблемы оказывается лишь немного абстрактнее физического пространства, люди часто бывают также беспомощны, как лающая на забор собака.

В каком-то смысле, все возможные задачи являются лишь вариантами задачи собаки и кости. Многие проблемы разворачиваются не в физическом, но в некоем концептуальном пространстве. Поняв, что прямолинейное движение к цели приводит вас к абстрактному «забору», вы можете либо (1) попытаться отойти в сторону от цели, следуя случайному маршруту (при этом вы надеетесь, что рано или поздно наткнетесь на скрытую «калитку», сквозь которую сможете пройти и подойти к вашей кости), либо (2) попытаться найти такое новое «пространство» проблемы, в котором не окажется абстрактного забора, отделяющего вас от цели – в таком пространстве вы сможете идти прямо к цели. Первый метод может показаться слишком ленивым, а второй – слишком трудным. Все же решения, требующие модификации пространства задачи, чаще бывают результатом мгновенного озарения, чем результатом серии долгих раздумий. Возможно, эти прозрения приходят из самого сердца разума – и, само собой разумеется, наш ревнивый мозг надежно защищает этот секрет.

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

Поскольку нахождение внутреннего представления само по себе является задачей – и весьма непростой! – вы можете попытаться приложить технику упрощения задач к ней самой. Для этого вам придется каким-то образом представить огромное множество абстрактных пространств, что является весьма сложным проектом. Я пока не слышал, чтобы кто-нибудь пытался сделать подобное. Это может быть лишь интересной теоретической возможностью, на практике совершенно невыполнимой. В любом случае, ИИ очень не хватает программ, которые могут «отойти в сторону» и посмотреть, что происходит – и затем, используя эту перспективу, лучше сориентироваться для нахождения цели. Одно дело – написать программу, которая умеет выполнять единственное задание, даже такое, для выполнения которого, как нам кажется, нужен интеллект, и совсем другое дело – написать действительно думающую программу! Эта разница аналогична разнице между осой Sphex (см. главу XI), чьи инстинктивные действия кажутся весьма разумными, и человеком, за ней наблюдающим.

Снова режим I и режим М

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

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

Между предыдущим обсуждением и головоломкой MU есть еще одна связь: два операционных режима, приведшие к решению головоломки MU – Механический режим и Интеллектуальный режим. В первом из них вы работаете в системе жестких правил; в последнем вы всегда можете выйти из системы и взглянуть на проблему со стороны. Подобная перспектива означает возможность выбора определенного представления проблемы; работа же внутри системы сравнима с применением техники упрощения задач, не выходя из пределов уже данного представления. Комментарии Харди о стиле Рамануяна – в особенности, о его готовности изменять собственные гипотезы – иллюстрируют это взаимодействие между режимом M и режимом I в творческой мысли.

Оса Sphex работает в режиме M превосходно, но совершенно не способна выбирать представление о системе или вносить в режим M какие бы то ни было изменения. Она не может заметить, что некое событие происходит в ее системе снова, снова и снова, поскольку это равнялось выходу из системы, каким бы незначительным он ни был. Она просто не замечает того факта, что повторяется нечто одинаковое. Эта идея (не замечать тождественности повторяющихся событий) интересна в применении к нам самим. Есть ли в нашей жизни часто повторяющиеся идентичные ситуации, в которых мы каждый раз ведем себя одинаково глупо, поскольку не можем, взглянув на себя со стороны, заметить их тождественность? Здесь мы опять сталкиваемся с вопросом: «Что такое тождественность?» Этот вопрос прозвучит как одна из тем ИИ, когда мы будем обсуждать узнавание структур.

ИИ в применении к математике

Математика – необыкновенно интересная область для изучения с точки зрения ИИ. Каждый математик чувствует, что между идеями в математике существует некая метрика – что вся математика является сетью взаимосвязанных результатов. В этой сети некоторые идеи соотносятся очень тесно; для соединения же других идей требуются более сложные пути. Иногда две теоремы в математике близки между собой, потому что одну из них легко доказать, пользуясь доказательством другой. Иногда две идеи близки между собой, потому что они аналогичны или даже изоморфны. Это только два примера значения слова «близкий» в области математики; возможно, имеются и другие. Трудно сказать, является ли наше чувство математических взаимосвязей универсальным и объективным, или же это только историческая случайность. Некоторые теоремы различных ветвей математики кажутся нам трудно соотносимыми, и мы можем подумать, что они никак не связаны между собой – но позднее можем узнать нечто, что заставит нас пересмотреть это мнение. Если бы нам удалось ввести высоко развитое чувство математической близости – так сказать, «мысленную метрику» математика – в программу, то у нас, возможно, получился бы примитивный «искусственный математик». Но это зависит от нашей способности наделить программу также чувством простоты и «естественности» – еще один из основных камней преткновения.

Эти темы возникали во многих проектах ИИ. Например, в Массачусетском институте технологии были разработаны программы, объединенные под названием «MACSYMA». Они были призваны помогать математикам в символической манипуляции сложными математическими выражениями. В некотором смысле, MACSYMA знает, «куда идти» – в ней есть что-то вроде «градиента сложности», ведущего ее от того, что нам кажется сложными выражениями, к более простым выражениям. В репертуар MACSYMA входит программа под названием «SYN», которая символически интегрирует функции; считается, что в чем-то она превосходит людей. Она опирается на множество различных способностей, как это обычно делает разум: глубокие знания, техника упрощения задач, множество эвристических правил, а также некоторые специальные приемы.

Целью программы, составленной Дугласом Ленатом из Стэнфордского университета, было изобретение идей и открытие фактов элементарной математики. Начиная с понятия «множества» и набора «интересных» идей, которые были в нее введены, она «изобрела» идею счета, затем сложения, затем – умножения, затем, среди прочего, – понятие простых чисел… Она зашла так далеко, что повторила открытие гипотезы Гольдбаха! Разумеется, все эти «открытия» были уже сделаны сотни, а то и тысячи лет назад. Может быть, успех программы объясняется тем, что понятие «интересного», которое Ленат вложил в машину, было закодировано в большом количестве правил, на которые, возможно, повлияло современное математическое образование самого Лената; тем не менее, этот успех впечатляет. Правда, после этих достойных уважения свершений программа, по-видимому, выдохлась. Примечательно, что она не смогла развить и улучшить свое чувство того, что является интересным. Эта способность, по-видимому, лежит несколькими уровнями выше.

В сердце ИИ: представление знаний

Многие из приведенных примеров показывают, что то, каким образом представлена некая область, имеет огромное влияние на то, как она будет «понята». Программа, которая печатала бы теоремы ТТЧ в заранее заданном порядке, не понимала бы ничего в теории чисел; с другой стороны, можно сказать, что программа, подобная программе Лената, обладающая дополнительным знанием, имеет некое рудиментарное чувство теории чисел. Программа, чьи математические познания находились бы в широком контексте опыта реального мира, имела бы больше всего возможностей «понимать» в том же смысле, как и люди. Именно представление знаний находится в сердце ИИ.

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

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

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

Тем не менее, в ИИ был проделан большой объем работы по изучению систем, в которых большинство знаний хранится в определенных местах – то есть декларативно. Само собой разумеется, что какое-то знание должно заключаться в программах – иначе у нас была бы не программа, а энциклопедия. Вопрос в том, как разделить знание между программой и данными (которые далеко не всегда легко отличить друг от друга). Надеюсь, что это было достаточно хорошо объяснено в главе XVI. Если в процессе развития системы программист интуитивно воспримет некий объект как часть данных (или как часть программы), это может иметь значительное влияние на структуру системы, поскольку, программируя, мы обычно различаем между объектами, похожими на данные, и объектами, похожими на программу.


    Ваша оценка произведения:

Популярные книги за неделю