What sort of project might somebody use your Arduino neural network for?
Thanks for your contribution to the Arduino community Giorgos_xou!
I had a quick look over the repository for common library problems and didn't find a single one. Usually I can find at least one problem with any given library.
I saw that you added a "Hastags" section to make it easier for people to discover your library via keyword searches. Towards that goal, you might consider using GitHub's excellent Topics system ...
If you want to provide the users of your library with an easy way to install and update, you might consider adding the library to the Arduino Library Manager index ...
in just two words i could say, almost for any "smart-thing"; but lets say for example, that you want to have a vacuum cleaner robot, that will be able to adapte in the enviroment based on its sensor's inputs. For this kind of robot most of the people would use a Neural-Network [...]
Sorry for the late follow-up.
I have always assumed that a neural network would require a great deal more memory and processing power.
I guess I was not asking about neural networks in general but rather about the sort of project you could implement with a neural network on an Attiny85? Or even on an Atmega 328?
As for the other examples i gave you, are possible!(at least as i think about them) like in the example of a smart home will also be present a main external-brain/"e-soul" except of the small-brains of each microcontroller [...] As for the last one is an-example/something i am working on and goes very well till now. and i am very confident that it will work as i have to do with a camera of 225 pixels and an Attiny167
Thank for the additional explanation.
I think I understand the distinction you are making between the Back Propagation and the Feed Forward activities - that sounds like the "learning" and "doing" phases to me
However I have always assumed the essential part of a neural network is its ability to learn. How can the Feed Forward part work if the system has no knowledge?
I must confess that your reference to the smart home is not specific enough for me to envisage how an Arduino based neural network might be used.
It would be interesting to hear more about what you can do with the low-res camera - in particular what can be done with a neural network more easily than with a conventional program.
Thank you again.
I think I will leave it at that. I can't say that I am any closer to understanding how I might usefully use an Arduino based neural program.
Well done Giorgos_xou!
I thought to test it on STM32 MCU, a cheap bluepill has 20K RAM and 64K flash.
Suggestion: use uint16_t instead of unsigned int because on STM32 it will be a uint32_t
I remember that was used by Samsung on their fridges to learn how to optimize the fridge cycle upon user open close frequency along the day.
I just tested only a compilation using the official ST core and the STM32duino core and I got no errors for Backpropagation_double_Xor example. The same for the ESP8266 and ESP32 cores.
There are some ESP32 boards that have a small cam usually an OV2640 sensor, so a neural network can be useful.
STM32 is a big ARM MCU family, some of them has FPU unit. Double occupies 64-bit (8-bytes). It is the same for ESP8266 and ESP32, they are 32bit MCU. Usually only 8bit MCU have float and double that occupies 4 bytes.
NN.FeedForward(inputs[j]); // Feeds-Forward the inputs to the first layer of the NN and Gets the output. yield(); NN.BackProp(expectedOutput[j]); // Tells to the NN if the output was right/the-expectedOutput and then, teaches it. yield();