Смекни!
smekni.com

Психологическая интуиция искусственных нейронных сетей (стр. 14 из 18)

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

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

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

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

.

Для линейной комбинации функций

оценка константы Липшица
.

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

имеет вид
.

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

.

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

константа Липшица может быть оценена как
.

Таким образом, для слоя нейронов с подбираемыми преобразователями

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

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

с оценкой константы Липшица для обучающей выборки
.

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

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

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

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

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

Базовым понятием в языке программирования ObjectPascal, встроенном в 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 представляет собой производную функции ошибки по выходному сигналу сети:

,

где

- аппроксимированное значение функции, выдаваемое сетью,
- значение аппроксимируемой функции в данном примере.

4.11 Синапс сети

Для описания синапсов сети используются объекты класса TNetSynapse. Как наследник класса TNetPiece он наследует все его поля и методы. Помимо этого в список полей включены Alpha - параметр, представляющий собой вес синапса, и MuAlpha - сигнал, двойственный весу синапса.

На такте прямого функционирования метод ForwardTact снимает выходной сигнал предыдущего элемента, умножает его на вес синапса и передает на выходной сигнал данного объекта (поле ForwOut).

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

,

где

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

Кроме того на обратном такте вычисляется сигнал, двойственный

и представляющий собой значение частной производной функции ошибки по этому параметру: