В статье рассматриваются различные аспекты необходимые для построения искусственного интеллекта, в отличии от большинства статей по ИИ не рассматривается тема нейронных сетей.
Не нужно путать проблему искусственного интеллекта и вопрос, который задали одному ученному: как вы думаете, когда машина станет умнее человека, на что он ответил: вы знаете у меня дома стиральная машина, она и то умнее некоторых. На сегодняшний день компьютеры умнее человека не только в сугубо арифметических операциях, но и там где человек считал себя царем – в логических играх. На сегодняшний день компьютеру по силам обыграть в шахматы даже Каспарова.
Давайте попытаемся уточнить определение искусственного интеллекта. В литературе я нашел определение как решение сложных задач, творческих задач, с чем я согласится не могу. Некоторые авторы утверждает, что компьютер не способен писать интересные рассказы, писать красивые стихи, рисовать красивые картины. Но на сегодняшний день это не так. Возьмите например фракталы и посмотрите сами с помощью программы Fractal Explorer. Вы за считанные минуты можете нарисовать уникальные картины которые никто и никогда не видел, благодаря бесконечным множествам картин генерируемым программой. Кроме того эти картины можно нарисовать только на компьютере в графическом редакторе, и практически невозможно нарисовать с помощью красок и карандашей.
При решении большинства повседневных задач человек пользуется преимущественно памятью, незначительно загружая свой мозг, распознавая возникшую задачу и извлекая решение из памяти. А в память информация попадает в процессе многолетнего обучения. Но когда мы сталкиваемся с новой задачей, то мы не можем решить ее сходу, и тогда в полной мере пользуемся своим интеллектом. На основе начальной информации о задаче мы мысленно, то есть внутри своей виртуальной машины, пробуем различные варианты, ставим эксперименты и пытаемся подобрать метод или последовательность методов для достижения поставленной цели. И таким образом можно решить практически любую задачу, и эта особенность мозга для нас особенно интересна. Назовем эту особенность как универсальный инструмент для решения любых задач, то есть интеллектом.
В мозге человека насчитывается около 12-14 миллиардов нейронов. Нейрон способен выполнять отдельную операцию, имеет десятки тысяч входов, и выход идет на десятки тысяч других нейронов. Очень похоже на функцию в программе, неправда ли, на входе имеем несколько параметров, на выходе имеем значение функции, и эта функция может вызываться из сотен других мест внутри программы. Нейрон может работать в среднем с частотой 10 Гц, из этих чисел можно определить ориентировочно производительность мозга 120 ГГц.
Производительность современных настольных компьютеров приближается к отметке 1 ГГц, что явно не достаточно для решения задач аналогичных человеку, распознавание речи в реальном времени, распознавание образов, распознавание динамических образов и трехмерных сцен. РО является наиболее приоритетной и трудоемкой задачей для нашего многозадачного мозга. Например для неподготовленного пользователя достаточно несколько минут посмотреть на игру профессионалов в 3-D стрелялки аналогичных Quake III и у него начинается головокружение и тошнота из-за того, что его мозг не справляется с обработкой неестественных быстрых движений в игре и на другие менее приоритетные задачи не остается процессорного времени, такие как пищеварение и координация движений в пространстве.
Аналогичные явления можно наблюдать во время катания на качелях или кружась на месте. Но современные суперкомпьютеры, состоящие приблизительно из 5000 процессоров Pentium III 1000 МГц имеют производительность около 5000 ГГц, а это уже позволяет решать задачи аналогичные задачам в повседневной жизни среднего человека, но такие компьютеры в основном предназначены для моделирования ядерных испытаний.
Современные сетевые проекты объединяют более 1 500 000 компьютеров, а это при средней производительности в 500 МГц составляет колоссальную цифру в 750 000 ГГц, ни какой суперкомпьютер не может тягаться с глобальной сетью. Но этот проект Seti@Home предназначен для поиска внеземного разума и анализирует информацию, круглосуточно поступающую с радиотелескопа. То есть на сегодняшний день человечество обладает вычислительной способностью для создания искусственного интеллекта, но почему-то его до сих пор нет, идем дальше.
Как вы думаете, какой словарный запас хранится в памяти среднего человека, ну хотя бы приблизительно? По моим скромным подсчетам около миллиона, при этом подсчете необходимо учитывать, что все так называемые различные формы одного слова есть не что иное, как совершенно разные слова обладающие между собой связью, и указывающими на один объект или похожий объект с отличными свойствами. Так как на каждое такое слово мы можем выдать различную информацию, как род, число, падеж и т.д., следовательно эти пусть и слегка похожие слова хранятся в различных ячейках памяти человека. При средней длине слова в русском языке около 10 символов словарь занимал около 10 Мбайт. Программа прочитала несколько сот мегабайтов текстов из разных электронных библиотек, после этого мне и моим знакомым не удалось найти слово, которого не в этом словаре.
Вот и представьте себе производительность необходимую для интенсивной беседы двух людей. Мы формулируем свои мысли, затем собираем необходимые слова, из слов формируем фразы, которые затем произносим, причем небессмысленное предложение должно быть сформировано до того как фраза начинает произносится. Далее наш собеседник слушает нашу фразу, определяет ее основные характеристики, такие как громкость, скорость и другие индивидуальные характеристики для каждого собеседника, включая особенности произношения отдельных букв. Звуки распознаются и получаются буквы, из букв собираются и распознаются слова, из слов фразы, и только из фраз собеседник распознает наши мысли и исходя из этих мыслей вырабатывает реакцию. И далее цикл повторяется несколько раз без перерыва. Интересно то, что весь цикл выработки ответной реакции и формирование ответа для воспроизведения происходить за сотые доли секунды.
За сотые доли необходимо обработать весь имеющийся словарь (символов, слов, фраз, мыслей) и выработать реакцию. К сожалению я не могу даже приблизительно привести объем занимаемый в памяти только словарями, потому как даже полного словаря русского языка я нигде не видел. Я имею ввиду не те словари, которыми пользуются на уроках русского языка, а полный словарь включающий в себе абсолютно все слова, которыми пользуются люди. Ведь для того, что бы использовать слово в разговоре необходимо иметь точную информацию о том, что оно обозначает, а если его нет в нашем словаре, значит его вообще не существует.
А теперь поговорим о ресурсах памяти. На моем компьютере оперативной памяти 64 Мб, а для хранения словаря необходимо 10 Мб, надо еще не забывать операционную систему Window NТ 4.0. То есть уже памяти недостаточно, так как надо еще хранить программу для обработки словаря, и другую информацию. При любом распознавании слов, словарь должен находится в оперативной памяти, так как распознанные слова необходимо проверять на наличие в словаре и при возникновении ошибки вносить коррективы в алгоритм распознавания или получать дополнительную информацию для создания нового понятия и сохранения его в словаре. Кроме того, для каждого слова необходимо иметь его звуковой образ, а с точки зрения современных мультимедийных программ это WAV файл длительностью около 1 секунды 22 Кгц, то есть около 22 КБайт.
То есть для распознавания и воспроизведения звуков нам необходимо около 22 Гбайт, а это не поместится даже на моем винчестере. Конечно, на суперкомпьютере можно поставить памяти сколько угодно, но это будет очень дорого для игрушки которая сможет правильно читать слова и в ответ на одно сказанное слово будет произносить другое или несколько слов. Не нужно забывать, что для ведения беседы необходим еще словарь фраз и предложений, потому как только предложение выражает законченную мысль.
Но это проблемы только технические они демонстрируют, что на сегодня невозможно создание даже просто говорящей программы на настольном компьютере, но зато это вполне возможно на суперкомпьютере или на сетевом суперкомпьютере, которые сутками бессмысленно ломают демонстрационные никому не нужные зашифрованные сообщения. Но в недалеком будущем лет через 10 – 20 такие вычислительные мощности будут стоят на рабочем столе и решать наши с вами задачи, если их не загрузит Билл Гейтс, имя которого знает даже Word, назойливыми анимационными роликами, так как за 10 лет производительность повышается в среднем в 1000 раз.
На сегодняшний день самым мощным инструментом для решения задач, то есть интеллектом обладает человек вот и посмотрим как человек решает задачи и откуда он берет эти решения. Не будем забывать, что нас учат 10 лет в школе, затем 5 лет в институте, но по большому счету люди учатся всю жизнь. Возьмем за основу молодого инженера, который вполне способен решать различные задачи, но его интенсивно программировали на решение различных задач в течении 22-х лет и в результате в голове есть куча задач и для каждой из них одно или несколько решений, ну или не одного – например вечный двигатель. Вся эта куча в голове представляет собой хаос в различной степени, так как из всей кучи решений очень многие решения не правильные, или не рациональные, или не оптимальные.
Потому как учат нас разные люди в разное время, и зачастую когда один учитель говорит “делать надо так”, то другой с такой же уверенностью говорит “как раз так делать нельзя” или сегодня мы строим коммунизм, а завтра мы его ломаем. И таким образом каждый из тех кто нас программирует ошибается по-своему, а расплачиваться за ошибки приходиться нам самим.
Если взять человечество в целом то в начале развития оно ничего не знало, а на сегодняшний момент мы видим совершенно иную картину, человечество вырвалось за пределы Земли и за пределы солнечной системы. Современные технологии помогают человечеству в быту, при лечении заболеваний, в работе и на войне, наука с помощью современных технологий приблизилась к границам вселенной. Откуда весь этот прогресс, ведь та информация которую мы получаем сегодня из газет, журналов, телевиденья, радио, библиотеки, от друзей, знакомых тогда этого ничего не было.
Отсюда вывод только один: вся эта информация была получена из окружающей среды, методом проб и ошибок, то есть перебором – единственным методом позволяющим приобретать новые знания. Что делает человечество и сегодня производство четко выполняет технологический процесс для получения качественной продукции из качественных материалов, в то время как ученные исследуют новые более прогрессивные методы, затрачивая большие деньги на анализ всех возможных вариантов производства продукции для поиска наиболее оптимального варианта, что и есть перебор.
После того как мы прошли полный курс обучения, алгоритм решения любой задачи на примере прохождения лабиринта выглядит приблизительно так. Возникшую задачу можно сравнить с тем, куда мы попали в лабиринте, а решение задачи можно сравнить с нашими действиями направленными на то, чтобы выйти из лабиринта. Если вы попали в квадрат р783, тогда решение будет выглядеть приблизительно так: идти надо направо, вверх, налево, направо, … вниз, направо, вверх направо и там вы увидите выход. И так для нескольких точек в нашем лабиринте мы имеем стандартные решения. Для всех задач невозможно иметь стандартные решения, так как не хватит места в памяти для описания всех задач и для хранения всех алгоритмов решения, и тут возникают задачи нестандартные.
Пример решения нестандартной задачи на базе стандартной: если вы попали в квадрат р782, тогда решение выглядит так: кратчайшим путем попасть в ближайшую точку, которая имеет стандартное решении, то есть р783, а затем выполнить действие для решения этой задачи. Но такой алгоритм работает, только если расстояние от нашей задачи до стандартной задачи имеющей решение довольно небольшое, а это бывает далеко не всегда. Иногда возникают принципиально новые задачи, которые не удается решить на базе своего опыта, потому что его просто нет. Тоже интересный момент ведь для того, чтобы сделать такой вывод необходимо проанализировать весь имеющийся многолетний опыт. Например, нестандартная задача о лампе и трех выключателях опубликованная на заглавной странице, тогда приходится искать двери которые закрыты, и подбирать к ним ключи, а иногда приходится ломать стены, чтобы получить новые возможности для поиска решений в пространстве.
Только в таких нестандартных ситуациях и включается то, что я называю интеллект – самый медленный и в тоже время самый сильный инструмент решения задач. А решение выглядит приблизительно так: мы стоим в комнате из нее три выхода и мы не знаем куда они ведут, потому что мы здесь никогда не были, для того, чтобы узнать куда они ведут нам надо последовательно пройти эти разные пути и только когда мы их пройдем мы узнаем куда нам идти. Но в начале пути все двери могут быть абсолютно одинаковыми, и мы не можем получить от них хоть какую-нибудь полезную информацию, которая поможет нам сделать правильный выбор, кроме порядкового номера. Но то же самое расположение дверей может относиться к совершенно другой части лабиринта.
Ну, вот с естественным интеллектом вроде разобрались. Принципиально других более сложных задач мне не известно. А сложность практических задач связана прежде в сего с большим объемом информации, недостаточной вычислительной мощностью, неточной формулировкой или отсутствием необходимой информации для решения задачи, и как следствие неточное, вероятностное решение.
И чего же нам не хватает для создания искусственного интеллекта. Построение ИИ необходимо начинать с создания словаря слов естественного языка, потому как естественный язык является базой для построения естественного интеллекта. Как алфавит является базой для построения слов, и никому не приходит в голову идея придумать еще несколько новых букв. Тем не менее, я не видел ни одной программы, которая знала бы все слова русского языка, не говоря о программе-переводчике с одного языка на другой, которая значительно проще ИИ.
Не смотря на то, что для создания переводчика есть все необходимые технические условия, даже на настольном компьютере, то есть достаточно вычислительной мощности процессора и памяти, до сих пор нет программы, которая могла хоть как бы сравниться с человеком по качеству перевода. По скорости программа даже опережает человека, но качество остается желать лучшего, часто встречаются незнакомые для программы слова, после перевода зачастую теряется смысл и его понять труднее, чем в оригинале, иногда в предложение попадают слова совершенно из другого контекста.
На мой взгляд, на сегодня основная проблема создания ИИ не техническая, а заключается в том, что всю информацию людям приходиться вводить вручную с помощью клавиатуры. Используя это не совсем удобное, низкоскоростное устройство для ввода информации нам необходимо ввести огромные объемы информации, те которые вводят нам в процессе обучения около 22-х лет на естественном языке. Совсем другое дело научить компьютер получить информацию из окружающей среды (слушать, видеть, понимать), посадить его за телевизор и пусть он сам учится, собирая необходимую информацию из газет, журналов и задавая необходимые вопросы на естественном языке. Что в принципе и делает уже очень давно интеллект естественный, когда ребенок учится слушать, видеть, говорить и задает бесконечное количество вопросов. На базе этого несложного и естественного алгоритма мы и сможем построить так необходимый для нас искусственный интеллект.
А пока мы используем для ввода информации только клавиатуру, все наши разрозненные программные попытки моделирования ИИ, построения программ перевода на различные языки будут иметь успех исключительно благодаря теории вероятности.
Источник: http://www.ocrai.narod.ru/buildai.html
(Распознавание образов и искусственный интеллект)
ИИ от Prof
E-mail
© Prof 2003-2004
08.02.2004
1/3