Выбрать главу

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

Эта глава посвящена выделению функциональных компонентов, составляющих универсальный нейрокомпьютер. Основные компоненты нейрокомпьютера выделяются по следующим признакам:

1. Относительная функциональная обособленность: каждый компонент имеет четкий набор функций. Его взаимодействие с другими компонентами может быть описано в виде небольшого числа запросов.

2. Возможность реализации большинства используемых алгоритмов.

3. Возможность взаимозамены различных реализаций любого компонента без изменения других компонентов.

Однако, прежде чем приступать к выделению компонент, опишем рассматриваемый набор нейронных сетей и процесс их обучения.

(обратно)

Краткий обзор нейронных сетей

Можно по разному описывать «зоопарк» нейронных сетей. Приведем классификацию нейронных сетей по решаемым ими задачам.

1. Классификация без учителя или поиск закономерностей в данных. Наиболее известным представителем этого класса сетей является сеть Кохонена, реализующая простейший вариант решения этой задачи. Наиболее общий вариант решения этой задачи известен как метод динамических ядер [224, 262].

2. Ассоциативная память. Наиболее известный представитель — сети Хопфилда. Эта задача также позволяет строить обобщения. Наиболее общий вариант описан в [78–80].

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

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

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

Основное различие между дифференцируемыми и пороговыми сетями состоит в способе обучения. Для дифференцируемых сетей есть конструктивная процедура обучения, гарантирующая результат, если архитектура сети позволяет ей решит задачу (см. разд. «Оценка способности сети решить задачу» — метод двойственного обучения (обратного распространения ошибки). Следует заметить, что при использовании обучения по методу двойственности так же возникают сложности, типа локальных минимумов. Однако существует набор регулярных процедур, позволяющих с ними бороться (см. [91]). Для обучения пороговых сетей используют правило Хебба или его модификации. Однако, для многослойных сетей с пороговыми элементами правило Хебба не гарантирует обучения. (В случае однослойных сетей — персептронов, доказана теорема о достижении результата в случае его принципиальной достижимости). С другой стороны, в работе [146] доказано, что многослойные сети с пороговыми нейронами можно заменить эквивалентными двухслойными сетями с необучаемыми весами первого слоя.

Выделение компонентов

Первым основным компонентом нейрокомпьютера является нейронная сеть. Относительно архитектуры сети принцип двойственности предполагает только одно — все элементы сети реализуют при прямом функционировании характеристические функции из класса C1(E) (непрерывно дифференцируемые на области определения E, которой, как правило, является вся числовая ось).

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