mcmahon-lab / Physics-Aware-Training

Instructional implementation of Physics-Aware Training (PAT) with demonstrations on simulated experiments.
Creative Commons Attribution 4.0 International
281 stars 47 forks source link

Documentation for The Actual Physical Setup? #4

Open tjwangml opened 2 years ago

tjwangml commented 2 years ago

Thank you all for this ground breaking work!! I really want to make my DIY PNN, but I ran into some questions after reading the docs. I'm wondering if you could publish a bit more documentations about the actual building process of the PNN?

For instance, in Example 1, the first oscillator network is composed of 196 oscillators. If I construct an audio-frequency mechanical oscillator from a commercially available speaker, just like you what did in the paper, does it mean that I would need to buy 196 speakers? And how would you connect them to form a "layer", and how would you make this layer coupled with the next layer?

I'm been working with digital NN only and I have some experience making some hobbyist breadboard circuits, but never in a scale like this. It would be a dream come true if I can make my own PNN..

Any help / directions / references would be appreciated!

ms3452 commented 2 years ago

Hi and thank you for the interest!

More documentation about the building process of the PNNs is published in section 2 of the supplementary material. The mechanical oscillator PNN is described in section 2.C. The 196 refers to the number of time-domain inputs to the oscillator which are fed into a single commercially available speaker!

To create multi-layer PNNs, we reused each physical system by recording the analog output signal, processing it in the digital domain and reinjecting it into the same system. Eliminating the analog-to-digital conversion and directly coupling multiple physical systems is a promising direction to pursue--a discussion of the benefits can be found supplementary section 5, specifically subsection 5.D.1.

To get into the details of making a DIY PNN, it might also help you to take a look at the code to train each PNN. We published the code on Zenodo (https://doi.org/10.5281/zenodo.4719150). I think the notebooks most relevant to your question are analog_transistor_PNN/1 generate digital model training data and train physical neural network.ipynb and oscillating_plate_PNN/2 take data for differentiable digital model.ipynb.

Please let us know if you have further questions! We are happy to keep discussing.