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

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

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

net

Сеть Updated

Y

Сетевые выходные параметры

E

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

Pf

Итоговый вход задерживает условия

Af

Условия задержки последнего слоя

tr

Учебная запись (epoch и perf)

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

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

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

P

Ni- TS cellArray

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

T

Nt- TS cellArray

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

Pi

Ni- ID cellArray

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

Ai

Nl- LD cellArray

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

Y

No- TS cellArray

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

E

No- TS cellArray

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

Pf

Ni- ID cellArray

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

Af

Nl- LD cellArray

Каждый элемент Af{i,k} Si- 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) (ID*Q) матрица

Ai

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

Y

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

E

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

Pf

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

Af

(sum of Si) (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 \times.

Смотрите также

| | |

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