trainscg

Масштабированное сопряженное обратное распространение градиента

Описание

net.trainFcn = 'trainscg' устанавливает сетевую trainFcn свойство.

[trainedNet,tr] = train(net,...) обучает сеть с trainscg.

trainscg является сетевой функцией обучения, которая обновляет значения веса и смещения согласно масштабному сопряженному методу градиента.

Обучение происходит согласно trainscg параметры обучения, показанные здесь с их значениями по умолчанию:

  • net.trainParam.epochs - Максимальное количество эпох для обучения. Значение по умолчанию является 1000.

  • net.trainParam.show - Эпохи между отображениями (NaN при отсутствии отображений). Значение по умолчанию является 25.

  • net.trainParam.showCommandLine - Сгенерируйте выход в командной строке. Значение по умолчанию false.

  • net.trainParam.showWindow - Показать обучающий графический интерфейс пользователя. Значение по умолчанию true.

  • net.trainParam.goal - Цель эффективности. Значение по умолчанию 0.

  • net.trainParam.time - Максимальное время обучения в секундах. Значение по умолчанию inf.

  • net.trainParam.min_grad - Минимальный градиент эффективности. Значение по умолчанию 1e-6.

  • net.trainParam.max_fail - Максимальные отказы в валидации. Значение по умолчанию 6.

  • net.trainParam.mu - параметр регулировки Марквардта. Значение по умолчанию является 0.005.

  • net.trainParam.sigma - Определите изменение веса для второго производного приближения. Значение по умолчанию 5.0e-5.

  • net.trainParam.lambda - Параметр для регулирования неопределенности Гессиана. Значение по умолчанию 5.0e-7.

Примеры

свернуть все

Этот пример показывает, как решить задачу, состоящую из входов p и целевые t при помощи сети.

p = [0 1 2 3 4 5];
t = [0 0 0 1 1 1];

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

net = feedforwardnet(2,'trainscg');

Здесь сеть обучается и тестируется.

net = train(net,p,t);
a = net(p)

См. help feedforwardnet и help cascadeforwardnet для других примеров.

Входные параметры

свернуть все

Входная сеть, заданная как сетевой объект. Чтобы создать сетевой объект, используйте для примера, feedforwardnet или narxnet.

Выходные аргументы

свернуть все

Обученная сеть, возвращается как network объект.

Обучающая запись (epoch и perf), возвращается как структура, поля которой зависят от функции сетевого обучения (net.NET.trainFcn). Он может включать такие поля, как:

  • Обучение, деление данных и эффективность функции и параметры

  • Индексы деления данных для наборов для обучения, валидации и тестирования

  • Маски деления данных для валидации обучения и тестирования наборов

  • Количество эпох (num_epochs) и лучшая эпоха (best_epoch).

  • Список имен состояний обучения (states).

  • Поля для каждого имени состояния, регистрирующие его значение на протяжении всего обучения

  • Выступления лучшей сети (best_perf, best_vperf, best_tperf)

Подробнее о

свернуть все

Использование сети

Можно создать стандартную сеть, которая использует trainscg с feedforwardnet или cascadeforwardnet. Чтобы подготовить пользовательскую сеть для обучения с trainscg,

  1. Задайте net.trainFcn на 'trainscg'. Это устанавливает net.trainParam на trainscgпараметры по умолчанию.

  2. Задайте net.trainParam свойства к желаемым значениям.

В любом случае вызов train с полученной сетью обучает сеть с trainscg.

Алгоритмы

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

Масштабированный алгоритм сопряженного градиента основан на сопряженных направлениях, как в traincgp, traincgf, и traincgb, но этот алгоритм не выполняет поиск по линии при каждой итерации. См. Моллер (Neural Networks, Vol. 6, 1993, pp. 525-533) для более подробного обсуждения масштабированного алгоритма сопряженного градиента.

Обучение останавливается, когда происходит любое из следующих условий:

  • Максимальное количество epochs (повторения) достигается.

  • Максимальное количество time превышено.

  • Эффективность минимизирована до goal.

  • Градиент эффективности падает ниже min_grad.

  • Эффективность валидации увеличилась более чем max_fail раз с момента последнего уменьшения (при использовании валидации).

Ссылки

[1] Моллер. Нейронные сети, том 6, 1993, стр. 525-533

Представлено до R2006a
Для просмотра документации необходимо авторизоваться на сайте