Рефераты. Психологическая интуиция искусственных нейронных сетей

Далее в тексте такая структура будет именоваться «потоком сети» или просто «потоком».

Вычисление производных H (функции ошибки) для сети, представляющего собой один «поток», можно вести на основе аппарата двойственных функций и алгоритма обратного распространения ошибки. Схема прохождения сигналов при обратном функционировании показана на рис. 3.



Здесь   - двойственный сигнал от функции оценки, передаваемый без изменения через тривиальный сумматор второго слоя,  - двойственный сигнал от соответствующего синапса второго слоя,  - двойственный сигнал от преобразователя j-го «потока», передающийся сумматору для раздачи на синапсы,  - двойственные сигналы соответствующих синапсов первого слоя.

 

4.4 Алгоритмическая часть


Обучение сети, состоящей из «потоков» производится в соответствии с алгоритмом, представленным на рис. 4.

Здесь H - значение оценки сети, накопленное по всему задачнику,  - константа малости ошибки.



Для обучения каждого из потоков используется алгоритм, показанный на рис.5. Здесь Nф - общее число функций, по которому идет обучение, o - карта параметров сети, h0 - шаг оптимизации в начале цикла, s - градиент функции оценки H по обучаемым параметрам.

Используемое в алгоритме условие остановки формируется из двух подусловий, скомбинированных через «или»:

1.   Число шагов оптимизации, во время которых  превысило заранее заданную величину (при обучении использовалось значение Nsh=15), то есть сеть в данной конфигурации уже не может улучшить оценку;

2.   Достигнуто заданное значение функции оценки , то есть сеть уже обучена.








При обучении одного потока используются процедуры подбора шага оптимизации - Increase (поиск шага в сторону возрастания, блок-схему см. на рис. 6), Decrease (поиск шага в сторону убывания, блок-схему см. на рис. 7) и Parabola (поиск оптимального шага по формулам параболического поиска блок-схему см. на рис. 8).

В процедурах используются следующие обозначения:

H(...) - функция оценки сети, накопленная по всему задачнику;

h1, h2, h3 - различные значения величины шага оптимизации, используемые при ее подборе;

W - величина шага в вершину параболы, проходящей через точки (h1, H1), (h2, H2), ( h3, H3). Вычисляется по формуле:

 


H1, H2, H3 - значения функции ошибки, соответствующие смещению обучаемых параметров по направлению градиента на величину шага h1, h2 è h3.

Условие выпуклости комбинации h1,2,3, H1,2,3 определяется формулой

Если выражение истинно, то условие выпуклости выполнено.

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

 

4.5 Оценка информационной емкости нейронной сети при помощи выборочной константы Липшица


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

Для суперпозиции вектор-функций  .

Для линейной комбинации функций  оценка константы Липшица .

Константа Липшица для адаптивного сумматора, работающего по формуле  имеет вид .

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

Для прямой суммы вектор-функций  константа Липшица может быть оценена как .

Таким образом, для слоя нейронов с подбираемыми преобразователями , где  - вектор весов синапсов, приходящих на входной сумматор i-го нейрона, а  - функция i-го преобразователя.

Если заменить всю область определения функций D на конечное множество (задачник), то условие, определяющее требуемый объем нейронной сети можно получить, сравнивая  с оценкой константы Липшица для обучающей выборки .

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

Исходя из данного условия, можно сформулировать алгоритм обучения сети с поэтапным исчерпанием ошибки так, как это показано в блок-схеме на рис. 9

4.6 Соглашение о терминологии

 

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

Для описания компонентов сети был использован аппарат объектно-ориентированного программирования [28], реализованный в среде разработки программ Borland Delphi Developer v.3.0. (см. [44], [45], [58], [63], [75], [76])

Базовым понятием в языке программирования Object Pascal, встроенном в Delphi, является класс  - особый вид записи, включающий поля и методы.

Экземпляр класса называется объектом.

Понятие поле для объекта аналогично понятию поля для записи.

Метод - процедура или функция, описанная внутри класса и предназначенная для операции над его полями.


4.7 Компоненты сети


Традиционный состав элементов сети (см. главу 1) включает в себя следующие элементы: нейрон, синапс, сумматор. Кроме того, в число типовых включены входной и выходной элементы.

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


4.8 Общий элемент сети

 

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

Объекты данного класса включают в себя следующие поля:

NextPiece - указатель на следующий элемент сети;

PriorPiece - указатель на предыдущий элемент сети;

ForwOut - значение сигнала, передающегося элементом вперед при прямом функционировании;

BackOut - значение сигнала, передающегося элементом назад при обратном функционировании.

Набор методов включает в себя:

Create - описание создания объекта;

Destroy - действия при разрушении (удалении) объекта;

ForwardTact - действия элемента во время такта прямого функционирования;

BackwardTact - действия элемента во время такта обратного функционирования;

При описании методов ForwardTact и BackwardTact они были оставлены пустыми, так как функционирование конкретных элементов сети существенно различно.

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


4.9 Вход сети


Для связи сети с задачником и передачи используются объекты класса TNetInput - входной элемент сети.

Данный класс является потомком TNetPiece, и поэтому наследует его набор полей и методов этого класса, а кроме того добавлено поле SourceSignal, которое содержит номер поля задачника, с которого данный вход сети забирает значение.

Методы ForwardTact и BackwardTact перекрыты, то есть их код заменен на тот, который соответствует назначению входного элемента.

Метод ForwardTact выполняет передачу значения из соответствующего данному элементу поля задачника на выходной сигнал элемента, поле ForwOut.

Метод BackwardTact передает двойственный сигнал следующего элемента на свой двойственный сигнал (поле BackOut).


4.10 Выход сети


Выходной элемент сети описывает класс TNetOutput, также являющийся потомком TNetPiece.

В методах ForwardTact и BackwardTact заложены действия элемента при прямом и обратном тактах функционирования.

Метод ForwardTact выполняет передачу сигнала от выхода предыдущего на выход данного элемента, кроме того в поле H заносится значение ошибки сети при вычислении функции Y.

Метод BackwardTact передает на обратный выход элемента (поле BackOut) значение двойственного сигнала. Двойственный сигнал H представляет собой производную функции ошибки по выходному сигналу сети:

Страницы: 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17



2012 © Все права защищены
При использовании материалов активная ссылка на источник обязательна.