Как использовать эхо-состояние сети для имитации ее нормального поведения? - PullRequest
0 голосов
/ 16 мая 2019

У меня есть некоторые данные, собранные с датчиков моста.Мой проект посвящен использованию esn для симуляции нормального поведения моста с данными датчика, что делает esn способным идентифицировать его проблему со здоровьем.Дело в том, что я не знаю, как использовать данные для прогнозирования.Я знаю, как генерировать выходные веса и получать тестовые результаты с тестовыми данными, но это не предсказание, не так ли?Как в моем проекте нет тестовых данных, тогда как я могу сгенерировать вывод?

Я подумал, что было бы возможно, если бы я генерировал один вывод за раз и использовал его для создания новой последовательности ввода и повторения процесса.Но это не работает.вывод становится все больше и больше.

def generate_data(self):
    data=(self.inputSeq)[200:400,:]#its input sequence

    stateCollection=self.compute_statematrix(data,[],100)#its for collecting the states of the resevoir
    output=np.dot(self.outputWeights,stateCollection)
    data=output[0,-10:] #this is the container of the predicted data. I use the last ten to make a new sequence of input
    self.inp=data[-10:] #self.inp is curren input seq
    ttl=np.zeros(1+self.nInputUnits+self.nInternalUnits) #total state

    for i in range(100):
        self.internalState=self.plain_esn(0) #generate the internal state for current input
        ttl=np.hstack((1,self.inp,self.internalState))
        curout=np.dot(self.outputWeights,ttl.T) #I thought then I can generate the right output but no it doesn't
        data=np.append(data,curout)
        self.inp=data[-10:]

Это тест для набора данных Mackey-Glass.Предсказанные данные становятся такими же большими, как нан.Я надеюсь, что кто-то может сказать мне, где я не прав.

...