Healthy Machines
Most of the first week was used to assemble and setup (partially new) hardware and record data for modelling.
During the second week we started to work on modelling, implementations and experiments. The workshop
was a great opportunity to do focused work needed to put the components and software together, and also
for people with complementary background to start working together on problems related to health monitoring
of rotating machines using low-power neuromorphic devices and neural networks.
The following approaches were outlined and investigated:
– Using a neuromorphic cochlea or simple spike-frequency encoder to transform the (analog) vibration signal to spike representation for processing with a ROLLS chip.
– Using recurrent neural networks like an echo-state network and a supervised classifier to process samples from the ADC.
– Using unsupervised feature learning in combination with a 1-class classifier / anomaly detector to process samples from the ADC. We worked on an online implementation of machine learning algorithms inspired by self-organisation in visual cortex in the FPGA on the ZedBoard.
Rotating machine
Miniature rotating machine used for the experiments. The electric motor drives a rolling element bearing that can be replaced online. A vibration sensor is used to monitor the machine, which either has a healthy or faulty bearing.
ZedBrain
ZedBoard with ADC pmod (Maxim MAXREFDES#5) and custom amplifier for the vibration sensor.
AER Interface
We developed an AER output from the ZedBoard that encodes the vibration signal in the form of spikes. The AER events are sent to the PMOD port and are visualised with a SmartScope. The algorithm is outlined in aer_coder.c (below).
EchoState Networks
Damir Vodenicarevic and Christopher Bennett did experiments with EchoState Networks and found that a network with a few hundred neurons could accurately classify recorded vibration signals corresponding to a healthy or faulty machine. The image shows an example of the output from the network (0: healthy, 1: faulty) over time for a recorded signal that was not used during training of the network.
Brian Modelling
Andreas Ternstedt (with support from Ole, Federico, Giacomo, Dora) worked on spiking neural network models for feature learning in Brian aiming to develop a network that can be implemented on the ROLLS chip. Work in progress... The image is a snapshot from a simulation illustrating a change in the temporal structure of spikes when a fault appears in the bearing of the machine.
Online Feature Learning
We worked on an online implementation of a machine learning algorithm for unsupervised feature learning in the FPGA on the ZedBoard. The goal is to combine the feature learning system with a one-class classifier / anomaly detector to enable learning of normal conditions and detection of abnormal conditions. Work in progress...
Features learned from vibration signal (black) using a software implementation of the algorithm (Martin del Campo & Sandin, MLSSP 2013), which essentially is an accelerated version of the algorithm desribed by Smith & Lewicki in their 2006 Nature paper on Efficient Auditory Coding (included below). In terms of spiking neural networks you can think of the atoms as something similar to spike-time averages (STA's) of nonlinear neurons. The algorithm produce events (red triangles) and the resulting residual of the signal (blue) is approximately normally distributed after training.
Resources
Recorded vibration signals from the rotating machine with healthy and faulty bearings and some code.
Healthy_10kHz.csv (1.9 MB) Faulty_10kHz.csv (1.9 MB) aer_coder.c (3.7 KB) TRAINED_ESN.zip (4.0 MB) Smith_Lewicki_2006.pdf (350.2 KB) EI-Net_2013.pdf (1.9 MB)