скачать книгу бесплатно
Модели информации и данных. Атом и универсум информации
Александр Михайлович Горбачев
Развитие информационных технологий происходит очень высокими темпами. Вместе с тем анализ фундаментальных моделей данных и информационных моделей позволит переосмыслить подходы к проектированию информационных систем и построению интеллектуальных систем. В книге освещается большое количество аспектов по управлению информацией и данными, исследуется универсальная информационная модель и ее сопоставление с моделями данных, переход от данных к информации и обратно.
Модели информации и данных
Атом и универсум информации
Александр Михайлович Горбачев
© Александр Михайлович Горбачев, 2021
ISBN 978-5-4493-1338-6
Создано в интеллектуальной издательской системе Ridero
Введение
Информационные компьютерные технологии пришли в этот мир в конце 1940-х годов. До начала 1980-х годов они оставались уделом небольшого числа профессионалов, но с возникновением персональных компьютеров они широко проникли в нашу жизнь, и в том числе в бытовую сферу. Увеличение уровня интеграции микропроцессоров и развитие телекоммуникационных технологий привели к тому, что современные мобильные телефоны-смартфоны стали компьютерами, несравненно более мощными как по производительности, так и по ресурсам даже по сравнению с самыми развитыми компьютерами 80-х годов минувшего века. Каждый год изобретаются новые материалы, технологии, всё увеличиваются масштабы производительности, объем и разнообразие ресурсов в электронных устройствах, а через это – увеличиваются объемы хранимых и передаваемых данных, число человеко-машинных интерфейсов и, как следствие, глубина вхождения и широта использования устройств и гаджетов в жизни современного человека и бизнеса.
В октябре 2003 года по обвинению в хищениях и неуплате налогов был арестован самый богатый человек России Михаил Ходорковский. Михаил провел в тюрьме более 10 лет. Пробыв эти годы в заключении, он пропустил бум сенсорных смартфонов и начало эпохи планшетов. После освобождения из заключения одним из его самых первых желаний было получить iPhone и iPad компании Apple. Это яркий пример современности, показывающий, что означают технологии и как много места занимают устройства в жизни современного человека. На сегодняшний день самыми дорогими компаниями, судя по их биржевой стоимости, являются Apple и Google, отодвинув на третью строчку нефтяной ExxonMobil.
И, тем не менее, не потребовалось никакого внешнего вмешательства в то, чтобы разрушить Вавилонскую башню компьютерных технологий, ибо её не существовало испокон веков. Аппаратные и программные платформы, языки программирования и форматы данных настолько несовместимы между собой, что самая невесомая материя, на которую не распространяются даже таможенные пошлины – информация, остается жестко связанной с конкретными платформами, в то время как межплатформенные коммуникационные технологии слишком отстали от всех остальных технологий в IT-сфере. До сих пор определение правил и последовательности интеграции как средства коммуникации между различными программными приложениями является результатом полу-ручного труда. Технологии построения автоматической трансформации данных между различными платформами отсутствуют, вместо этого существуют эмуляторы сред, технологии виртуализации. В многообразии решений люди уже отказываются что-либо понимать в технологической подложке, а потому IT-корпорации им настойчиво предлагают SaaS (программный продукт как услуга), IaaS (инфраструктура как услуга) и технологии виртуализации. Впрочем, и эти решения не являются панацеей, поскольку они лишь завертывают всё те же программные продукты в новую упаковку и позволяют закрыть глаза и не замечать технологии, лежащие в основе информационных систем. Эволюционное развитие информационных компьютерных технологий привело к тому, что на сегодняшний день они уже созрели в достаточной степени. Это выражается в замедлении развития операционных систем, сред программирования и систем управления базами данных. В отдельных областях технологии даже перезрели, что отражается на сложности программирования систем, использующих сервисно-ориентированную архитектуру (SOA), базирующихся на web-сервисах и т. д. Как результат – лавинообразное увеличение числа framework’ов (программных сред, для создания пользовательских интерфейсов) и существенное увеличение времени тестирования систем при их разработке на основе этих технологий.
Не кажется ли Вам, что закон Мура и неостанавливающийся лавинообразный технический прогресс в виде непрерывного наращивания аппаратных компьютерных ресурсов с одной стороны, и несовершенство программных IT-технологий с другой стороны, выглядят как странная дисгармония? В этой книге я постараюсь сделать серьезный шаг к её разрушению. За прошедший десяток лет я сформировал некоторый набор, с моей точки зрения, интересных мыслей – теоретических знаний и практических наблюдений, которых я не встречал в законченном или в достаточной степени оформленном виде ни в программных реализациях, ни в теоретических выкладках. В своих измышлениях я не претендую на роль пионера и даже на оригинальность, поскольку, как сказал в 1899 году специальный уполномоченный американского бюро патентов Чарльз Дюэлл: «Все, что могло быть изобретено, уже изобрели» – похоже, примерно так и есть, за исключением деталей. Я постарался собрать мысли воедино, и предоставить вам квинтэссенцию своих записей, наблюдений и исследований в концентрированном виде в этой монографии.
Более 15 лет моя работа связана с ERP-системами. В последние несколько лет, сталкиваясь с вопросами и претензиями пользователей к несовершенству программных продуктов, а также при общении с коллегами, я не устаю повторять идею о том, что, скорее всего, современные информационные технологии находятся еще на столь ранней стадии и в настолько несовершенном виде, что множество вещей, простых и понятных в естественном мире, являются слишком технологически сложными и недостижимыми в программных продуктах. Прежде всего, это касается обмена данными между различными программными продуктами, трансформации данных, платформозависимости программных продуктов, существенной ограниченности в модификации структур данных и процессов, и пр. Также это касается и реализации довольно простых процессов в понимании людей, далёких от программирования. Подобных примеров можно привести воз и маленькую тележку. В результате за понятными вещами и процессами в естественном понимании, на бытовом уровне и даже в базовом профессиональном уровне могут стоять очень сложные и ресурсоёмкие технологии. Анализ, проектирование и изменение программных систем стоят конечным потребителям сотни долларов за час работы консультантов и программистов. Добавление колонки в отчет может потребовать 8 часового дня работы программиста. Все это регулярно вызывает закономерные вопросы пользователей «Почему так дорого?» и «Почему так медленно делаются изменения?». Альтернативой для пользователей является только добровольное залезание в прокрустово ложе коробочных решений вместо настройки системы под конкретные требования компаний, что является жестоким компромиссом, и подавляет волю, разум и веру в информационные технологии людей, привыкших к свободе мысли.
Эта книга посвящена обзору существующих технологий, и затем в ней сделана попытка воспроизвести информационный универсум – объемлющую информационную модель, которая сможет объединить и примирить разные технологии, сделать их прозрачными и взаимо-трансформируемыми.
Программные технологии становятся все сложнее с каждым днём (хотя и дают большие возможности), а программисты прошлого века, столкнись они только с одним пластом современного программирования от web-систем до баз данных, несомненно, испытали бы шок и впали бы в депрессию от обилия требуемых знаний о системах программирования. Признак сложности не является признаком совершенства, а требование наличия определенного объема знаний не означает, что система будет работать лучше по сравнению с системами на компьютерах прошлого столетия. И, напротив, складывается тенденция того, что при создании распределенных, веб-ориентированных, модульных, трехзвенных программных систем, тестирование становится все сложнее, обслуживание накладных процессов коммуникации между составляющими системы, пользовательским интерфейсом и пр. отнимает все больше сил разработчика. В этом смысле я придерживаюсь идей демокритовского атомизма, пытаясь разложить составляющие информационных технологий на элементарные частицы – атомы, отбросив, таким образом, чисто технологические детали, не добавляющие ценности в конечный результат или же имеющие утилитарные и побочные функции. И через эту «технику» я стремлюсь разобраться и переосмыслить начала информационных процессов вновь. Я попрошу вас не сравнивать атомизм, как подход по отбрасыванию незначащих деталей, и разбор предметов «по винтикам», с наивным искусством, которое рассматривает мир через примитивное представление.
Я предполагаю, что читатели обладают базовыми знаниями в области информатики, управления базами данных, а также в области логических методов искусственного интеллекта. Несмотря на то, что я пытаюсь достаточно просто и подробно описать суть вещей и привести достаточное количество примеров, тем не менее, неподготовленного читателя могут смутить ссылки на некоторые технологии, которые никак не возможно было бы описать в этой книге. Впрочем, при наличии огромного количества информации в Интернете, я думаю, что отсылка к терминам, системам и технологиям не станет препятствием для неосведомленного в чем-то читателя, если в нем присутствует пытливость ума.
Я вполне понимаю, что можно найти множество произведений подобной направленности с поиском рецепта для всеобъемлющего решения любых задач – в том числе записи в блогах и на интернет сайтах, статьи, научные работы и книги. Также я не хочу навязывать вам какую-то определенную программную реализацию со словами «вот видите, это настоящий интеллект, настоящая реализация такой-то графовой модели». Вместе с тем, мы с вами уже видели не один десяток таких «конкретных» программ и книг, каждый раз непременно разочаровываясь. Поэтому, задумывая эту книгу, я старался обратиться к основам основ и дать детальную аргументацию, почему меня волнуют одни технологии и менее симпатичны другие, а также какие взгляды существуют на одну и ту же проблематику. И всё-таки в основном я хочу высказать свою собственную точку зрения, а не описывать среднестатистический взгляд, за долгие годы ставший нормой.
Дело в том, что, несмотря на обилие интеллектуальных технологий, в большинстве из них отсутствует такая важная составляющая, как полнота. Полнота требует видения того, как система будет работать вообще, в целом. Является ли она жизнеспособной, не решает ли она какую-то маленькую частичку общей задачи. Дает ли она возможность быть не только «вещью в себе», но и позволяет ли через себя развиваться другим технологиям. Я постарался дать полную картину. Что получилось – судить Вам.
Для чего эта книга
Постановка задачи – один из самых важных разделов любого описания, любой теории, любой практической задачи. Откройте какую-нибудь книгу, посвященную бизнес-процессам, внедрению программного обеспечения или управлению проектами, и Вы увидите одно и то же правило: «максимально точно определяйте цель». Самыми дорогими являются ошибки и упущения, сделанные на этапе проектирования системы. Непродуманность результата сказывается на качестве и на эффективности теории. Поэтому начнем с цели.
Целью этой книги является описание модели данных, которая будет способствовать созданию интеллектуальных информационных систем. Я бы написал об «универсальной информационной системе», но это было бы слишком похоже на «сферического коня в вакууме», то есть на выхолощенную систему, якобы рассчитанную на любую сферу применения, но не реализующую ничего конкретного. Так что информационная система может представлять собой платформу или набор для создания систем, например, библиотеку или программный интерфейс. Такая платформа призвана сделать шаг вперед для улучшения существующих прикладных систем. Тем не менее, далее я буду применять термин «интеллектуальная или универсальная информационная система».
На уровне современных информационных систем модель данных, описываемая в этой книге, позволит системам гораздо гибче отражать их информационное наполнение, развить собственный словарь данных, снять жесткие ограничения на структуру данных, заложенную в современных моделях данных, при этом, не отрицая принципы их построения. Предлагаемая модель данных позволит модифицировать собственные структуры данных к индивидуальным требованиям пользователей. То есть, позволит не стоять им на месте, а развиваться органически и непрерывно в противоположность «методу водопада», который в настоящее время применяется в 95% систем для изменения структур данных.
К интеллектуальной информационной системе мы предъявляем ряд требований. Оговорюсь, что «интеллектуальная информационная система» на сегодняшний день выглядит как нечто несбыточное. Но, пожалуй, пройдёт 7—15 лет и то, что сегодня мы подразумеваем под «интеллектуальной» системой, станет самой ординарной и естественной информационной системой. При этом часть следующих требований относится к самому сегодняшнему определению «интеллектуальности» системы. Итак, интеллектуальная система должна обладать следующими свойствами:
– способность решать задачи различного уровня и свойства, то есть универсальные задачи. Система, обладающая знаниями о том, как решается задача, должна решать её на основе исходных данных универсальной структуры и универсальные интерфейсы взаимодействия с пользователем,
– способность найти решение задачи. Если система не может решить определенную задачу, но система обладает знаниями о решении более абстрактной задачи, части задачи или похожей задачи, она должна сформировать алгоритм решения задачи,
– способность запросить и получить решение задачи. Если система не представляет, каким образом она может решить задачу, либо ей не хватает данных для решения задачи, то система должна обладать возможностями узнать у другой похожей системы, как решать задачу,
– способность обучаться. Система с учетом уже полученных знаний должна их накапливать, и при необходимости пользоваться ими, не запрашивая вновь,
– способность планировать действия. Система должна иметь возможность декомпозировать задачи и вырабатывать план действий,
– способность анализировать ситуацию. Система должна анализировать, интерпретировать внешнюю ситуацию и понимать, каким образом внешняя ситуация измениться при влиянии на неё.
В общем и целом, эти цели системы сводятся к ряду задач, связанных с логическими операциями, операциями интерпретации данных, операциями по структурированию данных.
Основной вопрос в контексте данной книги: а для чего нужна такая система? Есть тысячи специализированных систем. Но день за днём продолжают появляться позаказные системы, а это означает, что специализированные системы не в состоянии решать задачи с должной мерой универсальности, гибкости и масштабируемости. Одним из ярких примеров являются системы управления проектами. В каждой из них можно найти «червоточину», несмотря на то, что управление проектами – чрезвычайно широко распространенная область, требующая автоматизации.
Также есть гораздо более эффективный механизм, чем какая-то универсальная система – это человек, которые отлично справляется с этими задачами. Однако по сравнению с человеком компьютер обладает свойствами, которые человеку неподвластны:
– точность запоминания данных и долгосрочность памяти. Со временем человек способен забывать информацию, в том числе и важную информацию. Компьютер хранит данные так, как они были сохранены.
– объем хранения данных. Компьютер может хранить множество данных, которые невозможно запомнить человеку. Например, в системах управления персоналом компьютерные системы могут хранить данные по десяткам тысяч сотрудников, когда-либо работавших в компании. Ни один человек не может сделать подобного.
– собственность. Компьютер является собственностью, то есть определенный человек и компания может быть уверены, что данные будут принадлежать человеку и компании.
– доступность. Информация, хранящаяся на компьютере доступна 24 часа в сутки 365 дней в неделю.
– надежность. Как говорит один из законов Мэрфи «Компьютеры ненадежны, но люди еще ненадежнее». Это свойство является следствием из принципов доступности и определенности структур данных.
– определенность структур данных. Компьютерная система должна позволять проанализировать себя пользователю. Внутренние механизмы компьютера должны быть понятны и прозрачны, то есть анализируемы. Напротив, форма хранения знаний человеком неопределенна. Механизмы хранения знаний человеком непрозрачны и недоступны для получения извне.
Разумеется, невозможно сравнивать компьютер и человека. Такое сравнение неизменно напоминает анекдоты вроде «чем девушка отличается от телевизора…» или же «чем отличаются орехи от мужа…». Тем не менее, использование универсальной информационной системы может дать следующие возможности:
– создание гибких и динамических систем принятия решения/управления некоторыми процессами и данными,
– выявление неочевидных связей между данными,
– существенное снижение затрат на программирование систем,
– создание баз знаний, модифицирующихся структур данных и самоорганизующихся процессов в информационных системах,
– существенное упрощение получения, интерпретации и формирования данных при взаимодействии системы с другими системами и с окружающим миром.
Реализация этих обширных планов невозможна без участия двух составляющих системы – данных и процессов, реализующих обработку данных. Эта пара реализует дуализм в информационных системах, выражающих статику и движение, соответственно. Модели данных, используемые на сегодняшний момент, не позволяют в достаточной степени удовлетворить требованиям, которые предъявят интеллектуальные информационные системы к этим моделям в силу множества ограничений по гибкости, заструктурированности и пр. Эти ограничения будут рассмотрены ниже. Получается, что жесткая структура данных, распространяет свое статическое влияние на процессы. Системам непременно потребуется новая модель данных, не отрицающая устоев существующих структур данных, но предлагающая принципиально новые подходы. Такая модель и является целью настоящей книги.
К сожалению, в теориях, описывающих глобальное взаимодействие множества агентов (независимых участников какой-либо системы, среды или социума) часто прослеживается идея «интеллектуального супа» или самозарождения жизни. Например, к таковым относятся макроэкономические теории, а в особенности теории, связанные с интеллектуальными технологиями. Некоторые теории предполагают, что достаточно создать некоторые начальные условия и структуры, и по прошествии некоторого времени мы сможем получить саморазвивающуюся интеллектуальную систему без дополнительных усилий по созданию такой системы. Такие теории считают, что для создания интеллектуальной системы достаточно создать «первичный бульон», а готовая система будет самостоятельным результатом эволюционных факторов и внешних влияний.
Анализ результатов работы подобных подходов говорит, что на практике в результате работы таких моделей никаких реальных результатов не появляется. «Интеллектуальный бульон» остаётся лишь набором ингредиентов, если только его не поражает гниль и плесень. Жизнь или не рождается сама, или ситуация с самостоятельным зарождением жизни похожа на теорему о бесконечных обезьянах («абстрактная обезьяна, ударяя случайным образом по клавишам пишущей машинки в течение неограниченно долгого времени, рано или поздно напечатает любой заданный текст»). Зато чаще всего такие декларации говорят о том, что теория недостаточно проработана и там, где теоретически должна зародиться самостоятельная жизнь, представления самих авторов теории о том, что же конкретно должно произойти в том месте, заканчиваются.
В этой книге я постараюсь ограничить себя от подобных недоработок.
Ограничения
Область действия интеллектуальных систем чрезвычайно широка – от распознавания текстов и речи до роботизированных систем.
Большая часть систем ориентирована на коммуникацию с человеческими системами – с письменностью, устной речью, лексическим анализом и пр. Обычно они производят наиболее яркое впечатление при демонстрации. Робот, моделирующий поведение человека вызывает ощущение, что перед тобой человек. В большинстве же случаев такая реализация – это не более чем моделирование отдельных составляющих человека, которые теряют смысл без всех прочих неотъемлемых частей, таких как коммуникация, хранение информации и пр.
В этой книге я сосредоточусь в большей степени на низкоуровневых механизмах, которые как раз позволят связать подходы естественного анализа, такие как логика, механизмы обучения, формирование потребностей, с техническими основами, такими как управление операциями и системы управления базами данных.
Вследствие этого все остальные части общей системы, будут отодвинуты на второй план как менее значимые. Например, всё взаимодействие с человеком будет рассматриваться на уровне традиционных экранных интерфейсов, а вопросы синтаксического анализа, например, анализ падежей и других конструкций языка, будут опущены как производные.
Картина мира
Агенты
Прежде чем переходить к частным вещам, таким как идентификация данных или связь лексических единиц, рассмотрим системы с точки зрения макро-элементов. То есть, рассмотрим среду, в которой существует информация, данные и информационные процессы. Это необходимо для определения этимологии информации, определения общих правил её распространения и для получения обобщенного взгляда на информационные процессы.
Так же, как и в окружающем нас мире, в интеллектуальных системах можно выделить несколько принципов, которые влияют на взаимодействие систем на макро-уровне. Разумеется, можно не брать во внимание это общее представление, абстрагироваться от него. В таком случае мы упростим систему, и тогда она будет ограничена только поставленными перед ней задачами обработки данных, и не будет ориентироваться на коммуникацию с внешними системами. В таком случае внешние системы, и как частный случай этих систем – человек, должны будут подстраиваться под эту систему, которая в свою очередь дистанцируется от взаимодействия с другими системами. Такая система, очевидно, будет похожа на образец систем 60-х годов прошлого века. В частности, Норберт Винер в своей «Кибернетике» писал: «В идеальную вычислительную машину все данные надо вводить сразу же в начале работы, и затем до самого конца она должна по возможности быть свободна от человеческого вмешательства. Это значит, что машина должна получить в начале работы не только все числовые данные, но и все правила их соединения, в виде инструкций на любую ситуацию, которая может возникнуть в ходе вычислений.» [1]. Для любого современного пользователя программных систем этот подход выглядит более чем анахронично в силу своей чрезвычайной закрытости и отсутствия интерактивности.
Мы же рассматриваем систему, которая должна иметь возможность постоянно развиваться, и которая будет способна к универсальности в выполнении задач. Под универсальностью понимается их возможность встраиваться в общую экологическую систему своего существования (общество).
Именно универсальность в интеллектуальных системах является наиболее ценным свойством, она означает наибольшую гибкость системы, её способность, с одной стороны, улавливать, воспринимать, распознавать, усваивать внешние данные и, с другой стороны, формировать ответы, реакции, генерировать информацию и действия, которые вписываются в общепринятую структуру знаний. Общепринятая структура знаний – это система понятий, терминов, методов и теорий, принятых в обществе.
Как видно из определения, основными свойствами системы являются коммуникативные способности в социуме. Другими словами, рассматривается не какая-то расчетная функция, не интеллектуальный механизм, а способность коммуницировать в общей среде. В то же время, отдельный элемент системы, обладающий только коммуникативными свойствами, является вырожденным, поскольку не несет в себе никакой ценности, связанной с выборкой, хранением, структурированием и анализом информации. Однако «разум в себе», не имеющий достаточных коммуникативных качеств, также является вырожденной системой. Но и так же можно сказать, что невозможно поддерживать приемлемый уровень коммуникации без обработки информации. В частности, система не сможет ответить на вопросы к ней, если у неё не будет хранилища информации, системы выборок информации и т. п.
В качестве примера, газеты с объявлениями или доски объявлений можно рассматривать не более чем как обособленные коммуникативные системы. Однако и газеты рекламных объявлений, и другие способы коммуникации структурируют и формализуют информацию – через формат газеты, рубрики и разделы, формат объявлений.
Для рассмотрения «общества» интеллектуальных систем наилучшим образом подходит теория многоагентных систем (МАС, multi-agent system). Это система, которая образована несколькими взаимодействующими интеллектуальными агентами. Интеллектуальный агент – это некоторая сущность, наблюдающая за окружающей средой или действующая в ней. Такой агент может быть роботом, программной системой, человеком и пр. Коммуникативная часть является определяющей, однако раз мы исследуем компьютерные системы, большее внимание мы будем обращать на агентов как на программные системы.
Агенты разделяются на агентов с простым поведением, агенты с модельным поведением, целенаправленные агенты, практичные агенты, обучающиеся агенты и т. д.
В теории мультиагентных систем отдельно выделяются субагенты. Субагент – это часть агента, которая может быть выделена в специализированную подсистему. Так, существуют:
– временные субагенты для принятия оперативных решений,
– пространственные агенты для взаимодействия с реальным миром,
– обучающие агенты и т. д.
Субагенты могут быть различного назначения, и в большей степени они разделяются исходя из процессов и архитектуры самого агента.
Агенты в многоагентной системе должны иметь несколько важных характеристик:
– автономность,
– ограниченность представления. То есть, ни у одного агента нет представления обо всей системе,
– децентрализованность, то есть, в системе нет агентов, управляющей всей системой.
В многоагентной среде отдельные агенты имеют возможность получать и формировать информационные поля в виде сообщений между собой. Не обязательно, что все агенты являются равными по ролям, по правам, по возможностям, по зависимостям друг от друга, по доступности или открытости взаимодействия с другими агентами. Например, в многоагентной среде наравне с интеллектуальными агентами могут существовать агенты для обмена данными, такие как поисковые сервера, публичные хранилища для обмена данными и для получения данных.
Агенты как черный ящик
В многоагентной среде на первый план выходит взаимодействие между агентами. И на второй план отходит реализация этих агентов. Главное, чтобы агенты поддерживали общепринятый протокол обмена информацией, а как устроены эти агенты внутри и из чего они состоят, по большому счету, не имеет значения.
Таким образом, агенты предстают перед нами в виде черного ящика. Мы знаем, что они общаются с нами, но не знаем, кто они такие, какие механизмы обработки данных лежат в их основе, какую информацию они хранят в себе.
Большое количество современных программ и отдельных обработок в программах представляется нам аналогичным образом. Они являются закрытыми: на их входе существует некоторое количество исходных данных, на выходе – некоторый результат. С развитием интерактивных программ, некоторые обработки в рамках программных систем становятся еще менее прозрачными для пользователя, поскольку ему не всегда понятно, какие данные системы являются исходными для обработки, куда сохраняется результат и почему получился именно такой результат. Например, при расчете остатка дней отпуска сотрудника в системе управления персоналом система может брать (или не брать) в расчет дату приема сотрудника, признак ненормированного рабочего дня, отпуска, взятые за свой счёт более 7 дней, отпуска по уходу за ребенком. Количество параметров столь велико, что нельзя быть уверенным, что процедура расчета полностью возьмет все из них, и корректно рассчитает количество дней права на отпуск. Результатом работы такой процедуры является остаток дней. Но система может их хранить в нескольких таблицах (например, по рабочим годам сотрудника и общее количество дней в целом). И нет никакой гарантии, что процедура расчета верно запишет результаты во все таблицы, и что данные в этих таблицах будут непротиворечивы. Поскольку данные хранятся во внутренних таблицах системы, проверить их простому пользователю практически невозможно (лишь используя специальные отчеты) так же, как и невозможно проверить правильность работы процедуры – от параметров до логики.
Тем не менее, принцип «черного ящика» хорош, если мы хотим абстрагироваться от существа обработок, и сосредоточиться на вопросах коммуникации между системами, либо на вопросах предоставления и получения некоторой информации. Этот принцип может быть полезен при отделении части процессов на уровень субагентов. При проектировании систем содержимое «черного ящика» обычно заменяется элементарным (простейшим) процессом или заглушкой.
Тест Тьюринга
Поскольку агенты определяются именно своими коммуникационными способностями, в этом контексте невозможно не упомянуть тест Тьюринга. Кроме того, в этой главе я хочу определиться со своим отношением к общему понятию искусственного интеллекта.
Основную идею общего понятия «искусственный интеллект» в 1950 году сформировал Алан Тьюринг, автоматически став его основоположником. В журнале Mind Тьюринг описал тест на интеллект. Тест основан на взаимодействии человека (следователя) и компьютера. Общение происходит в изолированных комнатах посредством компьютерного терминала. Следователь задает вопросы и получает ответы от своего собеседника. Следователь не знает, общается он с человеком или с компьютером. Смысл теста Тьюринга заключается в том, чтобы признать, что компьютер обладает интеллектом, если следователь не смог раскрыть компьютер в качестве собеседника.
Конечно, по прошествии почти 60 лет будет неправильно говорить о корректности замещения определения «разумности» определенным тестом. До сих пор ни одна машина не в состоянии пройти тест Тьюринга. Но нужно ли проходить этот тест?
Тест Тьюринга преследует цель выявления внутреннего разума компьютера. В то же время для смазывания разницы в человеко-машинной коммуникации был выбран метод общения посредством компьютерного терминала.
Между тем, проблема во взгляде на «машинный интеллект» всё-таки существует. Она заключается в том, что под влиянием этого теста «искусственный интеллект» становится идентичным понятию «эмуляция человека». Причём от машинного интеллекта требуется точного воспроизведения всех черт, присущих человеку, включая ошибки, неточности и неспособности, например, неспособность человека к быстрым и точным вычислениям.
Но ждем ли от искусственного интеллекта полной идентичности человеческим возможностям? Очевидно, нет. Но такая задача по построению полной аналогии машины и человека проходит лейтмотивом во множестве технологий искусственного интеллекта. Например, идея воспроизведения мозга дала старт разработке нейронных сетей. Желание «вырастить» идеальную саморазвивающуюся структуру породило эволюционные алгоритмы и игру «жизнь».
В то же время копирование внутренних механизмов, присущих человеку, и воспроизведение человеческих возможностей – вещи разные. Перцептрон, реакционный процессинг и другие механизмы помогают нам наилучшим образом реализовать определенные идеи и задачи, такие как распознавание образов. И напротив, полное повторение человека – бесперспективно, поскольку слепое копирование результата не несет ключевой ценности: человек лишь носитель, одна из реализаций интеллекта, к которому мы стремимся в программных системах.
Компьютер обладает собственными важными свойствами, которые делают его ценными. Это быстрота и точность расчетов, быстрота в поиске данных, надежность и точность (дискретность) логики в выполнении программных инструкций, возможность хранения большого числа хорошо структурированных данных.
Мышление человека существенно отличается от правил обработки данных компьютером. Он состоит в возможности принятия решений в условиях ограниченности информации, отсутствии четкой структурированности информации, динамическом построении операций. Да и, вообще говоря, можно ли сравнивать компьютер и человека? К компьютеру не могут быть применимы такие сложные понятия как чувственность, интуиция, мечты, фантазия, экспрессия и одухотворенность. Но от этого компьютер не делает хуже вычисления и выполнение программ. От этого мы не работаем с ним меньше. Так давайте рассматривать искусственный интеллект в компьютерной реализации не как конкурента или брата, а как средство.
Ставя задачу «искусственного интеллекта» перед компьютером, мы определяем те результаты, которые будут полезны для человека, поскольку на современной стадии развития программных технологий глупо стремиться воспринимать компьютер как брата по разуму. И, более того, это совершенно не нужно, поскольку компьютер остается средством для принятия решений, средством для хранения и быстрого поиска данных, средством для решения прикладных задач.
Периодически в области искусственного интеллекта мелькает еще одна крамольная идея. Звучит она примерно следующим образом: «Если воспроизвести человеческий мозг, то мы получим интеллект». К этому измышлению подстегивает Норберт Винер: «…кибернетика полагает, что строение машины или организма является показателем их способности выполнить задачу. … механическая ригидность насекомого ограничивает его интеллект, в то время как механическая гибкость человеческого существа обеспечивает его почти безграничное интеллектуальное развитие… Теоретически, если бы мы могли создать машину, механическая структура которой воспроизводила бы человеческую физиологию, то мы могли бы иметь машину, „интеллектуальные способности“ которой воспроизводили бы умственные способности людей.» [2]
Как будто интеллект – это результат химической реакции или суп, сваренный из точно выверенных ингредиентов по какому-то мифическому рецепту. К сожалению, немногого можно добиться способом слепого копирования и ожидания последующей синергии, а также перехода количества в качество. Нельзя надеяться на то, что созданная структура сама восполнит отсутствие представлений по целому пласту знаний и видения процесса, и сама начнет воспроизводство «разума». Чудес не будет. Одна из причин этого в том, что помимо воспроизведения механизмов, как минимум, эти механизмы необходимо наделить знаниями (врожденными или априорными рефлексами, инстинктами и пр.). Думаю, если рукотворно можно создать такой организм, этот организм будет схож с клоном самого человека. А нужен ли нам клон, к этому ли мы стремились, создавая такой механизм?
Позиционирование и правильное определение задач и подходов в каждой области – вот от чего зависит успех науки в отрасли знаний. До сих пор «искусственный интеллект» является чрезмерно размытой областью знаний. Сюда входит и распознавание образов, и интеллектуальные алгоритмы, к чему бы они ни прилагались, и рекурсивный поиск, и задачи распознавания языка.
В поиске методов, подходов и идей искусственного интеллекта, объектом исследований выступает человек: его форма мышления, его механизмы. Желание повторить человека – не самое лучшее желание, поскольку человек – это сложное, согласованное и гармонизированное создание. Каждая его составляющая является важной – слух, коммуникация, зрение, мышление, речь, органы движения. Ущемление одной небольшой функции может вести к потере полноценной деятельности человека. Потому идея создания подобия человека – это, пожалуй, профанация.
Другое дело, человек – прекрасное создание для анализа и воспроизведения его отдельных составляющих. В первую очередь, того, что отличает человека от другого рода организмов, а именно наличия разума.
Единый обобщающий тест на разум, который придумал Тьюринг, сомнителен как по своему назначению, так и по своей методике. При помощи этого теста Тьюринг хотел отойти от критерия «разумности», но что же измеряет этот тест? Он сличает человека и машину, или точнее – подтягивает машину к человеческим стандартам. Насколько такое сравнение корректно, и насколько такое сравнение полезно? Какой результат и какие выводы даст такое сравнение? Ясных ответов на эти вопросы попросту нет.
Кроме того, я не уверен, что все люди могут пройти тест Тьюринга. Эта неуверенность может посетить каждого, кто достаточно времени провел в чатах. Будь у человека на том «конце провода» сложности с вербализацией (выражением мыслей), со знанием языка общения, перцепцией (восприятием) – и мы, тестируя его по Тьюрингу, то есть, сомневаясь в том, что на другой стороне «провода» человек, можем поставить отрицательный результат. Тест пройден не будет. Можно сделать вывод, что тест Тьюринга – это не тест на разумность, это система распознания «свой – чужой». То есть, тест на то, соответствует ли собеседник понятиям и стандартам тестирующего.
Единственным выводом из этой непростой ситуации является отказ от понятия «разума» как цели, к которой должен стремиться искусственный интеллект. Не надо измерять разум как единое и неделимое целое, так же как не надо стремиться определить критерии разума, поскольку это эмпирическое понятие, состоящее из сотен характеристик.
Что же надо делать в действительности, если мы всё же желаем использовать машину как интеллектуальный механизм? Очевидно, выявить составляющие разума, которые имеют ценность, как для человека, так и для их отчуждения в сторону машинной реализации.
Таким образом, с точки зрения агентов нам вообще не важно, кто находится на «том конце провода». Основная задача реализации агентов заключается в том, чтобы агент, находящийся с нами в контакте, был адекватен относительно исполняемых им задач и коммуникации. Но критерий адекватности означает не тест на соответствие полноте тестирующего человека (как тест Тьюринга), а тест на необходимость и достаточность в коммуникации. Это подобно тому, как мы можем объясниться с иностранцами, порой языком жестов и междометий, но объясняя суть вещей, несмотря на то, что он, очевидно, не знает таких слов как «шумовка» или «противень» на нашем языке общения. А, возможно, таких слов попросту нет в его родном языке.