Идеология и технология ИИ.

2. Технология.

Предисловие.

С давних времён человек мечтал о неживом разуме, правда, обременяя этот разум обязанностями раба. Когда же были созданы первые электронные вычислители, то апологеты кибернетики и вовсе вошли в раж. Им казалось, что прогресс в области электроники движется такими темпами (а темпы, прямо скажем, оказались ужасающе высокими!), что не за горами время, когда если не андроид, то хотя бы большущий железный ящик с обилием перемигивающихся лампочек на крутом челе станет вести философские беседы о смысле бытия.

Создатели Bendix’ов и Cyber’ов мыслили более реально, ведь они хорошо представляли возможности своих детищ, однако появились такие люди как программисты. Этих работников перфокарт и листингов нисколько не смущала слабость подвластных им ламповых созданий, ведь феномен времени был для них второстепенным. Так были предприняты попытки (и не совсем безуспешные, кстати) формализовать и реализовать эмоции и процессы логического вывода в виде колоды перфокарт.

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

2.1. Что мешает?

Так что же мешает старателям гигабита и мегафлопса? Почему до сих пор ИИ не создан хотя бы в виде математической модели? Напрашиваются два ответа: либо интеллект не алгоритмизуем в принципе, либо поиски ведутся совершенно не в том направлении.

Если интеллект не алгоритмизуем в принципе, то имеет место либо ситуация номер один, либо общий случай ситуации номер два из первой части статьи.

Предположим, что интеллект всё же поддаётся алгоритмическому описанию, т. е. Имеет место ситуация под номером три из первой части. Что должны делать программисты? А точнее, формализаторы такого алгоритма.

Они должны, в первую очередь, собрать исчерпывающие знания о функционировании системы, причём не должно остаться непознанным ни одного состояния и ни одного перехода системы из состояния в состояние. Это подход к разработке “снизу”. Задача, прямо скажем, нетривиальная. Вряд ли её можно решить хотя бы за миллиард лет, если учесть количество информации, заключённое в готовой мало-мальски интеллектуальной системе. Значит, такой путь, которым долгое время двигалось всё программирующее человечество, не верен.

2.2. Кто виноват и что делать?

Найти другой путь – вот задача! Тогда применим подход разработки “сверху”. Самое простое – написать такой алгоритм, который может самостоятельно формализовать работу интеллекта, а мы будем подбрасывать ему не подробные данные о переходах и сотояниях, а только правила формирования таких переходов и состояний, которые мы знаем из собственного опыта. Но тогда встаёт вопрос об исследовании таких правил, ведь не все они нам уже известны. Ничего страшного! Придумаем ещё один алгоритм ещё более высокого уровня!….и ещё…и ещё…

К сожалению, такая цепочка быстро упирается в необходимость создания “алгоритма абсолютного познания” или “общей теории всего” в терминах Станислава Лема. Другими словами, ситуация номер три вырождается в ситуацию номер один, что означает смерть метода. Явный тупик?

Не очень. Есть другой способ – создавать не то, что нам хочется, а то, что получится, выбрав для управления процессом какой-либо простой метод, например, отбрасывание неудачных, на наш взгляд, направлений.

Не напоминает ли это широко упоминаемый в различных религиях метод? Ещё как напоминает! Тот заветный, даже ветхозаветный и единственный оставшийся нам способ – это стать локальным богом, творить существ с желаемыми параметрами. Это и есть путь Эволюции.

Какие ресурсы мы должны затартить на решение задачи таким способом? Первое, что нам необходимо, это создать условия для развития процесса в нужном направлении, т. е. окружающую среду для вновь взращиваемых существ, которая способствовала бы появлению особей с необходимыми нам свойствами. Второе, существ должно быть достаточно много, чтобы из всего разнообразия результатов мы смогли побыстрее выбрать наиболее нам подходящий. Можно отдать путь эволюции на откуп случайности (по Дарвину), а можно и подправлять время от времени сами объекты (скрижали там, мор, наводнения, неопалимая купина, то-сё).

И первое, и второе – задачи не очень простые, но они гораздо проще различных способов формализации непознанного.

2.3. Из чего же, из чего же из чего же…..

На какой же основе можно сделать интеллектуальную систему, раз мы так сильно этого захотели?

Есть несколько весьма популярных инструментальных подходов, развиваемых в настоящее время.

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

Любители баз данных исходили из простого соображения, мол, если интеллектуальные системы должны обладать огромным запасом знаний, то базы данных – как раз то, что спасёт человечество. Существует и работает уже около 20-ти лет проект, http://www.cyc.com/ - Cyc Knowlege Server, в котором используется база данных в качестве хранилища знаний и программа, эти знания пополняющая. Существенным достижением участники проекта считают то, что их детище в один прекрасный день начало задавать вопросы. К сожалению, работа очень далека от завершения по причинам, указанным выше.

Очевидные трудности с реализацией человеческих понятий средствами классической булевой логики подвигли исследователей изобрести новое направление – нечёткую логику. Нечёткая логика расширяет состав понятий, составляющих логику булеву, становясь механизмом, более приближенным к способам человеческого мышления. Однако, несмотря на название “нечёткая” она остаётся совершенно чёткой, т.е. все понятия и операции определены совершенно точно и чётко, “нечёткой” является лишь трактовка входных данных и результатов вычислений. Принципиально, подход ничем не отличается от предыдущих двух, предоставляя разработчику всего лишь более удобный инструмент по формализации некоторой области своих (!) знаний.

Это направление сейчас чрезвычайно модно и считается очень перспективным. Но здесь имеются очень серьёзные технологические и методологические трудности. К слову, реальный квантовый вычислитель существует пока что лишь в размере 8-ми элементов, а для квантового вычислителя вообще пока придуман лишь один полезный алгоритм – для нахождения разложения числа на множители. Но некоторые учёные почему-то считают квантовые компьютеры перспективной базой для создания интеллектуальных систем, видимо, на основании того, что квантовые компьютеры обладают исключительно высокой скростью выполнения некоторых специфических операций. Почему именно такие операции пригодятся при создании искусственного интеллекта, энтузиасты квантовых вычислений предпочитают скромно умалчивать.

Изначально созданные для целей распознавания образов, нейронные сети также нашли широкий отклик среди энтузиастов искусственного разума. Ещё бы, ведь способность обучения и даже самообучения была заложена создателями непосредственно в физиологию нейронных сетей! Нейронные сети хороши простыми алгоритмами функционирования и обучения, а также чудовищной гибкостью. Существует и масса компьютерных моделей различных типов нейронных сетей. Другими словами, построив специфическую нейронную сеть и наделив её несложными механизмами самомодификации, можно бы взяться за чашку кофе и ждать того счастливого дня, когда виртуальное существо произнесёт первое “агу-агу”. Казалось бы, вот они, компьютеры, бери да делай. Но быстродействия существующих суперкомпютеров маловато даже для функционирования единичной системы, а уж тем более для эволюции нескольких систем. Таким образом, аппаратная, либо программно-аппаратная реализация представляется единственным способом построения мало-мальски крупной интеллектуальной системы.

Есть ведь замечательные микросхемы, производимые широко известной в узких кругах фирмой Xilinx, называются они PGA, другими словами, программируемый массив ключей. Прелесть этих микросхем в том, что хотя они и являются схемами жёсткой логики, их конфигурацию чрезвычайно легко перепрограммировать, точнее, конфигурация создаваемого устройства загружается в микросхему из внешнего источника перед началом работы. Есть у них и один недостаток – двоичность представления данных. Ведь для работы нейронной сети потребуется осуществлять несколько умножений в каждом нейроне при каждом шаге функционирования, а, как известно, реализация умножителя расходует очень большое количество кремниевых ресурсов. Можно, конечно, сделать один умножитель для всех входов нейрона, благо нам требуется умножение с накоплением, но тогда мы резко потеряем в быстродействии. Хорошим способом усовершенствования PGA является добавление в них элементов аналогового тракта, т. е. отказ от двоичного представления данных. Таким образом можно существенно снизить количество ресурсов, потребляемых одним нейроном при незначительном увеличении энергопотребления и отсутствии потери быстродействия. Есть у PGA ещё одно ограничение – количество возможных межсоединений на кристалле не безгранично. Притом, конфигурация соединений между нейронами должна меняться в процессе работы, а это приводит к необходимости наличия внешнего трассировщика соединений, программы, решающей, как известно, очень сложную задачу, признанную в настоящее время NP-полной.

2.4. Готовы ли толстосумы финансировать подобные проекты?

Толстосумам такой способ разработки кажется слишком рискованным. А вдруг не получится? Или получится совсем не то, что надо? Или, ещё хуже, получится, вроде бы то, но потом оно как сделает что-нибудь не то! А гарантийные обязательства? А компенсации за нанесённый ущерб? Жуть берёт…

К слову, некоторые товарищи смогли выбить кое-какие гранты, например, http://www.cs.usu.edu/~degaris/. Однако, по причине отсутствия ощутимых результатов эта работа была свёрнута.

Военные! Вот кому нужны не очень умные, но выносливые зольдаты! Да такие, чтоб ни в воде не тонули, ни в огне не горели, с походной ремонтной мастерской и питанием от солнечных батарей или ядрёного реактора…И тут не всё в порядке. Генералы ведь любят послушных солдат. А у нас что получится? Неизвестно. А строем будет ходить? А честь отдавать?.. Поэтому генералам больше нравится путь Великого Программиста, где всё по Уставу.

2.5. Добровольные общества по конструированию электронных мозгов – надежда всего прогрессивного человечества.

Э-э-э-х-х-х-х! Придётся опять энтузиастам стараться. Делать дело не ради длинного доллара или юаня, а на совесть, класть, так сказать, машинное время на алтарь прогресса. Растить и пестовать непослушных электрических деток, стравливать их в интернетных баталиях, отдавая заработанные непосильным трудом материальные блага за трафик. Есть, конечно, и опасность. Что если уже не виртуальный, а вполне реальный неживой организм окажется интеллектуальным? Не сметёт ли он, размножившись, с лица Земли всё человечество? Признаемся честно, возможность такого исхода отрицать никак не возможно. К сожалению, энтузиасты склонны видеть только положительные стороны результатов своей работы, а отрицательные оставлять своим последователям – технологам и маркетологам. А оно ведь и боком может выйти.

Заключение.

Что касается пути Самодельной Эволюции, то в ИИ-сообществе он становится всё более популярным. Огромное количество самодеятельных авторов по всему миру пытаются найти то ускользающее свойство разума, о котором мы и говорим “разум”, а не “знания”. Однако здесь мы вступаем уже в область специальных знаний, место не всем и не совсем понятное. Посему, принципы, коими я руководствуюсь в собственных поисках, будут предложены к обсуждению отдельным докладом.

Hosted by uCoz