новости  материалы  справочник  форум  гостевая  ссылки  
Новости
Материалы
  Логические подходы
  Нейронные сети
  Генетические алгоритмы
  Разное
  Публикации
  Алгоритмы
  Применение
Справочник
Форум
Гостевая книга
Ссылки
О сайте
 

2. Критические оценки существующих представлений. Идея интегрального подхода

* * *

В этой части будут рассмотрены положения интегральной теории, основанные на строгих доказательствах. Следует отметить что данный материал концептуально достаточно сложен и требует для своего понимания внимательного прочтения. В завершении имеется пункт "Резюме", содержащий все основные идеи в сжатом виде.

* * *

Итак, существующие представления об искусственном интеллекте (далее - ИИ). Как это ни странно, но несмотря на многочисленность своих приверженцев и обилия всяческих ресурсов (литературы, форумов, Web-сайтов, конференций и т.д.) до сих пор нет четкого обоснованного ответа на простейший изначальный вопрос: "что такое интеллект?". Существует только интуитивное представление о нем как об аналоге человеческого мозга. Поэтому многие разработчики компьютерных программ и сложных технических устройств широко пользуются этой ситуаций, говоря что их разработка обладает ИИ. В связи с этим возникло множество "прикладных" теорий ИИ, рассматривающих ИИ в основном как одну из многочисленных ветвей информатики. Соответственно и рассказ об ИИ в этих работах представляет собой обзор различных специфических алгоритмов. В чем отличие этих теорий от классической теории алгоритма и методов вычислительной математики и на каких основаниях их называют теориями ИИ, остается загадкой.

Помимо этого есть работы научно-популярного (больше популярного) характера. Но там взгляд на ИИ основан не на строгой стройной теории, а на интуитивных соображениях. А этого, конечно, мало для создания ИИ.

Поскольку теория алгоритма и вычислительная математика - вещи достаточно серьезные, то постепенно первая ветвь взглядов на ИИ становилась преобладающей. Настолько преобладающей, что сегодня в глазах большинства ИИ оказался прочно связан с областью экспертных программ, нейронных сетей, генетических алгоритмов.... всего и не перечислишь. Однако существует одно общее свойство, объединяющее их. Алгоритм. В основе всех их лежит алгоритм - набор инструкций, заложенный в программу ее создателем. Посмотрим насколько реально отвечает алгоритм требованиям к ИИ, даже в его интуитивном понимании.

Для этого осветим ряд вопросов:

  1. Зачем вообще нужны альтернативные подходы создания ИИ.

    В любой области естествознания альтернативные подходы к решению той или иной проблемы появляются тогда, когда становиться ясно что традиционные пути не могут ее решить. Факты, доказывающие это предположение, делятся на практические и теоретические. В случае с ИИ можно указать следующие замечания существующим путям его создания.

    1.1 Практические факты.

    Прежде чем перейти к их рассмотрению необходимо выяснить что в итоге мы хотим получить. Что должно представлять из себя это нечто, под названием "искусственный интеллект". Когда только все это начинало создаваться, ИИ виделся своим создателям ни много ни мало, а как искусственный разум, во всем превосходящий разум человека. Немногие, правда, говорили об этом вслух - слишком уж грандиозной была затея. Но конечная цель была именно такой. Так было в начале. Из этого представления об ИИ мы и будем исходить. Разумеется оно далеко не строгое, но чтобы провести критические оценки идей и решений в области ИИ, наработанных на сегодня, этого вполне хватит. Итак, что реально работающего мы имеем теперь? Конечно же это экспертные системы - компьютерные программы, заменяющие человека (вернее заранее известный, хотя и довольно сложный, алгоритм его работы по решению однообразной задачи) в некоторой отдельно взятой узкой области. Большего на сегодняшний день пока нет. Сравнивая теперь то что хотели и что имеем, приходим к однозначному практическому выводу - ИИ не создан. Да простят создатели экспертных систем, но пока мозг человека намного превосходит все их творения. И даже более того - за полувековую историю создания ИИ дело так и не сдвинулось с мертвой точки. Идеи, лежащие в основе всех экспертных систем, были придуманы еще в середине прошлого века. И если они действительно верны, то почему от них пока нет практической отдачи (увеличение быстродействия и объема обрабатываемой информации не в счет - оно достигается за счет улучшения аппаратуры)?

    Всем известно как далеко вперед шагнуло в последнее время программирование. Средства Интернета, обилие ресурсоемких графических операционных систем и приложений, анимационные компьютерные фильмы и игры, графика которых малоотличима от кино, виртуальная реальность - вот лишь небольшой перечень атрибутов информационной революции. То, что вчера было доступно только узкому кругу профессионалов, сегодня можно увидеть где угодно - начиная с рабочих мест сотрудников офиса и заканчивая домашними компьютерами. Даже беглого взгляда достаточно чтобы понять насколько несоизмерим уровень сегодняшнего программного обеспечения и того, что было всего каких-нибудь 10-20 лет назад, не говоря уже про более ранние времена. Создается стойкое впечатление что принцип работы ИИ не имеет к программированию никакого отношения (да и как тут иметь - ведь результат работы любой программы предопределен заранее, в то время как от ИИ требуется самостоятельно находить изначально неизвестное решение). А иначе как объяснить тот колоссальный отрыв в развитии ИИ и обыкновенных программ? Ту пропасть, которая день ото дня становиться все шире и шире. Не слишком ли сильно затянулся переход количества в качество?

    Что принципиально нового дали для конечного пользователя современные программы ИИ по сравнению с программами типа ЭЛИЗА (не учитывая, конечно, рост объема данных и скорости их переработки, полученных за счет улучшения аппаратных средств и алгоритмов работы с базами данных, не имеющих с ИИ ничего общего)? Ничего. Так же как и 50 лет назад мы не видим думающих машин способных успешно работать в автономном режиме в реальном (а не виртуальном) мире - основного что должен был дать ИИ. Все средства ИИ, что мы имеем сейчас, фактически представляют из себя СУБД, работающие с сетевой моделью базы данных и имеющие возможность обработки нечетких данных заданного типа. Все это, конечно же, совершенно не то что хотелось бы иметь. В чем же причина такого застойного состояния ИИ на фоне общего подъема уровня технических средств во второй половине 20-го века? Очевидно что возможны лишь две причины: либо прогресс в области разработки ИИ идет очень медленно, либо он не идет вовсе. Первое маловероятно, так как полвека (а серьезно заниматься проблемой ИИ начали сразу после 2-й мировой) срок немалый даже для решения сложных задач. За это время можно хотя бы если не решить задачу, то уж во всяком случае наметить возможные пути ее решения и получить по ним конкретные обнадеживающие результаты. Наиболее яркие "ровесники" ИИ - управляемый термоядерный синтез и полеты в космос уже дали кое-какие плоды. В УТС хоть и со скрипом, но все же был получен положительный энергетический эффект. К дальним планетам Солнечной системы и звездам мы еще не полетели, но уже есть пилотируемые орбитальные корабли и полет на Луну, автоматические межпланетные зонды. То есть прогресс идет, хотя и страшно медленно. С ИИ так не получилось: нет не только готового результата, даже возможных путей решения как не было, так и нет (все найденные к настоящему времени "пути" фактически сводятся к требованию увеличить мощность аппаратной части в несколько раз, давая при этом какие-то проценты выигрыша в производительности, т.е. все они являются экстенсивными). Есть лишь неуклонный рост болтовни, выдающей желаемое за действительное. Значит, приходится признать что прогресс ИИ не просто близок к нулю, а равен ему.

    1.2 Теоретические факты.

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

    1.2.1 Для любого механизма можно построить программный эмулятор. А любая программа представляется в виде алгоритма. Таким образом все сказанное ниже можно распространить на алгоритм в любой его форме - аппаратной или программной.

    При переходе механизм->эмулятор особое внимание следует обратить на то, что в эмуляторе отражаются только те свойства механизма, что намеренно создавались его конструкторами. Например эмулятор микропроцессора отражает его способность обрабатывать данные, но никак не химический состав, механические особенности (твердость, масса, пространственная конфигурация) и т.д.. Поскольку все без исключения свойства реального материального объекта учесть невозможно (хотя бы уже из-за ограничений, накладываемых квантовой механикой) и учитывая что абсолютно все технические устройства появляются сперва как математическая модель в голове своего создателя, то с точки зрения алгоритма работы устройства переход механизм->эмулятор справедлив. Истинное поведение механизма, формируемого всеми его свойствами, при этом может отличаться от поведения его математической модели (что и учитывается в интегральной теории). Однако в классических представлениях об ИИ как об некой программе в любом случае рассматривается именно математическая модель объекта - алгоритм работы его эмулятора. Поэтому ограничения, присущие алгоритму, полностью сохраняют свою силу при анализе классических методик создания ИИ.

    Посмотрев определение алгоритма (например в энциклопедическом словаре по математике), видим что он состоит из 7-ми частей:

    • множество исходных данных
    • множество результатов
    • множество промежуточных результатов
    • правило начала
    • правило переработки
    • правило окончания
    • правило извлечения результата

    Пока все множества и правила конечны все работает прекрасно. Но рассмотрим предельный случай - когда мощности указанных множеств (т.е. число их элементов) бесконечны. Что тогда мы будем иметь? Теоретически вроде бы ничего существенного не происходит - скажем правило переработки типа y=x+1 будет выполняться одинаково, в не зависимости от того бесконечно количество чисел x или нет. Но вот на практике все далеко не так гладко. Алгоритм должен кто-то выполнять. Обычно этим занимается компьютер - конечная система. В результате чего возникает ограничение на x и y. Очевидно что все эти соображения легко переносятся с простых формул на более сложные правила начала, переработки и окончания. Так что никакой бесконечностью на практике и не пахнет. Для обычных программ этого и не нужно - число комбинаций состояний памяти современного компьютера настолько велико, что с легкостью позволяет решать любые задачи такого типа. Но с ИИ такой номер уже не проходит - изначально нацеленный на объятие всего внешнего мира (поскольку от него требуется умение решать произвольную задачу), который как известно бесконечен, он требует предоставления ему бесконечных ресурсов. И как бы ни было велико число возможных состояний компьютера - по сравнению с бесконечностью оно ничто. Таким образом ИИ просто не может быть универсальной программой - не хватит ни материальных, ни временнЫх ресурсов для создания компьютера способного такую программу переработать (да и создать саму программу - тоже).

    1.2.2 Второе принципиальное ограничение, не позволяющее создать ИИ на классических основах - ограничение множества исходных данных и результатов по типу элементов. Простейший пример - программа предназначенная для обработки целых чисел. Ни под каким соусом ее невозможно "заставить" обрабатывать данные другого типа - комплексного, символьного и т.д.. Подобная жесткость входа и выхода программы не дает возможности сделать ее восприимчивой к типам данных, не предусмотренными ее создателями. Но можно ли предусмотреть абсолютно все?!

    1.2.3 Особенно туманным является вопрос об изменении одной программы другой программой или даже генерации одной программы другой. Никто до сих пор еще не решил этой задачи. Вопреки воле своих создателей сделанный по такому принципу "ИИ" не генерировал никаких новых алгоритмов и, конечно, не мог решить задачу, если решение не было известно его создателям. Смотрел на программу как на набор данных и только. То есть был подобен обыкновенному "неинтеллектуальному" компилятору. Попытки заставить его хоть что-то создавать успехом не увенчались. А какой же это интеллект, если он не может генерировать своих алгоритмов, подобно человеку? Любая программа - это воплощение определенного круга идей ее создателя. Естественно что она просто не в состоянии оперировать тем, что выходит за их рамки. И это третий непреодолимый барьер на пути к звезде ИИ.

    Таким образом ИИ невозможно сделать по принципу универсальной программы в которой все заложено заранее. Но на существующих подходах сделать его самообучающимся также невозможно. Причина этому - сама постановка задачи ИИ, в корне отличающаяся от постановки задачи создания обычных программ. Принцип работы всех программ опирается на математический аппарат (булева алгебра, логика, что угодно). Работает же матаппарат только с объектами, свойства которых известны заранее, уже на этапе постановки задачи, поскольку невозможно оперировать с объектами если неизвестно что они собой представляют. Отсюда и фиксированность множеств входа и выхода программы, жесткость логики ее работы. Следовательно любая программа не должна содержать каких-либо неопределенностей, двусмысленностей и т.п.. А смысл ИИ как раз и заключен в том чтобы самостоятельно находить и обрабатывать то, что неизвестно его создателям. Т.е. задача ИИ неопределенна уже в принципе, по своей сути. Матаппарат уже невозможно применить к решению задачи ИИ в чистом виде, ввиду его выхода из области своей применимости. Необходимо что-то еще.

    Что конкретно пока неизвестно. Теория, которой посвящен данный документ, строится на принципе взятия этого "что-то еще" из физической среды функционирования ИИ. Т.е. ИИ, рассматриваемой в данной теории, неотделим от среды своего существования и не может быть перенесен на любой произвольный носитель. В этом заключена идея интегрального подхода. ИИ рассматривается именно в его начальной формулировке - искусственный разум, во всем превосходящий разум человека. И далее упоминая понятие ИИ мы будем подразумевать под ним именно такой облик, а не аналог существующих программ с нечеткой логикой, нейронных сетей и т.д..

  2. Недостатки современных методик проектирования "интеллектуальных" систем.

    Исторически первыми были попытки создать ИИ-программу при помощи различных специальных языков программирования. Это были функциональные языки (например Лисп), языки логического программирования (Пролог) и некоторые другие. Далекие потомки этих языков, сильно изменившись, и теперь не оставляют надежд приблизиться к созданию ИИ. Но поскольку ничего нового в классическое определение алгоритма эти средства разработки программ не добавляют, создать ИИ с их помощью невозможно. Так же как и в случае обыкновенных языков, программист придумывает принцип решения задачи самостоятельно "от и до".

    Рассматривая классическое определение алгоритма, нельзя не упомянуть о появившихся в последнее время различных его "расширениях", таких как виртуальные нейронные сети, генетические и "мягкие" алгоритмы и т.д. и т.п.. В основе всех этих устройств лежит следующая идея.

    Программа A меняет данные в некоторой области B. Программа C интерпретирует содержимое области B не как данные, а как набор исполняемых кодов (или как их чаще называют - правил) - возникает программа D. Имеется также обратная связь между результатами выполнения программы D и программой A. В результате чего появляется возможность направленного изменения области B.

    В реальных системах "искусственного интеллекта" все, конечно же, происходит намного сложнее: код программы A также может быть сгенерирован другой программой. Та, в свою очередь, сгенерирована следующей и т.д. (в этом случае происходит построение т.н. метаправил - правил управления правилами). Можно сгенерировать сразу несколько областей B и затем комбинировать их содержимое, отбирая и опять скрещивая наиболее перспективные комбинации самым затейливым образом (на этом, в частности, основана работа генетических алгоритмов). Обратная связь также устроена далеко не тривиально. Одним словом на сегодня придумано уже столько различных путей использования указанного принципа работы системы ABCD, что всего и не перечислить. Однако....

    Однако система ABCD не имеет никаких принципиальных преимуществ перед обычными алгоритмами! Она имеет те же самые ограничения, что и "простые" алгоритмы. Например функционирование системы ABCD в рамках конечного устройства (компьютера) не позволяет упразднить пункт 1.2.1. И даже наоборот, присутствие дополнительных программ (в простейшем случае - A и обратной связи) способствует только уменьшению свободного места для размещения C и D. За рамки определения алгоритма ни одна программа системы ABCD также не выходит. Программа A рассматривает программу D как набор данных - область B. Об каком-то "осмысленном понимании" логики работы D программой A говорить нельзя. Просто работает принцип обратной связи "горячо-холодно", только и всего.

    Пункт 1.2.2, ограничение по типу элементов. Существование процесса генерирования правил еще не говорит о том что эти правила могут иметь произвольную структуру. Даже в лучшем случае они могут быть только произвольной комбинацией неких "атомарных" правил, уже неделимых далее. В худшем - структура комбинации должна придерживаться заранее оговоренного шаблона (например структура *.EXE - файла как раз и есть пример использования такого рода шаблонов). Иначе программа C попросту не "поймет" информации из B, следовательно не появиться и программа D. Таким образом применение системы ABCD не отменяет ограничение по типу элементов. Более того, ситуация в большинстве случаев лишь усугубляется, поскольку в реальных системах любое правило, в т.ч. и "атомарное" на самом деле состоит из элементарных инструкций для микропроцессора. Тем самым делается дополнительное сужение области возможных команд и их комбинаций.

    Ну и наконец вопрос генерации программы программой - п. 1.2.3. Очевидно что ни о никакой произвольности в генерации программы D программой A не может идти и речи. Система ABCD никогда не сможет выйти за пределы круга, очерчиваемого "атомарными" правилами и их комбинациями, доступными для корректной интерпретации программе C. И если решение задачи не входит в этот круг, то можно довольствоваться только наиболее близким приближением. Т.к. создатель системы ABCD не знает заранее как решить задачу, то общем случае он не сможет создать такие "атомарные" правила, метаправила и шаблоны их структур, что позволили бы гарантированно достичь цели. Если же решение известно создателю ABCD изначально, то "интеллектуальное" предназначение системы теряет силу, поскольку "смысл ИИ как раз и заключен в том чтобы самостоятельно находить и обрабатывать то, что неизвестно его создателям".

    Подводя итог оценки "интеллектуальных" систем на алгоритмической основе было бы не совсем правильно говорить об их полной бесперспективности. Конечно ИИ на таких принципах построить нельзя, но применение этих устройств в тех областях, где требуется выбирать лучшее решение из массы возможных работоспособных, вполне оправдано. Но настоящий ИИ остается для них все еще недосягаемым. Вообще же эти системы следует рассматривать в качестве переходного этапа от алгоритмов к ИИ.

  3. Сети "разума"

    Широко распространено мнение что компьютерные сети будто обладают некими пропульсивными преимуществами перед одиночными компьютерами. Так ли это? Любая компьютерная сеть - это группа обычных компьютеров, соединенных друг с другом линиями связи. Поскольку искажения смысла информации при ее передаче от одного компьютера к другому не происходит, то следовательно линии связи никак не участвуют в ее логической обработке. Поэтому получается что компьютерная сеть из N компьютеров (каждый из которых имеет один процессор и один накопитель памяти) эквивалентна одному большому компьютеру с N процессорами и N накопителями памяти. А он в свою очередь - обычной однопроцессорной машине с одним носителем памяти, поскольку мы можем программным путем проэмулировать неограниченное число процессоров и накопителей. Т.е. с точки зрения алгоритма сеть и компьютер эквивалентны. Есть, конечно, рост производительности сети по обработке информации по сравнению с одиночным компьютером. Но если для ИИ нужны бесконечные ресурсы (см. п. 1.2.1), то не все ли равно в какое конечное число раз повысится быстродействие? Преимущества сети выражаются лишь во влиянии на распределенную в сети информацию множеством пользователей. Однако не нужно забывать что основной принцип ИИ - решать задачи без помощи людей.

  4. Зачем нужен сам искусственный интеллект.

    Есть веские основания полагать что ИИ - не просто новое научно-техническое достижение, а гораздо более глобальное начинание. Точно также как появление механических двигателей полностью преобразовало транспортную систему мира, так и появление ИИ вызовет коренной перелом в жизни человечества. Только с его помощью можно ожидать получение неограниченной молодости и окончательную победу над болезнями. Этот вывод вытекает из анализа ситуации сложившейся сейчас в медицине. Ситуация тут примерно та же что и с самим ИИ - гарантированно лечатся только "простые" болезни. Для получения бессмертия необходим качественный рывок вперед, предпосылки к которому сейчас пока отсутствуют. Освоение космоса, экологическая проблема и пр. - того же поля ягоды. И если рассматривать эти направления как аналогию транспортных средств, то ИИ - их двигатель. Без собственной мощной силовой установки, на одних только усилиях людей, они не преодолеют тот крутой подъем что встал на пути к той же неограниченной молодости. Нужны доказательства - проведите статистику за последние 10-20 лет и оцените ее с критической стороны. Маловероятно что вы сможете обнаружить значительный прогресс, подобный тому что был на более ранних этапах развития этих тем.

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


Предыдущая Содержание Следующая