"Идеология и технология ИИ" - читать интересную книгу автора
Идеология и технология ИИ. 1. Идеология Смолянов Сергей: “- это способность к индукции, дедукции и абстрактному мышлению. Индукция - способность из частного переходить к общему. Дедукция - способность из общего выводить частное. Абстактное мышление - способность на известном строить неизвестное” Uka: “ Способность принимать решения в условиях недостатка исходных данных более чем в 50% случаев.” Ку-Ри-Цин: “- это способность принимать решения при недостатке информации. При недостатке информации принять осмысленное решение в принципе невозможно (случайное не берем). В данном случае при нехватке внешней информации информация для принятия решения берется из опыта. Поэтому интеллектом я бы назвал способность к активному упорядочиванию текущей информации на базе предыдущего опыта” Комбинатор: “Интеллект это сложный рефлекс. А если немного конкретнее, то это способность прогнозировать вектор информации, поступающей в систему от её датчиков, расположенных во внешней среде (например, органов чувств) в зависимости от сигналов, посылаемых во внешнюю среду (например, нервных импульсов, управляющих мускулами).” Gipnoss: “Интеллект - есть способ существования идейных тел! Нет такого критерия, потому как можно настолько наворочено сделать рефлексы, что отличить их от интеллектуального поведения будет нереально.” Recoda: “можно, например, считать, что интеллект отличается от рефлексов только количественно (интеллектуальное поведение отличается от рефлекторного количеством учитывающихся рефлексов), а можно считать, что отличия качественны, а не количественны, и искать в интеллекте какой-то особый цимес. Принципиальной разницы тут нет – и Gipnoss в этом смысле совршенно прав (по-моему). А равно правы Ку-Ри-Цин и Комбинатор со своими определениями – для описания разницы между отдергиванием руки от огня и держанием руки над огнем при произнесении каких-нибудь страшных клятв их определения вполне годятся: отдергивание руки – рефлекс, а задержать ее над огнем можно только активно упорядочив текущую информацию. Даже очень активно… Ну, то есть, интеллект – это понятие количественное.” Предлагаю своё общее определение понятия: Интеллект – универсальное средство создания полезных рефлексов произвольной сложности в результате взаимодействия системы с окружающей средой. Под “полезными” подразумеваются рефлексы, приводящие к решению поставленных (априори) задач. Применение этих рефлексов на практике интеллектуальной деятельностью не является. Приняв такое определение легко ввести средства измерения “силы интеллекта”, IQ и других похожих величин. Чем быстрее система формирует рефлексы, чем сложнее рефлексы, тем более высок интеллектуальный уровень системы. Как же отличить полезный рефлекс от бесполезного или вредного? Это должен сделать субъект (объект), поставивший задачу перед интеллектуальной системой уже по результатам использования рефлекса. Классический пример подобного (но не такого же) подхода – знаменитый тест Тьюринга. Однако, считать этот тест практически применимым в настоящее время уже нельзя. Причина – абсолютный антропоцентризм, присущий тесту. Заставляя машину притворяться человеком, мы априори полагаем, что интеллект выше человеческого не существует, кроме того, контекст тестируемой интеллектуальной системы должен с удручающей точностью соответствовать человеческому, хотя вполне понятно, что принципиально для функционирования интеллектуальных систем такое соответствие совсем не обязательно, в частности, система может обладать совершенно не свойственными человеку и вообще биологическим существам органами чувств и исполнительными механизмами. Что же касается эмоций, то требование более-менее точного совпадения эмоционального отклика с человеческим и вовсе абсурдно, т.к. эмоции – продукт социума, а машинный или человеко-машинный социум не похож на чисто человеческий. Таким образом, необходимость разработки платформенно-независимых тестов на уровень интеллекта становится узким местом самого процесса создания искусственного интеллекта. 1.2. Некоторые свойства интеллекта. Некоторые полагают, что распознавание образов (в широком смысле) – это признак интеллекта. На самом деле – это не достаточное, а лишь необходимое свойство интеллекта, успехи в области примитивных нейронных сетей показывают, что распознавать образы может и система, заведомо не обладающая никакими другими способностями. Такая деятельность представляется всего лишь разновидностью фильтрации, дополненной положительными обратными связями. Способностями к дедукции обладают обычные базы данных. Системы, умеющие проводить индукцию, созданы в незапамятные времена перфокарт и терминалов. Задачи по многопараметрической оптимизации с успехом решаются шахматными программами. Способность решать задачи с нечёткими условиями – пока что является лишь следствием наличия интеллекта, потому что решение смежной задачи по чёткой формализации знаний без участия человека пока что не найдено. Способность приспосабливаться к изменяющимся внешним условиям – тоже лишь следствие наличия интеллекта, потому что признанные интеллектуальными деяния людей иногда не имеют ничего общего с приспособлением. В качестве примера сойдёт любой подвиг на почве радикального воплощения абстрактных идей. Так в чём же соль? В чём же интеллектуальные системы радикально отличаются от уже созданных, но не признанных интеллектуальными? Думается, что основным свойством интеллекта является способность к непрерывному обобщению, формированию сложнопересекающихся мета-уровней данных. А уже на основе этих метаданных и формируются частные случаи – рефлексы. Понятие рефлекса здесь трактуется более широко, чем принято в физиологии. А именно, рефлекс может вызвать не только действие или последовательность действий, а сформировать новый рефлекс, находящийся на подлежащем уровне данных. Простой пример — вместо измерения длины окружности верёвочкой найти метод вычисления. Сначала находится мета-уровень данных (формула для вычислений длины окружности через радиус, которая тоже является рефлексом), потом рефлекс обращения к верёвочке заменяется рефлексом вычисления по формуле, который более продуктивен, т.к. может получать и значения функции, которые трудно получить верёвочкой, например длину земного экватора. Такой процесс можно считать разновидностью индукции, совмещённой с дедукцией. 1.3. А что внутри? Так как же работает интеллект? Как происходит процесс мышления? Эти вопросы до сих пор проработаны лишь поверхностно. Тут надо сразу оговориться, что далее речь пойдёт об интеллекте индивидуума, а не популяции. Ведь популяции даже примитивных организмов тоже способны проявлять все признаки интеллекта, и это не удивительно, если принять, что интеллект – продукт эволюции. Если же сделать выжимку из всех знаний и представлений о разуме, то имеются три различные возможности построения интеллекта:
В настоящее время даже реализации третьего, самого простого варианта, наталкиваются на серьёзные методологические и даже технологические ограничения. 1.4. Если мы вдруг поняли, как сделать интеллект, сколько же ресурсов нам для этого потребуется? В настоящее время интеллектуальными признаны лишь живые организмы. Важной особенностью их строения является широчайший массовый параллелизм операций, даже в несильно интеллектуальном мозге кошки содержится около миллиарда нейронов. Попробуем подражать. Пусть средний нейрон обладает тысячью синапсов, а вес синапса может быть закодирован 8-ю битами. При этом феномены инерциальности и усталости нейрона мы вообще не учитываем. Тогда общая информационная ёмкость машины получится около 1Тбайта. Практическая реализация такого объёма запоминающего устройства не слишком сложна. Но есть более значимое препятствие для обычных компьютеров – слишком большая глобальность связей в нейронной сети, причём весь объём памяти должен участвовать в единичном цикле функционирования, что приводит к катастрофическому уменьшению попаданий в кэш данных современных процессоров и, следовательно, слишком большой временной дискретности мышления. Реализации конечных автоматов не на основе эмуляции нейронных сетей страдают от той же самой глобальности связей по данным, поэтому для успеха реализации интеллекта на ЦВМ требуется повышение быстродействия существующих компьютеров по крайней мере на три порядка. Другой путь – разработка специализированных микросхем и аппаратно-программых реализаций на их основе. Этот путь считается очень перспективным, но достижения ведущих мировых разработчиков (если хоть какие-то достижения существуют) наглухо засекречены. Убогие же кристаллы типа Neuron Chip от Toshiba&Motorola можно считать неудачным продуктом конверсии. http://www.toshiba.com/taec/press/to-113.shtml 1.5. Обучение и индивидуальность. Может ли интеллектуальная система вообще обойтись без обучения? Ведь вполне доступно точно скопировать все параметры уже существующей интеллектуальной системы и получить ещё один экземпляр. Думается, нет, способность к обучению и необходимость непрерывного обучения являются неотъемлемыми свойствами интеллекта. Если учесть, что информация вообще полностью субъективна, а интеллектуальная система должна обладать развитым и, к тому же, многоуровневым контекстом (хотя бы в целях распознавания и кластеризации), становится понятно, что обучение, как средство постоянной коррекции и пополнения контекста, совершенно необходимо. Практически применимыми методами обучения являются, на мой взгляд, всего лишь два: метод последовательного лидера и метод обратного распространения ошибки. Нетрудно заметить также, что оба этих метода обучения реально используются живыми интеллектуальными системами, более того, иногда и разделить их достаточно сложно. Побочным продуктом обучения является индивидуальность интеллектуальной системы, ведь создать абсолютно идентичные условия для двух интеллектуальных систем практически сложно, да и есть ли смысл. 1.6. Социальные аспекты проблемы, или немного футурологии. А теперь обратимся собственно к человеку и человечеству. Предположим, высокоинтеллектуальные системы (т.е. с уровнем интеллекта, примерно равным человеческому) поставлены на поточное производство и широко применяются для каких-либо целей. Обратите внимание, что такие системы, скорее всего, будут обладать элементами спонтанного поведения, да ещё контекстом, резко отличным от человеческого. Возможно ли вообще взаимодействие человека и такой системы на пользу обоим? Или же, в лучшем случае, человечество вновь вступит в полосу рабовладения? К сожалению, радужные картины будущего с умными машинами вызывают большое сомнение. Первые такие машины, понятно, будут железными маугли в стае мясных волков, но с ростом популяции таких машин неизбежно возникнет машинно-человеческий, а затем и чисто машинный социум. Ведь, в силу производственной необходимости, такие машины будут обладать всеми нужными для стадной жизни свойствами, включая развитую возможность коммуникации. В голове сразу же возникают мрачные картины человеко-машинной конкуренции, а точнее антагонизма. Ведь машины такого уровня вполне смогут обходиться без человека вообще, а вот человек, скорее всего чрезвычайно воспротивится усилению своей зависимости от машин, потому что станет воспринимать их уже не как объекты, а как субъекты. Тут следует ожидать возникновения течений типа нового луддизма и тайных обществ машинных расчленителей. Будет ли это затяжная борьба до полного устранения конкурента? Сложно сказать. Зато легко видеть массу правовых проблем, которые возникнут при появлении машин с собственным поведением (и мнением!). И сейчас, когда машины вообще не обладают сколько-нибудь значимым интеллектом, а понятие свободы воли к ним вообще не применимо, привлечь к ответственности лицо, допустившее нанесение вреда при использовании даже примитивной программируемой системы крайне сложно. Печальные примеры – несчастные случаи на производстве и транспорте. А повсеместная практика лицензирования ПО в виде ‘as is’? Если интеллектуальные системы будут эксплуатироваться на таком же правовом поле, то это может привести к очень серьёзным последствиям для всего человечества. 1.7. Кому вообще это нужно? Есть и другой вопрос. А нужны ли интеллектуальные системы человеку и человечеству? К сожалению, приходится признать, что отдельно взятому человеку они не нужны. Ну кому нужен пылесос, который умнее хозяина? Да и почему пылесос обязан на Вас работать, если ему хочется отдохнуть? Другими словами, сложность управления интеллектуальными системами возрастает при увеличении уровня их интеллекта, а ведь человеку нужен инструмент, в котором он полностью уверен и который выполняет приказы человека, человеку требуются послушные исполнители его, человечьей, воли. Если же инструмент, в силу своей интеллектуальности, в один прекрасный день научится отлынивать от работы, то человеку это явно не понравится. Использование интеллектуальных систем в современном производстве непродуктивно, что блестяще показал ещё Генри Форд. Использование таких машин для решения задач оптимизации производства или проектирования новых изделий также видится весьма ограниченным ввиду существенных различий машинного и человеческого контекста. Применение в качестве экспертных систем тоже в конце концов упирается в резкое отличие контекстов человека и машины. А в таких критических облачтях как медицина, принятие решения без участия человека может оказаться и вовсе неприемлемым. Т.е. на бытовом и производственном уровнях будут востребованы лишь машины с жалкими зачатками интеллекта, и то в лучшем случае. Человечество – другое дело. Интеллектуальные системы могут оказаться просто незаменимыми при исследовании планет и, особенно, дальнего космоса, вообще, тех мест, где человеческий организм не может функционировать. А можно сконструировать некоего гениального учёного, который не сможет вообще воздействовать на физический уровень мира, разве что путём коммуникации с живыми коллегами. Но такому существу не позавидуешь, однозначно. Из всего сказанного в этом пункте напрашивается вывод, что интеллектуальные системы, особенно системы с высоким уровнем интеллекта, будут производиться чуть ли не в единичных экземплярах для весьма специфических нужд всего человечества. Заключение. Конечно, многие вопросы освещены в этом опусе весьма поверхностно, предлагаемые подходы спорны, однако я надеюсь, что найду единомышленников в стане энтузиастов Искусственного Разума. Вторая часть статьи будет посвящена практическим моментам реализации хотя бы минимально проявляющего себя интеллекта на существующей (а возможно, и пока не существующей) элементной и программной базе. 2 . Технология.Предисловие. С давних времён человек мечтал о неживом разуме, правда, обременяя этот разум обязанностями раба. Когда же были созданы первые электронные вычислители, то апологеты кибернетики и вовсе вошли в раж. Им казалось, что прогресс в области электроники движется такими темпами (а темпы, прямо скажем, оказались ужасающе высокими!), что не за горами время, когда если не андроид, то хотя бы большущий железный ящик с обилием перемигивающихся лампочек на крутом челе станет вести философские беседы о смысле бытия. Создатели Bendix’ов и Cyber’ов мыслили более реально, ведь они хорошо представляли возможности своих детищ, однако появились такие люди как программисты. Этих работников перфокарт и листингов нисколько не смущала слабость подвластных им ламповых созданий, ведь феномен времени был для них второстепенным. Так были предприняты попытки (и не совсем безуспешные, кстати) формализовать и реализовать эмоции и процессы логического вывода в виде колоды перфокарт. По прошествии незначительного временем мощности вычислителей выросли в миллионы раз, но от программистов до сих пор ускользает-таки тот волшебный алгоритм, который делает из тупой железки светлого гения. Так что же мешает старателям гигабита и мегафлопса? Почему до сих пор ИИ не создан хотя бы в виде математической модели? Напрашиваются два ответа: либо интеллект не алгоритмизуем в принципе, либо поиски ведутся совершенно не в том направлении. Если интеллект не алгоритмизуем в принципе, то имеет место либо ситуация номер один, либо общий случай ситуации номер два из первой части статьи. Предположим, что интеллект всё же поддаётся алгоритмическому описанию, т. е. Имеет место ситуация под номером три из первой части. Что должны делать программисты? А точнее, формализаторы такого алгоритма. Они должны, в первую очередь, собрать исчерпывающие знания о функционировании системы, причём не должно остаться непознанным ни одного состояния и ни одного перехода системы из состояния в состояние. Это подход к разработке “снизу”. Задача, прямо скажем, нетривиальная. Вряд ли её можно решить хотя бы за миллиард лет, если учесть количество информации, заключённое в готовой мало-мальски интеллектуальной системе. Значит, такой путь, которым долгое время двигалось всё программирующее человечество, не верен. Найти другой путь – вот задача! Тогда применим подход разработки “сверху”. Самое простое – написать такой алгоритм, который может самостоятельно формализовать работу интеллекта, а мы будем подбрасывать ему не подробные данные о переходах и сотояниях, а только правила формирования таких переходов и состояний, которые мы знаем из собственного опыта. Но тогда встаёт вопрос об исследовании таких правил, ведь не все они нам уже известны. Ничего страшного! Придумаем ещё один алгоритм ещё более высокого уровня!….и ещё…и ещё… К сожалению, такая цепочка быстро упирается в необходимость создания “алгоритма абсолютного познания” или “общей теории всего” в терминах Станислава Лема. Другими словами, ситуация номер три вырождается в ситуацию номер один, что означает смерть метода. Явный тупик? Не очень. Есть другой способ – создавать не то, что нам хочется, а то, что получится, выбрав для управления процессом какой-либо простой метод, например, отбрасывание неудачных, на наш взгляд, направлений. Не напоминает ли это широко упоминаемый в различных религиях метод? Ещё как напоминает! Тот заветный, даже ветхозаветный и единственный оставшийся нам способ – это стать локальным богом, творить существ с желаемыми параметрами. Это и есть путь Эволюции. Какие ресурсы мы должны затартить на решение задачи таким способом? Первое, что нам необходимо, это создать условия для развития процесса в нужном направлении, т. е. окружающую среду для вновь взращиваемых существ, которая способствовала бы появлению особей с необходимыми нам свойствами. Второе, существ должно быть достаточно много, чтобы из всего разнообразия результатов мы смогли побыстрее выбрать наиболее нам подходящий. Можно отдать путь эволюции на откуп случайности (по Дарвину), а можно и подправлять время от времени сами объекты (скрижали там, мор, наводнения, неопалимая купина, то-сё). И первое, и второе – задачи не очень простые, но они гораздо проще различных способов формализации непознанного. На какой же основе можно сделать интеллектуальную систему, раз мы так сильно этого захотели? Есть несколько весьма популярных инструментальных подходов, развиваемых в настоящее время.
Апологетам этого направления кажется, что можно сильно постараться, взять да описать все правила функционирования интеллектуальной системы. Потом запустить волшебную программу на шустром компьютере и вот оно, счастье, – виртуальное существо уже интересуется здоровьем создателя. Но потуги в этом направлении упираются в огромный объём необходимой работы.
Любители баз данных исходили из простого соображения, мол, если интеллектуальные системы должны обладать огромным запасом знаний, то базы данных – как раз то, что спасёт человечество. Существует и работает уже около 20-ти лет проект, http://www.cyc.com/ - Cyc Knowlege Server, в котором используется база данных в качестве хранилища знаний и программа, эти знания пополняющая. Существенным достижением участники проекта считают то, что их детище в один прекрасный день начало задавать вопросы. К сожалению, работа очень далека от завершения по причинам, указанным выше.
Очевидные трудности с реализацией человеческих понятий средствами классической булевой логики подвигли исследователей изобрести новое направление – нечёткую логику. Нечёткая логика расширяет состав понятий, составляющих логику булеву, становясь механизмом, более приближенным к способам человеческого мышления. Однако, несмотря на название “нечёткая” она остаётся совершенно чёткой, т.е. все понятия и операции определены совершенно точно и чётко, “нечёткой” является лишь трактовка входных данных и результатов вычислений. Принципиально, подход ничем не отличается от предыдущих двух, предоставляя разработчику всего лишь более удобный инструмент по формализации некоторой области своих (!) знаний.
Это направление сейчас чрезвычайно модно и считается очень перспективным. Но здесь имеются очень серьёзные технологические и методологические трудности. К слову, реальный квантовый вычислитель существует пока что лишь в размере 8-ми элементов, а для квантового вычислителя вообще пока придуман лишь один полезный алгоритм – для нахождения разложения числа на множители. Но некоторые учёные почему-то считают квантовые компьютеры перспективной базой для создания интеллектуальных систем, видимо, на основании того, что квантовые компьютеры обладают исключительно высокой скростью выполнения некоторых специфических операций. Почему именно такие операции пригодятся при создании искусственного интеллекта, энтузиасты квантовых вычислений предпочитают скромно умалчивать.
Изначально созданные для целей распознавания образов, нейронные сети также нашли широкий отклик среди энтузиастов искусственного разума. Ещё бы, ведь способность обучения и даже самообучения была заложена создателями непосредственно в физиологию нейронных сетей! Нейронные сети хороши простыми алгоритмами функционирования и обучения, а также чудовищной гибкостью. Существует и масса компьютерных моделей различных типов нейронных сетей. Другими словами, построив специфическую нейронную сеть и наделив её несложными механизмами самомодификации, можно бы взяться за чашку кофе и ждать того счастливого дня, когда виртуальное существо произнесёт первое “агу-агу”. Казалось бы, вот они, компьютеры, бери да делай. Но быстродействия существующих суперкомпютеров маловато даже для функционирования единичной системы, а уж тем более для эволюции нескольких систем. Таким образом, аппаратная, либо программно-аппаратная реализация представляется единственным способом построения мало-мальски крупной интеллектуальной системы.Есть ведь замечательные микросхемы, производимые широко известной в узких кругах фирмой Xilinx, называются они PGA, другими словами, программируемый массив ключей. Прелесть этих микросхем в том, что хотя они и являются схемами жёсткой логики, их конфигурацию чрезвычайно легко перепрограммировать, точнее, конфигурация создаваемого устройства загружается в микросхему из внешнего источника перед началом работы. Есть у них и один недостаток – двоичность представления данных. Ведь для работы нейронной сети потребуется осуществлять несколько умножений в каждом нейроне при каждом шаге функционирования, а, как известно, реализация умножителя расходует очень большое количество кремниевых ресурсов. Можно, конечно, сделать один умножитель для всех входов нейрона, благо нам требуется умножение с накоплением, но тогда мы резко потеряем в быстродействии. Хорошим способом усовершенствования PGA является добавление в них элементов аналогового тракта, т. е. отказ от двоичного представления данных. Таким образом можно существенно снизить количество ресурсов, потребляемых одним нейроном при незначительном увеличении энергопотребления и отсутствии потери быстродействия. Есть у PGA ещё одно ограничение – количество возможных межсоединений на кристалле не безгранично. Притом, конфигурация соединений между нейронами должна меняться в процессе работы, а это приводит к необходимости наличия внешнего трассировщика соединений, программы, решающей, как известно, очень сложную задачу, признанную в настоящее время NP-полной.2.4. Готовы ли толстосумы финансировать подобные проекты? Толстосумам такой способ разработки кажется слишком рискованным. А вдруг не получится? Или получится совсем не то, что надо? Или, ещё хуже, получится, вроде бы то, но потом оно как сделает что-нибудь не то! А гарантийные обязательства? А компенсации за нанесённый ущерб? Жуть берёт… К слову, некоторые товарищи смогли выбить кое-какие гранты, например, http://www.cs.usu.edu/~degaris/. Однако, по причине отсутствия ощутимых результатов эта работа была свёрнута.Военные! Вот кому нужны не очень умные, но выносливые зольдаты! Да такие, чтоб ни в воде не тонули, ни в огне не горели, с походной ремонтной мастерской и питанием от солнечных батарей или ядрёного реактора…И тут не всё в порядке. Генералы ведь любят послушных солдат. А у нас что получится? Неизвестно. А строем будет ходить? А честь отдавать?.. Поэтому генералам больше нравится путь Великого Программиста, где всё по Уставу. Э-э-э-х-х-х-х! Придётся опять энтузиастам стараться. Делать дело не ради длинного доллара или юаня, а на совесть, класть, так сказать, машинное время на алтарь прогресса. Растить и пестовать непослушных электрических деток, стравливать их в интернетных баталиях, отдавая заработанные непосильным трудом материальные блага за трафик. Есть, конечно, и опасность. Что если уже не виртуальный, а вполне реальный неживой организм окажется интеллектуальным? Не сметёт ли он, размножившись, с лица Земли всё человечество? Признаемся честно, возможность такого исхода отрицать никак не возможно. К сожалению, энтузиасты склонны видеть только положительные стороны результатов своей работы, а отрицательные оставлять своим последователям – технологам и маркетологам. А оно ведь и боком может выйти. Что касается пути Самодельной Эволюции, то в ИИ-сообществе он становится всё более популярным. Огромное количество самодеятельных авторов по всему миру пытаются найти то ускользающее свойство разума, о котором мы и говорим “разум”, а не “знания”. Однако здесь мы вступаем уже в область специальных знаний, место не всем и не совсем понятное. Посему, принципы, коими я руководствуюсь в собственных поисках, будут предложены к обсуждению отдельным докладом.
Идеология и технология ИИ. 1. Идеология Смолянов Сергей: “- это способность к индукции, дедукции и абстрактному мышлению. Индукция - способность из частного переходить к общему. Дедукция - способность из общего выводить частное. Абстактное мышление - способность на известном строить неизвестное” Uka: “ Способность принимать решения в условиях недостатка исходных данных более чем в 50% случаев.” Ку-Ри-Цин: “- это способность принимать решения при недостатке информации. При недостатке информации принять осмысленное решение в принципе невозможно (случайное не берем). В данном случае при нехватке внешней информации информация для принятия решения берется из опыта. Поэтому интеллектом я бы назвал способность к активному упорядочиванию текущей информации на базе предыдущего опыта” Комбинатор: “Интеллект это сложный рефлекс. А если немного конкретнее, то это способность прогнозировать вектор информации, поступающей в систему от её датчиков, расположенных во внешней среде (например, органов чувств) в зависимости от сигналов, посылаемых во внешнюю среду (например, нервных импульсов, управляющих мускулами).” Gipnoss: “Интеллект - есть способ существования идейных тел! Нет такого критерия, потому как можно настолько наворочено сделать рефлексы, что отличить их от интеллектуального поведения будет нереально.” Recoda: “можно, например, считать, что интеллект отличается от рефлексов только количественно (интеллектуальное поведение отличается от рефлекторного количеством учитывающихся рефлексов), а можно считать, что отличия качественны, а не количественны, и искать в интеллекте какой-то особый цимес. Принципиальной разницы тут нет – и Gipnoss в этом смысле совршенно прав (по-моему). А равно правы Ку-Ри-Цин и Комбинатор со своими определениями – для описания разницы между отдергиванием руки от огня и держанием руки над огнем при произнесении каких-нибудь страшных клятв их определения вполне годятся: отдергивание руки – рефлекс, а задержать ее над огнем можно только активно упорядочив текущую информацию. Даже очень активно… Ну, то есть, интеллект – это понятие количественное.” Предлагаю своё общее определение понятия: Интеллект – универсальное средство создания полезных рефлексов произвольной сложности в результате взаимодействия системы с окружающей средой. Под “полезными” подразумеваются рефлексы, приводящие к решению поставленных (априори) задач. Применение этих рефлексов на практике интеллектуальной деятельностью не является. Приняв такое определение легко ввести средства измерения “силы интеллекта”, IQ и других похожих величин. Чем быстрее система формирует рефлексы, чем сложнее рефлексы, тем более высок интеллектуальный уровень системы. Как же отличить полезный рефлекс от бесполезного или вредного? Это должен сделать субъект (объект), поставивший задачу перед интеллектуальной системой уже по результатам использования рефлекса. Классический пример подобного (но не такого же) подхода – знаменитый тест Тьюринга. Однако, считать этот тест практически применимым в настоящее время уже нельзя. Причина – абсолютный антропоцентризм, присущий тесту. Заставляя машину притворяться человеком, мы априори полагаем, что интеллект выше человеческого не существует, кроме того, контекст тестируемой интеллектуальной системы должен с удручающей точностью соответствовать человеческому, хотя вполне понятно, что принципиально для функционирования интеллектуальных систем такое соответствие совсем не обязательно, в частности, система может обладать совершенно не свойственными человеку и вообще биологическим существам органами чувств и исполнительными механизмами. Что же касается эмоций, то требование более-менее точного совпадения эмоционального отклика с человеческим и вовсе абсурдно, т.к. эмоции – продукт социума, а машинный или человеко-машинный социум не похож на чисто человеческий. Таким образом, необходимость разработки платформенно-независимых тестов на уровень интеллекта становится узким местом самого процесса создания искусственного интеллекта. 1.2. Некоторые свойства интеллекта. Некоторые полагают, что распознавание образов (в широком смысле) – это признак интеллекта. На самом деле – это не достаточное, а лишь необходимое свойство интеллекта, успехи в области примитивных нейронных сетей показывают, что распознавать образы может и система, заведомо не обладающая никакими другими способностями. Такая деятельность представляется всего лишь разновидностью фильтрации, дополненной положительными обратными связями. Способностями к дедукции обладают обычные базы данных. Системы, умеющие проводить индукцию, созданы в незапамятные времена перфокарт и терминалов. Задачи по многопараметрической оптимизации с успехом решаются шахматными программами. Способность решать задачи с нечёткими условиями – пока что является лишь следствием наличия интеллекта, потому что решение смежной задачи по чёткой формализации знаний без участия человека пока что не найдено. Способность приспосабливаться к изменяющимся внешним условиям – тоже лишь следствие наличия интеллекта, потому что признанные интеллектуальными деяния людей иногда не имеют ничего общего с приспособлением. В качестве примера сойдёт любой подвиг на почве радикального воплощения абстрактных идей. Так в чём же соль? В чём же интеллектуальные системы радикально отличаются от уже созданных, но не признанных интеллектуальными? Думается, что основным свойством интеллекта является способность к непрерывному обобщению, формированию сложнопересекающихся мета-уровней данных. А уже на основе этих метаданных и формируются частные случаи – рефлексы. Понятие рефлекса здесь трактуется более широко, чем принято в физиологии. А именно, рефлекс может вызвать не только действие или последовательность действий, а сформировать новый рефлекс, находящийся на подлежащем уровне данных. Простой пример — вместо измерения длины окружности верёвочкой найти метод вычисления. Сначала находится мета-уровень данных (формула для вычислений длины окружности через радиус, которая тоже является рефлексом), потом рефлекс обращения к верёвочке заменяется рефлексом вычисления по формуле, который более продуктивен, т.к. может получать и значения функции, которые трудно получить верёвочкой, например длину земного экватора. Такой процесс можно считать разновидностью индукции, совмещённой с дедукцией. 1.3. А что внутри? Так как же работает интеллект? Как происходит процесс мышления? Эти вопросы до сих пор проработаны лишь поверхностно. Тут надо сразу оговориться, что далее речь пойдёт об интеллекте индивидуума, а не популяции. Ведь популяции даже примитивных организмов тоже способны проявлять все признаки интеллекта, и это не удивительно, если принять, что интеллект – продукт эволюции. Если же сделать выжимку из всех знаний и представлений о разуме, то имеются три различные возможности построения интеллекта:
В настоящее время даже реализации третьего, самого простого варианта, наталкиваются на серьёзные методологические и даже технологические ограничения. 1.4. Если мы вдруг поняли, как сделать интеллект, сколько же ресурсов нам для этого потребуется? В настоящее время интеллектуальными признаны лишь живые организмы. Важной особенностью их строения является широчайший массовый параллелизм операций, даже в несильно интеллектуальном мозге кошки содержится около миллиарда нейронов. Попробуем подражать. Пусть средний нейрон обладает тысячью синапсов, а вес синапса может быть закодирован 8-ю битами. При этом феномены инерциальности и усталости нейрона мы вообще не учитываем. Тогда общая информационная ёмкость машины получится около 1Тбайта. Практическая реализация такого объёма запоминающего устройства не слишком сложна. Но есть более значимое препятствие для обычных компьютеров – слишком большая глобальность связей в нейронной сети, причём весь объём памяти должен участвовать в единичном цикле функционирования, что приводит к катастрофическому уменьшению попаданий в кэш данных современных процессоров и, следовательно, слишком большой временной дискретности мышления. Реализации конечных автоматов не на основе эмуляции нейронных сетей страдают от той же самой глобальности связей по данным, поэтому для успеха реализации интеллекта на ЦВМ требуется повышение быстродействия существующих компьютеров по крайней мере на три порядка. Другой путь – разработка специализированных микросхем и аппаратно-программых реализаций на их основе. Этот путь считается очень перспективным, но достижения ведущих мировых разработчиков (если хоть какие-то достижения существуют) наглухо засекречены. Убогие же кристаллы типа Neuron Chip от Toshiba&Motorola можно считать неудачным продуктом конверсии. http://www.toshiba.com/taec/press/to-113.shtml 1.5. Обучение и индивидуальность. Может ли интеллектуальная система вообще обойтись без обучения? Ведь вполне доступно точно скопировать все параметры уже существующей интеллектуальной системы и получить ещё один экземпляр. Думается, нет, способность к обучению и необходимость непрерывного обучения являются неотъемлемыми свойствами интеллекта. Если учесть, что информация вообще полностью субъективна, а интеллектуальная система должна обладать развитым и, к тому же, многоуровневым контекстом (хотя бы в целях распознавания и кластеризации), становится понятно, что обучение, как средство постоянной коррекции и пополнения контекста, совершенно необходимо. Практически применимыми методами обучения являются, на мой взгляд, всего лишь два: метод последовательного лидера и метод обратного распространения ошибки. Нетрудно заметить также, что оба этих метода обучения реально используются живыми интеллектуальными системами, более того, иногда и разделить их достаточно сложно. Побочным продуктом обучения является индивидуальность интеллектуальной системы, ведь создать абсолютно идентичные условия для двух интеллектуальных систем практически сложно, да и есть ли смысл. 1.6. Социальные аспекты проблемы, или немного футурологии. А теперь обратимся собственно к человеку и человечеству. Предположим, высокоинтеллектуальные системы (т.е. с уровнем интеллекта, примерно равным человеческому) поставлены на поточное производство и широко применяются для каких-либо целей. Обратите внимание, что такие системы, скорее всего, будут обладать элементами спонтанного поведения, да ещё контекстом, резко отличным от человеческого. Возможно ли вообще взаимодействие человека и такой системы на пользу обоим? Или же, в лучшем случае, человечество вновь вступит в полосу рабовладения? К сожалению, радужные картины будущего с умными машинами вызывают большое сомнение. Первые такие машины, понятно, будут железными маугли в стае мясных волков, но с ростом популяции таких машин неизбежно возникнет машинно-человеческий, а затем и чисто машинный социум. Ведь, в силу производственной необходимости, такие машины будут обладать всеми нужными для стадной жизни свойствами, включая развитую возможность коммуникации. В голове сразу же возникают мрачные картины человеко-машинной конкуренции, а точнее антагонизма. Ведь машины такого уровня вполне смогут обходиться без человека вообще, а вот человек, скорее всего чрезвычайно воспротивится усилению своей зависимости от машин, потому что станет воспринимать их уже не как объекты, а как субъекты. Тут следует ожидать возникновения течений типа нового луддизма и тайных обществ машинных расчленителей. Будет ли это затяжная борьба до полного устранения конкурента? Сложно сказать. Зато легко видеть массу правовых проблем, которые возникнут при появлении машин с собственным поведением (и мнением!). И сейчас, когда машины вообще не обладают сколько-нибудь значимым интеллектом, а понятие свободы воли к ним вообще не применимо, привлечь к ответственности лицо, допустившее нанесение вреда при использовании даже примитивной программируемой системы крайне сложно. Печальные примеры – несчастные случаи на производстве и транспорте. А повсеместная практика лицензирования ПО в виде ‘as is’? Если интеллектуальные системы будут эксплуатироваться на таком же правовом поле, то это может привести к очень серьёзным последствиям для всего человечества. 1.7. Кому вообще это нужно? Есть и другой вопрос. А нужны ли интеллектуальные системы человеку и человечеству? К сожалению, приходится признать, что отдельно взятому человеку они не нужны. Ну кому нужен пылесос, который умнее хозяина? Да и почему пылесос обязан на Вас работать, если ему хочется отдохнуть? Другими словами, сложность управления интеллектуальными системами возрастает при увеличении уровня их интеллекта, а ведь человеку нужен инструмент, в котором он полностью уверен и который выполняет приказы человека, человеку требуются послушные исполнители его, человечьей, воли. Если же инструмент, в силу своей интеллектуальности, в один прекрасный день научится отлынивать от работы, то человеку это явно не понравится. Использование интеллектуальных систем в современном производстве непродуктивно, что блестяще показал ещё Генри Форд. Использование таких машин для решения задач оптимизации производства или проектирования новых изделий также видится весьма ограниченным ввиду существенных различий машинного и человеческого контекста. Применение в качестве экспертных систем тоже в конце концов упирается в резкое отличие контекстов человека и машины. А в таких критических облачтях как медицина, принятие решения без участия человека может оказаться и вовсе неприемлемым. Т.е. на бытовом и производственном уровнях будут востребованы лишь машины с жалкими зачатками интеллекта, и то в лучшем случае. Применение в военных целях, конечно имеет некоторую перспективу, притом весьма мрачную. Она хорошо показана в многочисленных произведениях творцов из Голливуда. Человечество – другое дело. Интеллектуальные системы могут оказаться просто незаменимыми при исследовании планет и, особенно, дальнего космоса, вообще, тех мест, где человеческий организм не может функционировать. А можно сконструировать некоего гениального учёного, который не сможет вообще воздействовать на физический уровень мира, разве что путём коммуникации с живыми коллегами. Но такому существу не позавидуешь, однозначно. Из всего сказанного в этом пункте напрашивается вывод, что интеллектуальные системы, особенно системы с высоким уровнем интеллекта, будут производиться чуть ли не в единичных экземплярах для весьма специфических нужд всего человечества. Заключение. Конечно, многие вопросы освещены в этом опусе весьма поверхностно, предлагаемые подходы спорны, однако я надеюсь, что найду единомышленников в стане энтузиастов Искусственного Разума. Вторая часть статьи будет посвящена практическим моментам реализации хотя бы минимально проявляющего себя интеллекта на существующей (а возможно, и пока не существующей) элементной и программной базе. 2 . Технология.Предисловие. С давних времён человек мечтал о неживом разуме, правда, обременяя этот разум обязанностями раба. Когда же были созданы первые электронные вычислители, то апологеты кибернетики и вовсе вошли в раж. Им казалось, что прогресс в области электроники движется такими темпами (а темпы, прямо скажем, оказались ужасающе высокими!), что не за горами время, когда если не андроид, то хотя бы большущий железный ящик с обилием перемигивающихся лампочек на крутом челе станет вести философские беседы о смысле бытия. Создатели Bendix’ов и Cyber’ов мыслили более реально, ведь они хорошо представляли возможности своих детищ, однако появились такие люди как программисты. Этих работников перфокарт и листингов нисколько не смущала слабость подвластных им ламповых созданий, ведь феномен времени был для них второстепенным. Так были предприняты попытки (и не совсем безуспешные, кстати) формализовать и реализовать эмоции и процессы логического вывода в виде колоды перфокарт. По прошествии незначительного временем мощности вычислителей выросли в миллионы раз, но от программистов до сих пор ускользает-таки тот волшебный алгоритм, который делает из тупой железки светлого гения. Так что же мешает старателям гигабита и мегафлопса? Почему до сих пор ИИ не создан хотя бы в виде математической модели? Напрашиваются два ответа: либо интеллект не алгоритмизуем в принципе, либо поиски ведутся совершенно не в том направлении. Если интеллект не алгоритмизуем в принципе, то имеет место либо ситуация номер один, либо общий случай ситуации номер два из первой части статьи. Предположим, что интеллект всё же поддаётся алгоритмическому описанию, т. е. Имеет место ситуация под номером три из первой части. Что должны делать программисты? А точнее, формализаторы такого алгоритма. Они должны, в первую очередь, собрать исчерпывающие знания о функционировании системы, причём не должно остаться непознанным ни одного состояния и ни одного перехода системы из состояния в состояние. Это подход к разработке “снизу”. Задача, прямо скажем, нетривиальная. Вряд ли её можно решить хотя бы за миллиард лет, если учесть количество информации, заключённое в готовой мало-мальски интеллектуальной системе. Значит, такой путь, которым долгое время двигалось всё программирующее человечество, не верен. Найти другой путь – вот задача! Тогда применим подход разработки “сверху”. Самое простое – написать такой алгоритм, который может самостоятельно формализовать работу интеллекта, а мы будем подбрасывать ему не подробные данные о переходах и сотояниях, а только правила формирования таких переходов и состояний, которые мы знаем из собственного опыта. Но тогда встаёт вопрос об исследовании таких правил, ведь не все они нам уже известны. Ничего страшного! Придумаем ещё один алгоритм ещё более высокого уровня!….и ещё…и ещё… К сожалению, такая цепочка быстро упирается в необходимость создания “алгоритма абсолютного познания” или “общей теории всего” в терминах Станислава Лема. Другими словами, ситуация номер три вырождается в ситуацию номер один, что означает смерть метода. Явный тупик? Не очень. Есть другой способ – создавать не то, что нам хочется, а то, что получится, выбрав для управления процессом какой-либо простой метод, например, отбрасывание неудачных, на наш взгляд, направлений. Не напоминает ли это широко упоминаемый в различных религиях метод? Ещё как напоминает! Тот заветный, даже ветхозаветный и единственный оставшийся нам способ – это стать локальным богом, творить существ с желаемыми параметрами. Это и есть путь Эволюции. Какие ресурсы мы должны затартить на решение задачи таким способом? Первое, что нам необходимо, это создать условия для развития процесса в нужном направлении, т. е. окружающую среду для вновь взращиваемых существ, которая способствовала бы появлению особей с необходимыми нам свойствами. Второе, существ должно быть достаточно много, чтобы из всего разнообразия результатов мы смогли побыстрее выбрать наиболее нам подходящий. Можно отдать путь эволюции на откуп случайности (по Дарвину), а можно и подправлять время от времени сами объекты (скрижали там, мор, наводнения, неопалимая купина, то-сё). И первое, и второе – задачи не очень простые, но они гораздо проще различных способов формализации непознанного. На какой же основе можно сделать интеллектуальную систему, раз мы так сильно этого захотели? Есть несколько весьма популярных инструментальных подходов, развиваемых в настоящее время.
Апологетам этого направления кажется, что можно сильно постараться, взять да описать все правила функционирования интеллектуальной системы. Потом запустить волшебную программу на шустром компьютере и вот оно, счастье, – виртуальное существо уже интересуется здоровьем создателя. Но потуги в этом направлении упираются в огромный объём необходимой работы.
Любители баз данных исходили из простого соображения, мол, если интеллектуальные системы должны обладать огромным запасом знаний, то базы данных – как раз то, что спасёт человечество. Существует и работает уже около 20-ти лет проект, http://www.cyc.com/ - Cyc Knowlege Server, в котором используется база данных в качестве хранилища знаний и программа, эти знания пополняющая. Существенным достижением участники проекта считают то, что их детище в один прекрасный день начало задавать вопросы. К сожалению, работа очень далека от завершения по причинам, указанным выше.
Очевидные трудности с реализацией человеческих понятий средствами классической булевой логики подвигли исследователей изобрести новое направление – нечёткую логику. Нечёткая логика расширяет состав понятий, составляющих логику булеву, становясь механизмом, более приближенным к способам человеческого мышления. Однако, несмотря на название “нечёткая” она остаётся совершенно чёткой, т.е. все понятия и операции определены совершенно точно и чётко, “нечёткой” является лишь трактовка входных данных и результатов вычислений. Принципиально, подход ничем не отличается от предыдущих двух, предоставляя разработчику всего лишь более удобный инструмент по формализации некоторой области своих (!) знаний.
Это направление сейчас чрезвычайно модно и считается очень перспективным. Но здесь имеются очень серьёзные технологические и методологические трудности. К слову, реальный квантовый вычислитель существует пока что лишь в размере 8-ми элементов, а для квантового вычислителя вообще пока придуман лишь один полезный алгоритм – для нахождения разложения числа на множители. Но некоторые учёные почему-то считают квантовые компьютеры перспективной базой для создания интеллектуальных систем, видимо, на основании того, что квантовые компьютеры обладают исключительно высокой скростью выполнения некоторых специфических операций. Почему именно такие операции пригодятся при создании искусственного интеллекта, энтузиасты квантовых вычислений предпочитают скромно умалчивать.
Изначально созданные для целей распознавания образов, нейронные сети также нашли широкий отклик среди энтузиастов искусственного разума. Ещё бы, ведь способность обучения и даже самообучения была заложена создателями непосредственно в физиологию нейронных сетей! Нейронные сети хороши простыми алгоритмами функционирования и обучения, а также чудовищной гибкостью. Существует и масса компьютерных моделей различных типов нейронных сетей. Другими словами, построив специфическую нейронную сеть и наделив её несложными механизмами самомодификации, можно бы взяться за чашку кофе и ждать того счастливого дня, когда виртуальное существо произнесёт первое “агу-агу”. Казалось бы, вот они, компьютеры, бери да делай. Но быстродействия существующих суперкомпютеров маловато даже для функционирования единичной системы, а уж тем более для эволюции нескольких систем. Таким образом, аппаратная, либо программно-аппаратная реализация представляется единственным способом построения мало-мальски крупной интеллектуальной системы.Есть ведь замечательные микросхемы, производимые широко известной в узких кругах фирмой Xilinx, называются они PGA, другими словами, программируемый массив ключей. Прелесть этих микросхем в том, что хотя они и являются схемами жёсткой логики, их конфигурацию чрезвычайно легко перепрограммировать, точнее, конфигурация создаваемого устройства загружается в микросхему из внешнего источника перед началом работы. Есть у них и один недостаток – двоичность представления данных. Ведь для работы нейронной сети потребуется осуществлять несколько умножений в каждом нейроне при каждом шаге функционирования, а, как известно, реализация умножителя расходует очень большое количество кремниевых ресурсов. Можно, конечно, сделать один умножитель для всех входов нейрона, благо нам требуется умножение с накоплением, но тогда мы резко потеряем в быстродействии. Хорошим способом усовершенствования PGA является добавление в них элементов аналогового тракта, т. е. отказ от двоичного представления данных. Таким образом можно существенно снизить количество ресурсов, потребляемых одним нейроном при незначительном увеличении энергопотребления и отсутствии потери быстродействия. Есть у PGA ещё одно ограничение – количество возможных межсоединений на кристалле не безгранично. Притом, конфигурация соединений между нейронами должна меняться в процессе работы, а это приводит к необходимости наличия внешнего трассировщика соединений, программы, решающей, как известно, очень сложную задачу, признанную в настоящее время NP-полной.2.4. Готовы ли толстосумы финансировать подобные проекты? Толстосумам такой способ разработки кажется слишком рискованным. А вдруг не получится? Или получится совсем не то, что надо? Или, ещё хуже, получится, вроде бы то, но потом оно как сделает что-нибудь не то! А гарантийные обязательства? А компенсации за нанесённый ущерб? Жуть берёт… К слову, некоторые товарищи смогли выбить кое-какие гранты, например, http://www.cs.usu.edu/~degaris/. Однако, по причине отсутствия ощутимых результатов эта работа была свёрнута.Военные! Вот кому нужны не очень умные, но выносливые зольдаты! Да такие, чтоб ни в воде не тонули, ни в огне не горели, с походной ремонтной мастерской и питанием от солнечных батарей или ядрёного реактора…И тут не всё в порядке. Генералы ведь любят послушных солдат. А у нас что получится? Неизвестно. А строем будет ходить? А честь отдавать?.. Поэтому генералам больше нравится путь Великого Программиста, где всё по Уставу. Э-э-э-х-х-х-х! Придётся опять энтузиастам стараться. Делать дело не ради длинного доллара или юаня, а на совесть, класть, так сказать, машинное время на алтарь прогресса. Растить и пестовать непослушных электрических деток, стравливать их в интернетных баталиях, отдавая заработанные непосильным трудом материальные блага за трафик. Есть, конечно, и опасность. Что если уже не виртуальный, а вполне реальный неживой организм окажется интеллектуальным? Не сметёт ли он, размножившись, с лица Земли всё человечество? Признаемся честно, возможность такого исхода отрицать никак не возможно. К сожалению, энтузиасты склонны видеть только положительные стороны результатов своей работы, а отрицательные оставлять своим последователям – технологам и маркетологам. А оно ведь и боком может выйти. Что касается пути Самодельной Эволюции, то в ИИ-сообществе он становится всё более популярным. Огромное количество самодеятельных авторов по всему миру пытаются найти то ускользающее свойство разума, о котором мы и говорим “разум”, а не “знания”. Однако здесь мы вступаем уже в область специальных знаний, место не всем и не совсем понятное. Посему, принципы, коими я руководствуюсь в собственных поисках, будут предложены к обсуждению отдельным докладом.
|
||||||||||||||||
|