Hi Dan
Thanks for the excellent feedback. I am taking a look at Edge Impulse and it looks very cool I actually want to see if I can use it in a demo project!!
I am trying to break into and catch up in this field so I definitely like the idea of mixing embedded with ML. Disclaimer excuse my ignorance as I know shy of nothing in AI at the moment and I am learning and trying to build an intuitive understanding of the landscape as I go along. I see understanding the correct application of AI as actually the biggest challenge.
I have one major question around using these kinds of tools based on my research and self study into ML so please bear with me if its a dumb one.
It goes like this, say I want to use a microphone, edge ML inference and an MCU to detect the sound of a knock on a door.
A simple hypothetical scenario that I thought of to embody the type of problem domain I see edge ML being applied to.
So lets say I have all the stuff hooked up to get the sensor data to the MCU and run inference etc. In such a scenario how would I get enough sample data to train a ML model to detect knocks in as many potential sites as possible. If you think about the problem there are a wide variety of door designs made of different materials or of different types of wood and densities which would have different spectral responses in terms of the reflected and abosbed sound for a reference knock with the same impact force and impact source. Now add another dimension of freedom in the fact that different people have different size hands, arm lengths and strengths etc.Suddenly there is a lot of variation to deal with.
Now the million dollar question why would I go the ML route when I could apply some DSP approaches instead (cross correlation maybe) or I could measure the spectral response and use some kind of hard coded algorithm based on a study of the general characteristics of the problem and emprical data from experimental observation. In other words applying the scientific method so to speak. I could use some statistical calculations ( yes I know we are now approaching ML using inferencial statistics…) but ultimately avoid needing to use TinyML or any other edge AI inference in itself.
I can see that a ML will give the best possible results for widespread use if the right model is used that is correctly trained. I get why. However the million dollar question s how do I get enough training data and where can I find this? I know this is the old problem with supervised learning approaches.
To small a set of data and surely I could just as well go the DSP route? Note I use broad terms here without getting into the semantics.
So my ultimate question is what is the selling point of edge AI if one cant get enough training data to build robust models and its arguably harder to get access to raw or even labelled sensor data samples online like this than it is to use google images to find enough images to label to train a DL CV classifier for example.
What then is the value proposition, how much data is a enough to be effective with TinyML for example and in the absence of large amounts of pretrained models and data how does one approach using edge ML and is it worth the effort if you don’t have the resources to empirically gather representative training data?
I feel like this post is perhaps not laser focussed but I am asking the general question is edge AI hype, or is more performant than I would think than “normal” DL where one has often use large training sets
more readily available while in edge AI scenarios sensor data is 1 dimensional?
If I am going to use the knock detector and train it for a limited sample set for use at some specific house with a specific door, since the sample scope is so narrowed why don’t I just go and use mathematical/DSP an estimation techniques. Or do I only want to use ML to seem in vogue and part of the hype. I have to ask this as devils advocate.
For me its the chicken and egg scenario that’s forming a psychological block that is somewhat of an impediment to the motivation to invest time in learning this in more detail. Then again it could just be me with my entrenched legacy thinking. Or does one wait for the community to do this legwork for models and architectures to proliferate in the public domain like seems to be the case in DL at the moment where you can pretty much find a model to do anything that has been developed and trained by others focussed on specific problems…
What advice can you give to help me see the light because i really want to