Счетчики








Что делать? Как делать?

Ишкушштвенный интеллект

Кто знает, как делать - делают. Мы же будем учиться на их ошибках. Нужно, в конце концов, договориться, какие свойства определяют искусственный интеллект, базы знаний и экспертные системы. Чтобы не мутить воду гносеологическо-диссертационными изысками, будем считать, что это все одно и то же. А теперь о "что" и "как".

Что надо: чтобы интеллект был как крутой детектив. Если сразу известен алгоритм - нет детектива, и нет искусственного интеллекта! Здесь обязательно неизвестно, как решить задачу "найти и обезвредить". На основе неполной и неточной информации разрабатывают гениальный алгоритм, которым вооружают супермена-исполнителя. Алгоритм заводит его в тупик. Он отступает по всем правилам военного искусства Голливуда, приобретя не смертельные раны и новую информацию. На основании уточненной информации рождается новый алгоритм, еще гениальнее предыдущего и так далее. В конце концов, выпустят тех, кого поймали, и поймают тех, которых надо. И задача решена! Некоторые погибнут!

Как не надо: Не надо делать автоматические синтезаторы алгоритмов в духе Манны, Валдингера и даже блистательного Непийводы, поскольку они хотят заставить простых следователей-программеров описывать условия задачи формально. А формальный подход в данном случае совсем не то, о чем имеет право мечтать конечный пользователь. Это запись условий на специальном языке математических меньшинств в программировании, напоминающем китайско-арабскую письменность и называемом языком предикатов (сказуемых). Нормальный пользователь сделать это без ошибок не может! Кто не согласен, пусть опишет даже самую простую задачу одними сказуемыми. Русский язык поддается формализации только в случаях, которые не могут быть опубликованы.

- Вася, сделай мне программу сортировки.

- А что такое сортировка?

- Я ввожу любые числа, а программа выдает упорядоченные числа.

(через неделю)

- Ты что, Вася! Я ввожу 5 4 7 6, а твоя программа выдает 1 2 8 9.

- Так бы и сказал, что она должна использовать введенные числа.

(через неделю)

- Ты что, Вася! Я ввожу 5 4 7 6, а она выдает 4 5 6.

- Так бы и сказал, что все числа должны присутствовать.

(через неделю)

- Ты что, Вася! Я ввожу 5.4 и 7.6, а она даже два числа отказывается сортировать.

- А откуда я знал, что тебе не только целые надо сортировать? Может тебе завтра взбредет комплексные сортировать?!

(через неделю)

- Ты что, Вася! Программа больше девяти чисел не сортирует.

Надеюсь, суть этого примера понятна.

Что надо: чтобы интеллект был как кулинарная книга. Он должен понимать плохо формализуемое. Например, "добавить по вкусу", "немного подождать", "быстро охладить", "в разумных пределах". Надо оставить разумный простор для субъективного, вероятностного, нечеткого.

Как не надо: Что касается вероятностей, то это еще куда ни шло. С известной доверительностью. Но если вы придумали переменную "скорость" со значениями "медленно", "быстро" и "вжжить", то потребуется половина машинных ноликов-единичек, чтобы хранить объяснение этих слов. А вторая половина - на программы, вычитающие из "быстро" "медленно" и возводящие "вжжить" в квадрат. Для всяких таких нечеткостей компьютер настолько неприспособлен, что дешевле его "быстро" выкинуть. А еще лучше - "вжжить"!

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

Как не надо: Тут многие увлеклись языком PROLOG, но это все равно, что обучать полководческому искусству только с помощью игры в шашки "в Чапаева". Та же практическая польза. Хотя и интересно, и правила игры четко определены. А доморощенные "продукционные системы" - еще хуже. Это системы типа "если...то". Например, "Если А упало, то Б пропало". Сотни таких систем годились для дела, как красивый домик в детском песочнике для жилья, поскольку детская вера "что нам стоит дом построить" неистребима не только в кибернетике, но прежде всего в программировании. А к продукционным системам как таковым претензии нет. Они не виноваты в своей трудоемкости. Система с сотней "если...то" и система с десятью сто тысячами "если...то" - это совсем-совсем разные вещи.

Что надо: чтобы интеллект был как собака. Он должен понимать смысл вопроса. Например: "Скажите, который час? - Меня зовут Даша", "Сколько будет 2+2? - ПТУ отсюда съехало год назад. Они сейчас - Лицей", "А где похоронили Наполеона? - Это морг только нервного отделения", "Какая порода у вашей собачки? - Зато она умная, все понимает".

Как не надо: Не надо, чтобы компьютер издевался над честным человеком. Это тяжело переносится. Вы, скажем, его спрашиваете (опоздав на парижский самолет): "Как иначе можно добраться до Парижа?". А в ответ начинаете получать все возможные варианты самолетных пересадок с вовлечением всех авиакомпаний мира, включая кругосветные туры через Австралию и Гренландию. Далее пойдут возможные маршруты, с постепенным подключением железных дорог, судоходных компаний. Если компьютер не такой садист, и предложит вам два-три варианта, но на китайском языке, вам тоже не полегчает. Не надо также стремиться сложные формулы ответа переводить в легкую музыку или в стихи.

Что надо: интеллект должен напоминать толмача. Он должен иметь возможность обучения и объяснения. Например: "Два плюс два получилось у нас равным пяти не только в связи с новой экономической политикой, но и в связи с тем, что введен налог на умных, который, естественно, платят дураки".

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

Так вот, на вопрос: "Что делать?" ответ простой - вышеперечисленное. Причем одновременно. На самом деле это очень нетривиальный ответ. Потребовалось тридцать лет, чтобы понять это! Это не относится к читающим: они или моложе 30-ти или уже 30 лет об этом знают.

А.Е.Соловьев, soloviev.nevod.ru, 1994 год