bannerbanner
Нейронное программирование диалоговых систем
Нейронное программирование диалоговых систем

Полная версия

Нейронное программирование диалоговых систем

Настройки чтения
Размер шрифта
Высота строк
Поля
На страницу:
2 из 3




Усилители, нейроны и Интернет

В статье «» [4], рассуждая о последующих поколениях систем, которые смогут повысить эффективность исследовательской работы человека, Буш очень образно пишет о принципиально новых формах энциклопедий, которые будучи соединенными с персональным устройством – , смогут комплексы ассоциативно-связанных знаний и тех следов, которые в этих знаниях может оставить исследователь. Перефразируя Буша, можно сказать, что информационное усиление – это извлечение гипертекстовых данных из динамических распределенных сетей и их преобразование в процессе интерактивного взаимодействия с человеком. Буш был по-видимому первым, кто достаточно конкретно определил основные компоненты интеллектуального усилителя: ассоциативно-связанные динамические данные, персональное устройство-преобразователь, пользовательский интерфейс. As We May Think memex усиливать

Усилитель электрических сигналов на транзисторе Рис. 3.

Для того чтобы лучше понять принцип работы информационного усилителя, рассмотрим, как происходит усиление в простейшем транзисторе. Если опустить технические детали, связанные с его внутренним устройством, транзистор является преобразователем, подсоединенным к источнику энергии, на управляющий вход которого поступает слабый сигнал, а на выходе получается сигнал, усиленный по мощности (рис. 3).

В самом начале своей статьи, Буш подчеркивает, что экономика – это фактор который превращает идеи в реальность. Ни талант Лейбница, который в 1673 году сумел создать вычислительную машину, близкую по своим характеристикам к современному арифмометру, ни все ресурсы фараона, обладай он при этом всеми знаниями о современных технологиях, не в состоянии превратить идею в практически работающий продукт, если при этом стоимость разработки и эксплуатации не будет находиться в пределах экономической целесообразности [4].

Понадобилось шесть десятилетий со времени появления работы Буша, для того чтобы информация наряду с энергией оказалась экономически доступным ресурсом для большей части человечества. И этот ресурс может быть практически свободно использован любым человеком на Земле через Интернет – огромную, динамичную и постоянно расширяющуюся инфраструктуру данных (рис. 4), которая впитывает, хранит и отражает практически все, что происходит в естественной природе или создается человеком. Большинство данных в Интернете первого поколения представлено в виде страниц, созданных так, как если бы они были предназначены исключительно для чтения человеком, хотя физически он в состоянии прочесть только очень малую часть того, что может быть получено из миллионов веб-серверов.

Картина Интернет на 1 января 2000 года Рис. 4.

За сравнительно короткий период, прошедший с момента появления первых статических страниц в формате , Веб стремительно эволюционировал в направлении повышения функциональности страниц и расширения способов их передачи. Дж. Мартин подметил, что когда в нашем мире появляются принципиально новые технологические достижения, некоторое время они продолжают использовать старое содержание [17]. Например, в телевидении достаточно долгое время, начиная с момента его появления, большую часть новостей заполняли читающие текст дикторы, а телевизионное изображение было лишь фоном для аудиосообщений. Так же и в первом поколении Интернет, используются страницы, которые фактически дублируют печатную продукцию. Однако уже сегодня произошла практическая интеграция всех основных способов передачи данных, и у разработчиков появилась возможность применять как комбинации различных устройств (компьютеры, телефоны, радио и телевидение), так и новые функционально-активные объекты, вместо пассивных страниц текста, для организации общения с человеком. HTML

Статический, динамический и интерактивный Веб Рис. 5.

Гипертекстовые ссылки внутри страниц, которые первоначально образовывали статические сети, интенсивно развиваются, трансформируясь в динамические образования, в которых они интегрируются вместе со сложными структурами хранимых данных (рис. 5). Страницы превращаются в активные системы, которые в свою очередь, объединяются в кластеры, которые могут порождать новые структуры, и так далее, что удивительно напоминает поведение биологических или физических групп взаимодействующих объектов и вполне соответствует представлениям Буша о следах, которые человек может оставлять в системах знаний.

Вольтамперная характеристика транзистора Рис. 6.

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

Появившиеся в 1948 году транзисторы, обладающие двумя устойчивыми состояниями (рис. 6), оказались вполне удачным решением для представления двоичных данных, и аналогии между транзистором и нейроном, как двоичными устройствами, надолго закрепились в теории и практике вычислительной техники. В это же время в других направлениях электроники широко используется свойство транзисторов по преобразованию сигнала в зоне переходного процесса между устойчивыми состояниями. Такое преобразование в транзисторах всегда носит приблизительный характер и обладает искажениями, которые могут быть в определенной степени скомпенсированы при помощи различных дополнительных элементов. Дуализм транзистора, в котором дискретность сочетается с непрерывностью, является хорошим примером комбинации точных и приблизительных () свойств в одном устройстве. Нейрон вполне соответствует этой аналогии, соединяя в себе определенную устойчивость вместе с промежуточными приблизительными состояниями, которые он может сохранять в зависимости от характера возбуждения и своего функционального назначения. fuzzy

Если допустить, что информационный усилитель (рис. 7) имеет структуру, в общем виде похожую на структуру усилителя электрических сигналов, тогда в качестве универсального источника информации в такой схеме может быть использован Интернет, входные и выходные сигналы могут быть представлены посредством аудио и текстовых сообщений устной или письменной речи, а преобразователь может быть реализован в виде некоторой виртуальной машины – (), которая может быть загружена в персональную ЭВМ или иное устройство, аналогично (). Такой информационный усилитель может быть встроен в самые разнообразные системы. Можно предположить, что уже в недалеком будущем успехи нано-технологии позволят иметь сенсорные устройства, встроенные непосредственно в человеческий организм, и в этом случае форма общения будет отличаться от речевой. Именно поэтому мы надеемся, что нейронные модели являются тем самым адаптивным механизмом, способным к естественной интеграции с будущими симбиозными человеко-машинными системами. Neural Virtual Machine NVM Java Virtual Machine JVM

Информационный усилитель Рис. 7.










Программирование реакций

Продолжая поиск аналогий, которые могут помочь нам в проектировании такого усилителя, обратимся к работе И. М. Сеченова «» [37]. Анализируя его поведение, Сеченов рассматривает мозг как «черный ящик», который в конечном итоге, реагируя на возбуждения чувствующих нервов, все свои внешние проявления сводит к мышечному движению. Попробуем представить информационное устройство в окружении программных модулей, каждый из которых может быть вызван к исполнению в результате возбуждения связанного с ним нервного окончания. Тогда все внешние проявления внутренних процессов этого устройства могут быть сведены к вызову и запуску соответствующих программных модулей. Такой вызов может произойти в тот момент, когда уровень возбуждения, связанного с этим модулем нейрона в выходном слое информационного устройства, превысит некоторое пороговое значение. Рефлексы головного мозга

Если допустить, что с распределенными в интернет-сети программами может быть ассоциирован уникальный адрес и своя интерпретирующая среда, тогда их выполнение сводится к посылке запроса (например, ) из одной распределенной системы в другую (рис. 8). В этом случае результатом работы нейронного слоя будет являться исполнение множества асинхронных параллельных процессов, каждый из которых может возвращать данные обратно в исходную систему. Такой способ вызова программных модулей позволяет существенно упростить реализацию интерфейсов и свести задачу к ответу на вопрос: каким образом усиление и торможение сигналов может привести к адекватному реагированию в тех случаях, когда с этими сигналами ассоциированы слова и смысловые значения? HTTP

Вызов и выполнение программных модулей в нейронной среде Рис. 8.

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

Уже упоминавшаяся выше система была включена компанией в состав операционной системы еще в 1987 году, задолго до появления . Его автор – Билл Аткинсон, один из ведущих программистов в , построил интегрированную систему, которая в самое короткое время сумела увлечь миллионы пользователей к процессу, который сегодня называется -программирование. Основу составляет рабочее поле, которое называется карта. На поверхности карты можно создавать как вручную, так и динамически, предопределенные объекты – кнопки, текстовые поля и изображения. С каждым объектом может быть связан интерпретируемый код – скрипт. Исполнения скриптов осуществляются через простой механизм управления событиями. Карты объединяются в группы, группы объединяются в наборы. работает в режиме непосредственной интерпретации и имеет очень своеобразную и легкую систему идентификации и адресации объектов. Концепция n-мерного программируемого пространства в  является весьма привлекательной по причине удобства и простоты доступа и исполнения скриптов. Мы будем использовать в качестве прототипа исполнительной среды терминологию и архитектуру, близкую к , поскольку в современном существуют практически все необходимые инструменты для создания его аналога. Погружение нейронной виртуальной машины в такую исполнительную среду можно сравнить с подключением нервной системы к мускулатуре и органам чувств (рис. 9). HyperCard Apple Mac OS DHTML Apple Web HyperCard HyperCard HyperCard HyperCard DHTML

Взаимодействие между слоями нейронного ядра, Интернет и интерфейсными картами Рис. 9.

Нейронное программирование по сути представляет собой процесс, который сводится к созданию объектов, установлению между ними ссылок-отношений и определению динамических правил их поведения по передаче возбуждений и исполнении реакций. В случаях, когда количество узлов не велико, построение нейронных моделей является тривиальной задачей. Затруднения начинаются тогда, когда возникает необходимость связать большое количество нейронов через большое число слоев с внешним механизмом, в составе которого может быть много исполнительных функций. Масштаб задачи определяет технологию ее решения, и в программировании используются различные методы анализа и синтеза сложных систем, предшествующие процессу кодирования. Эти методы можно подразделить на три большие группы: блок-схемы и диаграммы потоков данных и управлений, таблицы принятия решений и структурно-функциональные схемы. Применение предварительных методов анализа и спецификации позволяет значительно повысить производительность всего процесса программирования, в первую очередь, за счет специализации и распределения работ по проектированию наиболее оптимальным образом. Работы по структурно-функциональному моделированию, основанные на декомпозиции и определении функциональных свойств модулей, такие, например, как метод , разработанный в 70х годах фирмой [24], заложили основу для построения визуальных моделей достаточно сложных систем. Весь процесс программирования в этом случае можно представить в виде следующей последовательности шагов: HIPO IBM

Технология проектирования диалогов и их лингвистического содержания может быть сведена к традиционным методам проектирования программного обеспечения. На первом этапе, формируется лингвистическая модель, которая затем кодируется в виде нейронных структур. Нейронные структуры обучаются и корректируются в процессе общения с экспертом, однако в отличие от традиционных программ, они продолжают обучаться и развиваться на протяжении всего периода жизни, даже после внедрения их в эксплуатацию.







Среда нейронного программирования

Для создания и поддержания нейронных моделей нам понадобится исполнительная среда, в которой будут происходить интерпретации, структурно-функциональные модификации, а также выполнение связанных с этими моделями подпрограмм-реакций. На рис. 10 приведен пример одной из возможных конфигураций такой среды, объединяющей систему распознавания речи, динамическую библиотеку программных модулей, базу данных и функциональные компоненты.

Термин среда программирования () в нашем случае определяет языки программирования, протоколы, технологии и инструменты. Нейронная среда, которую мы будем использовать при разработке различных приложений, включает в себя: programming environment

Среда нейронного программирования Рис. 10.

Практически все компоненты этой среды свободно доступны в Интернет и могут быть использованы при построении приложений на базе разных платформ – , или . Некоторые из них, такие, например, как или для распознавания и синтеза речи, зависят от операционной системы, и их применение возможно только под управлением . Технология Агентов, разработанная в Микрософт, позволяет использовать еще одну координату в структуре страниц. Агенты, существующие как бы вне плоскости документа (рис. 11), могут представлять автора и выполнять роль виртуального помощника для посетителей Веб-сайта. Microsoft Windows Unix Mac OS Microsoft Agent Microsoft Speech Application SDK Microsoft Windows

Трехмерный дизайн с использованием Microsoft Agent Рис. 11.

В отличие от индивидуальных систем связи, в основе которых лежат коммутации типа «точка-точка», персональные усилители способны одновременно соединяться со многими источниками данных, выделять из них определенную информацию и предоставлять ее пользователю в наиболее удобной форме. Такое решение является симметричным по отношению к виртуальным представителям в диспетчерских центрах (рис. 2) и может быть построено с применением все тех же базовых программных компонент. В этом случае виртуальный агент может выполнять роль индивидуального секретаря, динамически обучаясь и настраиваясь под знания конкретного пользователя и контекст его персонального компьютера.

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

Если использовать аналогичную организацию уровней прикладного программирования в нейронном моделировании, их иерархия может выглядеть следующим образом:

–  интерфейсы к различным каналам ввода/вывода, по которым могут поступать речевые и текстовые сообщения;–  нейронное ядро (Core), в котором можно создавать искусственные нейроны вместе со связями (нервами), способными передавать возбуждения;–  база данных вместе с ODBC интерфейсом;–  карты – объекты представления данных в виде динамических страниц;–  скрипты – аналоги внешних реакций;–  языковые оболочки Java и JavaScript;–  XML-грамматики (динамические и статические);–  интегратор – подсистема, способная исполнять динамические коды.–  создание рабочих таблиц;–  добавление и модификация данных;–  добавление и модификация формул;–  добавление и модификация макрокоманд Visual Basic;–  интеграция с другими системами через ODBC, XML, OLE и т. п.;–  интеграция с другими системами через DLL, C++ и т. п.–  создание и обучение нейронных слоев;–  программирование реакций на возбуждения, поступающие извне;–  добавление нейронов и модификация их связей;–  добавление и модификация макрокоманд Visual Basic или JavaScript;–  интеграция с другими системами через ODBC и XML;–  интеграция с другими системами через Java, DLL, C++ и т. п.



Взаимодействующие системы

Рассмотрим работу двух приложений – калькулятора и поисковой системы (рис. 12). И в первом и во втором случае, при нажатии одной из кнопок на панели управления первоначальный запрос, в виде цепочки символов, поступает на вход соответствующей программы, в результате чего порождаются множества процессов, связанных с исполнением детерминированных дискретных последовательностей команд. Наш практический опыт дает нам основание предполагать, что для всех одинаковых входных цепочек, поступающих на вход различных калькуляторов, независимо от времени и места, результат должен повторяться. В случае с поисковыми системами, все происходит с точностью до наоборот – мы ожидаем, что одна и та же входная цепочка символов на входе будет скорее всего приносить нам различные результаты в различных поисковых системах и в разное время.

Алгоритмический калькулятор и неалгоритмическая поисковая система Рис. 12.

И калькулятор, и поисковая система являются программами и, как любые программы, они состоят из точно заданных инструкций, которые как известно, должны всегда приводить к одинаковому результату при одинаковых исходных данных. Очевидно, что в случае поисковой системы новый результат получается каждый раз в результате изменений данных, которые в процессе исполнения длинной последовательности команд поступили на вход одного из программных модулей. Если бы мы захотели, используя, например, методы системного программирования при анализе дампов, мы могли бы, проследив все последовательности команд и событий, точно определить – где произошло это изменение. Однако значительно больше пользы нам может принести ответ на вопрос: существуют ли теоретические основания для различий в этих двух системах, и если да, можно ли построить более эффективную технологию и среду программирования для решения задач обработки данных в Интернет, учитывающую эти различия.

Взаимодействие системы и среды Рис. 13.

Предположим, что среда  – это все доступные для восприятия и анализа объекты, процессы и события в окружающем нас мире, а система  – часть среды, заключенная внутри некоторой границы (рис. 13). Человек, компьютер или организация являются примерами систем. Любая комбинация систем в свою очередь также может рассматриваться как система. U S B

В среде  и внутри системы , могут происходить события E, которые определяются наборами параметров . Пусть  – множество, элементы которого мы будем называть событиями. Для каждого события из  мы поставим в соответствие действительное число . События – это очень упрощенное представление об изменениях, происходящих в реальном мире. U S P E e E P

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

Для программистов, знакомых с Ассемблером и аппаратными архитектурами, системы обработки прерываний могут служить хорошим примером событийного программирования – в них данные поступают на обработку только после получения соответствующего прерывания (например, ) об их готовности. IRQ

Любая система в реальном мире пронизана безмерным количеством всевозможных волновых и корпускулярных потоков излучений, которые постоянно проникают через ее границы и несут в себе огромное количество информации. Человек способен использовать только очень малую часть сообщений, которые могут быть выделены из этих потоков. Если бы мы могли, выделив из всех проходящих через наше тело потоков сигналов, физиологически ощутить, как обычные звуковые и зрительные образы все телевизионные и радио каналы – наш мозг скорее всего переполнился и отказал в течение очень короткого времени. Учитывая ограниченные возможности мозга, наша способность улавливать только узкий диапазон электромагнитных волн является жизненно важным ограничением для человека, однако это же ограничение не позволяет нам без специальных устройств эффективно выделять полезную информацию из всех, окружающих нас потоков данных. Если в результате взаимодействия между системой и средой произошло изменение их состояния, мы будем называть такое взаимодействие – сообщением . Если изменение состояния системы , в результате получения сообщения , может быть измерено, мы будем называть такое взаимодействие информационным. Под информацией  мы будем понимать определенным способом нормированную меру различия  между состояниями системы до получения сообщения, и после . M S M I S S 1

На страницу:
2 из 3