You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
I want to compare the performance of Multitask GP (MTGP) with Independent Multioutput GP (MOGP) based on their GPyTorch implementations/examples.
When I calculated the mean absolute percentage error (MAPE) for MOGP and MTGP, I saw that mostly the MAPE of MOGP was less than the MAPE of MTGP (while I expected the opposite) or their MAPEs were very close to each other. I changed data dimensions and the number of training iterations, but I saw a similar issue.
As it is mentioned on the GPyTorch website (https://docs.gpytorch.ai/en/stable/examples/03_Multitask_Exact_GPs/Multitask_GP_Regression.html), when we are performing regression on some functions that share the same inputs and they are sinusoidal and have similarities, MTGP should be useful and its performance should be better than MOGP, otherwise, it is not useful to use MTGP because it has a more computational complexity that MOGP and it takes more execution time.
I implemented MTGP and MOGP for an application with more complexity and saw this issue too.
@Balandat, I would appreciate it if you could explain what the issue is and help resolve it.
You're evaluating both tasks at the exact same points (train_x). The multi-task setup can shine more if you have different locations at which you observe the different tasks. In fact, you can show that if the observations you have are noiseless, then you get zero benefit from using a MTGP if you are evaluating the tasks at the same points. This is called autokrigeability.
Your test points test_y are noisy, whereas your model estimates the latent (the trigononmetric functions without the noise). I wouldn't be surprised if this throws off and potentially dominates your error metrics. You should use non-noisy test points since you have the ground truth here.
I recommend using rank=2 here to estimate a full matrix (only 3 parameters here, so unlikely to overfit, this is more a concern with many more tasks).
You're optimizing the model parameters with Adam. How much have you played around with the learning rate and other settings? This can sometimes be tricky to get right, so you may not be optimizing the model parameters fully. I BoTorch we therefore by default use L-BFGS-B as an optimizer, which is involved via fit_gpytorch_mll. I recommend you try this here as well.
reacted with thumbs up emoji reacted with thumbs down emoji reacted with laugh emoji reacted with hooray emoji reacted with confused emoji reacted with heart emoji reacted with rocket emoji reacted with eyes emoji
-
Hi,
I want to compare the performance of Multitask GP (MTGP) with Independent Multioutput GP (MOGP) based on their GPyTorch implementations/examples.
When I calculated the mean absolute percentage error (MAPE) for MOGP and MTGP, I saw that mostly the MAPE of MOGP was less than the MAPE of MTGP (while I expected the opposite) or their MAPEs were very close to each other. I changed data dimensions and the number of training iterations, but I saw a similar issue.
As it is mentioned on the GPyTorch website (https://docs.gpytorch.ai/en/stable/examples/03_Multitask_Exact_GPs/Multitask_GP_Regression.html), when we are performing regression on some functions that share the same inputs and they are sinusoidal and have similarities, MTGP should be useful and its performance should be better than MOGP, otherwise, it is not useful to use MTGP because it has a more computational complexity that MOGP and it takes more execution time.
I implemented MTGP and MOGP for an application with more complexity and saw this issue too.
@Balandat, I would appreciate it if you could explain what the issue is and help resolve it.
Thank you for your time and consideration.
Here is the code based on GPyTorch examples:
Beta Was this translation helpful? Give feedback.
All reactions