Читаем Фреймы для представления знаний полностью

В своей теории М. Минский отказался от попыток формировать модель внешнего мира на основе разрозненных, отдельных фактов или понятий. Центральным моментом является его утверждение о том, что любая машинная модель, отражающая сложности реального мира, должна строиться в виде достаточно большой совокупности определенным образом сформированных данных - фреймов, представляющих собой модели стереотипных (часто повторяющиеся) ситуации. Ситуация понимается здесь в обобщенном смысле, т. е. это может быть действие, рассуждение, зрительный образ, повествование и т.д. Фрейм представляет собой не одну конкретную ситуацию, а наиболее характерные, основные моменты ряда близких ситуаций, принадлежащих одному классу. В переводе с английского frame означает скелет, остов, рамка, что лишний раз подчеркивает общность представленных в нем сведений о моделируемом явлении. Графически фрейм можно изобразить в виде сети, состоящей из узлов и связей между ними. Каждый узел представляет собой определенное понятие, которое - и в этом заключается основной смысл теории - может быть, а может и не быть задано в явном виде. В последнем случае оно может быть конкретизировано в результате процесса согласования данного фрейма с некоторой конкретной ситуацией, имеющей место во внешнем мире. Незаданные в явном виде узлы называются терминалами. Они образуют нижние уровни графовой структуры, тогда как на верхних уровнях располагаются понятия, которые всегда справедливы в отношении представляемой данным фреймом ситуации. Таким образом, совокупность заданных в явном виде узлов - понятий образует основу для "понимания" любой конкретной ситуации из определенного для данного фрейма класса ситуаций. "Понимание" происходит путем конкретизации терминалов и согласования возможных для каждого из них понятий с вполне определенной, существующей во внешнем мире обстановкой. Центральным моментом является использование одних и тех же терминалов различными фреймами, что позволяет координировать информацию, собираемую из разных источников. Группы связанных между собой фреймов объединяются в системы, которые могут отражать действия, причинно-следственные связи, изменения понятийной точки зрения и т. д.

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

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

Представление знаний о мире с помощью систем фреймов оказывается весьма плодотворным во многих областях исследований по искусственному интеллекту, начиная от понимания естественного языка и кончая проблемами машинного восприятия слуховых и зрительных образов. Подтверждением тому служат многочисленные работы таких известных специалистов в области искусственного интеллекта, как Р.Шенк, Р.Абельсон, Ч.Ригер, Е.Чарняк, Дж.Уилкс и др., посвященные конкретизации и развитию теории фреймов.

Весьма обнадеживающим является использование концепции фрейма и применительно к задаче построения информационно-управляющего комплекса манипуляционного робота. Исследования в этом управлении проводятся в Ленинградском научно-исследовательском вычислительном центре АН СССР под руководством В.М.Пономарева и Ф.М.Кулакова.

Вместе с тем следует отметить, что подход М.Минского к решению проблемы представления знаний не лишен недостатков. В частности, человек способен понять не только известные, но и новые ситуации, к чему фреймы пока еще не приспособлены. Видимо, разработка механизмов машинного "понимания" новых фактов на 5азе системы фреймов точно так же, как и развивающихся во времени действий, еще впереди.

Перейти на страницу:

Похожие книги

Основы программирования в Linux
Основы программирования в Linux

В четвертом издании популярного руководства даны основы программирования в операционной системе Linux. Рассмотрены: использование библиотек C/C++ и стан­дартных средств разработки, организация системных вызовов, файловый ввод/вывод, взаимодействие процессов, программирование средствами командной оболочки, создание графических пользовательских интерфейсов с помощью инструментальных средств GTK+ или Qt, применение сокетов и др. Описана компиляция программ, их компоновка c библиотеками и работа с терминальным вводом/выводом. Даны приемы написания приложений в средах GNOME® и KDE®, хранения данных с использованием СУБД MySQL® и отладки программ. Книга хорошо структурирована, что делает обучение легким и быстрым. Для начинающих Linux-программистов

Нейл Мэтью , Ричард Стоунс , Татьяна Коротяева

ОС и Сети / Программирование / Книги по IT
C++
C++

С++ – это универсальный язык программирования, задуманный так, чтобы сделать программирование более приятным для серьезного программиста. За исключением второстепенных деталей С++ является надмножеством языка программирования C. Помимо возможностей, которые дает C, С++ предоставляет гибкие и эффективные средства определения новых типов. Используя определения новых типов, точно отвечающих концепциям приложения, программист может разделять разрабатываемую программу на легко поддающиеся контролю части. Такой метод построения программ часто называют абстракцией данных. Информация о типах содержится в некоторых объектах типов, определенных пользователем. Такие объекты просты и надежны в использовании в тех ситуациях, когда их тип нельзя установить на стадии компиляции. Программирование с применением таких объектов часто называют объектно-ориентированным. При правильном использовании этот метод дает более короткие, проще понимаемые и легче контролируемые программы. Ключевым понятием С++ является класс. Класс – это тип, определяемый пользователем. Классы обеспечивают сокрытие данных, гарантированную инициализацию данных, неявное преобразование типов для типов, определенных пользователем, динамическое задание типа, контролируемое пользователем управление памятью и механизмы перегрузки операций. С++ предоставляет гораздо лучшие, чем в C, средства выражения модульности программы и проверки типов. В языке есть также усовершенствования, не связанные непосредственно с классами, включающие в себя символические константы, inline-подстановку функций, параметры функции по умолчанию, перегруженные имена функций, операции управления свободной памятью и ссылочный тип. В С++ сохранены возможности языка C по работе с основными объектами аппаратного обеспечения (биты, байты, слова, адреса и т.п.). Это позволяет весьма эффективно реализовывать типы, определяемые пользователем. С++ и его стандартные библиотеки спроектированы так, чтобы обеспечивать переносимость. Имеющаяся на текущий момент реализация языка будет идти в большинстве систем, поддерживающих C. Из С++ программ можно использовать C библиотеки, и с С++ можно использовать большую часть инструментальных средств, поддерживающих программирование на C. Эта книга предназначена главным образом для того, чтобы помочь серьезным программистам изучить язык и применять его в нетривиальных проектах. В ней дано полное описание С++, много примеров и еще больше фрагментов программ.

Бьёрн Страуструп , Бьярн Страустрап , Мюррей Хилл

Программирование, программы, базы данных / Программирование / Книги по IT
Программирование. Принципы и практика использования C++ Исправленное издание
Программирование. Принципы и практика использования C++ Исправленное издание

Специальное издание самой читаемой и содержащей наиболее достоверные сведения книги по C++. Книга написана Бьярне Страуструпом — автором языка программирования C++ — и является каноническим изложением возможностей этого языка. Помимо подробного описания собственно языка, на страницах книги вы найдете доказавшие свою эффективность подходы к решению разнообразных задач проектирования и программирования. Многочисленные примеры демонстрируют как хороший стиль программирования на С-совместимом ядре C++, так и современный -ориентированный подход к созданию программных продуктов. Третье издание бестселлера было существенно переработано автором. Результатом этой переработки стала большая доступность книги для новичков. В то же время, текст обогатился сведениями и методиками программирования, которые могут оказаться полезными даже для многоопытных специалистов по C++. Не обойдены вниманием и нововведения языка: стандартная библиотека шаблонов (STL), пространства имен (namespaces), механизм идентификации типов во время выполнения (RTTI), явные приведения типов (cast-операторы) и другие. Настоящее специальное издание отличается от третьего добавлением двух новых приложений (посвященных локализации и безопасной обработке исключений средствами стандартной библиотеки), довольно многочисленными уточнениями в остальном тексте, а также исправлением множества опечаток. Книга адресована программистам, использующим в своей повседневной работе C++. Она также будет полезна преподавателям, студентам и всем, кто хочет ознакомиться с описанием языка «из первых рук».

Бьерн Страуструп , Бьёрн Страуструп , Валерий Федорович Альмухаметов , Ирина Сергеевна Козлова

Программирование, программы, базы данных / Базы данных / Программирование / Учебная и научная литература / Образование и наука / Книги по IT