The ImageNet-A dataset (https://github.com/hendrycks/natural-adv-examples) contains thousands of hand-curated examples that are challenging for off-the-shelf classifiers. It's interesting to look through them and guess why each one's so difficult.
For examples like the surgical mask, the ImageNet "mask" category is for masquerade masks and halloween masks, I suspect it doesn't contain anything similar to a surgical mask. Imagenet categories are a bit weird that way - they're a pretty arbitrary set of labels that were selected for use as a benchmark, not for practical use. It's got 100 different breeds of dogs, because it was a way to test fine-grained classification. It's got crane (the bird) and crane (the machine). It's got 'car mirror' but not 'mirror'. It's got 'yurt' but not 'house'.
It's great if the categories you care about happen to match the ones on the list (in both name and type, as seen in the 'mask' example). But otherwise you'll quickly run into the need to fine-tune the model on some of your own data to get the categories you want.
(Original blogger here.) Yes ImageNet-A is nice! I took a look at the dataset and even referenced an example in the blog post. However, I found that many of the examples are hard to discern myself because many of the images are objects on a camouflaged background, and then many of the images are from rare classes (like "marmots").
This analysis is quite the strawman. It's a bit like taking a demo SQL table and basic select queries off an intro to SQL tutorial and claiming SQL sucks because the queries are inefficient and the tables can only store books and author names but not any other kind of data because that's what the example was. There is a lot more to SQL than what gets introduced in the intro to SQL tutorial and there is a lot more to computer vision nets than grabbing the network trained on a benchmark dataset and shoving completely different data at it.
Interesting, maybe I'm just in my own filter bubble, but I never see that suggestion. After sampling roughly 15 articles found searching for things like "how to use inception net", etc I didnt find a single article suggesting you take a pre trained model based on image net and use it without modification on a completely different dataset. I am genuinely curious, do you have any examples of this?
Also, it may seem minor, but as someone who has been working professionally with neural networks since 2013 or so, there is a huge difference between saying "what inception net doesn't see" and "what inception net trained on image net doesn't see". I may grant that the author is simplifying for an inexperienced audience, but if that were the case, they should at least point out how such problems can be avoided, and have been avoided for at least 5 or 6 years now, if not longer.
Maybe the GP has a job that means that they can't comfortably give some specifics. However, literally every GCP and AWS customer engineer that I have been on a call with says "you can use these models out of the box for any application and they will just work". Also, all of my competitors are saying "ML is democratized you just plug the models in, the cost of your project will be 3 engineers for eight weeks from India/Ukraine/Brazil". The problem is that this is leading to unnecessary failures of the technology both because it means that many projects that should not be attempted are being attempted and are doomed to fail, and on the other hand it means that projects that could work if done right are failing unnecessarily. This is burning investment capital and good will all over the place. In my opinion educating the market is essential : any dolt can wire together a demo that does 80% of what's needed, sales people can use that to convince the customer that the outcome will be a project that costs in at 30% of the value and delivers 110% (they are sales, so maths is not important to them) but delivering that project requires technical insight, competence, structure and professionalism. All of which are in short supply.
(Original blogger here.) This isn't a research paper describing a novel contribution! Just a simple blog post with some observations I made with a Python library (Gradio) that I helped develop :)
This seems like a thinly veiled advertisement for Gradio. This is an otherwise trivial observation of convolutional neural networks, given the rapid pace of the field in general
Makes them look bad, frankly. Not the fact that it’s a promotion, but the fact that the issues it lays out are so elementary and yesterday’s news.
To try to turn this comment into something only very slightly more interesting, I find it a bit of a challenge as a career thing, not being an expert in ML but being interested, to sort through who is actually doing the worthwhile work and who is just spouting buzzwords and regurgitating truisms. But I guess that’s part of the learning as with any field.
The difficulty with cartoon lions is interesting. I wonder if training an image classifier on cartoon drawings of things would help it better recognize those objects in real-life images, as the cartoon version is (theoretically) distilled down into those aspects that (to a human, at least) are the characteristically recognizable aspects of that thing, without distracting detail? Simplified cartoon drawings of things are often used to teach children, after all.
Also, that Roomba really does look like a CD player.
You can make the CNN focus more on shape rather than photographic texture using style transfer, hence, Stylized-Imagenet: https://arxiv.org/abs/1811.12231 I've wondered if you could do the same thing with anime images as well, and if a joint classifier (using, say, https://www.gwern.net/Danbooru2020 ?) would be much better for it.
Of course, the big trend now is CLIP/ALIGN https://openai.com/blog/clip/https://arxiv.org/abs/2102.05918#google which are trained on web images on such a scale that they do quite fine on anime images. Look on Twitter or Reddit for 'Big Sleep' examples using the ThisAnimeDoesNotExist.ai anime model: CLIP can generate anime images reasonably well, along with everything else it can do so well. (The 'blessings of scale', I call it: https://www.gwern.net/newsletter/2020/05#blessings-of-scale Just train on as much data as possible, and a lot of these weaknesses fix themselves.)
This is why I laugh anytime someone asks me if I am worried about AI taking over all the jobs. Lots of hype, but in reality we are about as far from general AI as we were when we were knocking rocks together in caves.
Not much changed, AI is based on rocks even now, complicated silicon rocks. /s
Joke aside, humans make mistakes too, just different kinds of mistakes. Humans get tired, bored and when we die, experience dies with us as well. AI worth is based on application, for example I would train it with fruit images if it were a fruit picking robot and it would be useful, even if it can't recognise upside down cars. Like any tool you got to know how to wield it.
Humans are expert only in the general things about life and maybe a specialised field. Most humans are bad at most tasks. Try to get a quadratic equation solved by random people on the street, like x^2 - 5x + 4 = 0, without paper and pen. It's a matter of being "in distribution" for us too. Nobody's perfect at everything (no free lunch).
What's missing for our AI to be truly great is the part about evolution. AI's need bodies, environments and an evolutionary program. Supervised models can't experiment new things except for their training data, they can't modify their environment in any way, can't formulate and test hypothesis. When they will be in the world like us, they will be much better. They will be the proverbial scientist Mary of the "knowledge argument" that sees colour red for the first time, after having studied everything about it in theory.
Those were some interesting failure cases, but the conclusion is unwarranted. These mistakes are not because of any shortcoming of Inception models (except maybe the upside-down car example). They are because the examples are out of domain for the training data, the model just has never seen sliced apples. Commercial providers likely have their own private training data.
BTW, it would be interesting to see how OpenAI's CLIP does on this problem, since it has more varied training data.
Yeah the car example also struck me as a real shortcoming -- sure, the training set probably included very few if any images of upside down cars, but I would expect basic data augmentation to have addressed that.
180 degree rotation is usually not included in augmentation because it hurts performance in upright images. You can do it, but if you want high benchmark scores it's better to limit rotation augmentation to smaller amounts, usually less than 45 degrees.
I don't think that, one day, there will be a person or system that recognizes every object on earth from every angle, with high accuracy. Such a system would be very inefficient. In other words, a practical AI system needs to be biased. It's obvious that people who made the ImageNet dataset has collected images mostly from their industrialized (and possibly Western) world. I think the future trends of AI will be a re-trainable and verifiable system that can be biased towards a user-preferred way.
23 comments
[ 3.2 ms ] story [ 56.0 ms ] threadFor examples like the surgical mask, the ImageNet "mask" category is for masquerade masks and halloween masks, I suspect it doesn't contain anything similar to a surgical mask. Imagenet categories are a bit weird that way - they're a pretty arbitrary set of labels that were selected for use as a benchmark, not for practical use. It's got 100 different breeds of dogs, because it was a way to test fine-grained classification. It's got crane (the bird) and crane (the machine). It's got 'car mirror' but not 'mirror'. It's got 'yurt' but not 'house'.
It's great if the categories you care about happen to match the ones on the list (in both name and type, as seen in the 'mask' example). But otherwise you'll quickly run into the need to fine-tune the model on some of your own data to get the categories you want.
I see this as a very funny way to recall what we always knew. Like a court jester reminding the king he was always naked.
Sure, you are right, but lots of people are wandering about saying different!
Also, it may seem minor, but as someone who has been working professionally with neural networks since 2013 or so, there is a huge difference between saying "what inception net doesn't see" and "what inception net trained on image net doesn't see". I may grant that the author is simplifying for an inexperienced audience, but if that were the case, they should at least point out how such problems can be avoided, and have been avoided for at least 5 or 6 years now, if not longer.
To try to turn this comment into something only very slightly more interesting, I find it a bit of a challenge as a career thing, not being an expert in ML but being interested, to sort through who is actually doing the worthwhile work and who is just spouting buzzwords and regurgitating truisms. But I guess that’s part of the learning as with any field.
Also, that Roomba really does look like a CD player.
Of course, the big trend now is CLIP/ALIGN https://openai.com/blog/clip/ https://arxiv.org/abs/2102.05918#google which are trained on web images on such a scale that they do quite fine on anime images. Look on Twitter or Reddit for 'Big Sleep' examples using the ThisAnimeDoesNotExist.ai anime model: CLIP can generate anime images reasonably well, along with everything else it can do so well. (The 'blessings of scale', I call it: https://www.gwern.net/newsletter/2020/05#blessings-of-scale Just train on as much data as possible, and a lot of these weaknesses fix themselves.)
Joke aside, humans make mistakes too, just different kinds of mistakes. Humans get tired, bored and when we die, experience dies with us as well. AI worth is based on application, for example I would train it with fruit images if it were a fruit picking robot and it would be useful, even if it can't recognise upside down cars. Like any tool you got to know how to wield it.
Humans are expert only in the general things about life and maybe a specialised field. Most humans are bad at most tasks. Try to get a quadratic equation solved by random people on the street, like x^2 - 5x + 4 = 0, without paper and pen. It's a matter of being "in distribution" for us too. Nobody's perfect at everything (no free lunch).
What's missing for our AI to be truly great is the part about evolution. AI's need bodies, environments and an evolutionary program. Supervised models can't experiment new things except for their training data, they can't modify their environment in any way, can't formulate and test hypothesis. When they will be in the world like us, they will be much better. They will be the proverbial scientist Mary of the "knowledge argument" that sees colour red for the first time, after having studied everything about it in theory.
BTW, it would be interesting to see how OpenAI's CLIP does on this problem, since it has more varied training data.