YyzHarry / imbalanced-regression

[ICML 2021, Long Talk] Delving into Deep Imbalanced Regression
http://dir.csail.mit.edu
MIT License
819 stars 129 forks source link

How to use this method in a multi-dimension regression problem? #23

Closed semi-supervised-paper closed 2 years ago

semi-supervised-paper commented 2 years ago

Hi, Amazing for your great job in the imblanced regression problem. But I notice that this work discusses more on the 1D regression problems. What if the output is more than 1D (like Batch_Size x 10) ? Any suggestion will be helpful. Thanks.

YyzHarry commented 2 years ago

Hi - thanks for your interest. This is a great question. I'll split my thoughts into 2 parts.

First for LDS, since the underlying idea is to smooth over the label space, it can be straightforwardly extend to multi-dim targets using multivariate KDE (see an implementation using Gaussian kernel in Python here). Otherwise, the principle and implementation should be the same.

For FDS, it might be a bit more complex. Since it operates over the feature space, it depends on the size of your intermediate features. If a feature vector is available for each of the target dimension (i.e., [bsz, feat_dim, out_dim]), FDS is directly applicable by smoothing features over each dimension. Otherwise, if only 1 vector available for one sample (i.e., [bsz, feat_dim]), one straightforward way is to first determine the high-dimensional distance between samples (using multivariate KDE or other methods), then smooth the features using FDS with respect to such high-dim distance.

To sum up, for either technqiue, the idea is the same when extending to multi-dim outputs, and the extension should be straightforward. The key is still to estimate the "effective" label density distribution for multi-dimensional continuous labels.

semi-supervised-paper commented 2 years ago

Thanks for your suggestion ! I'll close the issue.

siemdejong commented 2 years ago

Hi @semi-supervised-paper, Have you been able to adapt LDS and/or FDS to multi-dimensional targets using multivariate KDE? My aim is to train a convolutional neural network to train on three continuous targets. I would be grateful if you could share the solution to your problem.