Алексей Чачко - Искусственный разум
Поскольку синтаксическое дерево уже выявило, что голова болит у человека, обращающегося к машине, полный смысл первой фразы таков: "У человека, обращающегося к машине с 8.30 до 17.30 текущих суток, частично повреждена способность к мышлению".
Итак, чтобы понять человека, Искинт должен сначала выявить устройство каждого предложения - найти его синтаксическое дерево. Потом резонно перейти от поверхностной структуры к глубинной - создать семантическое представление предложения. И, наконец, отыскать смыслы слов, входящих в предложение, умело преобразовывая многие деревья смыслов. Мало того, Искинт обязан вовлекать в дело свои знания о внешнем мире, навешивать на деревья ограничители.
"У меня сегодня болит голова". Какая немудреная фраза, как естественно понимает ее каждый из нас, и какую огромную работу нужно проделать Искинту, чтобы добраться до того же уровня понимания! Нам - запросто и залегко, а Искинту - невпроворот. Нам, что семечки щелкать, а Искинту, что гранит долбить. Вы согласны со мной, читатель?
И напрасно. Большинство процессов, протекающих в нашем мозгу, мы не осознаем; они происходят неощутимо и почти необнаружимо. Откуда же берется уверенность, что запросто и залегко?
В старину мастера говорили: если хочешь узнать, как устроена вещь, сделай ее. Построй дом - и будешь знать его от венца до крыши. Чем сложнее вещь, тем справедливее совет старых мастеров.
Если хочешь узнать, как мозг понимает естественный язык, построй Искинт, выполняющий ту же работу.. Что мы и сделали на предыдущих страницах. Мы изобрели процесс понимания, который выявляет структуры фразы, отыскивает соответствующие случаю солидарные друг другу смыслы слов и истолковывает фразу в целом. Без такой работы невозможно понять смысл, как нельзя переместить предмет, не истратив энергии.
Мы не утверждаем, что в мозгу происходит в точности тот же процесс. Стоит продолжить исследовательскую работу - может, удастся найти более короткий путь к смыслу. Однако изобрести вечный двигатель не удастся. Понимание русского языка - многотрудный процесс, и трудность эта никак не зависит от того, выполняется ли он машиной или мозгом. Обнаружить действительную сложность, затемненную внешней простотой, помог Искинт.
Искинт меняет наши взгляды на самих себя, на собственное мышление. Теперь, быть может, встретив медленно соображающего или переспрашивающего собеседника, мы не станем скоропалительно зачислять его в дураки. Перед нашим мысленным взором возникнет лес синтаксических деревьев и деревьев смысла, мы догадаемся, что запинки связаны с многими выборами нужных веток, а переспросы - с честным исключением ошибок.
Советский психолог А. Лурия применял деревья смыслов в борьбе с душевными болезнями. Ученый беседовал со своими пациентами, а потом превращал их путаные, алогичные, беспомощные предложения в деревья.
Перед ним представали страшные, искривленные, искалеченные растения - наглядный портрет психического расстройства. По виду этих уродцев ученый выделял признаки болезни. Он лечил людей - и выпрямлялись, и хорошели, и крепли их деревья...
Вернемся к машине, которая полностью поняла первую фразу человека и пробует теперь овладеть второй: "Придумай, пожалуйста, нам задачу полегче". Нетрудная фраза, хотя есть одно обстоятельство... Кому это "нам" требуется придумать задачу? Быть может, человек пришел в машинный зал вдвоем с другом?
Компьютер способен разрешить свою проблему, только выяснив обстоятельства дела у человека. Поскольку чаще всего человек приходит сюда, чтобы решать задачи совместно с машиной, компьютер задает ему вопрос:
- Вы хотите решать задачу со мной в диалоговом режиме?
- Да, - отвечает человек.
Лишь теперь машине стал доступен смысл второй фразы: "Сверхвежливо, на "Вы", человек требует найти задачу малой сложности, чтобы решать ее в режиме диалога". Компьютер, порывшись в своей библиотеке, предлагает:
- Рекомендую игру "Крестики-нолики". Если Вы согласны, напечатайте "Да",
▫ Да ▫
Очень приятно. Кто будет делать первый ход?
▫ Ты начинай ▫
Можно ли мне тоже называть Вас на "ты"?
▫ Давай ▫
Спасибо за разрешение. Я начинаю игру и делаю первый ход.
Я помещаю X в верхнюю левую клетку.
X - -
- - -
- - - Твой ход.
▫ Играю ноль в центральную клетку ▫
Значит ли слово "ноль" цифру 0?
▫ Да ▫
Хорошо. У нас теперь такая позиция:
X - -
- 0 -
- - - Есть возражения?
▫ Нет ▫
Я помещаю X в нижнюю правую клетку.
Х - -
- 0 -
- - X Пожалуйста, ходи.
▫ Ставлю 0 в нижний левый угол ▫
Ладно. Вот наша новая позиция:
X - Х
- 0 -
0 - Х
Пожалуй, я закрою верхний правый угол.
X - X
- 0 -
0 - Х
Тебе есть над чем подумать.
▫ Чего там думать! Кидаю нолик на верхнее среднее поле ▫.
Значит ли "кидаю" то же самое, что "помещаю"?
▫ Да ▫
Значит ли "поле" то же самое, что "клетка"?
▫ Да ▫
Большое спасибо. Наше положение:
Х 0 Х
- 0 -
0 - Х
Я ставлю X в среднюю правую клетку и выигрываю:
Х 0 Х
- 0 X
0 - X
▫ Это нечестно. Я ж тебе говорил, что у меня болит голова. Не могла уступить, что ли? ▫
Введен приказ: выигрышная стратегия.
Если хочешь, измени приказ. Напечатай:
"Проигрышная стратегия".
▫ Проигрышная стратегия ▫
В этом месте, вполне характеризующем человека как царя природы и хозяина машин, мы оставим конкретный разговор с компьютером, чтобы обратиться к человеко-машинному диалогу вообще.
Диалоговый режим появился не одновременно с появлением вычислительных машин. Напротив, в течение первых 10 лет работы электронного мозга любое вмешательство в ход машинного счета строжайше запрещалось. Грозное табу предписывало: программа обязана "прокрутиться" в ЭВМ от начала до конца и отпечатать результаты. Потом можно посмотреть, что получилось. Потом! Но не по ходу дела. Потом программист обрадуется удаче либо огорчится неуспехом. И найдет, в чем ошибка, и устранит ее, и отобьет исправленную программу на перфокартах, и введет ее в машину, и вновь запустит ЭВМ. И снова войдет в силу табу: руками не трогать, действующая программа неприкасаема, не мешать, компьютер работает!
У этого табу есть свои серьезные основания: машина действует очень быстро, а человек очень медленно, пока человек надумает вмешаться, машинный счет будет окончен, а если и не окончен, то нужный момент все равно упущен. Табу экономит машинное время. Прочь дефектную деталь с главного конвейера, некогда ее подправлять, задержится вся сборка! Пусть программист не спеша потом корректирует свою программу где-нибудь в сторонке, а машина в освободившееся время обработает сто других программ. Так?
Оно, конечно, так, но только в случае хорошо определенных задач, в случае, когда есть четкий алгоритм и вся загвоздка в ошибках человека. А если при разработке программы заранее не видны пути решения задачи, не ясно, как повернется дело, если задача плохо определена?...
Тогда машине не обойтись без человека, тогда - долой табу! УЧЕНИК был одной из первых программ, которая запрашивала дополнительные данные у человека, останавливала машину и ждала ответа, не считаясь с расходами.
Расточительный УЧЕНИК не берег машинное время; ему сие прощалось как новичку, да и то в первое время. Допустить, чтобы большая вычислительная машина неопределенно долго ждала ответов человека, ничего не делая, было бы несерьезно. Лучше как-то занять свободные промежутки компьютерного времени, пусть вяжет, что ли, как продавщица в малопосещаемом отделе магазина.
Только является покупатель, продавщица (в идеале) прерывает вязание и берется обслуживать человека. Добро! И машину можно оснастить прерывателем: пока человек думает, она решает другую задачу, как начал отвечать - прерывается, прячет промежуточные результаты и послушно сотрудничает с пользователем.
Машинное время станет дробиться: кусок для одной задачи, кусок для другой; число задач не ограничивается, конечно, двумя, их будет столько, сколько "потянет" машина. Или - еще интереснее! - это будут не задачи, а люди.
У каждого человека свой пульт для общения с компьютером, каждый решает свою проблему, а машина... что ж, машина повысилась в чине, стала системой коллективного пользования с разделением времени, или сокращенно СРВ.
Диалог - любимое дитя СРВ; она не ограничивается беседой с одним человеком, а ведет сразу множество диалогов да еще использует клочки свободного времени себе на пользу.
Наша ДУНЯ родилась уже во времена СРВ и не случайно именуется Личным Помощником 5. В этой же машине одновременно работают многие Личные Помощники, которые оказывают помощь одновременно нескольким людям.
Каждый диалог "человек - ЭВМ" опирается на сценарий - особую программу, руководящую ходом диалога и соблюдающую этикет диалога. Сценарий ДУНИ вежлив, деликатен, доброжелателен. Ему мы обязаны, в частности, тем, что ДУНЯ назвала плавленый сырок "отличной начинкой" (не обидела хозяйку, а поддержала ее), но одновременно перечислила подлинно хорошие начинки. Его влияние сказалось и в других репликах программы. Сценарий ДУНИ нетороплив - две или пять лишних минут здесь не в счет.