Учебное пособие по курсу «Нейроинформатика»
Шрифт:
Для представления всего разнообразия нейрокомпьютеров в виде небольшого набора деталей полезен такой подход: каждая нейронная сеть из зоопарка должна быть представлена как реализованная на идеальном нейрокомпьютере, имеющем заданную структуру. В пределах данной структуры вы можете сами выбирать комплектующие — архитектуру сети, предобработчик, интерпретатор ответа и другие компоненты. Несомненно, структура этого идеального нейрокомпьютера со временем будет эволюционировать. Однако преимущества даже от первых шагов стандартизации несомненны.
Эта глава посвящена выделению функциональных компонентов, составляющих универсальный нейрокомпьютер. Основные
1. Относительная функциональная обособленность: каждый компонент имеет четкий набор функций. Его взаимодействие с другими компонентами может быть описано в виде небольшого числа запросов.
2. Возможность реализации большинства используемых алгоритмов.
3. Возможность взаимозамены различных реализаций любого компонента без изменения других компонентов.
Однако, прежде чем приступать к выделению компонент, опишем рассматриваемый набор нейронных сетей и процесс их обучения.
Краткий обзор нейронных сетей
Можно по разному описывать «зоопарк» нейронных сетей. Приведем классификацию нейронных сетей по решаемым ими задачам.
1. Классификация без учителя или поиск закономерностей в данных. Наиболее известным представителем этого класса сетей является сеть Кохонена, реализующая простейший вариант решения этой задачи. Наиболее общий вариант решения этой задачи известен как метод динамических ядер [224, 262].
2. Ассоциативная память. Наиболее известный представитель — сети Хопфилда. Эта задача также позволяет строить обобщения. Наиболее общий вариант описан в [78–80].
3. Аппроксимация функций, заданных в конечном числе точек. К сетям, решающим эту задачу, относятся персептроны, сети обратного распространения ошибки.
В центре нашего внимания будут сети, предназначенные для решения третьей задачи, однако предложенная структура нейрокомпьютера позволяет описать любую сеть. Конечно, невозможно использовать учитель, предназначенный для построения ассоциативной памяти, для решения задачи классификации без учителя и наоборот.
Среди сетей, аппроксимирующих функции, необходимо выделить еще два типа сетей — с дифференцируемой и пороговой характеристической функцией. Дифференцируемой будем называть сеть, каждый элемент которой реализует непрерывно дифференцируемую функцию. Вообще говоря, альтернативой дифференцируемой сети является недифференцируемая, а не пороговая, но на практике, как правило, все недифференцируемые сети являются пороговыми. Отметим, что для того, чтобы сеть была пороговой, достаточно вставить в нее один пороговый элемент.
Основное различие между дифференцируемыми и пороговыми сетями состоит в способе обучения. Для дифференцируемых сетей есть конструктивная процедура обучения, гарантирующая результат, если архитектура сети позволяет ей решит задачу (см. разд. «Оценка способности сети решить задачу» — метод двойственного обучения (обратного распространения ошибки). Следует заметить, что при использовании обучения по методу двойственности так же возникают сложности, типа локальных минимумов. Однако существует набор регулярных процедур, позволяющих с ними бороться (см. [91]). Для обучения пороговых сетей используют правило Хебба или его модификации. Однако, для многослойных сетей с пороговыми элементами правило Хебба не гарантирует обучения. (В случае однослойных сетей — персептронов, доказана теорема о достижении результата в случае его принципиальной достижимости). С другой стороны, в
Выделение компонентов
Первым основным компонентом нейрокомпьютера является нейронная сеть. Относительно архитектуры сети принцип двойственности предполагает только одно — все элементы сети реализуют при прямом функционировании характеристические функции из класса C1(E) (непрерывно дифференцируемые на области определения E, которой, как правило, является вся числовая ось).
Для обучения нейронной сети необходимо наличие задачника. Однако чаще всего, обучение производится не по всему задачнику, а по некоторой его части. Ту часть задачника, по которой в данный момент производится обучение, будем называть обучающей выборкой. Для многих задач обучающая выборка имеет большие размеры (от нескольких сот до нескольких десятков тысяч примеров). При обучении с использованием скоростных методов обучения (их скорость на три-четыре порядка превышает скорость обучения по классическому методу обратного распространения ошибки) приходится быстро сменять примеры. Таким образом, скорость обработки обучающей выборки может существенно влиять на скорость обучения нейрокомпьютера. К сожалению, большинство разработчиков аппаратных средств не предусматривает средств для быстрой смены примеров. Таким образом, задачник выделен в отдельный компонент нейрокомпьютера.
При работе с обучающей выборкой удобно использовать привычный для пользователя формат данных. Однако, этот формат чаще всего непригоден для использования нейросетью. Таким образом, между обучающей выборкой и нейросетью возникает дополнительный компонент нейрокомпьютера — предобработчик. Из литературных источников следует, что разработка эффективных предобработчиков для нейрокомпьютеров является новой, почти совсем не исследованной областью. Большинство разработчиков программного обеспечения для нейрокомпьютеров склонно возлагать функции предобработки входных данных на обучающую выборку или вообще перекладывают ее на пользователя. Это решение технологически неверно. Дело в том, что при постановке задачи для нейрокомпьютера трудно сразу угадать правильный способ предобработки. Для его подбора проводится серия экспериментов. В каждом из экспериментов используется одна и та же обучающая выборка и разные способы предобработки входных данных сети. Таким образом, выделен третий важный компонент нейрокомпьютера — предобработчик входных данных.
Заметим, что если привычный для человека способ представления входных данных непригоден для нейронной сети, то и формат ответов нейронной сети часто малопригоден для человека. Необходимо интерпретировать ответы нейронной сети. Интерпретация зависит от вида ответа. Так, если ответом нейронной сети является действительное число, то его, как правило, приходится масштабировать и сдвигать для попадания в нужный диапазон ответов. Если сеть используется как классификатор, то выбор интерпретаторов еще шире. Большое разнообразие интерпретаторов при невозможности решить раз и навсегда вопрос о преимуществах одного из них над другими приводит к необходимости выделения интерпретатора ответа нейронной сети в отдельный компонент нейрокомпьютера.