14-Oct-2004

Термин "искусственный интеллект" уже давно стал синонимом тщетности и безрезультатности. С тех пор как 50 лет назад задача ИИ была впервые сформулирована Аланом Тьюрингом, эта область по сути не сдвинулась ни на йоту, и сегодня ее уже можно считать "успешно проваленной", хоть и далеко не все это осознают. Все отдельные под-области ИИ, вроде нейронных сетей и ассоциативных баз данных, в конечном счете зашли в тупик и не дали никаких практических результатов, хоть и поток академических публикаций, похоже, не угасает.
А если и есть какие-то результаты, применяемые в потребительском ПО, то они не имеют никакого отношения собственно к задаче ИИ: распознавание образов, голоса и письма, алгоритмы нахождение кратчайшего пути. С одной стороны, сам человек никогда не решает подобные задачи идеально, и следовательно этого не требуется от ИИ, и с другой стороны, распознавание и передвижение по кратчайшему пути, очевидно, не есть мышление. Вообще не понятно, кто и почему решил, что алгоритм A*, созданный Доном Кнутом, есть алгоритм искусственного интеллекта.
Можно добавить сюда еще и LISP и Prolog, которые по недоразумению называются языками ИИ, хотя на самом деле являются просто-напросто очень милыми языками программирования, на которых решаются очень милые, но никак не искуственно-интеллектуальные задачи, включая редактирование текста в Emacs и знаменитый Viaweb (ныне часть Yahoo) - виртуальный Интернет-магазин, созданный Полом Грэмом.
Итак, если перед вами стоит задача создания, к примеру, "умных" оппонентов в какой-либо игре, то не пытайтесь искать в литературе готовые решения: их просто не существует. Вам придется самостоятельно создавать алгоритмы поведения персонажей или оппонентов игры - всего лишь алгоритмы, которые будут создавать видимость присутствия интеллекта в каждом конкретном случае - шахматы, реверси, RPG. На этом пока что держится вся компьютерная игровая индустрия. А индустрия эта вполне серьезная хотя бы только по размеру рынка и объему продаж. Уж что-что, а рынок красивыми терминами и академическими исследованиями не обманешь, он требует конкретных решений сегодня и сейчас.

Давайте
попробуем выяснить, почему эта "задача задач" для человечества зашла
в тупик, и что мы делаем не так. Существует, на мой взгляд, целый ряд заблуждений
(или скорее misconception), из-за которых нам постоянно приходится разочаровываться
в своих результатах.
Заблуждение 1. Человек - самое умное существо в живой
природе потому, что обладает самым сложным и развитым головным мозгом. Есть
простые биологические факты, которые опровергают это предположение: у некоторых
животных головной мозг больше чем у человека, у некоторых он имеет большее количество
нейронов и синаптических связей, у некоторых толще кора головного мозга, а у
некоторых в наличии имеются все эти преимущества сразу. Следовательно дело не
в коре и не в количестве нейронов. Хотя с другой стороны, конечно, ясно, что
у муравья вообще нет никаких шансов обладать интеллектом. Но все же объем головного
мозга не является решающим фактором для появления интеллекта.
Заблуждение 2. Человек умен, причем он превосходит в своем развитии весь животный мир настолько, что животные вообще не интересны с точки зрения задачи ИИ. Ха! Обезьяна, обученная языку глухонемых, или вообще любому достаточно гибкому средству общения с человеком, начинает проявлять интеллект приблизительно на уровне 3-4-летного ребенка, что само по себе не мало. И давайте признаемся, что есть некоторое подмножество людей, которые глупее или на том же уровне, что и некоторое подмножество 4-х летних детей или напичканных новыми "фичами" обезьян. Переход от животного мира к человеческому весьма, весьма размыт! Поэтому неясно какой именно уровень интеллекта мы вообще ожидаем от нашего бедного ИИ - на уровне Герасима из "Муму", или на уровне того же Алана Тьюринга?
Заблуждение 3. Системы, способные доказвыть математические теоремы, всевозможные логические машины, экспертные системы и проч. являются частными случаями ИИ. Усложняя такие машины мы в конце концов получим настоящий искусственный интеллект.Это заблуждение, вероятно, появилось вследствие того, что проблемой ИИ занимаются преимущественно математики, которым верх способностей человеческого интеллекта видится в способности доказывать теоремы или делать выводы имея парочку предикатов. (Наша обезьяна тоже сможет работать ограниченной Prolog-машиной, если предикаты буду представлены, например, в виде кубиков. Ну и что из того?)
И это разочарование мы тоже испытали: усложнение таких систем не дает ровным счетом ничего. А предположение о том, что введением т.н. "размытой логики" можно размочить дискретность и тем самым приблизиться к человеку, тоже оказалось неверным. Человек не является ни единично-нулевой, ни размыто-логической машиной: степень уверенности в каких-то выводах, которые мы делаем, вообще никак не измеряется количественно, а является чем-то иным, чем просто состоянием между нулем и единицей. Человек не является логической машиной вообще, хотя мы не станем отрицать того, что в основе мышления лежат какие-то алгоритмы.
Заблуждение 4. Некая сложная система, например Интернет, в один прекрасный день вдруг "осознает себя", и превратится в гигантский мозг. И наверное скажет "мама, я существую!", обращаясь к создателям Интернета - это в лучшем случае, а в худшем - моментально уничтожит все живое на Земле. Понятно, что писатели-фантасты - это прежде всего писатели, и посему они - народ эмоциональный. И вообще, за появление таких неуклюжих и противоречивых представлений об ИИ мы обязаны прежде всего писателям-фантастам и людям, для которых вопрос "что есть душа?" является самой главной и самой нерешаемой проблемой человечества.
Скорее всего осознание себя не является неким триггером, который переходит в состояние 1, когда какие-то величины переходят пороговые значения (напр. сложность системы, кол-во элементов). Обезьяна тоже осознает себя, хотя в меньшей степени. Любая система осознает себя, даже этот сетевой хаб, который сейчас мигает мне своими лампочками. Поэтому вопрос о том, вселится ли в ИИ душа, когда и почему это произойдет - не интересен сам по себе.
Ведь с одной стороны, человек не сразу осознает свою личность и начинает говорить о себе в первом лице: это происходит в детстве и только в результате общения со взрослыми, которые сами о себе говорят в первом лице. Маугли, найденные в лесу в зрелом возрасте, не осознают себя, или по крайней мере не подают таких признаков. И с другой стороны, если мы считаем тестом на "осознание себя" какие-то фразы типа "что есть я?", то ИИ можно просто обучить задавать такие глупые вопросы, и это, очевидно, не будет говорить ни о чем существенном.
Заблуждение 5. Можно реализовать ИИ "по частям": распознавание образов, способность к обучению, память, различные (вообще-то многочисленные) методы мышления, воля, страх, влечение, склонность к обману, интуиция, таланты, весь спектр эмоций, итд... Всего не перечислишь! В том-то и дело, что всякая попытка создания более или менее мыслящей машины, каковой является сам человек, заканчивается "алгоритмизацией" многочисленных свойств и способностей человеческой психики. А это - дебри, из которых еще никто не вылезал. Попробуйте подумать о каждом элементе этого (неполного!) списка выше, и вам покажется, что реализовать ИИ просто принципиально невозможно. Следовательно "алгоритмизация всего" не есть way to go.
Или может мы не додумались до чего-то очень простого? Хм...

И все таки... почему и за счет чего человек смог оторваться от всего животного мира и уйти так далеко в своем развитии? Пара доводов - и я рискну выдвинуть тут одну свежую и, надеюсь, полезную гипотезу.
Природа, по-видимому, долго экспериментировала не только с различными формами жизни, но также и различными подходами к организации управления организмами, т.е. того, что в итоге стало нервной системой, мозгом, и в конце концов - разумом. Перед появлением человека на животных, образно говоря, испытывались различные "генеральные программы" поведения: пчелы запрограммированы собирать и вырабатывать мед, муравьи - строить муравейники, более высокоорганизованные животные, в частности хищники - охотиться на вкусненьких, пушистых и более слабых животных, итд.
Теперь заметим, что человек не запрограммирован на что-либо конкретное (за исключением генеральной линии выживания и продолжения рода, что, впрочем, тоже может быть подвергнуто пересмотру зрелым человеком): он может собирать какой угодно урожай, и не только мед, также строить что угодно, охотиться и быть плотоядным, либо добровольно отказаться от этого и стать травоядным. Что угодно. Человек - самое гибкое в природе существо, способное вырабатывать для себя программы существования вполне самостоятельно, без вмешательства Природы. Таким образом, человек свободен от каких-либо "встроенных", как говорят программисты, алгоритмов и изначально полностью предоставлен самому себе.
И быть может это одна из причин, по которой пчела и тигр не становятся разумными существами - они не обладают для этого достаточной внутренней свободой. Это первый сигнал того, что в задаче ИИ все должно быть просто.
Но это еще не все.
Близкие к нам генетические "родственники", в частности обезьяны, судя по всему тоже обладают некоторой гибкостью поведения и мышления. И известны случаи, когда животные проявляют проблески интеллекта: они способны соединить несколько известных им фактов и сделать на их основании вывод. Хоть и такие случаи редки, но они демонстрируют тот факт, что человек не так уж уникален в природе. Он лишь обладает какими-то важными качествами в большей мере, чем какое-либо другое существо.
Сравнительно недавно генетики пришли к выводу, что принципиальное отличие человека от шимпанзе состоит всего лишь в некоторых, казалось бы, несущественных "архитектурных" штрихах: в частности, человек обладает более слабой челюстью, но при этом он имеет в этой области сравнительно большее количество мышц, причем довольно точных мышц, благодаря которым мы собственно можем разговаривать. А шимпанзе и все остальные животные из-за силы и грубости их мышц разговаривать не способны.
Вобщем-то это и не новость, что стержнем человеческого интеллекта является речь. (Те же самые маугли, возвращенные в человеческое общество в зрелом возрасте не проявляют никаких - никаких! - признаков интеллекта потому, что они не учились говорить.) Ведь не даром задача ИИ в том виде, в каком ее сформулировал Тьюринг, требует создать нечто, способное общаться с человеком на его языке. Сделать робота-болтуна само по себе несложно, и такие роботы уже существуют, вот только не наскучит ли человеку общаться с всего-навсего алгоритмом понимания речи и генерации простых ответов? Все созданные на сегодня чаттер-боты, такие как ALICE и Elbot, скучны настолько, что вы не захотите с ними болтать больше 2-х минут. Они слишком быстро выдают полное отсутствие интеллекта, хотя поначалу могут вас немного удивить. Давайте признаем, что задача робота-болтуна фактически решена, но это решение нас не удовлетворяет по той причине... что неинтересной была сама задача.
Так значит человек умен не только благодаря своей болтливости - это умеют уже и роботы, и не только благодаря способности делать выводы на основании фактов - это умеют и некоторые животные и даже машины. Человек может обладать огромным объемом информации, на основании которой он может делать гораздо более сложные выводы, чем любое животное. Отмечу, что сложность этих выводов обусловлена лишь количеством исходной информации. Картина мира в сознании человека существенно сложнее, чем, к примеру, в сознании обезьяны, поскольку эта самая картина формируется у человека на базе опыта предыдущих поколений, который, в свою очередь, передается посредством речи - нечто, чего лишены "молчаливые" животные.
Теперь вспомним о нашем предыдущем выводе о том, что изначально человек практически не имеет никаких алгоритмов в своем "девственно-чистом" сознании. Скорее, он изначально способен лишь только идентифицировать и ассоциировать сигналы, поступающие по каналам ввода, говоря на языке электроники. Причем принципы, по которым факты выстраиваются в вереницу выводов, судя по всему достаточно просты.
Следовательно (и это есть та самая "свежая" гипотеза) человек не есть "алгоритмы + структуры данных", но скорее - очень простые алгоритмы плюс огромное количество данных. Говоря "огромное" имею ввиду действительно колоссальные объемы - иначе зачем нам миллиарды нейронов? Человек как минимум помнит всё, что происходит в его жизни, каждую секунду, но он также запоминает и все промежуточные выводы, сделанные на основе впечатлений и конкретной информации, имевшейся ранее. Любая мысль и любое действие является в каком-то смысле отголоском услышанного или увиденного ранее, хоть мы и не всегда осознаем что именно стало мотивом того или иного действия в каждом конкретном случае.
Психологи должы бы с этим согласиться - ведь ни одна мысль не возникает просто так, правда? Кроме всего прочего, мы не путаем просто так слова, или не спотыкаемся на лестнице без внутреннего скрытого мотива наказать себя... Вот новые японские роботы, в частности ASIMO, могут весьма грациозно и безошибочно спускаться по лестнице. И робот не споткнется - догадываетесь почему? Потому что у него нет информации и нет мотива совершить этот бессознательный "глюк".
Тут есть три варианта: либо для вас все это очевидно, либо вы не согласны, либо все написано до того бестолково, что вы просто ничего не поняли. Во всех случаях предлагаю хорошую задачу, которая по моему предположению стоит ближе к задаче искусственного интеллекта, чем, в частности, роботы-болтуны.
Задача эта
состоит в следующем: следует создать программу, которая была бы способна сыграть
в любую игру если ей дается лишь формальное описание этой игры. Программа должна
самостоятельно разработать стратегию и начать хорошо играть с человеком. Игра
может быть какой угодно: от самой глупой, скажем, крестики-нолики на поле 3х3,
до шахмат и даже RPG. Допускается некоторый период обучения, т.е. пробных партий
с человеком, поскольку в случае сложных игр по-видимому невозможно сделать все
выводы о стратегии игры только лишь на основании описания. Впрочем... может это
как раз таки и возможно. Пока не знаю.
Всякая игра имеет цель, имеет "мир" (плоский,
трехмерный) и координаты, и оперирует абстрактными понятими (крестики/нолики,
шахматные фигуры, карты, оружие и прочие объекты в RPG, итд). Каждая игра определяет
свое множество абстрактных объектов и называет их как угодно. Все эти объекты
настолько же абстрактны, насколько числа для человека.
Сама
программа изначально может быть в курсе некоторых базовых понятий, как плоскость,
пространство, координаты и время. По сути, для понимания условий любой игры ей
больше ничего и не нужно "знать". Понятие времени необходимо для ограничения
времени обдумывания хода.
Полагаю, это вполне решаемая задача, если учесть кое-какие
замечания, сделанные ранее в этой статье. Все должно быть просто, но вместе с
тем в процессе игры допускается использование очень больших ресурсов памяти и
процессоров.
Слабо' сделать такое?
| В начало блокнота | © 2004-2007 Hovik Melikyan |