MATLAB.Exponenta
MATLAB и Simulink на русском
Технологии разработки и отладки
		сложных технических систем
 

Математика\Neural Network Toolbox Перейти на страницу содержания раздела

Список функций Neural NetworkToolbox: Функции тренировки

  В оглавление \ К следующему разделу \ К предыдущему разделу

TRAINSCG
Метод шкалированных связанных градиентов

Синтаксис:

[net,tr,Ac,El] = trainscg(net,Pd,Tl,Ai,Q,TS,VV,TV)
info = trainscg(code)

Описание:

TRAINSCG - функция обучения сети, которая модифицирует веса и смещения в соответствии с методом шкалированных связанных градиентов.

TRAINSCG(NET,Pd,Tl,Ai,Q,TS,VV,TV)

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

  • NET – нейронная сеть;
  • Pd - векторы входных задержек;
  • Tl - векторы эталонов слоя;
  • Ai - начальные условия входных задержек;
  • Q - размер пакета;
  • TS - временные шаги;
  • VV - пустая матрица или структура контрольных векторов;
  • TV - пустая матрица или структура тестовых векторов.

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

  • NET – тренированная сеть;
  • TR - запись, включающая параметры тренировки;
  • TR.epoch – количество эпох тренировки;
  • TR.perf – характеристика тренировки;
  • TR.vperf – характеристика контрольной проверки;
  • TR.tperf – характеристика тестирования;
  • Ac - суммарные выходы слоя для последней эпохи;
  • El - ошибки слоя для последней эпохи.

Тренировка реализуется в соответствии с параметрами функции обучения TRAINSCG. Эти параметры вместе с их значениями по умолчанию перечислены ниже:

  • net.trainParam.epochs – (100) - Максимальное количество эпох тренировки;
  • net.trainParam.show – (25) - Количество эпох между графиками;
  • net.trainParam.goal – (0) - Условие остановки по отклонению от эталона;
  • net.trainParam.time – (inf) - Максимальное время тренировки в секундах;
  • net.trainParam.min_grad – (1e-6) - Минимальный градиент;
  • net.trainParam.max_fail – (5) - Максимальное количество ошибок на контрольном массиве;
  • net.trainParam.sigma – (5.0e-5) – Определяет изменение веса для приближения второй производной;
  • net.trainParam.lambda – (5.0e-7) – Параметр регуляризации.

Размерности переменных:

  • Pd - NoxNixTS массив ячеек, каждый элемент которого P{i,j,ts} - матрица DijxQ,
  • Tl - NlxTS массив ячеек, каждый элемент которого P{i,ts} - матрица VixQ,
  • Ai - NlxLD массив ячеек, каждый элемент которого Ai{i,k} - матрица SixQ,

где

  • Ni = net.numInputs
  • Nl = net.numLayers
  • LD = net.numLayerDelays
  • Ri = net.inputs{i}.size
  • Si = net.layers{i}.size
  • Vi = net.targets{i}.size
  • Dij = Ri * length(net.inputWeights{i,j}.delays)

Если VV не [], то должен представлять собой структуру контрольных векторов:

  • VV.PD – Задержки контрольных входов;
  • VV.Tl – Контрольные эталоны слоя;
  • VV.Ai – Входные начальные условия контрольного массива;
  • VV.Q - Размер пакета контрольных массивов;
  • VV.TS – Временные шаги контрольного массива.

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

Если TV не [],то должен представлять собой структуру тестовых векторов;

  • TV.PD - Задержки тестовых входов;
  • TV.Tl - Тестовые эталоны слоя;
  • TV.Ai - Входные начальные условия тестового массива;
  • TV.Q - Размер пакета тестовых массивов;
  • TV.TS - Временные шаги тестового массива.

Эти векторы используются для проверки обобщающей способности тренированной сети.

TRAINSCG(CODE) возвращает полезную информацию для каждой из строк CODE:

  • 'pnames' - Имена параметров тренировки;
  • 'pdefaults' – Параметры тренировки по умолчанию.

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

Стандартную сеть, которая использует TRAINSCG можно создать с помощью функций NEWFF, NEWCF или NEWELM.

Для того, чтобы создать пользовательскую сеть, которую необходимо тренировать с помощью TRAINSCG, нужно:

1) Установить NET.trainFcn как 'trainscg'. Тем самым NET.trainParam будет по умолчанию TRAINSCG.

2) Установить требуемые значения для свойств NET.trainParam.

Вызов TRAIN с готовой сетью обеспечит тренировку сети с помощью TRAINSCG.

Примеры.

Заданы входы P и эталоны N. Создать сеть для решения этой задачи.

P = [0 1 2 3 4 5];
T = [0 0 0 1 1 1];

Создадим двухслойную однонаправленную сеть. Диапазон входных значений [0,10]. Первый слой содержит два TANSIG нейрона, второй слой состоит из одного LOGSIG нейрона. Для тренировки используем функцию TRAINSCG.

% Создаем и моделируем сеть
net = newff([0 5],[2 1],{'tansig','logsig'},'trainscg');
a = sim(net,p)
% Тренируем и тестируем сеть
net.trainParam.epochs = 50;
net.trainParam.show = 10;
net.trainParam.goal = 0.1;
net = train(net,p,t);
a = sim(net,p)

Алгоритм.

TRAINSCG может обучать любую сеть, если ее весовые, входные и активационные функции имеют производные.

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

Более детально с алгоритмом можно ознакомиться Moller, Neural Networks, vol. 6, 1993, pp. 525-533.

Тренировка останавливается, если выполняется одно из следующих условий:

1) Достигнуто максимальное значение количества эпох “EPOCHS".

2) Превышено значение максимального времени тренировки “TIME".

3) Эффективность функционирования достигнет значения “GOAL".

4) Градиент эффективности функционирования уменьшится ниже “MINGRAD".

5) Контрольное значение функционирования увеличилось более чем “MAX_FAIL” раз подряд после того, как оно в последний раз уменьшилось (при использовании контрольного массива).

  В оглавление \ К следующему разделу \ К предыдущему разделу

 

Поиск по сайту:

Система Orphus

Яндекс.Метрика