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

Математика\Neural Network Toolbox

Список функций Neural NetworkToolbox: Функции использования сети

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

TRAIN
Тренировка нейронной сети

Синтаксис:

[net,tr,Y,E,Pf,Af] = train(NET,P,T,Pi,Ai,VV,TV)

Описание:

Тренирует сеть NET в соответствии с NET.trainFcn и NET.trainParam.

TRAIN(NET,P,T,Pi,Ai) в качестве входных параметров использует:

  • NET – сеть;
  • P – входы сети;
  • T – целевые значения, по умолчанию – нули;
  • Pi – начальные входные задержки, по умолчанию – нули;
  • Ai – начальные задержки слоев, по умолчанию – нули;
  • VV – структура векторов верификации, по умолчанию = [];
  • TV – структура тестовых векторов, по умолчанию = [];
  • и возвращает:
  • NET – новая сеть (тренированная);
  • TR – результат тренировки (количество эпох и функция выполнения);
  • Y – выходы сети;
  • E – ошибки сети;
  • Pf – окончательные входные задержки;
  • Af – окончательные задержки слоев.

Следует отметить, что T – необязательный параметр и используется только при обучении сетей, для которых необходимы эталонные значения. Pi и Pf также необязательные параметры и используются только для сетей с задержками входов и слоев. Необязательные аргументы VV и TV описаны ниже.

Аргументы TRAIN могут быть двух форматов: массив ячеек или матрица. Формат в виде массива ячеек является наиболее удобным для описания. Он наиболее удобен для описания сетей с многими входами и выходами и позволяет представлять последовательность входов:

  • P - NixTS массив ячеек, каждая ячейка P{i,ts} – матрица размером RixQ;
  • T - NtxTS массив ячеек, каждая ячейка T{i,ts} – матрица размером VixQ;
  • Pi - NixID массив ячеек, каждая ячейка Pi{i,k} – матрица размером RixQ;
  • Ai - NlxLD массив ячеек, каждая ячейка Ai{i,k} – матрица размером SixQ;
  • Y - NOxTS массив ячеек, каждая ячейка Y{i,ts} – матрица размером VixQ;
  • E - NtxTS массив ячеек, каждая ячейка E{i,ts} – матрица размером VixQ;
  • Pf - NixID массив ячеек, каждая ячейка Pf{i,k} – матрица размером RixQ;
  • Af - NlxLD массив ячеек, каждая ячейка Af{i,k} – матрица размером SixQ,

где

  • Ni = net.numInputs
  • Nl = net.numLayers
  • Nt = net.numTargets
  • ID = net.numInputDelays
  • LD = net.numLayerDelays
  • TS = number of time steps
  • Q = batch size
  • Ri = net.inputs{i}.size
  • Si = net.layers{i}.size
  • Vi = net.targets{i}.size

Столбцы Pi, Pf, Ai, and Af упорядочены от самых больших задержек к текущим:

  • Pi{i,k} = i – й вход в момент времени ts=k-ID.
  • Pf{i,k} = i – й вход в момент времени ts=TS+k-ID.
  • Ai{i,k} = i – й выход слоя в момент времени ts=k-LD.
  • Af{i,k} = i – й выход слоя в момент времени ts=TS+k-LD.

Матричный формат может быть использован тогда, когда должен быть смоделирован только один шаг по времени (TS = 1). Это удобно только для сетей с одним входом и с одним выходом. Однако, он может быть использован для сетей с большим количеством входов и выходов. Каждый аргумент матрицы находится путем накопления элементов соответствующих аргументам массивов элементов в одну матрицу:

  • P – матрица (сумма Ri)xQ;
  • T – матрица (сумма Vi)xQ;
  • Pi – матрица (сумма Ri)x(ID*Q);
  • Ai – матрица (сумма Si)x(LD*Q);
  • Y – матрица (сумма Ui)xQ;
  • E - матрица (сумма Vi)xQ;
  • Pf – матрица (сумма Ri)x(ID*Q);
  • Af – матрица (сумма Si)x(LD*Q).

Если VV and TV заданы, они должны быть пустыми матрицами или должны иметь структуру со следующими полями:

  • VV.P, TV.P – входы верификация/тест;
  • VV.T, TV.T - эталонные значения верификация/тест (по умолчанию – нули);
  • VV.Pi, TV.Pi – начальные входные задержки верификация/тест (по умолчанию – нули);
  • VV.Ai, TV.Ai – задержки слоев верификация/тест (по умолчанию – нули).

Векторы верификации используются для того, чтобы остановить тренировку раньше, если дальнейшая тренировка на исходных векторах будет ухудшать приближение к векторам верификации. Тестовый вектор функционирования может быть использован для измерения того, насколько хорошо сеть обеспечивает согласование между исходными векторами и векторами верификации. Если в качестве VV.T, VV.Pi, or VV.Ai выбраны пустые матрицы или массивы элементов, то будут использованы значения по умолчанию. Это правило справедливо также и для TV.T, TV.Pi, TV.Ai.

Не все функции тренировки поддерживают векторы верификации и тестовые векторы. Только те, которые не игнорируют аргументы VV и TV arguments.

Примеры:

Вход P и эталонные значения T определяют простую функцию, которую мы можем нарисовать:

p = [0 1 2 3 4 5 6 7 8];

t = [0 0.84 0.91 0.14 -0.77 -0.96 -0.28 0.66 0.99];

plot(p,t,'o')

Используем NEWFF , чтобы создать двухслойную однонаправленную сеть. Сеть имеет вход (диапазон входных значений от 0 до 8), слой из 10 нейронов с функцией активации TANSIG и слой из 1 нейрона с функцией активации PURELIN. Для обучения используется алгоритм обратного распространения и функция тренировки TRAINLM:

net = newff([0 8],[10 1],{'tansig' 'purelin'},'trainlm');

Моделируем сеть и сравниваем результат моделирования с эталонными значениями:

y1 = sim(net,p)

plot(p,t,'o',p,y1,'x')

Тренируем сеть 50 эпох до достижения ошибки 0.01 и моделируем снова:

net.trainParam.epochs = 50;

net.trainParam.goal = 0.01;

net = train(net,p,t);

y2 = sim(net,p)

plot(p,t,'o',p,y1,'x',p,y2,'*')

Алгоритм:

TRAIN вызывает функцию, которая задается NET.trainFcn, использующую параметры тренировки, задаваемые NET.trainParam.

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

Тренировка продолжается до тех пор, пока не будет достигнуто заданное значение ошибки функционирования или пока не будет достигнуто одно из условий остановки из заданных в соответствии с видом выбранной функции NET.trainFcn.

Некоторые функции отличаются от этого стандарта тем, что предъявляется только один вектор (или последовательность) за каждую эпоху. Входной вектор (или последовательность) выбирается случайным образом для каждой эпохи из конкурирующих входных векторов (или последовательностей). NEWC и NEWSOM возвращают сети, которые используют TRAINR.

Сопутствующие функции: INIT, REVERT, SIM, ADAPT

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

 

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

Система Orphus

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