Добрый день! В курсе "Проектирование систем искусственного интеллекта" начал проходить обучение и сдал тесты по лекциям 1,2,3,4. Но видимо из-за того что не записался на курс, после того как записался на курс у меня затерлись результаты сданных тестов. Можно как-то исправить (восстановить результаты по тестам 1,2,3,4) ? |
Архитектура и основные составные части систем ИИ
Интересно отметить, что именно поисковые процедуры казались на первом этапе развития работ по интеллектуальным программам той метапроцедурой, с помощью которой можно будет решать все интеллектуальные задачи. Первая программа, которая обобщила эту идею, называлась "Общий решатель задач". В этой программе, созданной А. Ньюэллом, Дж. Шоу и Г. Саймоном, поиск с локальными критериями успеха был основной процедурой. Решение всех задач, по мысли авторов, могло быть сведено к поиску пути в лабиринте альтернативных возможностей.
И хотя эти надежды не оправдались, цикл подобных исследований оказался весьма полезным. Были созданы достаточно эффективные процедуры поиска, используемые специалистами по искусственными интеллекту не только при решении игровых задач, но и во многих других областях (например, при планировании целесообразной деятельности в интеллектуальных системах).
Переборные игры составляют, по-видимому, большинство во множестве распространенных среди людей игр. Существенно меньшую часть составляют топологические игры, в которых необходимо учитывать не только дерево игры, задаваемое возможными последовательностями ходов противников, но и структурой самой позиции как целого. Примером такой игры может служить го. В этой игре оценка позиции не может быть сведена, как, например, в шахматах, к описанию множества фигур и их расположения на игровом поле. Для го важно не конкретное расположение камней по тем или иным полям, а те конфигурации, которые они образуют на плоскости игрового поля. Программирование таких игр требует создания в памяти ЭВМ эталонных образов тех или иных областей, занятых камнями противников. А это куда более сложная и до конца пока не решенная задача, нежели организация поиска по дереву альтернативных возможностей. Стохастические игры появляются тогда, когда в процессе игры возникают вероятностные шаги или очередная ситуация формируется при участии некоторого вероятностного механизма. С программированием таких игр (например, карточной игры в очко) связано развитие методов правдоподобного оценивания вариантов, получившего в искусственном интеллекте заметное использование. Во всех таких ситуациях важно уметь пересчитать оценку правдоподобия результирующей ситуации после выбора определенного хода с учетом оценок правдоподобия текущей ситуации и выбора противника.
К стохастическим играм примыкают и игры с неполной информацией, когда при принятии решения необходимо как-то оценивать недостающую информацию. Эти приемы постоянно используются при обращении к содержимому памяти в интеллектуальных системах, когда в ней отсутствует нужная информация, что является почти стандартной ситуацией при функционировании таких систем в сложных предметных областях.
Компьютерные игры, получившие в последнее время столь широкое распространение, вообще говоря, не относятся традиционно к работам по искусственному интеллекту. Хотя эта ситуация столь же случайна, как и ситуация с распознаванием образов. Конечно, игры с жесткой схемой, в которых "интеллекта" практически нет, не представляют для работ по искусственному интеллекту интереса, но сценарные игры уж точно относятся к рассматриваемой области науки. В них используются сценарии развития игры, движение по которым определяется обоими партнерами. Эти же принципы применяются и в таких типичных для искусственного интеллекта задачах, как организация диалога интеллектуальной системы с пользователем на ограниченном естественном языке, интересны сценарии и для планирования целесообразной деятельности в интеллектуальных работах и других системах искусственного интеллекта.
С самого начала появления ЭВМ стали создаваться программы для машинного перевода и автоматического реферирования текстов. Создание этих программ оказало значительное влияние на развитие искусственного интеллекта, заложило основы тех работ, которые были непосредственно связаны с естественно-языковым общением пользователей с интеллектуальными системами.
В системах машинного перевода были разработаны модели и методы, позволяющие автоматически проводить морфологический, синтаксический и во многом семантический анализ фраз естественного языка, нащупаны приемы анализа связного текста. Все эти результаты активно используются при обработке естественно-языковых текстов в интеллектуальных системах.
В работах по автоматическому реферированию были заложены основы понимания общей структуры текста как целого, от идеи "что говорится" был сделан переход к идее "о чем говорится". Это позволило на более высоком уровне создавать программы генерации текстов. Если первые программы такого вида основывались на жестких моделях порождения или вероятностных механизмах, то более поздние программы генерации текстов стали опираться на идеи сценариев, а также на приемы, наработанные в программах по автоматическому реферированию. Сейчас качество прозаических текстов, создаваемых с помощью ЭВМ, достаточно высоко, если тексты имеют жесткую внутреннюю структуру, определяемую их назначением. Таковы, например, волшебные сказки, в основе которых лежит жесткий сценарий поведения действующих лиц, таковы хроникальные заметки или документы, но созданы и достаточно любопытные программы, порождающие поэтические тексты, в которых наблюдается иная крайность — почти полное отсутствие смысловой структуры при достаточно жесткой структуре формы.
Музыкальные программы, пожалуй, наиболее известны широкой публике, так как первые опыты по созданию таких программ сразу дали весьма обнадеживающие результаты. Этот успех связан опять-таки с наличием, с одной стороны, жестких правил при построении мелодии, а с другой стороны, во многом вероятностными моделями, порождающими остальные элементы музыкального произведения. Менее известны широкой публике программы, ориентированные на музыковедов, в которых имитируются стили исполнения или исследуется "анатомия" музыкальных произведений и процесса их сочинения. Однако весь комплекс музыкальных программ, хотя и не оказал прямого влияния на работы по искусственному интеллекту, стал полезным для формирования общего взгляда на природу творческих процессов и их моделирования.
Узнающие программы зародились в недрах исследований по распознаванию образов. Но, как уже говорилось, многие из них оказали значительное влияние на идеи, характерные для работ по созданию интеллектуальных систем, особенно при создании обучающих систем. При их разработке были найдены методы оценивания похожести одних объектов на другие, заложены основы рассуждений по аналогии и ассоциации, использования обучающих последовательностей примеров и контрпримеров; все это вошло в фонд методов, которыми пользуется специалист по искусственному интеллекту.
Несколько особняком стоят программы, с помощью которых создаются машинные произведения в области графики и живописи. Эти исследования связаны, в основном, с появлением специальных программных и в меньшей мере аппаратных средств для устройств графического вывода. Но косвенно эти программы оказывают влияние на те разделы искусственного интеллекта, которые связаны с использованием зрительных образов при решении задач.
Третье основное направление в создании искусственного интеллекта образует его фундамент. Именно здесь создается теория данного научного направления, решаются основные проблемы, связанные с центральным объектом изучения искусственного интеллекта — знаниями.
Существуют различные подходы к построению систем ИИ. Это разделение не является историческим, когда одно мнение постепенно сменяет другое, и различные подходы существуют и сейчас. Кроме того, поскольку по-настоящему полных систем ИИ в настоящее время нет, то нельзя сказать, что какой-то подход является правильным, а какой-то — ошибочным.
Кратко рассмотрим логический подход. Почему он возник? Ведь человек занимается отнюдь не только логическими измышлениями. Это высказывание, конечно, верно, но именно способность к логическому мышлению очень сильно отличает человека от животных.
Основой для данного логического подхода служит Булева алгебра. Каждый программист знаком с нею и с логическими операторами с тех пор, когда он осваивал оператор IF. Свое дальнейшее развитие Булева алгебра получила в виде исчисления предикатов — в котором она расширена за счет введения предметных символов, отношений между ними, кванторов существования и всеобщности. Практически каждая система ИИ, построенная на логическом принципе, представляет собой машину доказательства теорем. При этом исходные данные хранятся в базе данных в виде аксиом, правила логического вывода существуют как отношения между ними. Кроме того, каждая такая машина имеет блок генерации цели, и система вывода пытается доказать данную цель как теорему. Если цель доказана, то трассировка примененных правил позволяет получить цепочку действий, необходимых для реализации поставленной цели. Мощность такой системы определяется возможностями генератора целей и машиной доказательства теорем.
Конечно, можно сказать, что выразительности алгебры высказываний не хватит для полноценной реализации ИИ, но стоит вспомнить, что основой всех существующих ЭВМ является бит — ячейка памяти, которая может принимать значения только 0 и 1. Таким образом, было бы логично предположить, что все, что возможно реализовать на ЭВМ, можно было бы реализовать и в виде логики предикатов. Хотя здесь ничего не говорится о том, за какое время.
Добиться большей выразительности логическому подходу позволяет такое сравнительно новое направление, как нечеткая логика. Основным ее отличием является то, что правдивость высказывания может принимать в ней, кроме "да/нет" (1/0), еще и промежуточные значения — "не знаю" (0.5), "пациент скорее жив, чем мертв" (0.75), "пациент скорее мертв, чем жив" (0.25). Данный подход больше похож на мышление человека, поскольку мы на вопросы редко отвечаем только "да" или "нет". Хотя, правда, на экзамене будут приниматься только ответы из разряда классической булевой алгебры.
Для большинства логических методов характерна большая трудоемкость, поскольку во время поиска доказательства возможен полный перебор вариантов. Поэтому данный подход требует эффективной реализации вычислительного процесса, и хорошая работа обычно гарантируется при сравнительно небольшом размере базы данных.
Под структурным подходом мы подразумеваем здесь попытки построения ИИ путем моделирования структуры человеческого мозга. Одной из первых таких попыток был персептрон Френка Розенблатта. Основной моделируемой структурной единицей в персептронах (как и в большинстве других вариантов моделирования мозга) является нейрон.
Позднее возникли и другие модели, которые в просторечии обычно известны под термином "нейронные сети" (НС). Эти модели различаются по строению отдельных нейронов, по топологии связей между ними и по алгоритмам обучения. Среди наиболее известных сейчас вариантов НС можно назвать НС с обратным распространением ошибки, сети Хопфилда, стохастические нейронные сети.
НС наиболее успешно применяются в задачах распознавания образов, в том числе сильно зашумленных, однако имеются и примеры успешного использования их для построения собственно систем ИИ — это уже ранее упоминавшийся ТАИР.
Для моделей, построенных "по мотивам" человеческого мозга, характерна не слишком большая выразительность, легкое распараллеливание алгоритмов и связанная с этим высокая производительность параллельно реализованных НС. Также для таких сетей характерно одно свойство, которое очень сближает их с человеческим мозгом, — нейронные сети работают даже при условии неполной информации об окружающей среде, то есть, как и человек, они на вопросы могут отвечать не только "да" и "нет", но и "не знаю точно, но скорее да".
Довольно большое распространение получил и эволюционный подход. При построении систем ИИ по данному подходу основное внимание уделяется построению начальной модели, и правилам, по которым она может изменяться (эволюционировать). Причем модель может быть составлена по самым различным методам, это может быть и НС, и набор логических правил, и любая другая модель. После этого мы включаем компьютер, и он на основании проверки моделей отбирает самые лучшие из них, на основе которых по самым различным правилам генерируются новые модели, из которых опять выбираются самые лучшие и т. д.
В принципе, можно сказать, что эволюционных моделей как таковых не существует, существуют только эволюционные алгоритмы обучения, но модели, полученные при эволюционном подходе, имеют некоторые характерные особенности, что позволяет выделить их в отдельный класс.
Такими особенностями являются перенесение основной деятельности разработчика с построения модели на алгоритм ее модификации и то, что полученные модели практически не сопутствуют извлечению новых знаний о среде, окружающей систему ИИ, то есть она становится как бы вещью в себе.
Еще один широко используемый подход к построению систем ИИ — имитационный . Данный подход является классическим для кибернетики с одним из ее базовых понятий — "черным ящиком" (ЧЯ). ЧЯ — устройство, программный модуль или набор данных, информация о внутренней структуре и содержании которых отсутствуют полностью, но известны спецификации входных и выходных данных. Объект, поведение которого имитируется, как раз и представляет собой такой "черный ящик". Нам не важно, что у него и у модели внутри и как он функционирует, главное, чтобы наша модель в аналогичных ситуациях вела себя точно так же.
Таким образом здесь моделируется другое свойство человека — способность копировать то, что делают другие, не вдаваясь в подробности, зачем это нужно. Зачастую эта способность экономит ему массу времени, особенно в начале его жизни.
Основным недостатком имитационного подхода также является низкая информационная способность большинства моделей, построенных с его помощью.
С ЧЯ связана одна очень интересная идея. Кто бы хотел жить вечно? Я думаю, что почти все ответят на этот вопрос "я".
Представим себе, что за нами наблюдает какое-то устройство, которое следит за тем, что в каких ситуациях мы делаем, говорим. Наблюдение идет за величинами, которые поступают к нам на вход (зрение, слух, вкус, тактильные, вестибулярные и т. д.), и за величинами, которые выходят от нас (речь, движение и др.). Таким образом человек выступает здесь как типичный ЧЯ.
Далее это устройство пытается отстроить какую-то модель таким образом, чтобы при определенных сигналах на входе она выдавала на выходе те же данные, что и человек. Если данная затея будет когда-нибудь реализована, то для всех посторонних наблюдателей такая модель будет той же личностью, что и реальный человек. А после его смерти она будет высказывать те мысли, которые предположительно высказывал бы и смоделированный человек.
Мы можем пойти дальше и скопировать эту модель и получить брата близнеца с точно такими же "мыслями".
Можно сказать, что "это, конечно, все интересно, но при чем тут я? Ведь эта модель только для других будет являться мной, но внутри ее будет пустота. Копируются только внешние атрибуты, но я после смерти уже не буду думать, мое сознание погаснет (для верующих людей слово "погаснет" необходимо заменить на "покинет этот мир") ". Что ж, это так. Но попробуем пойти дальше.
Согласно философским представлениям автора данного курса, сознание представляет собой сравнительно небольшую надстройку над нашим подсознанием, которая следит за активностью некоторых центров головного мозга, таких, как центр речи или конечной обработки зрительных образов, после чего "возвращает" эти образы на начальные ступени обработки данной информации. Происходит повторная обработка этих образов, мы как бы видим и слышим, что думает наш мозг. Следовательно, появляется возможность мысленного моделирования окружающей действительности при нашем "активном" участии в данном процессе. И именно наш процесс наблюдения за деятельностью этих немногих центров является тем, что мы называем сознанием. Если мы "видим" и "слышим" наши мысли, мы в сознании, если нет, то мы находимся в бессознательном состоянии.
Если бы мы смогли смоделировать работу именно этих немногих "сознательных" нервных центров (работа которых, правда, основана на деятельности всего остального мозга) в качестве одного ЧЯ и работу "супервизора" в качестве другого ЧЯ, то можно было бы с уверенностью говорить, что "да, данная модель думает, причем так же, как и я". Здесь я ничего не хочу говорить о том, как получить данные о работе этих нервных центров, поскольку, на мой взгляд, сегодня нет ничего такого, что позволило бы следить за мозгом человека годами и при этом не мешало бы его работе и жизни.
И заканчивая беглое ознакомление с различными методами и подходами к построению систем ИИ, хотелось бы отметить, что на практике очень четкой границы между ними нет. Очень часто встречаются смешанные системы, где часть работы выполняется по одному типу, а часть — по другому.