Well said. Do you think some sort of other patterning mechanism, like that used to identify songs (thinking the Shazam algorithm where there is more along the lines of making a "fingerprint" and comparing to the print) will help take us to the next level?
Neural Network architecture (sideways skyscrapers that get more focused as the network plays out) does not incorporate generalization much and this is sort of the point: a specific input data shall generate the resulting target, and any small variance would decidedly result in something different at the other end of the NN. Unless there were some way to incorporate a broad pattern on the data as it comes in... For example, run the NN, the NN shows results and also produces a fingerprint hash, now when you put slightly mal-aligned data into the NN, also provide the previous fingerprint result, and now (maybe) we can derive a device that will result in the same product and similar products within a range of the input data, to satisfy the case that the fingerprint stays true even when the data is slightly different.
Just some ideas on the topic, if we could solve pattern generalization where the viewing window did not have to line up perfectly with the perceived pattern, that would be very powerful; we would have the ability to measure unaligned states, but an algorithm that approaches this power also must exploit some natural phenomenon, such as quantum superposition, if we are to complete our iterations in reasonable time. Without some sort of preprocessing step, such as sorting (that can ensure algorithms run quickly) it seems difficult to try and make a real neural net that is significantly more than a very specific compressed archive.
What's really interesting is that as a stochastic process we could both generate two separate, functional, result-bearing neural networks (weights and layers) that achieved same or similar results while being completely different at their basis (in number of layers and the actual activation weights). And right now, there's no way to determine [elegantly] how similar our neural nets are. So, perhaps in some ways, the ability to compare neural network guts meaningfully will lead us to the ability to encode more elegant view ranges on data sets.