They use the same procedure used to construct CIFAR-10 to construct a new test set and test a bunch of state of the art results on the new test set.
They see a generalization gap, but the relative order of SoTA results remains (roughly) the same.
So, yes, test set validation is an overestimate of real-world performance of these systems, but progress on test sets is indicative of progress in real-world settings.
And to remember this in context, no-one is asking "do traditional computer vision systems understand images", because they were explicitly just looking at image statistics.
As you point out, that the relative ordering remained stable means progress being made is not simply overfitting to the test set. The negative finding from the paper you link to is in how much accuracy drops considering how slight modifications to the test set were. In their own words:
> We view this gap as the result of a small distribution shift between the original CIFAR-10 dataset and our new test set. The fact that this gap is large, affects all models, and occurs despite our efforts to replicate the CIFAR-10 creation process is concerning.
> Nevertheless, the accuracy of all models drops by 4 - 15% and the relative increase in error rates is up to 3×. This indicates that current CIFAR-10 classifiers have difficulty generalizing to natural variations in image data.
It remains to be seen if others can think up ways to maintain performance that the authors did not manage.
test set validation is an overestimate of real-world performance of these systems, but progress on test sets is indicative of progress in real-world settings
I think this is important point to make and talks to the real life limitations of run of the mill SL techniques. If you can't validate with noisy "real world" data, then you're basically staying inside the box and hoping that you've curated well enough to mimic real world conditions.
I still like RL system for the improvement on this, however it's much more difficult in practice.
One of the cited papers "Measuring the tendency of CNNs to Learn Surface Statistical Regularities" is also a great insight into this phenomena [0].
> Our main finding is that CNNs exhibit a tendency to latch onto the Fourier image statistics of the training dataset, sometimes exhibiting up to a 28% generalization gap across the various test sets. Moreover, we observe that significantly increasing the depth of a network has a very marginal impact on closing the aforementioned generalization gap. Thus we provide quantitative evidence supporting the hypothesis that deep CNNs tend to learn surface statistical regularities in the dataset rather than higher-level abstract concepts.
It's interesting that they identify striding as the culprit. Striding is also, according to some people at Google AI, the reason why VGG is one of the few good CNNs for doing style transfer (which is otherwise quite mysterious: https://www.reddit.com/r/MachineLearning/comments/7rrrk3/d_e...).
Time shift invariance, which is used when you assume that past patterns predict future results, is one form of invariance. Space shift invariance and rotation invariance are others. You have to specifically program your nn to look for time shift invariance; stands to reason you'd want to design your architecture for the spacial invariances too. In other words: it's not reasonable to expect a neural net to derive space and rotation invariance from first principles, and I'd be very surprised to learn that the human brain didn't have special purpose hardware for accomplishing those things.
Having dabbled with image processing, your comment reminded me of the Fourier Mellin transform, which can be used for translation, rotation and scale invariant feature detection.
I did a quick search and came up with this paper[1], and while they don't use the Fourier-Mellin transform, they do use a log-polar transform[2], where rotation and scaling are transformed to translations. This, they claim, result in much improved classification of rotated and scaled data.
I haven't been keeping up on the latest in the ML field tho, so maybe it's rubbish, but like you I'd be surprised if some extra processing doesn't play a role.
You made me think of the Margaret Thatcher Illusion, for which the best example I found was Dr. Phil Plait[0]. Funny thing, the idea of Capsule Networks (Hinton et al)[1, 2] seems to tackle some of these issues, though it's they're a bit young yet and more more work.
I think that convolutional networks are really mostly a way to address space shift invariance too; and I even wonder if the same job could be done by some special purpose code that just runs the underlying neural net with a bunch of different rotations of the same image. That's probably how they do it now.. I feel like that's probably close to the optimal approach.
I've recently become interested in permutation invariant neural networks. There has been very little work in this area - just PointNet and a few derivatives.
Anyway, I think that neural networks are now entering the trough of disillusionment as people begin to discover the limitations. Maybe in the future, somebody will come up with a new machine learning architecture that has better generalization. I'm not expecting gradient descent to give us general AI.
The main cause of the generic brittleness of Neural Networks is probably in the way they are utilized. Biological neural nets never really stop learning. They slow down, even "forget" in order to restructure, but they change constantly. A static neural net in basically a snapshot of it's environment (training data).
Very interesting consequences for the ML field if my hunch has anything remotely resembling a kernel of truth to it.
Continue learning while also continuing to "forget" ... that's very interesting! Space required to save data remains constant, and their ability adapts to environment and conditions. So... seeing neural nets as living structures instead of as snapshot sieves/filters... very strong approach. I wonder if for solid AI we need to make ai-biology first. To be concrete about what I'm saying now, consider that we are not in conscious control of the generation of our skin cells or the processes of our kidneys, but they do organically persist on their own. Maybe we need to get ai/biology so tight-knit first, so that we can have a proper vehicle for an AI-mind to journey within, while also not necessarily rewriting the code for its heartbeat when it just wants to remember names of common phenomena.
Again, look to biology. That thing you are modeling.
Humanly "imperceptible" is a very loaded term. Human perception has billions upon billions of networks worth of filtering going before we even boil down our environment to the "interesting" stuff.
Furthermore, if you take a snapshot of that network after training, you're fit to the training data. The network has lost it's plasticity. Take a potato, put it on the ground, train the network on other potato shots. Now show it a potato shaped asteroid. Now show it a French fry. What is the potato-ness that this potato+detector is ACTUALLY homing in on? Keep in mind, this structure is trained on digital encodings of maps of light and color. The function may not be a perfect semantic detector of potato-ness. It just knows what patterns of bits MIGHT be potatoes. And when you are working on bit level encodings, one bit translates to a lot of change, even if it is imperceptible to a human looking at a rendering on a screen.
Heck, there is no guarantee that the function it's emulating is well defined outside the training data set.
Neural networks are GOING to be fickle. You're trying to coerce "reliable, repeatable. generifiable results" out of a simulation of the same stuff that drives five year olds and emotional people. Consider yourself lucky the program hasn't opened the CD tray and demanded you insert crayons.
> You're trying to coerce "reliable, repeatable. generifiable results" out of a simulation of the same stuff that drives five year olds and emotional people.
The "neural network" machine learning technique is not a simulation of biology. It's a nice marketing phrase. The technique is just math, maybe "inspired" by someone thinking about neurons.
Don't be misled by branding. For a good explanation of why some of these fanciful science terms come about, read Bellman's explanation of why he called his research "dynamic programming".
It isn't just branding though. It is a mathematical representation of a synaptic action potential.
The main difference of course being that you are implementing it in silicon rather than carbon, and having no bloody grammar or conception of how in the heck to explain how 'X set of nodes with Y set of weights with Z activation threshold function'=something useful.
They called them Neural networks for a reason. It's been quite a mystery both on the biology (in terms of gray matter) and computing (in terms of ANN) front why it works at all. But it does.
I think I've read Bellman's work before, but I'll take a look. Thanks for the pointer.
It's been a while since I've been in the literature (about 7 years to be exact).
Just can't find enough hours in the day to keep on top of the state-of-the-art, and unfortunately the career hasn't budged me in the direction of anywhere I could weasel work on it into my day.
Sometimes innovation is better than imitation though - we didn't build the jumbo jet by copying the birds and likewise attempting to copy the biological brain may not be the best route for AI.
This is why the 'neurones' used in ANN's are nothing like biological neurones really - both in the properties of the activation functions and the structure of the net as a whole (which is difficult as we still know relatively few details about the structure of the human brain on a neural circuitry level).
This is probably the fifth or sixth trough. The problem is we spend too much time trying to brute force engineer our way forward when we should spend more time reverse engineering the salient properties that give rise to biological intelligence. Someone will invariably say that planes don’t use bird wings, but both birds and planes relying on the laws of aerodynamics and we need some kind of similar theoretical framework for computational intelligence—reverse engineering is the shortest path forward.
There are a few moves in this direction but without a better framework for computational intelligence, which we can get to faster through reverse engineering, we’re going to keep hitting these walls. This road includes methods for artificial neurogenesis, genetic encoding of the developmental program at the level of neuron and axon driven by artificial gene regulatory networks (AGRN) evolutionary methods to evolve populations, and adversarial ecosystems for open ended evolution. Unfortunately none of these will give you a quick win....
> but both birds and planes relying on the laws of aerodynamics
Complexity of biological systems is so mind-blowing that we likely don't even have computational capacity to simulate one of those processes in veracious detail. In addition, we can't even comprehend primitive, 1000-layer deep neural networks, not mentioning significantly more complex neurons (that are performing some local, protein-based computations alongside electric spikes we measure). We should be happy that Deep Learning surprisingly somewhat works, obliterating "classical" ML and make use of it to the full extent of its capabilities. Romantic idea that we can construct AGI with it should be retired.
This is lazy thinking. You could say the same thing about planetary motion but the ellipse equation does a pretty good job giving us a null hypothesis to build up from.
If you’re a materialist then you’re going to believe that all of the minute biological details are relevant. If you’re a functionalist you can work at a more abstract level. From the 12 years of research I did in this space (both CS and Bio) I can tell you for certain that we can learn a lot more from a functionalist approach.
And the reason we “can’t understand” 1000 layer deep neural networks is again because we don’t have a good theory of these types of computational systems. For instance I can tell you that most of the interactions w_ijk are completely spurious and if you cull the network you actually end up with a circuit that you can understand in the same way any EE undergrad can identify a 3 bit adder from the circuit topology.
If there is one area of neuroscience where there has been a multi-level approach to understanding brain function it has been the study of the hippocampus. You will find detailed computational and simulation models built around detailed knowledge of its circuitry and a wealth of knowledge bridging behavior to hippocampal subregions, subcircuits, in both human and animal models. To me it is one of the most exciting areas of neuroscience because you can build up disting ideas about the functions of circuits based on te computational properties its structure could allow. Furthermore the hippocampus sits atop major networks where high level concepts and percepts are bound to create arbitrary relations for generalization and for one-shot learning.
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.
> Neural Network architecture (sideways skyscrapers that get more focused as the network plays out) does not incorporate generalization much ...
Have you ever seen kids learn the tables of multiplication ? Or addition (but people don't seem to remember from their past that they learned addition from tables). Doesn't that give you pause when you're saying humans can generalize ? Because clearly, this is not how we teach our children.
Humans don't learn that if 2+2=4, 3+2 must be 5. No. Humans learn that 2+2 is 4, then they learn that 2+3 is 5, then they learn ... and so on and so forth.
Even when you see online players investigate a game. Whether it's chess, zelda, or starcraft. You keep seeing the same thing. Humans don't learn by generalizing. They learn how to act in every situation ... one situation at a time. So it's not just 6 year old kids doing this. The game advances because there's a few specific individuals that spend entire days making nonsensical moves, and on rare occasions they find a new move, see what happens, and tell the world (in chess we're talking something like once a year, in mario it seems possible to do it once every few months. It's scary how much tenacity is required for such a process).
And for the vast majority of humans, it never even gets to that point. They just don't have the tenacity.
So if you think humans are AGI, which you seem to do, then clearly such a state can be achieved with disappointing generalization capabilities.
>So if you think humans are AGI, which you seem to do, then clearly such a state can be achieved with disappointing generalization capabilities.
Not sure what AGI means.
Yeah, you make a strong point that there are axiomatic must-knows for any domain, and generalization would require some level well above -- or some layer well abstracted from -- this axiomatic knowledge.
It took a few hours of filtering mistakes out of my kids to make me think about this. I was supportive (I hope), but internally I was thinking about it.
The thing is the most difficult mistake was 5+3 being 14. I tried teaching them to approach the problem from different angles. 3+5 ? Fine. 4+3 ? Right. 6+3 ? Right. 5+3 ? 14 ... it took hours.
In kids, most mistakes are corrected quickly, but a few persist. That reminded me that I have a few choice mistakes that lasted an incredibly long time despite getting corrected again and again and making no real amount of sense (meaning I know dozens of ways to calculate them, and I know how the numbers progress and I know how to use distribution to solve it, to "move the beans" (5 + 7 = 5 + 5 + 2 = 10 + 2 = 12. They present that logic, doing the tens first, as moving beans around. Which makes sense), and yet, there's a few mistakes that stuck. So you have a lot of time to think while correcting one of these sticky mistakes.
There are more permutation invariant networks. Look for Bruno or for Neural Statistician. Both of these are RNN's with the exchangeability property. This means inputs and output can be permuted with each other. If you need something with less strong constraints (but still invariant under permutation of the input), there is also Deep Sets.
Ah, thanks for the tip. When I'm reading research papers I often find clusters of related papers with the same keywords. Often finding the separate clusters is a difficult challenge, even if you use Google Scholar and follow all the citations.
It's funny but looking at those prediction graphs bouncing up and down like crazy ... one immediately thinks "yep I know, that's exactly what they said would happen if I used polynomials for fitting functions". And yes, that's what polynomials do.
They don't have good local behavior: if a -> f(a) and b -> f(b) are fitted with a higher-degree polynomial then the image of f between a and b will often be infinite (meaning there is some value x between a and b where f(x) is infinite), starting at very high degrees (ie. deep networks) there will probably be many such points.
Intuitively I think of it like this: if you look at the "real world" as a function you can make a couple of very general observations. F(x) -> doesn't have very much information about the world, and it's very hard to make sense of. Most of it just doesn't seem relevant. d/dx F(x) ... much more relevant. d^2/dx F(x) ... also pretty interesting. d^3/dx F(x) less interesting but occasionally important. d^4/dx F(x) ... nobody cares (also if you take camera images and calculate this, it'll be almost exclusively zeroes).
Secondly there are strong "domains" in the real world that we just seem to be unwilling to accept. Polynomials are good in the sense that if you get the equation for a stone dropping onto your foot really, really tighly correctly fitted, that equation holds up for the movement of an entire planet, which is great. But why bother ? It is much more valuable to be able to predict whether a stone will fall on my foot than how Venus will move. That's if you get it right. If you get the polynomial degree of your equation wrong ... it makes utterly ridiculous predictions. Many other approximation methods don't suffer from this problem
Doesn't happen with spline, beziers, even taylor approximations have better behavior.
In machine learning, a convolutional neural network (CNN, or ConvNet) is a class of deep, feed-forward artificial neural networks, most commonly applied to analyzing visual imagery.
IIUC, CNNs are just a computational trick to reduce the number of parameters in the network, and train for all possible translations at once.
So how would a network perform w.r.t. translations if it was expanded, i.e., topology similar to the CNN but with all parameters expanded, and trained on translated images?
Perhaps, I'm saying just perhaps, there is a reason why humans are good at discerning things in the very narrow field of vision that's straight ahead, and not very good at the peripheral vision.
Pointing first and then classify may help in solving those issues. Maybe?
The reason why humans are good at discerning things in the very narrow field of vision that's straight ahead, and not very good at the peripheral vision is biological, there's simply a much lower density of receptors ("pixels") in the periphery, so in the periphery there's much less sensory information for the brain to work with.
>While VGG16 has 5 pooling
operations in its 16 layers, Resnet50 has only one pooling operation among its 50 intermediate layers
and InceptionResnetV2 has only 5 among its intermediate 134 layers.
Aka being computationally cheap with pooling causes weird sampling issues.
The paper has a terrible pompous title that's just wrong. Modern CNNs generalize wonderfully on small translations.
They just managed to break a couple of old CNNs and go on to claim they broke AI research or something.
The paper claims the opposite: "[...] jaggedness is greater for the modern, deeper, networks compared to the less modern VGG16 network. While the deeper networks have better test accuracy, they are also less invariant."
"Do CIFAR-10 Classifiers Generalize to CIFAR-10?" - https://arxiv.org/abs/1806.00451
They use the same procedure used to construct CIFAR-10 to construct a new test set and test a bunch of state of the art results on the new test set.
They see a generalization gap, but the relative order of SoTA results remains (roughly) the same.
So, yes, test set validation is an overestimate of real-world performance of these systems, but progress on test sets is indicative of progress in real-world settings.
And to remember this in context, no-one is asking "do traditional computer vision systems understand images", because they were explicitly just looking at image statistics.