回声状态预测惰性
Posted
技术标签:
【中文标题】回声状态预测惰性【英文标题】:Echo state prediction laziness 【发布时间】:2014-08-16 05:27:53 【问题描述】:我正在尝试通过实现this solution 来使用 PyBrain 进行时间序列预测。其他产生大偏移量。问题是,虽然我尝试过改变学习率、动量、最大训练时间、继续时间、神经元数量(1-500)和激活函数,但结果总是平平的。解决方案可能是什么?
蓝色:原装。绿色:网络的预测。
INPUTS = 60
HIDDEN = 60
OUTPUTS = 1
def build_network():
net = buildNetwork(INPUTS, HIDDEN, OUTPUTS,
hiddenclass=LSTMLayer,
outclass=LinearLayer,
recurrent=True,
bias=True, outputbias=False)
net.sortModules()
return net
def prepare_datasets(data, training_data_ratio):
training_data, validation_data = split_list(data, training_data_ratio)
training_set = SequentialDataSet(INPUTS, OUTPUTS)
for i in range(len(training_data) - INPUTS - 1):
training_set.newSequence()
tr_inputs = training_data[i:i + INPUTS]
tr_output = training_data[i + INPUTS]
training_set.addSample(tr_inputs, tr_output)
validation_set = []
for i in range(len(validation_data) - INPUTS - 1):
validation_set.append(validation_data[i:i + INPUTS])
return training_set, validation_set
def train_network(net, data, max_iterations):
net.randomize()
learning_rate = 0.1
trainer = BackpropTrainer(net, data, verbose=True,
momentum=0.8,
learningrate=learning_rate)
errors = trainer.trainUntilConvergence(maxEpochs=max_iterations, continueEpochs=10)
return errors
def try_network(net, data):
outputs = []
for item in data:
output = net.activate(item)[0]
outputs.append(output)
return outputs
【问题讨论】:
【参考方案1】:标准化数据:
data = data / max(data)
【讨论】:
以上是关于回声状态预测惰性的主要内容,如果未能解决你的问题,请参考以下文章