ЭТОТ
НЕЧЕТКИЙ,НЕЧЕТКИЙ, НЕЧЕТКИЙ
МИР Андрей Масалович Надпись на черной глянцевой коробке была лаконична и исполнена внутреннего достоинства : "Третья волна интеллектуального программирования". Подвиньтесь, экспертные системы и нейронные сети. Отряхните ноги от пены отлива, программисты и пользователи. Приготовься, мир - идет цунами ! В серьезности момента не позволяла усомниться желтая наклейка экспортной лицензии США - разрешение на ввоз маленькой коробочки в Россию принимали те же большие дяди, что ведают экспортом крылатых ракет и установок Patriot. В руках автора статьи находился пакет CubiCalc - первый ввезенный в Россию программный пакет, основанный на методах т.н. "нечеткой логики" (fuzzy logic). Вспомнились события пятилетней давности, когда стал дряхлеть Комитет по контролю над экспортом (COCOM) и сквозь образовавшиеся бреши в СССР вешним потоком хлынули рабочие станции и суперкомпьютеры, векторные процессоры и средства телекоммуникаций - запретные плоды заокеанской цивилизации. Тогда казалось, что при наличии внятной спецификации и достаточного финансирования можно получить любую, самую современную техническую "игрушку". Однако все попытки приобрести хотя бы один образец изделий, основанных на методах нечеткой логики, кончались неудачей. В итоге fuzzy logic, мощный и элегантный инструмент современной науки, который на Западе можно встретить в десятках изделий - от бытовых видеокамер до систем управления вооружениями, у нас до самого последнего времени был практически неизвестен. Нечеткая логика - от Будды до Бартоломея Коско Признаемся сразу : многие современные ученые до сих пор считают теорию нечеткой логики шаманством и лженаукой, а ее авторов - баламутами и возмутителями спокойствия. Надо признать, для этого есть некоторые основания. Дразнящий эпатаж тридцатишестилетнего Барта Коско (Bart Kosko), живого классика нечеткой логики, способен вывести из себя самого уравновешенного представителя традиционной науки. Так, нашумевшая книга Коско "Fuzzy Thinking" ("Нечеткое мышление") начинается со слов : "Однажды утром я проснулся и понял, что наука идет не туда". Далее автор, что называется "на полном серьезе", доказывает, что два тысячелетия назад человечество сделало роковую ошибку, заложив в фундамент науки не зыбкую поэтику ранних восточных философий, а выхолощенную двоичную логику Аристотеля. И с тех пор классическая "черно-белая" бинарная логика, зажатая шорами закона "исключенного третьего", все более отдаляется от реального многоцветного мира, где нет ничего абсолютного, а все самое интересное происходит в туманной области между "да" и "нет". Однако что же представляет собой теория нечеткой логики, сравнимая по своему влиянию на современную науку с теорией нейронных сетей ? В отличие от традиционной формальной логики, известной со времен Аристотеля и оперирующей точными и четкими понятиями типа истина и ложь, да и нет, ноль и единица, нечеткая логика имеет дело со значениями, лежащими в некотором (непрерывном или дискретном) диапазоне. Функция принадлежности элементов к заданному множеству также представляет собой не жесткий порог "принадлежит-не принадлежит", а плавную сигмоиду, проходящую все значения от нуля до единицы. Понятно, что оперировать такими вещественными величинами значительно сложнее, чем двоичными битами, однако для этого есть веские основания. Многие понятия повседневной жизни (а по утверждению Коско - все) не укладываются в рамки традиционной бинарной логики. Какой момент считать началом жизни человека ? Какое значение веса отличает худого от толстого ? Насколько хорошая прибыль отличается от средненькой ? Попытки "загнать" приведенные понятия в конкретные числовые рамки либо недопустимо огрубят предметную область, либо чрезмерно усложнят решение задачи. Нечеткая логика предлагает более элегантное решение для подобных ситуаций. Вы сначала описываете какое-либо качественное понятие ("большой", "хороший", "умный", "популярный") некоторой функцией распределения, подобной вероятностным функциям и далее используете его как точное, не заботясь более о его "нечеткой" природе. Теория нечеткой логики позволяет выполнять над такими величинами весь спектр логических операций - объединение, пересечение, отрицание и др. Более того, согласно знаменитой теореме FAT (Fuzzy Approximation Theorem), доказанной Коско, любая математическая система может быть апроксимирована системой, основанной на нечеткой логике. Прошу не бить автора камнями за "детсадовский" уровень изложения. Теория нечеткой логики - серьезная и сложная наука и ее строгое изложение заполнило бы сотню номеров PC Week. Желающим изучать науку по первоисточникам могу порекомендовать фундаментальный труд Коско "Neural Networks and Fuzzy Systems : a Dynamical Systems Approach To Machine Intelligence" (Prentice-Hall, 1992). Те же, кто хочет посмотреть fuzzy logic в работе, могут просто обратиться к автору по e-mail. Основы нечеткой логики были заложены в конце 60-х годов в трудах известного американского математика Заде (между прочим, принадлежащего к семье выходцев из СССР). В ту пору весьма популярными были эксперименты с т.н. "мажоритарными" пространствами, в которых намеренно устранялось понятие меры и вместо него вводился ряд качественных факторов (типа квантора "большинства") - прообраз первых нечетких утверждений. Социальный заказ на исследования подобного рода был вызван растущим недовольством экспертными системами. Хваленый "искусственный интеллект", легко справлявшийся с задачами управления сложными техническими комплексами, становился совершенно беспомощным перед простейшими высказываниями повседневной жизни, типа "Если машина впереди тебя управляется неопытным водителем - держись от нее подальше". Для создания действительно интеллектуальных систем, способных адекватно взаимодействовать с человеком, необходим был новый математический аппарат, переводящий невнятные и неоднозначные житейские утверждения в язык четких и формальных математических формул. Первым серьезным шагом в этом направлении явилась теория нечетких множеств, разработанная Заде. Он же дал и название для новой области науки -"fuzzy logic", которое многим сегодня кажется спорным. Дело в том, что сам термин "fuzzy" (что означает "нечеткий, размытый, пушистый") во-первых, глубоко чужд менталитету американцев, любящих все четкое и конкретное и, во-вторых, не совсем точно отражает существо самой теории, которую - в ее сегодняшнем виде - правильнее было бы называть "непрерывной логикой". Чтобы стать классиком, надо немного опередить свое время. Аппарат теории нечетких множеств, продемонстрировав ряд многообещающих возможностей применения - от систем управления летательными аппаратами до прогнозирования итогов выборов, оказался вместе с тем чрезмерно сложен для воплощения при тогдашнем уровне технологии - и на многие годы нечеткая логика заняла свое место в ряду других специальных научных дисциплин - где-то посередине между экспертными системами и нейронными сетями... Свое второе рождение теория нечеткой логики пережила в начале восьмидесятых годов, когда сразу несколько групп исследователей (в-основном в США и Японии) всерьез занялись созданием электронных систем различного применения, использующих нечеткие управляющие алгоритмы. Теоретические основы для этих попыток были заложены в ранних трудах Коско (которому в ту пору было 24 года) и других ученых. Наибольшую роль сыграли, пожалуй, два научных результата : доказательство FAT-теоремы, дающей нечеткой логике "путевку в жизнь" и комбинация нечеткой логики с нейронными сетями Кохонена, указавшая путь к преодолению наиболее критического "узкого места" новой теории - автоматизированного формирования системы нечетких правил по содержимому входных данных. К 90-му году появилось около 40 патентов, относящихся к нечеткой логике (30 - японских). Сорок восемь японских компаний образовали совместную лабораторию LIFE (Laboratory for International Fuzzy Engineering), японское правительство финансировало 5-летнюю программу по нечеткой логике, включающую 19 различных проектов - от систем оценки глобального загрязнения атмосферы и предсказания землетрясений до АСУ заводских цехов и складов. Результатом выполнения этой программы явилось появление целого ряда новых массовых микрочипов, основанных на нечеткой логике. Сегодня их можно найти в стиральных машинах и видеокамерах, цехах заводов и моторных отсеках автомобилей, в системах управления складскими роботами и боевыми вертолетами. Революция состоялась. А что же американцы, вложившие первый камень в теорию нечеткой логики и так скоро уступившие инициативу японцам ? В США развитие нечеткой логики идет по пути создания систем, служащих большому бизнесу (и, разумеется, военным). Нечеткая логика применяется при анализе новых рынков, биржевой игре, оценке политических рейтингов, выборе оптимальной ценовой стратегии и т.п. Появились и коммерческие системы массового применения. Наиболее мощной и популярной среди них является пакет CubiCalc (тот самый, который возвестил о приходе "третьей волны" искусственного интеллекта). CubiCalc : на гребне "третьей волны" Длинный тяжелый грузовик, практически не делая лишних движений, снова и снова въезжал в длинный узкий гараж. Кружево новых трасс, ритмично появляющихся на экране дисплея, свидетельствовало о мастерстве водителя, который уверенно находил кратчайший путь к цели из любой произвольной точки. Как вы уже, видимо, догадались, автомобилем управлял не человек (на практике въезд трейлера в гараж - это целый спектакль, со многими действующими лицами, драматическими диалогами и большим шумом). Программа демонстрировала возможности новой автоматизированной системы управления. Однако это была не громоздкая система уравнений в частных производных, плод инженерного таланта крупной лаборатории. Грузовик управлялся простейшим набором нечетких правил, которые ваш сын-пятиклассник способен составить за полчаса : "Если нос смотрит влево - возьми чуть правее", "Ближе к гаражу притормози" - всего тридцать пять подобных правил, активизируемых двенадцатью нечеткими условиями, оказались способными решить задачу, непосильную для иного доктора наук. Пакет CubiCalc, первый профессиональный пакет, реализующий методы нечеткой логики, еще раз продемонстрировал мощность и элегантность новой науки. Кстати, не задача о грузовике, вошедшая сейчас во все сборники примеров по нечеткой логике, обусловила успех нового пакета. Фирма Hyper Logic, в 1990 году разработавшая пакет CubiCalc, сделала себе имидж и первоначальный капитал на решении другой классической задачи - "собака, догоняющая кота". После того, как управляемая кристаллом на нечеткой логике быстролетящая "собака" стала уверенно настигать межконтинентального "кота" противника, смолкли голоса скептиков и нечеткая логика заняла свое место в оборонных программах DARPA. Фактически пакет CubiCalc представляет собой своего рода экспертную систему, в которой пользователь задает набор правил типа "если-то", а система пытается на основе этих правил адекватно реагировать на параметры текущей ситуации. Отличие состоит в том, что вводимые правила содержат нечеткие величины, т.е. имеют вид "если X принадлежит А, то Y принадлежит B", где A и В - нечеткие множества. Например: "Если этому жулику удастся сохранить популярность в регионах, то его шансы на выборах будут весьма высоки". Здесь использованы два нечетких термина "популярность" и "вероятность избрания", которые практически невозможно задать точным значением, но сравнительно легко отобразить функцией распределения. И аппарат нечеткой логики, заложенный в CubiCalc, дает вам изумительную возможность впоследствии оперировать этими понятиями как точными и строить на их основе целые логические системы, не заботясь о зыбкой нечеткой природе исходных определений. Сразу после выхода в свет пакет CubiCalc стал бестселлером. Журнал Computer Technology Review охарактеризовал его как научный "прорыв" ("breakthrough product") и выделил как "Editor's Choice" 1990 года. Солидный AI Expert признал базу нечетких правил, заложенную в CubiCalc, наиболее мощной из существующих нечетких систем. Журнал Discover Magazine присудит пакету первое место в престижной номинации Technical Innovation на конкурсе 1991 года. Сегодня CubiCalc - это хорошо известное семейство программных и аппаратных средств, содержащее следующие компоненты :
Пользователей не отпугивает сравнительно высокая цена пакета ($1500 в базовой комплектации). CubiCalc и сегодня остается одним из самых продаваемых пакетов на основе нечеткой логики, а фирма HyperLogic по-прежнему входит в пятерку лидирующих фирм в своем секторе рынка. FuziCalc - подарок для бизнесмена Заде заложил основы нечеткой логики. Коско заставил ее работать. Авторы пакета CubiCalc сделали ее доступной для широкого круга разработчиков. Однако чтобы стать действительно массовым инструментом, нечеткая логика должна была проделать еще один шаг - обрести простую и дружественную оболочку, привычную для простого пользователя, не искушенного в премудростях высокой науки. И этот шаг был сделан. Пакет FuziCalc фирмы FuziWare, похоже, имеет все шансы получить поистине всенародное признание и потеснить во всевозможных рейтингах Excel, Quicken и Microsoft Money. На первый взгляд FuziCalc настолько прост и изящен, что трудно поверить в его новизну. Неужели в течение трех десятилетий существования теории нечеткой логики никому не приходило в голову объединить этот математический аппарат с электронными таблицами ? Однако патент США, недавно полученный авторами пакета, подтверждает: никому. FuziCalc - это первая в мире электронная таблица, позволяющая работать как с точными числовыми значениями, так и с приблизительными, "нечеткими" величинами. Кому это может быть нужно ? Всем. Представьте себе, что вы - бизнесмен (менеджер, рекрутер, промоутер, мерчендайзер - нужное подчеркнуть) и вам необходимо максимально точно оценить свою прибыль на следующий квартал или хотя бы месяц. При использовании традиционной электронной таблицы вы "споткнетесь" о первое же неточно известное значение. Сколько будет продано куриных окорочков - три контейнера или пять ? Сколько процентов кредитов вернется без задержек ? Десять ? Пятьдесят ? Поскольку оценка прибыли вам так или иначе важна, вы обычно заменяете неточно известное значение некоторой предполагаемой величиной. И - на корню рубите всякую надежду на получение достоверного результата. Пакет FuziCalc предлагает принципиально другое решение. Неточно известное значение вы помечаете как "fuzzy" и в специальном окне строите его функцию распределения - так, как вы ее представляете. Например, "Минимальное число продаж автомобилей SAAB-9000 в моем салоне я оцениваю в 3, максимальное - в 11, наиболее вероятным считаю диапазон от 5 до 8". Функция распределения при этом будет иметь очень простую трапециевидную форму. От вас больше ничего не требуется. Введенное значение займет свое место в поле электронной таблицы (в качестве числового значения там будет находиться т.н. "центроид" - величина, аналогичная мат.ожиданию в теории вероятностей). И только маленький серый треугольник в уголке поля будет напоминать о нечетком характере введенной величины. Зато вы теперь спокойно можете продолжать вычисления - вплоть до получения окончательного результата. Если в процессе вычислений вы использовали нечеткие величины, результат также будет иметь вид функции распределения (например : "Ожидаемый размер налоговых отчислений составит от 17 до 21 миллиона рублей, наиболее вероятный диапазон - от 19.5 до 20 миллионов"). Однако в любом случае результат будет получен ! И он будет точнее и достовернее, чем при использовании любых других доступных вам методов (за исключением гораздо более трудоемких). Нет, определенно, в течение ближайшего года FuziCalc займет свое место на рабочем столе каждого аналитика. А когда цена пакета опустится ниже магического барьера в $295 (сегодня его рыночная цена составляет $450) - его начнут использовать широкие слои трудящихся - бизнесмены, брокеры, домохозяйки, медсестры, прапорщики и многие другие. Нечеткая логика - а как это будет по-русски ? Несмотря на то, что теория нечеткой логики интенсивно развивается с начала 80-х годов, на потребительском рынке это по-прежнему своего рода "экзотика", более редкая, чем другие виды систем искусственного интеллекта, скажем, нейронные сети. К примеру, из трехсот фирм США, специализирующихся на обработке данных для биржевых и финансовых прогнозов, около 40 опираются на аппарат нейронных сетей и только 4 применяют теорию нечеткой логики. Есть ли смысл присматриваться к этим системам на нашем, родном, рынке, где вся финансовая наука сводится к утверждениям типа "народ устал, ща фьючерс ка-ак рухнет", а профессиональные аналитики работают на позапрошлогодней версии "Windows on the Wall Street" ? Как ни странно, есть. Во-первых, не надо быть пророком, чтобы предсказать лавинообразный рост числа подобных систем на западном рынке в самом ближайшем будущем. Во-вторых, пакет CubiCalc уже активно (и небезуспешно) осваивают некоторые финансовые компании Москвы. А пакету FuziCalc (в "родной" либо пиратской версии) можно предсказать самое светлое будущее на необозримых просторах России. И наконец, наше поле чудес - как раз то место, где теория нечеткой логики должна работать лучше всего. Просто удивительно, что за этими пакетами вслед за финансистами не встали в очередь всевозможные политические обозреватели и аналитические центры - в мутной воде нашей предвыборной арены воистину способна разобраться только самая нечеткая теория. TORA-Centre (c) 1995-98 |