Logo Questions Linux Laravel Mysql Ubuntu Git Menu
 

How to prevent converge to mean solution for regression problems in CNN?

I am training a CNN for predicting joints on hands. The problem is that my net always converges to the mean value of the training set, and I can only get identical results for different test images. Do you know how to prevent this?

like image 752
zhi chai Avatar asked Nov 08 '22 23:11

zhi chai


1 Answers

I think you must be using the MSECriterion()? It is the standard l2 (minimum square error) loss. While the CNN tries to predict results, there are multiple modes through which the result can be correct. And what l2 loss does is that it converges to an average of all these modes as that is the most feasible way it can intuitively approach to attain less-penalized results.

The MSE-based solution appears overly smooth due to the pixel-wise average of possible solutions in the pixel space

To pick the optimum mode of answer, you can look into adversarial loss LINK. This loss picks the optimum mode based on what it thinks is realistic in terms of the data it has seen.

For further clarification, look at figure 3 in this paper: SRGAN

like image 115
vdai Avatar answered Nov 15 '22 13:11

vdai