Оценка информационной емкости нейронной сети при помощи выборочной константы Липшица
Условие остановки процесса пошагового исчерпания ошибки может основываться также на оценке полноты функции, заданной нейронной сетью. В случае, если число элементов сети задано (для каждого шага наращивания «поточной» это так) и значения ее параметров ограничены на определенном интервале (это условие выполняется наложением ограничений на параметры сети), данное условие можно сформулировать с использованием константы Липшица. Константа Липшица вектор-функции в области D определяется как . Верхняя грань может быть вычислена по области определения D. В качестве оценки расстояния используется евклидова норма. Для суперпозиции вектор-функций . Для линейной комбинации функций оценка константы Липшица . Константа Липшица для адаптивного сумматора, работающего по формуле имеет вид . Тогда для стандартной комбинации, состоящей из матрицы входных синапсов, сумматора и преобразователя - нейрона с гладкой функцией активации . Для прямой суммы вектор-функций константа Липшица может быть оценена как . Таким образом, для слоя нейронов с подбираемыми преобразователями , где - вектор весов синапсов, приходящих на входной сумматор i-го нейрона, а - функция i-го преобразователя. Если заменить всю область определения функций D на конечное множество (задачник), то условие, определяющее требуемый объем нейронной сети можно получить, сравнивая с оценкой константы Липшица для обучающей выборки . является нижней оценкой константы Липшица аппроксимируемой функции. Нейросеть может реализовать данную функцию только в том случае, когда . Исходя из данного условия, можно сформулировать алгоритм обучения сети с поэтапным исчерпанием ошибки так, как это показано в блок-схеме на рис. 9
Соглашение о терминологии Изложение вопросов, связанных со структурой и функционированием сети, тесно связано с программной реализацией задачи. Поэтому по тексту будут встречаться ссылки на реальные структуры программы. Для описания компонентов сети был использован аппарат объектно-ориентированного программирования [28], реализованный в среде разработки программ Borland Delphi Developer v.3.0. (см. [44], [45], [58], [63], [75], [76]) Базовым понятием в языке программирования Object Pascal, встроенном в Delphi, является класс - особый вид записи, включающий поля и методы. Экземпляр класса называется объектом. Понятие поле для объекта аналогично понятию поля для записи. Метод - процедура или функция, описанная внутри класса и предназначенная для операции над его полями.
Компоненты сети
Традиционный состав элементов сети (см. главу 1) включает в себя следующие элементы: нейрон, синапс, сумматор. Кроме того, в число типовых включены входной и выходной элементы. На рис. 9 показаны схематические изображения элементов сети, которые далее будут использованы в схемах, описывающих структуру и функционирование программной модели.
Общий элемент сети Базовым типом элементов, используемых для описания нейронной сети, является общий элемент сети - класс, инкапсулирующий основные свойства и методы, характерные для всех компонентов сети. Название этого класса в программной реализации - TNetPiece. Объекты данного класса включают в себя следующие поля: NextPiece - указатель на следующий элемент сети; PriorPiece - указатель на предыдущий элемент сети; ForwOut - значение сигнала, передающегося элементом вперед при прямом функционировании; BackOut - значение сигнала, передающегося элементом назад при обратном функционировании. Набор методов включает в себя: Create - описание создания объекта;
Destroy - действия при разрушении (удалении) объекта; ForwardTact - действия элемента во время такта прямого функционирования; BackwardTact - действия элемента во время такта обратного функционирования; При описании методов ForwardTact и BackwardTact они были оставлены пустыми, так как функционирование конкретных элементов сети существенно различно. Однако введение этих методов имеет достаточно глубокий смысл, поскольку класс TNetPiece является предком всех прочих классов, описывающих элементы сети, и наличие типовых процедур прямого и обратного функционирования позволяет использовать такие свойства модели объектно-ориентированного программирования как наследование свойств и методов и полиморфизм. Подробнее этот тезис будет раскрыт ниже.
Вход сети
Для связи сети с задачником и передачи используются объекты класса TNetInput - входной элемент сети. Данный класс является потомком TNetPiece, и поэтому наследует его набор полей и методов этого класса, а кроме того добавлено поле SourceSignal, которое содержит номер поля задачника, с которого данный вход сети забирает значение. Методы ForwardTact и BackwardTact перекрыты, то есть их код заменен на тот, который соответствует назначению входного элемента. Метод ForwardTact выполняет передачу значения из соответствующего данному элементу поля задачника на выходной сигнал элемента, поле ForwOut. Метод BackwardTact передает двойственный сигнал следующего элемента на свой двойственный сигнал (поле BackOut).
Выход сети
Выходной элемент сети описывает класс TNetOutput, также являющийся потомком TNetPiece. В методах ForwardTact и BackwardTact заложены действия элемента при прямом и обратном тактах функционирования. Метод ForwardTact выполняет передачу сигнала от выхода предыдущего на выход данного элемента, кроме того в поле H заносится значение ошибки сети при вычислении функции Y. Метод BackwardTact передает на обратный выход элемента (поле BackOut) значение двойственного сигнала. Двойственный сигнал H представляет собой производную функции ошибки по выходному сигналу сети: , где - аппроксимированное значение функции, выдаваемое сетью, - значение аппроксимируемой функции в данном примере. Синапс сети
Для описания синапсов сети используются объекты класса TNetSynapse. Как наследник класса TNetPiece он наследует все его поля и методы. Помимо этого в список полей включены Alpha - параметр, представляющий собой вес синапса, и MuAlpha - сигнал, двойственный весу синапса. На такте прямого функционирования метод ForwardTact снимает выходной сигнал предыдущего элемента, умножает его на вес синапса и передает на выходной сигнал данного объекта (поле ForwOut). На такте обратного функционирования метод BackwardTact передает в поле BackOut двойственный сигнал синапса, который может быть вычислен по следующей формуле: , где - двойственный сигнал, передаваемый синапсом, W - функция преобразования в синапсе, - сигнал, поступающий в синапс от предыдущего элемента на такте прямого функционирования, - входной двойственный сигнал, поступающий в синапс от следующего элемента на такте обратного функционирования, - вес синапса. Кроме того на обратном такте вычисляется сигнал, двойственный и представляющий собой значение частной производной функции ошибки по этому параметру: , где - сигнал, двойственный . Для значений , в классе TNetSynapse предусмотрены поля Alpha и MuAlpha.
Тривиальный сумматор Программной моделью тривиального сумматора является класс TSummator. Помимо полей, унаследованных от класса - предка TNetPiece, TSummator имеет в своей структуре PriorPieces, которое, в отличии от стандартного поля PriorPiece является не указателем на предыдущий элемент, а списком указателей на набор таких элементов. Метод ForwardTact осуществляет суммирование выходных сигналов элементов из списка PriorPieces и помещает полученный результат в поле ForwOut. На такте обратного функционирования происходит передача двойственного сигнала следующего элемента на двойственный сигнал сумматора BackOut.
Нейрон В данной работе под термином «нейрон» подразумевается нелинейный преобразователь вида , где у - выходной сигнал преобразователя, - входной сигнал, - параметр преобразователя, - так называемый «параметр спонтанной активности». Нейрон описывается в программной модели классом TNeuron, выходной сигнал на такте прямого функционирования заносится в поле ForwOut.
Обучаемыми в нейроне являются оба параметра - и , поэтому в классе TNeuron помимо полей Alpha и AlphaS, в которых хранятся значения соответствующих параметров, предусмотрены MuAlpha и MuAlphaS, в которых помещаются значения двойственных им сигналов. Помимо этого в поле BackOut заносится сигнал, двойственный входному. Кроме того, объект класса TNeuron характеризуется еще и полем FunctionType, представляющим собой номер используемой функции преобразователя в списке функций, используемых при оптимизации. Вычисление двойственных сигналов в нейронах производится в общем случае по формулам: , где - параметр, для которого вычисляется двойственный сигнал, - сам двойственный сигнал. Список выражений для применяемого в данной работе набора стандартных функций с их производными по основным параметрам приведен в таблице 1.
Поток сети
Фрагмент сети, состоящий из слоя входных синапсов, сумматора, нейрона и выходного синапса и названный «потоком» представлен в программной модели классом TNetStream. Помимо обычных для потомка класса TNetPiece полей NextPiece, PriorPiece, ForwOut и BackOut данный класс включает в себя FirstLayer - список синапсов первого слоя, Summator - объект класса TSummator, реализующего тривиальный сумматор, Neuron - объект класса TNeuron, реализующего нелинейный преобразователь - нейрон, SecondLayer - объект класса TSynapse, описывающий выходной синапс потока. Прямой такт потока, описанный методом ForwardTact, происходит следующим образом: Перебираются элементы списка FirstLayer, для каждого из которых вызывается его собственный метод ForwardTact, затем происходит «срабатывание» (вызов этого же метода) для объектов Summator, Neuron и SecondLayer. Затем выходной сигнал объекта заносится в поле ForwOut - выходной сигнал всего потока. Такт обратного функционирования потока, который описан в методе BackwardTact, включает в себя следующие действия: Последовательный вызов собственного метода BackwardTact для объектов SecondLayer, Neuron и Summator, затем перебор элементов списка FirstLayer и вызов метода BackwardTact для каждого синапса, входящего в него. Структура связей между элементами потока представлена на рис 10.
Воспользуйтесь поиском по сайту: ©2015 - 2024 megalektsii.ru Все авторские права принадлежат авторам лекционных материалов. Обратная связь с нами...
|