作为一个对自动编码器和深入学习的noob,我努力做到以下几点。 我正在尝试使用自动编码器对振动数据集执行异常检测,从nasa的引用集开始
每个数据集由单个文件组成,这些文件是以特定间隔记录的1秒振动信号快照。每个文件包含20480个点,采样率设置为20 kHz。
因此,该数据集既包含新轴承和完好轴承的数据,也包含出现损坏的轴承的数据。你知道吗
我使用了Keras+Tensorflow的例子,最近的IBM example,它构建了一个11层的自动编码器。你知道吗
# design network
model = Sequential()
model.add(LSTM(50,input_shape=(timesteps,dim),return_sequences=True))
model.add(LSTM(50,input_shape=(timesteps,dim),return_sequences=True))
model.add(LSTM(50,input_shape=(timesteps,dim),return_sequences=True))
model.add(LSTM(50,input_shape(timesteps,dim),return_sequences=True))
model.add(LSTM(50,input_shape=(timesteps,dim),return_sequences=True))
model.add(LSTM(50,input_shape=(timesteps,dim),return_sequences=True))
model.add(LSTM(50,input_shape=(timesteps,dim),return_sequences=True))
model.add(LSTM(50,input_shape=(timesteps,dim),return_sequences=True))
model.add(LSTM(50,input_shape=(timesteps,dim),return_sequences=True))
model.add(LSTM(50,input_shape=(timesteps,dim),return_sequences=True))
model.add(LSTM(50,input_shape=(timesteps,dim),return_sequences=True))
model.add(Dense(3))model.compile(loss='mae', optimizer='adam')
def train(data):
data.shape = (s_t, timesteps, dim)
model.fit(data, data, epochs=50, batch_size=72, validation_data=(data, data), verbose=0, shuffle=False,callbacks=[LossHistory()])
data.shape = (samples, dim)
def score(data):
data.shape = (s_t, timesteps, dim)
yhat = model.predict(data)
yhat.shape = (samples, dim)
return yhat
IBM的文章中说:
“LSTM希望其输入包含时间窗口”
然后,将3轴*3000个样本的示例时间序列划分为3*10个300个样本的块。你知道吗
当在实际的nasa数据集上尝试自动编码器时,对于一个完整的轴承或轴承上有实际故障的文件,使用OK数据,我很难找到,如何:
将我的20480示例文件塑造成适合网络培训的片段或批
决定第一层应该有多少个神经元
确定epochs
和batch_size
在神经元的数量和训练次数之间找到一个很好的平衡点,作为一个合理的折衷,这样就可以进行实验,而不需要花几个小时来重复。
当用几个实验性的选择的维度进行实验时,我能够通过编码器改善损失,但在尝试输入一组检测到的实际缺陷之前,可能会达到一个或多个局部极小值。
我可能会猜测,像上面这样的数据集可以被视为音频片段,例如训练神经网络识别某个振动信号的内容,并映射到已知类,比如振动信号的shazam,但我不确定相似性是否足够重叠。你知道吗
通常使用FFT内容识别轴承损坏,但我看不到自动编码器在频率箱上工作,因为LSTM预计仅在时间序列数据上更优越。你知道吗
任何关于如何在上述方面取得进展的线索,将不胜感激;-)
为了对频率数据使用LSTM,计算短时傅里叶变换。在Python中可以使用
librosa.sftf()
。你将得到一个新的时间序列,在时间上降低采样率(比如10ms),序列中的每一帧都是这个小时间窗口中的频率内容(傅立叶系数)。你知道吗相关问题 更多 >
编程相关推荐