Линейный слой
linearlayer(inputDelays,widrowHoffLR)
Линейные слои являются единственными слоями линейных нейронов. Они могут быть статическими, с входными задержками 0, или динамическими с входными задержками, больше, чем 0. Они могут быть обучены на простых линейных проблемах временных рядов, но часто используются адаптивно, чтобы продолжить учиться, в то время как развернуто, таким образом, они могут настроить к изменениям в отношении между вводами и выводами, будучи используемым.
Если сеть необходима, чтобы решить нелинейное отношение временных рядов, то лучшие сети, чтобы попробовать включают timedelaynet
, narxnet
, и narnet
.
linearlayer(inputDelays,widrowHoffLR)
берет эти аргументы,
inputDelays | Вектор-строка из увеличения 0 или положительных задержек (значение по умолчанию = 0) |
widrowHoffLR | Темп обучения Видроу-Хофф (значение по умолчанию = 0.01) |
и возвращает линейный слой.
Если темп обучения слишком будет мал, изучение будет происходить очень медленно. Однако большая опасность состоит в том, что это может быть слишком большим, и изучение станет нестабильным получившийся в больших изменениях в векторах веса и ошибках, увеличивающихся вместо уменьшения. Если набор данных доступен, который характеризует отношение, которое должен изучить слой, максимальный устойчивый темп обучения может быть вычислен с maxlinlr
.
Здесь линейный слой обучен на простой проблеме временных рядов.
x = {0 -1 1 1 0 -1 1 0 0 1}; t = {0 -1 0 2 1 -1 0 1 0 1}; net = linearlayer(1:2,0.01); [Xs,Xi,Ai,Ts] = preparets(net,x,t); net = train(net,Xs,Ts,Xi,Ai); view(net) Y = net(Xs,Xi); perf = perform(net,Ts,Y)
perf = 0.2396
narnet
| narxnet
| preparets
| removedelay
| timedelaynet