|
Язык искусственного интеллекта

"Успех" - значение этого социально окрашенного слова известно каждому. И,
однако, каждый вкладывает в это слово собственный смысл. Кому-то подавай власть
над всем миром, а кого-то вполне устроит прохождение очередного уровня в
трехмерном шутере. С чем, пожалуй, почти никто не станет спорить, так это с тем,
что успех доставляет удовольствие - материальное или моральное. Но далеко не
каждый, как Марвин Мински (Marvin Minsky), размышляя об успехе, разразился бы
подобной тирадой: "Если бы мы могли преднамеренно взять под контроль наши
системы удовольствия, мы могли бы воспроизводить удовольствие успеха без
необходимости в самом деле достигать чего-то. И это было бы концом всего".
Мински и сам является олицетворением успеха, ибо он в середине 50-х годов
прошлого века стал одним из основоположников искусственного интеллекта. Однако
сегодня мы поговорим не о нем, а том, без кого, возможно, сама идея
искусственного интеллекта не появилась бы вообще или, во всяком случае, приняла
бы совершенно другие очертания. Сегодня объектом нашего внимания станет
создатель языка искусственного интеллекта LISP - Джон Маккарти (John McCarthy).
Джон Маккарти не имел никакого отношения к Джозефу Раймонду Маккарти (Joseph
Raymond McCarthy) - сенатору-республиканцу от штата Висконсин, который в начале
1950-х годов развернул в США мощную кампанию по борьбе с "коммунистическим
заговором". Более того, Джон Маккарти имел все шансы нарваться на неприятности в
результате разгула в США маккартизма. Такие были времена - в СССР ловили
"безродных космополитов", а в США Комиссия Конгресса допрашивала
"коммунистических шпионов". Джон Маккарти происходил из семьи самых что ни на
есть убежденных стопроцентных коммунистов. Он родился в 1927 году в Бостоне. Его
отец был активистом американской компартии, а мать писала в местную
коммунистическую прессу статьи, громящие акул капитализма. Политические интересы
родителей были причиной частых незапланированных переездов с места на место:
Бостон, Нью-Йорк, Лос-Анджелес.
Однако семья Маккарти была глубоко уверена, что будущее человечества (по их
мнению - коммунизм) невозможно без развития технологий. У юного Джона
математические способности обнаружились очень рано. Уже в 10 лет он приобрел
математические задачники, которые использовали студенты первого и второго курсов
Калифорнийского технологического института (КТИ). Мало того, что приобрел, так
он их еще и перерешал. В 1944 году Джон Маккарти поступил в КТИ, однако вскоре
был призван в армию и отправился на войну. Судя по всему, коммунистические
убеждения семьи не очень основательно засели в голове Маккарти, ибо, например,
его старший брат Патрик был уволен из армии США за коммунистические взгляды, а
вот он служил до самого конца войны и вернулся в КТИ в 1945 году.
В 1948 году Джону Маккарти посчастливилось посетить в КТИ симпозиум по
церебральным механизмам в поведении, на котором он услышал выступление самого
фон Неймана, сделавшего доклад о самокопирующихся автоматах. После этого
выступления Маккарти задумался о том, что такое сознание, интеллект, и о
возможностях реализации интеллекта на вычислительных машинах. В 1949 году для
работы над докторской диссертацией он перевелся в Принстонский университет, где
на одном из факультетов работал Джон фон Нейман (John von Neumann). Там же под
присмотром фон Неймана он приступил к своим первым попыткам моделирования
человеческого интеллекта на машине. В конечном итоге он остался крайне недоволен
этими попытками.
В 1953 году произошло знаменательное событие. Исследователи из Кембриджа -
Джеймс Уотсон (James Watson) и Френсис Крик (Francis Crick) открыли строение
ДНК. Это событие непосредственно никак не было связано с работами Маккарти,
однако существенно повлияло на общий климат вокруг этого довольно сомнительного
по тем меркам занятия. Если до 50-х годов XX века понятие "сознание" проходило
скорее по "метафизическому департаменту" (им занимались богословы, философы и
старик Фрейд), то открытие механизма генетической наследственности показало
наличие неких реальных механизмов передачи информации от человека к человеку (от
родителей детям). Иначе говоря, такие энтузиасты, как Джон Маккарти, пришли к
выводу, что сознание, интеллект, или, как стали говорить позднее, базу знаний и
механизм выводов, можно копировать. Соответственно, если возможно копирование с
одного биологического объекта на другой, то почему бы не организовать
копирование сознания с биологического объекта на электронный.
Сам термин "искусственный интеллект", как рассказывают, появился на пляже в
Сан-Диего, где между делом Маккарти и Алан Тьюринг (Alan Turing) обсуждали
принципиальную возможность машины не просто считать, а решать задачи, которые
считаются интеллектуальными. За пример задач такого типа была взята игра в
шахматы как наиболее распространенное увлечение математиков той поры.
В 1954 году Джон Маккарти совместно с Клодом Шенноном (Claude Shannon),
Марвином Мински и Нэтом Рочестером (Nat Rochester) задумали провести
двухмесячную исследовательскую конференцию, целью которой было изучение вопроса:
"Возможно ли настолько точное описание интеллекта, чтобы имитировать его на
машине?" Получив от Фонда Рокфеллера 7500 долларов, организаторы провели в
колледже Дартмута мозговой штурм. Конечно, это было утопией - всего за два
месяца решить задачу создания искусственного интеллекта. Самое главное, что
понял Маккарти, - для того чтобы описать сознание в машинных терминах, необходим
специальный язык программирования. В распоряжении будущего "отца искусственного
интеллекта" было чудо техники того времени - машина IBM 704. Если кто помнит, на
тот момент для этой машины Джон Бэкус (John Backus) только-только создал первый
HL-язык "Фортран". Этот язык отлично подходил для программирования
вычислительных задач, но пытаться создавать при помощи него искусственный
интеллект нечего было и думать. А в чем, собственно, загвоздка?
Эта статья начинается с рассуждений на тему того, что люди вкладывают разный
смысл в слово "успех". Ключевое понятие в данном контексте - смысл. В самом
деле, мы хорошо представляем себе, как буквы складываются в слова, как несколько
слов составляют фразы, а из тех получается связное предложение. Но как, черт
возьми, мы, проглядывая список этих букв, слов, фраз, предложений и абзацев,
извлекаем какой-то смысл из увиденного? Надо сказать, что и до сих пор нет
единой точки зрения на то, как работает наш мозг во время чтения.
Есть немало слов, довольно четко определяющих какие-то понятия, например:
"хлеб", "молоко", "рука". Есть слова, которые связаны с довольно размытыми
понятиями: "успех", "кино", "компьютер". Смысл некоторых слов понять вообще
невозможно без дополнительного пространного объяснения в несколько абзацев:
"апперцепция", "толерантность", "коммунизм". Это только существительные, а как
интерпретировать прилагательные "кислый", "сладкий", "едкий"? Что такое "лететь
кувырком"; "много" - это сколько и т. д.? Есть еще одна проблема. Прочтите
следующую фразу: "Однажды сильный я был вышел мороз из лесу в студеную пору
зимнюю".
При некотором интеллектуальном напряжении эта тарабарщина сложится в строки,
знакомые с детства. Иначе говоря, порядок слов в предложении имеет значение для
получения информации (извлечения смысла). Если бы было побольше места, я показал
бы, что иногда предложение может менять свой смысл в зависимости от контекста,
то есть в зависимости от предыдущих предложений текста.
Интерпретация текста - это не единственная задача, которую довольно успешно
решает человеческий мозг (при этом эффективность решения во многом зависит от
того, насколько успешно другой человеческий мозг справился с задачей составления
текста). Помимо получения информации с помощью зрения, слуха, обоняния и
осязания, мозг умеет хранить эту информацию в виде некоей базы знаний. Но самое
главное, что на основе первичной, поступившей извне, информации человеческий
мозг может делать какие-то выводы, также сохраняя результат в базе знаний, и
принимать решения. Иначе говоря, мозг может расширять базу знаний и дальнейшую
интерпретацию контекста производить на основе модифицированной базы.
Так что для создания искусственного интеллекта нужно было создать язык,
который бы: представлял в удобной для дальнейшей интерпретации форме факты; умел
бы хранить их; в момент обработки мог бы расширять базу фактов и в дальнейшем
использовать новые факты так, как будто они поступили извне. Джон Маккарти
решил, что задача будет облегчена, если рассматривать слово как последовательный
список букв; фразу или предложение - как список слов, текст - как список
предложений. Он так и поступил, создав обработчик списков - LISts Processing,
или, сокращенно, LISP.
Первая версия языка LISP была реализована для машины IBM 704, которая таким
образом "вывела в люди" два языка программирования, активно использующиеся до
сих пор (однако как основательно в то время работали люди!). Нельзя сказать, что
Маккарти начал с нуля. 11 сентября 1956 года математик Аллен Ньюэлл (Allen
Newell), сверстник Маккарти, продемонстрировал работу компьютерной программы
"Логик-теоретик", созданной для доказательства математических теорем. Ньюэлл
несколько опередил Маккарти, свою программу он написал (разумеется, не один, а в
коллективе) на языке IPL (Information Processing Language), который сам и
разработал. В языке IPL впервые был применен подход связывания символов и слов в
некий список. Однако язык IPL был довольно сложным и не прозрачным, а потому не
прижился.
Язык LISP совершенно не похож на классические языки программирования высокого
уровня. "Фортран", хотя и упростил работу программиста, сохранил "ассемблерную"
структуру описания последовательности действий процессора. Листинг на "Фортране"
представляет собой обычную линейную последовательность, в которой все "действие"
развивается сверху вниз. Имеются, конечно, циклы, условные переходы,
математические выражения, но в целом это все тот же набор команд "Ассемблера",
хотя и "упакованных" в операторы. Разработанный Джоном Маккарти язык чудесным
образом реализовал представление знаний путем установления соответствий между
символами и их значениями. Используя LISP, программист как бы обучал машину,
наполняя ее знаниями. Это весьма похоже на то, как мама обучает своего ребенка.
Любой вопрос дитяти вида: "Пулемет - это что?" - порождает мамин ответ вида:
"Это то, из чего стреляют". За этим вполне может следовать вопрос: "Стреляют -
это что?" И так до тех пор, пока у мамы хватает знаний или терпения. Причем
замечено, что и то, и другое обычно исчерпывается почти одновременно.
Язык LISP обладает еще одним любопытным свойством. Если программы на
стандартном процедурном языке, в том числе и объектно-ориентированном, остаются
неизменными в течение всего процесса выполнения в памяти компьютера, то
LISP-программа, поскольку она является и базой знаний, и набором команд
одновременно, в процессе работы может, так сказать, увеличиваться в объеме и в
некоторой степени изменять собственную структуру. Подчас это может оказаться
прямо-таки спасением.
В 1998 году NASA запустило беспилотный космический корабль Deep Space 1 с
задачей изучения планет нашей Солнечной системы. В рамках исследования Deep
Space должен был несколько дней работать под управлением программы, написанной
на LISP. И вот, к ужасу разработчиков, когда Deep Space находился на расстоянии
более ста миллионов километров от Земли, в программе была обнаружена ошибка. А
вы говорите - Билл Гейтс! Ну ладно, ошибки в программах были и будут всегда, но
в программах, написанных на других языках, такая ошибка требует исправления
текста и новой перекомпиляции. Чего, конечно, уже нельзя было сделать в такой
ситуации. Однако, используя возможности языка LISP, удалось удаленно (весьма
удаленно!) найти ошибку и внести изменения. После чего Deep Space продолжил свои
исследования.
В 60-х годах коммунистические гены Джона Маккарти все-таки проявили себя. Он
ударился в пацифизм и стал бороться против использования военными, в том числе,
и своих идей. Однако, разумеется, было уже поздно. Сегодня во многом благодаря
Джону Маккарти небо над Ираком бороздят беспилотные самолеты-разведчики. После
внутренней эмиграции Маккарти место столпа искусственного интеллекта занял
Марвин Мински. Об этом человеке можно писать много, круг его интересов весьма
обширен: математик, физик, философ, знаток неврологии, информатики, роботехники,
автор нескольких научно-фантастических книг.
Среди его друзей значились такие культовые фигуры, как популяризатор термина
"робот" Айзек Азимов. Кстати, Мински никак не мог затащить друга в свою
лабораторию искусственного интеллекта в Массачусетском технологическом
институте: Азимов боялся, что "скучная реальность" настоящей лаборатории окажет
пагубное воздействие на его воображение. Марвин Мински обронил как-то: "Если
есть что-то, что вам очень нравится, то вам следует смотреть на это не как на
то, что делает вам хорошо, а как на разновидность рака мозга, поскольку это
означает, что некая малая часть вашего разума решила, как отключить все
остальные". Нет, ну что он хотел этим сказать? UP
|