回声状态预测惰性

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)

【讨论】:

以上是关于回声状态预测惰性的主要内容,如果未能解决你的问题,请参考以下文章

基于集成回声状态网络模型在兰州市艾滋病发病例数预测中的应用

回声状态网络(ESN)基础教程

回声连接不接收来自广播状态通道的数据

获取行数和回声

WebRTC回声消除

MLPs+ESN利用多层感知机MLPs对经典ESN(回声状态网络)的输出权值计算进行优化的MATLAB仿真