адаптироваться

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

Синтаксис

[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-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) (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.

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

| | |

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

Для просмотра документации необходимо авторизоваться на сайте