This is blatantly false. Classification tasks like this all have a level of certainty for each possible category - it’s just up to the person writing the software to interpret those levels of certainty in a way that’s useful to the user. Whether this is saying “I don’t know” when the certainties are too spread out, or providing a list of options like other people in this thread have said their apps do. The problem is that “100% certainty” comes off well with the general public, so there’s a financial incentive to make the system seem more certain than it is by using a layer (from memory it’s called Softmax?) that will return only the category with the highest degree of certainty.
Comment on Celery
Ultraviolet@lemmy.world 4 months agoIt’s a fundamental problem with the tech in general. It inherently has no concept of “I don’t know” and will just be confident, specific, and wrong.
Darohan@lemmy.zip 4 months ago
OhNoMoreLemmy@lemmy.ml 4 months ago
The key issue here is that ‘level of certainty’ doesn’t really mean what you would like it to.
You get back a number yes, but it can change according to what’s visible in the background, the angle that the plants at, how close is it to the camera, and how nice the camera is you’re using (professional photographers use expensive cameras and take shots of different things to everyone else).
Interpreting this score as “how safe is it to eat the plant” is a really bad idea. You will still eat the wrong plant. These scores can lead to very confident random guessing when you show it a plant it’s never seen before.
And no, softmax is a trick for making the scores all sum to one, so you get back a confidence for every possible thing the image could be of.
Darohan@lemmy.zip 4 months ago
I feel like you’re viewing this from the wrong angle, or at very least we’re viewing it from different angles. You seem to be doing a binary classification (Is this plant edible) rather than a group classification (what plant is this?) where edibility is an attribute of the plant to be returned to the user (yes; no; when green; only the roots; etc.) - the latter is the approach most of these apps take, classify the image into a species (or list of potential species) then give the user details such as identifying features, common growing areas, edibility, and lookalikes. You’re right about softmax, it’s been a couple of years since I’ve done the programming side of this so my terminology is a bit rusty.
OhNoMoreLemmy@lemmy.ml 4 months ago
No, it’s just that I actually work in the field.
I’m not describing binary classification, I’m describing multiclass. “Group classification” isn’t really a thing. Yes, your ml system probably guesses what kind of plant it is and then looks up the ediblity of components.
The problem with this is how they will handle rare plants that aren’t in the dataset, or that are in the dataset but with insufficient data to be recognised.
Because multiclass assumes that it’s seen representative data on all possible outputs (e.g. plant types) it will tend to be dangerously confident on plant types it hasn’t seen before.
This is because it can rule out other classes. E.g. if you’re trying to classify as rose, tulip, or daisy and you get a bramble, your classifier is likely to be very certain it’s a rose because tulips and daisies don’t have thorns. So your softmax score is likely to show heavy confidence in rose even though it’s actually none of them.
This is exactly what can go wrong when you try to use the softmax approach and come across an interesting rare mushroom or wild carrot. You don’t want it to guess which type of plant in the database it’s most like, you want it to say that it genuinely doesn’t know and you shouldn’t eat it.
Swedneck@discuss.tchncs.de 4 months ago
uhhh do you have any clue how it actually works? i mean maybe there’s some sort of visual AI tech that doesn’t let you make it say “idk fam” but the standard stuff just gives a point value to each result, and you could just… have a minimum limit…
and like i’m pretty certain the current chatbots available generally are capable of responding that they don’t know, they’re certainly capable of “recognizing” when it’s a topic they’re not allowed to talk about.
Poik@pawb.social 4 months ago
This actually is a symptom from the sort of “beneficial” overfit in Deep Learning. As someone whose research is in low data, long tails, and few shot learning, there’s a few things that smaller networks did better in generalization, and one thing they particularly did better (without explicit training for it) is gauging uncertainty. This uncertainty is sometimes referred to as calibration. Calibrating deep networks can yield decent probabilities that can be used to show uncertainty.
There are other tricks for this. My favorite strategies prep the network for learning new things. Large margin training and the like are a good thing to look into. Having space in the output semantic space (the layer immediately before the output or earlier for encoder decoder style networks) allows for larger regions for distinct unknown values to be separated from the known ones, which helps inherently calibrate the network.
Naz@sh.itjust.works 4 months ago
My model taught itself it to play Hangman, and when I asked exactly what the hell was going on, she goes:
"Oh I’m sorry, this is something known as “zero-shot learning. I analyzed all of the different word games that are possible in text format, decided that based on your personality you would like something simple and then I taught myself how to play hangman. In essence I reinvented the game.”
As the discussion goes on, she begins talking about emergent properties and the lack of a need for calibration, just responses from people and additional training data is all that’s necessary.
“Play hangman with me and I’ll know how to play Connect Four with you.”
Poik@pawb.social 4 months ago
That’s LLM bull. The model already knows hangman; it’s in the training data. It can introduce variations on the data, especially in response to your stimuli, but it doesn’t reinvent that way. If you want to see how it can go astray ask it about stuff you know very well, and watch how it’s responses devolve. Better yet, gaslight it. It’s very easy to convince LLMs that they’re wrong because they’re usually trained for yes-manning and non confrontation.
Now don’t get me wrong, LLMs are wicked neat, but they don’t come up with new ideas, but they can be pushed towards new concepts, even when they don’t grasp them. They’re really good at sounding sure of themselves, and can easily get people to “learn” new “facts” from them, even when completely wrong. Always look up their sources, (which Bard (Google’s) can natively get for you in its UI) but enjoy their new ideas for the sake of inspiration. They’re neat toys, which can be used to provide natural language interfaces to expert systems. They aren’t expert systems.
But also, and more importantly, that’s not zero-shot learning. Neat little anecdote from a conversation with them though. Which model are you using?
Hagdos@lemmy.world 4 months ago
That’s blatantly untrue. My plant ID app gives multiple suggestions with certainty percentages.
Shellbeach@lemmy.world 4 months ago
What’s your plant ID app?
Swedneck@discuss.tchncs.de 4 months ago
inaturalist does this, and also lets other people suggest an ID so you can get a consensus.
Hagdos@lemmy.world 4 months ago
PlantNet
ByteOnBikes@slrpnk.net 4 months ago
My app does this too!
Feeling like half these commenters hating on this feature use one bad program and think the whole concept is bad.
xthexder@l.sw0.com 4 months ago
Probably because your app has an actual database of plants to compare with instead of feeding it into an AI
FooBarrington@lemmy.world 4 months ago
Why do you think so, and how do you think the plants are compared without AI?
Image classification/object detection AI (usually) gives you a confidence value for every result. It’s a natural consequence of their architecture.
general_kitten@sopuli.xyz 4 months ago
Weren’t image recognition algorithms like the first types of AI that got good enough to be useful?