Линейный слой
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