Неградиентные методы обучения, Метод случайной стрельбы - Функциональные модели универсального нейрокомпьютера
Создать_вектор В1
Создать_вектор В2
Вычислить_оценку О1
Сохранить_вктор В1
Установить_параметры В1
Случайный_вектор В2
Модификация_вектора В2, 0, 1
Вычислить_оценку О2
Если О2<О1 то переход к шагу 11
Переход к шагу 5
О1=О2
Переход к шагу 4
Установить_параметры В1
Освободить_вектор В1
Освободить_вектор В2
Рис. 1. Простейший алгоритм метода случайной стрельбы
Среди неградиентных методов рассмотрим следующие методы, каждый из которых является представителем целого семейства методов оптимизации:
Метод случайной стрельбы (представитель семейства методов Монте-Карло).
Метод покоординатного спуска (псевдоградиентный метод).
Метод случайного поиска (псевдоградиентный метод).
Метод Нелдера-Мида.
Метод случайной стрельбы
Идея метода случайной стрельбы [48] состоит в генерации большой последовательности случайных точек и вычисления оценки в каждой из них. При достаточной длине последовательности минимум будет найден. Запись этой процедуры на макроязыке приведЕна на рис. 1
Остановка данной процедуры производится по команде пользователя или при выполнении условия, что О1 стало меньше некоторой заданной величины. Существует огромное разнообразие модификаций этого метода. Наиболее простой является метод случайной стрельбы с уменьшением радиуса. Пример процедуры, реализующей этот метод, приведен на рис. 2. В этом методе есть два параметра, задаваемых пользователем:
Число_попыток - число неудачных пробных генераций вектора при одном радиусе.
Создать_вектор В1
Создать_вектор В2
Вычислить_оценку О1
Число_Смен_Радиуса=1
Радиус=1/ Число_Смен_Радиуса
Попытка=0
Сохранить_вктор В1
Установить_параметры В1
Случайный_вектор В2
Модификация_вектора В2, 1, Радиус
Вычислить_оценку О2
Попытка=Попытка+1
Если О2<О1 то переход к шагу 16
Если Попытка<=Число_попыток то
Переход к шагу 8
Переход к шагу 18
О1=О2
Переход к шагу 6
Число_Смен_Радиуса= Число_Смен_Радиуса+1
Радиус=1/ Число_Смен_Радиуса
Если радиус>= Минимальный_радиус
То переход к шагу 6
Установить_параметры В1
Освободить_вектор В1
Освободить_вектор В2
Рис. 2. Алгоритм метода случайной стрельбы с уменьшением радиуса
Минимальный_радиус - минимальное значение радиуса, при котором продолжает работать алгоритм.
Идея этого метода состоит в следующем. Зададимся начальным состоянием вектора параметров. Новый вектор параметров будем искать как сумму начального и случайного, умноженного на радиус, векторов. Если после Число_попыток случайных генераций не произошло уменьшения оценки, то уменьшаем радиус. Если произошло уменьшение оценки, то полученный вектор объявляем начальным и продолжаем процедуру с тем же шагом. Важно, чтобы последовательность уменьшающихся радиусов образовывала расходящийся ряд. Примером такой последовательности может служить использованный в примере на рис. 2 ряд.
Отмечен ряд случаев, когда метод случайной стрельбы с уменьшением радиуса работает быстрее градиентных методов, но обычно это не так.
Похожие статьи
-
Описание алгоритмов обучения - Функциональные модели универсального нейрокомпьютера
Все алгоритмы обучения сетей методом обратного распространения ошибки опираются на способность сети вычислять градиент функции ошибки по обучающим...
-
Описание запроса: Pascal: Function RandomDirection( Net : PString; Range : Real ) : Logic; C: Logic RandomDirection(PString Net, Real Range) Описание...
-
Построение оценки по интерпретатору - Функциональные модели универсального нейрокомпьютера
Если в качестве ответа нейронная сеть должна выдать число, то естественной оценкой является квадрат разности выданного сетью выходного сигнала и...
-
Элементы самодвойственных сетей - Функциональные модели универсального нейрокомпьютера
Если при обратном функционировании самодвойственной сети на ее выход подать производные некоторой функции F по выходным сигналам сети, то в ходе...
-
В этом разделе намеренно допущено отступление от общей методики - не смешивать разные компоненты. Это сделано для облегчения демонстрации построения...
-
Схема обработки ошибок достаточно проста по своей идее - каждый новый обработчик ошибок может обрабатывать только часть ошибок, а обработку остальных...
-
Предыдущий (Prev) - Функциональные модели универсального нейрокомпьютера
Описание запроса: Pascal: Function Prev( Handle : Integer ): Logic; C: Logic Prev(Integer Handle) Описание аргументов: Handle - номер сеанса. Назначение...
-
Следующий (Next) - Функциональные модели универсального нейрокомпьютера
Описание запроса: Pascal: Function Next( Handle : Integer ) : Logic; C: Logic Next(Integer Handle) Описание аргументов: Handle - номер сеанса. Назначение...
-
Запросы на изменение параметров - Функциональные модели универсального нейрокомпьютера
К группе запросов на изменение параметров относятся три запроса: XxGetData - получить параметры структурной единицы. xxGetName - получить названия...
-
Функционирование сети - Функциональные модели универсального нейрокомпьютера
Таблица 1 Однородные и неоднородные сумматоры Название Однородный сумматор Неоднородный сумматор Обозначение Значение Обозначение Значение Обычный ?...
-
Впервые последовательное описание конструирования нейронных с Етей из элементов было предложено в книге А. Н. Горбаня [65]. Однако за прошедшее время...
-
Уровень уверенности - Функциональные модели универсального нейрокомпьютера
Часто при решении задач классификации с использованием нейронных сетей недостаточно простого ответа "входной вектор принадлежит k-му классу". Хотелось бы...
-
Установить параметры сети (nwSetData) - Функциональные модели универсального нейрокомпьютера
Описание запроса: Pascal: Function nwSetData(Net : PString; DataType : Integer; Var Data : RealArray) : Logic; C: Logic nwSetData(PString Net, Integer...
-
Составной предобработчик - Функциональные модели универсального нейрокомпьютера
Поскольку на вход нейронной сети обычно подается несколько входных сигналов, каждый из которых обрабатывается своим предобработчиком, то предобработчик...
-
Описание запроса: Pascal: Function ModifyMask( Net : PString; Tipe : Integer; NewMask: PLogicArray ) : Logic; C: Logic Modify(PString Net, Integer Tipe,...
-
Запросы к компоненту сеть - Функциональные модели универсального нейрокомпьютера
В данном разделе главы рассмотрены все запросы, исполняемые комп Онентом сеть. Прежде чем приступать к описанию стандарта запросов компонента сеть...
-
Сокращение описания сети - Функциональные модели универсального нейрокомпьютера
Предложенный в предыдущих разделах язык описания многословен. В большинстве случаев за счет хорошей структуризации сети можно опу Стить все разделы...
-
Сигналы и параметры - Функциональные модели универсального нейрокомпьютера
При использовании контрастирования для изменения структуры сети и значений обучаемых параметров другим компонентам бывает необходим прямой доступ к...
-
Персептрон Розенблатта - Функциональные модели универсального нейрокомпьютера
Персептрон Розенблатта [147, 185] является исторически первой обучаемой нейронной сетью. Существует несколько версий персептрона. Рассмотрим классический...
-
К данной группе запросов относятся запросы позволяющие получать данные из задачника, заносить данные в задачник и сбросить предобработку (необходимо...
-
14.6.1. Если в аргументе Instruct не установлен бит Interpret, то генерируется запрос к задачнику Get с аргументами Handle, AnsArray, tbAnswers (Получает...
-
В данном разделе описаны запросы исполнителя с алгоритмами их исполнения. При описании запросов используется аргумент Instruct, являющийся целым числом,...
-
Контрастирование и нормализация сети - Функциональные модели универсального нейрокомпьютера
В последние годы широкое распространение получили различные методы контрастирования или скелетонизации нейронных сетей. В ходе процедуры контрастирования...
-
В этом разделе описаны запросы, выполняемых всеми компонентами, а также типы данных, используемые при описании запросов. Стандарт типов данных При...
-
Нормализовать сеть (NormalizeNet) - Функциональные модели универсального нейрокомпьютера
Описание запроса: Pascal: Function NormalizeNet(Net : PString) : Logic; C: Logic NormalizeNet(PString Net) Описание аргумента: Net - указатель на строку...
-
Компонент задачник является необходимой частью нейрокомпьютера вне зависимости от типа применяемых в нем нейронных сетей. Однако в зависимости от...
-
К этой группе запросов относятся два запроса, открывающие и закрывающие сеансы работы с задачником. Начало сеанса (InitSession) Описание запроса: Pascal:...
-
Описание нейронных сетей - Функциональные модели универсального нейрокомпьютера
В первой части этой главы описана система построения сетей из элементов. Описаны прямое и обратное функционирование сетей и составляющих их элементов....
-
Выполнить обратное Функционирование (Back) - Функциональные модели универсального нейрокомпьютера
Описание запроса: Pascal: Function Back( Net : PString; BackOutSignals : PRealArray) : Logic; C: Logic Back(PString Net, PRealArray BackOutSignals)...
-
Единственный запрос первой группы выполняет основную функцию компонента предобработчик - предобрабатывает входные данные, вычисляя вектор входных...
-
В этом разделе описаны все запросы, выполняемые компонентом задачник в виде процедур и функций. При описании используется синтаксис языков Object Pascal...
-
Функции управления памятью - Функциональные модели универсального нейрокомпьютера
Для создания массивов и освобождения занимаемой ими памяти используются следующие фун Кции: Создание массива. Function NewArray( Type : Integer; Size :...
-
Запросы к компоненту интерпретатор ответа - Функциональные модели универсального нейрокомпьютера
Запросы к компоненту интерпретатор ответа можно разбить на пять групп: Интерпретация. Изменение параметров. Работа со структурой. Инициация редактора и...
-
Основные операторы - Функциональные модели универсального нейрокомпьютера
Оператор присваивания состоит из двух частей, разделенных знаком "=". В левой части оператора присваивания могут участвовать им Ена любых переменных. В...
-
Способ описания синтаксических конструкций - Функциональные модели универсального нейрокомпьютера
Для описания синтаксиса языков описаний компонентов использ Уется расширенная Бэкусова нормальная форма. Описание синтаксиса языка с помощью БНФ состоит...
-
Язык описания нейронных сетей предназначен для хранения сетей на диске. Следует отметить, что в отличии от таких компонентов, как предобработчик входных...
-
Как уже отмечалось в разделе "Различимость входных данных" числовые сигналы рекомендуется масштабировать и сдвигать так, чтобы весь диапазон значений...
-
В данный раздел помещены запросы для работы с цветами. Отметим, что цвет примера, возвращаемый запросом GetColor можно получить также с помощью запроса...
-
Запросы к задачнику - Функциональные модели универсального нейрокомпьютера
Запросы к задачнику позволяют последовательно перебирать все примеры обучающей выборки, обращаться непосредственно к любому примеру задачника и изменять...
-
Описание запроса: Pascal: Function Last( Handle : Integer ) : Logic; C: Logic Last(Integer Handle) Описание аргументов: Handle - номер сеанса. Назначение...
Неградиентные методы обучения, Метод случайной стрельбы - Функциональные модели универсального нейрокомпьютера