adapt

Адаптируйте нейронную сеть к данным по мере моделирования

Синтаксис

[net,Y,E,Pf,Af,tr] = adapt(net,P,T,Pi,Ai)

Как получить помощь

Тип help network/adapt.

Описание

Эта функция вычисляет выходы сети и ошибки после каждого представления входа.

[net,Y,E,Pf,Af,tr] = adapt(net,P,T,Pi,Ai) берет

net

Сеть

P

Входы сети

T

Сетевые цели (по умолчанию = нули)

Pi

Начальные условия задержки входа (по умолчанию = нули)

Ai

Начальные условия задержки слоя (по умолчанию = нули)

и возвращает следующее после применения функции adapt net.adaptFcn с параметрами адаптации net.adaptParam:

net

Обновленная сеть

Y

Выходы сети

E

Сетевые ошибки

Pf

Окончательные условия задержки на входе

Af

Конечные условия задержки слоя

tr

Обучающая запись (epoch и perf)

Обратите внимание, что T является необязательным и необходим только для сетей, которым требуются целевые значения. Pi и Pf также являются необязательными и должны использоваться только для сетей с задержками на входе или слое.

adaptАргументы сигнала могут иметь два формата: массив ячеек или матрица.

Формат массива ячеек легче всего описать. Это наиболее удобно для сетей с несколькими входами и выходами и позволяет представлять последовательности входов,

P

Ni-by- TS массив ячеек

Каждый элемент P{i,ts} является Ri-by- Q матрица.

T

Nt-by- TS массив ячеек

Каждый элемент T{i,ts} является Vi-by- Q матрица.

Pi

Ni-by- ID массив ячеек

Каждый элемент Pi{i,k} является Ri-by- Q матрица.

Ai

Nl-by- LD массив ячеек

Каждый элемент Ai{i,k} является Si-by- Q матрица.

Y

No-by- TS массив ячеек

Каждый элемент Y{i,ts} является Ui-by- Q матрица.

E

No-by- TS массив ячеек

Каждый элемент E{i,ts} является Ui-by- Q матрица.

Pf

Ni-by- ID массив ячеек

Каждый элемент Pf{i,k} является Ri-by- Q матрица.

Af

Nl-by- LD массив ячеек

Каждый элемент Af{i,k} является Si-by- Q матрица.

где

Ni =net.numInputs
Nl =net.numLayers
No =net.numOutputs
ID =net.numInputDelays
LD =net.numLayerDelays
TS =

Количество временных шагов

Q =

Размер пакета

Ri =net.inputs{i}.size
Si =net.layers{i}.size
Ui =net.outputs{i}.size

Столбцы Pi, Pf, Ai, и 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

(sum of Ri) -by- Q матрица

T

(sum of Vi) -by- Q матрица

Pi

(sum of Ri) -by- (ID*Q) матрица

Ai

(sum of Si) -by- (LD*Q) матрица

Y

(sum of Ui) -by- Q матрица

E

(sum of Ui) -by- Q матрица

Pf

(sum of Ri) -by- (ID*Q) матрица

Af

(sum of Si) -by- (LD*Q) матрица

Примеры

Здесь две последовательности из 12 шагов (где T1 известно, что он зависит от P1) используются для определения операции фильтра.

p1 = {-1  0 1 0 1 1 -1  0 -1 1 0 1};
t1 = {-1 -1 1 1 1 2  0 -1 -1 0 1 1};

Здесь linearlayer используется для создания слоя с входом области значений [-1 1], один нейрон, входы параметров 0 и 1 и скорость обучения 0,1. Затем моделируется линейный слой.

net = linearlayer([0 1],0.1);

Здесь сеть адаптируется для одного прохода через последовательность.

Отображается средняя квадратичная невязка сети. (Потому что это первый вызов adapt, значение по умолчанию Pi используется.)

[net,y,e,pf] = adapt(net,p1,t1);
mse(e)

Обратите внимание, что ошибки довольно большие. Здесь сеть адаптируется к еще 12 временным шагам (используя предыдущие Pf как новые начальные условия задержки).

p2 = {1 -1 -1 1 1 -1  0 0 0 1 -1 -1};
t2 = {2  0 -2 0 2  0 -1 0 0 1  0 -1};
[net,y,e,pf] = adapt(net,p2,t2,pf);
mse(e)

Здесь сеть адаптируется на 100 проходов через всю последовательность.

p3 = [p1 p2];
t3 = [t1 t2];
for i = 1:100
  [net,y,e] = adapt(net,p3,t3);
end
mse(e)

Ошибка после прохождения 100 через последовательность очень мала. Сеть адаптировалась к связи между входом и целевым сигналами.

Алгоритмы

adapt вызывает функцию, обозначенную net.adaptFcn, используя значения параметров адаптации, обозначенные net.adaptParam.

Задается вход последовательность с TS шаги, сеть обновляется следующим образом: Каждый шаг в последовательности входов представляется сети по одному. Значения веса и смещения сети обновляются после каждого шага, перед представлением следующего шага последовательности. Таким образом сеть обновляется TS времени.

См. также

| | |

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