The problem with DNNs is they are trained on carefully curated datasets that are not representative of the diversity we find in the real world.
That's especially true for road datasets.
In the real world, we have to face "unknown unkowns", ie, unexpected objects with no label.
How to detect such situation?
We propose a combination of 2 principles that lead to very good results:
1_ Disentangle the task (classification, segmentation, ...) from the Out-of-distribution detection.
2_ Train the detector using generated adversarial samples as proxy for OoD.
For 1_, we propose an auxiliary network called obsnet solely devoted to predict OoD. It mimics the architecture of the main network with added residual connection from its activation maps in order to *observe* the decision process.
How do we train the obsnet, you ask?
Well simple, we train it to detect when the main network fails.
However, errors are rare because the main network is accurate (obviously you take the best one 😅) and errors are not representative of OoD.
So how do we solve these problem?
We introduce Local Adversarial Attacks (LAA) to trigger failures of the main network.
- We now have as many training samples as required
- We hallucinate OoD-like objects using blind spot of the main network.
It's all local, and it doesn't change the accuracy of the main network.
In practice, we select a random shape and attack the main network's prediction inside it. That's all! 😲
So simple, everybody can successfully code it! 😎
At inference, nothing is changed. LAA is used only during training, so inference time and accuracy are preserved.
We obtain super competitive results both in terms of OoD detection accuracy and in terms of inference time.
We did massive experiments by implementing and testing loads of existing methods on 3 different datasets.
"torch.manual_seed(3407) is all you need"!
draft 📜: davidpicard.github.io/pdf/lucky_seed…
Sorry for the title. I promise it's not (entirely) just for trolling. It's my little spare time project of this summer to investigate unaccounted randomness in #ComputerVision and #DeepLearning.
🧵👇 1/n
The idea is simple: after years of reviewing deep learning stuff, I am frustrated of never seeing a paragraph that shows how robust the results are w.r.t the randomness (initial weights, batch composition, etc). 2/n
After seeing several videos by @skdh about how experimental physics claims tend to disappear through repetition, I got the idea of gauging the influence of randomness by scanning a large amount of seeds. 3/n