"How does the learning process of an A.I. sound?" We need help with the source code and API of a simple A.I. Program

Hello Everyone,

We are students from Germany and we are currently studying „Media-Design“.

We were assigned to create an artistic media-installation for the “Ars Electronica” as an entry in their competition. Our Idea is to visualize the process of an A.I. in an experimental way. This means, that we don’t know yet, what the final result is going to be.

However for that, we need some sort of input for our “generative art” project.

I myself am pretty familiar with programming algorithms and data-structures. I had some experience with JavaScript and Processing.

What we need is a simple all-purpose A.I., ideally one with neuro-evolution (I found NEAT to be looking quite promising).

I want to emphasize, that we don’t require anyone to build or program a new A.I. If someone already built one, even a simple or small one, it would be sufficient. From what I understood from our research, the simplest and most basic form of A.I. is the one “recognizing hand-written digits”. But please no CNN. A simple multilayer-perceptron feedforward or NEAT is enough. We thought that a text-file, ideally some sort of exchange format (like XML or JSON) would be a great start, to understand the data we get out of the process.

Tl;dr:

  • For a Project we need a neuronal network

  • We want to visualize the learning process

  • We need an API to get weights and neurons from an A.I. System that is learning.

  • We just need a finished built A.I. (please no C.N.N.) ; No additional Programming needed

If anyone has interest helping us with our problem, feel free to send me a P.M.

Thanks in advance,

Best regards,

The “Sound of Synapse” Group!

Maybe you could look at these videos by Daniel Shiffman?

EnhancedLoop7

Now i don‘t know if that is what you are looking for, But you could try to take the weight changes for each connection over the curser of its learning process and show the changes it made from the initial random weights adopting to the final weights. Either by just lerping from the initial values from each connection to the final, or by taking all changes into account. And while the connections are changing in your code, you could run it(not actually run it, more like sending a Signal and seeing how it moves through the neutral net while the weights actively change and thus increase the size/brightness of that signal, maybe even within connections). Or something similar.

If it was not all too clear, i can send you the idea in german :wink: just answering in english for others to understand it too, if they want something similar in the Future :sweat_smile: