Comments (3)
Hi,
Does the FAQ answers your question? https://github.com/LIVIAETS/boundary-loss#can-the-loss-be-negative
Can the loss be negative?
Yes. As the distance map is signed (meaning that inside the object, the distance is negative), a perfect prediction will sum only negative distances, leading to a negative value. As we are in a minimization setting, this is not an issue.
Also
Is boundary loss optimized towards zero or towards to -inf by torch.adam optimizer?
Unless you clip it yourself, adam will minimize toward -infinity.
Let me know,
Hoel
from boundary-loss.
I see! Based on your explanation, for example, when the predicted boundary is perfect, let's say the loss is -6. And adam still wants to minimize it toward -infinity. However, now no matter how to adjust the predicted perfect boundary, the loss will be bigger because the current boundary is perfect. So the loss will at -6, right?
But the question is, if the loss stays at -6, then there must be a non-zero gradient that will adjust the weights of the network and adjust this perfect boundary. Or do you mean when loss stays at -6 (perfect boundary), the gradients are all zeros?
from boundary-loss.
Hej,
So the loss will at -6, right?
Yes in that case the loss will stick at -6, no matter how hard ADAM tries to go lower.
In the case of the boundary loss, its gradient (wrt the softmax) is the distance map. So you are right:
But the question is, if the loss stays at -6, then there must be a non-zero gradient that will adjust the weights of the network and adjust this perfect boundary.
It will indeed "reinforce" the confidence of those labels (if possible), while the perfect loss will be constant (hopefully). I think that most other losses will have a similar effect (hence the risk of overfitting, and all the regularizers used when training deep neural networks).
In practice, it hasn't been an issue at all for us (as showed by the validation performances over time), and it would be easy to deal with if an issue appeared.
Let me know if things are clearer,
Hoel
from boundary-loss.
Related Issues (20)
- Does einsum really make the code easier to understand HOT 2
- ISLES 2018 HOT 1
- Heterogeneous resolution yields non-zero boundary. HOT 5
- InvalidArgumentError: required broadcastable shapes at loc(unknown) [Op:Mul] HOT 2
- Can this loss be used for multi-label classification? HOT 4
- Create dist_map for image segmentation mask as label. HOT 2
- Is multiplication by negmask in one_hot2dist() irrelevant? HOT 2
- Question about the optional argument resolution in the dist_map_transform function HOT 1
- About the calculation of dist_map HOT 5
- how to use with sigmoid as activation function when meeting binary classification segmentation task HOT 3
- how to adjust the lambda parameter HOT 5
- How to use HausdorffLoss? HOT 1
- How to use HausdorffLoss? HOT 1
- How to one-hot encode a multi-class dataset and how to use Boundary Loss on B x N x W x H logits? HOT 2
- Only using boundary loss leads to non convergence HOT 1
- Failure of matching datasets of WMH HOT 1
- Is it possible to train the Boundary Loss code on a GPU? HOT 1
- Whether this loss function can be applied to the partition of a hollow region, that is, a region with two boundaries HOT 2
- License Request
- zero question
Recommend Projects
-
React
A declarative, efficient, and flexible JavaScript library for building user interfaces.
-
Vue.js
🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.
-
Typescript
TypeScript is a superset of JavaScript that compiles to clean JavaScript output.
-
TensorFlow
An Open Source Machine Learning Framework for Everyone
-
Django
The Web framework for perfectionists with deadlines.
-
Laravel
A PHP framework for web artisans
-
D3
Bring data to life with SVG, Canvas and HTML. 📊📈🎉
-
Recommend Topics
-
javascript
JavaScript (JS) is a lightweight interpreted programming language with first-class functions.
-
web
Some thing interesting about web. New door for the world.
-
server
A server is a program made to process requests and deliver data to clients.
-
Machine learning
Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.
-
Visualization
Some thing interesting about visualization, use data art
-
Game
Some thing interesting about game, make everyone happy.
Recommend Org
-
Facebook
We are working to build community through open source technology. NB: members must have two-factor auth.
-
Microsoft
Open source projects and samples from Microsoft.
-
Google
Google ❤️ Open Source for everyone.
-
Alibaba
Alibaba Open Source for everyone
-
D3
Data-Driven Documents codes.
-
Tencent
China tencent open source team.
from boundary-loss.