exponenta event banner

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 может обучать любую сеть, если ее функции веса, чистого ввода и переноса имеют производные функции. Обратное распространение используется для расчета производных производительности perf в отношении переменных веса и смещения X.

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

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

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

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

  • Производительность минимизирована для goal.

  • Градиент производительности падает ниже min_grad.

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

Ссылки

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

Представлен до R2006a